Commit c8da209c authored by suhuiguang's avatar suhuiguang

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents abd18c67 fd5dd490
package com.yeejoin.amos.boot.module.common.api.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
@FeignClient(name = "${Knowledgebase.fegin.name}",path = "knowledgebase" ,configuration = {MultipartSupportConfig.class})
public interface KnowledgebaseFeignClient {
@RequestMapping(value = "/v1/tagvalue/getAll/tegartValue", method = RequestMethod.GET)
ResponseModel<Object> getAllTegartValue(@RequestParam String value) ;
@RequestMapping(value = "/v1/taginstance/find/{id}", method = RequestMethod.GET)
ResponseModel<Object> findById(@PathVariable("id") Long id);
@RequestMapping(value = "/v1/doccontent/getSimpleDetail/{sequenceNbr}", method = RequestMethod.GET)
ResponseModel<Object> getSimpleDetail(@PathVariable(value = "sequenceNbr") String sequenceNbr);
@RequestMapping(value = "/v1/taginstance/targetSeq/{id}", method = RequestMethod.GET)
ResponseModel<Object> queryListByTargetSeq(@PathVariable("id") Long id);
@RequestMapping(value = "/v1/tagvalue/getOne/", method = RequestMethod.GET)
ResponseModel<Object> queryByInstance(@RequestParam Long id) ;
@RequestMapping(value = "/v1/taginstance/getTarget/byName", method = RequestMethod.GET)
ResponseModel<Object> queryListByTagName(@RequestParam String name);
}
...@@ -3,13 +3,13 @@ package com.yeejoin.amos.boot.module.jcs.api.dto; ...@@ -3,13 +3,13 @@ package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerTypeEnum;
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 lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** /**
*
* <pre> * <pre>
* 联动控制器 * 联动控制器
* </pre> * </pre>
...@@ -24,37 +24,51 @@ public class ControllerDto extends BaseDto { ...@@ -24,37 +24,51 @@ public class ControllerDto extends BaseDto {
@ExcelIgnore @ExcelIgnore
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 控制站 * 控制站
*/ */
@ApiModelProperty(value = "控制站") @ApiModelProperty(value = "控制站")
private String station; private String station;
/** /**
* ip * ip
*/ */
@ApiModelProperty(value = "ip") @ApiModelProperty(value = "ip")
private String ip; private String ip;
/** /**
* 端口 * 端口
*/ */
@ApiModelProperty(value = "端口") @ApiModelProperty(value = "端口")
private Integer port; private Integer port;
/** /**
* 控制器名称 * 控制器名称
*/ */
@ApiModelProperty(value = "控制器名称") @ApiModelProperty(value = "控制器名称")
private String name; private String name;
/** /**
* 控制器类别 * 控制器类别
*/ */
@ApiModelProperty(value = "控制器类别") @ApiModelProperty(value = "控制器类别")
private String type; private String type;
/**
* 状态 /**
*/ * 控制器类别枚举
*/
@ApiModelProperty(value = "控制器类别")
private ControllerTypeEnum typeEnum;
/**
* 控制器类别名称
*/
@ApiModelProperty(value = "控制器类别名称")
private String typeDescription;
/**
* 状态
*/
@ApiModelProperty(value = "状态") @ApiModelProperty(value = "状态")
private String state; private String state;
/**
* 关联的消防队伍ID
*/
@ApiModelProperty(value = "关联的消防队伍ID")
private String fireTeamSeq;
} }
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
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;
import java.util.Date;
/**
* @author system_generator
* @date 2021-12-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ControllerLogDto")
public class ControllerLogDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "控制站ID")
private Long controllerSeq;
@ApiModelProperty(value = "控制站名称")
private Long controllerName;
@ApiModelProperty(value = "装备ID")
private Long equipSeq;
@ApiModelProperty(value = "装备名称")
private Long equipName;
@ApiModelProperty(value = "变更后状态")
private String state;
@ApiModelProperty(value = "变更后状态描述")
private Long stateDescription;
@ApiModelProperty(value = "变更人ID")
private String executeUserSeq;
@ApiModelProperty(value = "变更人姓名")
private String executeUserName;
@ApiModelProperty(value = "变更时间")
private Date executeDate;
}
...@@ -8,7 +8,6 @@ import lombok.EqualsAndHashCode; ...@@ -8,7 +8,6 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
*
* <pre> * <pre>
* 联动控制器 * 联动控制器
* </pre> * </pre>
...@@ -22,39 +21,43 @@ import lombok.experimental.Accessors; ...@@ -22,39 +21,43 @@ import lombok.experimental.Accessors;
@TableName("jc_controller") @TableName("jc_controller")
public class Controller extends BaseEntity { public class Controller extends BaseEntity {
/** /**
* *
*/ */
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 控制站 * 控制站
*/ */
@TableField("station") @TableField("station")
private String station; private String station;
/** /**
* ip * ip
*/ */
@TableField("c_ip") @TableField("c_ip")
private String ip; private String ip;
/** /**
* 端口 * 端口
*/ */
@TableField("c_port") @TableField("c_port")
private Integer port; private Integer port;
/** /**
* 控制器名称 * 控制器名称
*/ */
@TableField("c_name") @TableField("c_name")
private String name; private String name;
/** /**
* 控制器类别 * 控制器类别
*/ */
@TableField("type") @TableField("type")
private String type; private String type;
/** /**
* 状态 * 状态
*/ */
@TableField("c_state") @TableField("c_state")
private String state; private String state;
/**
* 关联的消防队伍ID
*/
@TableField(value = "fire_team_seq")
private String fireTeamSeq;
} }
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.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author system_generator
* @date 2021-12-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("jc_controller_log")
public class ControllerLog extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 控制站ID
*/
@TableField("controller_seq")
private Long controllerSeq;
/**
* 装备ID
*/
@TableField("equip_seq")
private Long equipSeq;
/**
* 变更后状态
*/
@TableField("state")
private String state;
/**
* 变更人ID
*/
@TableField("execute_user_seq")
private Long executeUserSeq;
/**
* 变更时间
*/
@TableField("execute_date")
private Date executeDate;
}
...@@ -52,6 +52,12 @@ public enum AlertStageEnums { ...@@ -52,6 +52,12 @@ public enum AlertStageEnums {
fireBrigade("fireBrigade", "岗位名称,规则配置"), fireBrigade("fireBrigade", "岗位名称,规则配置"),
airportUnit("airportUnit", "人员职务规则配置"), airportUnit("airportUnit", "人员职务规则配置"),
flag("flag", "值班单位"), flag("flag", "值班单位"),
keySiteExcle("keySiteExcle","重点部位"),
救援预案警情类型("0","救援预案警情类型"),
责任单位("1","责任单位"),
重点部位名称("2","重点部位名称"),
航空器救援子类("3","航空器救援子类"),
aircraftRescueSub("aircraftRescueSub","航空器救援子类"),
JKDD("6", "企(事)业单位监控大队"); JKDD("6", "企(事)业单位监控大队");
......
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 $
*/
@AllArgsConstructor
@Getter
public enum ControllerGroupEnum {
ONE("一大队", 1, 1), TWO("二大队", 3, 2), THREE("三大队", 2, 3);
private final String name;
private final int type;
private final int order;
public static ControllerGroupEnum getEnum(int type) {
for (ControllerGroupEnum status : ControllerGroupEnum.values()) {
if (status.getType() == type) {
return status;
}
}
return null;
}
}
...@@ -4,7 +4,6 @@ import lombok.AllArgsConstructor; ...@@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/** /**
*
* <pre> * <pre>
* 联动控制器类型枚举 * 联动控制器类型枚举
* </pre> * </pre>
...@@ -16,12 +15,13 @@ import lombok.Getter; ...@@ -16,12 +15,13 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum ControllerTypeEnum { public enum ControllerTypeEnum {
BELL("1", "警铃"), BELL("1", "警铃", 1),
BROADCAST("2", "广播"), BROADCAST("2", "广播", 2),
DOOR("3", "车库门"); DOOR("3", "车库门", 3);
private String code; private String code;
private String name; private String name;
private int sort;
public String getCode() { public String getCode() {
...@@ -39,16 +39,13 @@ public enum ControllerTypeEnum { ...@@ -39,16 +39,13 @@ public enum ControllerTypeEnum {
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
public static ControllerTypeEnum getEnum(String code) public static ControllerTypeEnum getEnum(String code) {
{ for (ControllerTypeEnum status : ControllerTypeEnum.values()) {
for (ControllerTypeEnum status : ControllerTypeEnum.values()) if (status.getCode().equals(code)) {
{ return status;
if (status.getCode().equals(code)) }
{ }
return status; return null;
} }
}
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.ControllerLog;
import java.util.List;
import java.util.Map;
/**
* Mapper 接口
*
* @author system_generator
* @date 2021-12-03
*/
public interface ControllerLogMapper extends BaseMapper<ControllerLog> {
List<Map<String, Object>> selectToday();
}
package com.yeejoin.amos.boot.module.jcs.api.mapper; package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.entity.Controller;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
*
* <pre> * <pre>
* 联动控制器 Mapper 接口 * 联动控制器 Mapper 接口
* </pre> * </pre>
...@@ -14,4 +17,5 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.Controller; ...@@ -14,4 +17,5 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.Controller;
*/ */
public interface ControllerMapper extends BaseMapper<Controller> { public interface ControllerMapper extends BaseMapper<Controller> {
public List<ControllerDto> getCurrentStationController(@Param("sequenceNbr") Long sequenceNbr);
} }
package com.yeejoin.amos.boot.module.jcs.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2021-12-03
*/
public interface IControllerEquipService {
}
package com.yeejoin.amos.boot.module.jcs.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2021-12-03
*/
public interface IControllerLogService {
}
package com.yeejoin.amos.boot.module.jcs.api.service;
/**
* 接口类
*
* @author system_generator
* @date 2021-12-03
*/
public interface IControllerService {
}
<?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.jcs.api.mapper.ControllerLogMapper">
<select id="selectToday" resultType="java.util.HashMap">
SELECT
a.sequence_nbr as sequenceNbr,
a.state,
DATE_FORMAT(a.execute_date, '%Y-%m-%d %H:%i:%s') as executeDate,
b.station,
b.type
FROM
jc_controller_log a
LEFT JOIN jc_controller b ON a.controller_seq = b.sequence_nbr
WHERE
TO_DAYS( a.execute_date ) = TO_DAYS( NOW( ) )
ORDER BY a.execute_date DESC
</select>
</mapper>
<?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.jcs.api.mapper.ControllerMapper">
<select id="getCurrentStationController" resultType="com.yeejoin.amos.boot.module.jcs.api.dto.ControllerDto">
SELECT
*
FROM
jc_controller
WHERE
station = ( SELECT station FROM jc_controller WHERE sequence_nbr = #{sequenceNbr} )
</select>
</mapper>
...@@ -45,7 +45,7 @@ public interface LatentDangerState { ...@@ -45,7 +45,7 @@ public interface LatentDangerState {
/** /**
* 检查组长确认 * 检查组长确认
*/ */
检查组长确认("检查组长确认", "leaderConfirm", "secondConfirm","onSiteConfirm", "1", ""), 检查组长确认("检查组长确认", "leaderConfirm", "secondConfirm","onSiteConfirm", "1", "auditRecordPage"),
/** /**
* 隐患二次审核确认 * 隐患二次审核确认
*/ */
......
...@@ -116,8 +116,12 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat ...@@ -116,8 +116,12 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat
if (model.getAddress() != null) { if (model.getAddress() != null) {
JSONObject address = WaterResourceServiceImpl.getLongLatFromAddress(model.getAddress()); JSONObject address = WaterResourceServiceImpl.getLongLatFromAddress(model.getAddress());
model.setAddress(address.getString(BizConstant.ADDRESS)); model.setAddress(address.getString(BizConstant.ADDRESS));
model.setLongitude(Double.valueOf(address.getString(BizConstant.LONGITUDE))); if(!"0".equals(address.getString(BizConstant.LONGITUDE))) {
model.setLatitude(Double.valueOf(address.getString(BizConstant.LATITUDE))); model.setLongitude(Double.valueOf(address.getString(BizConstant.LONGITUDE)));
}
if(!"0".equals(address.getString(BizConstant.LATITUDE))) {
model.setLongitude(Double.valueOf(address.getString(BizConstant.LATITUDE)));
}
} }
} }
FireStation entity = this.prepareEntity(model); FireStation entity = this.prepareEntity(model);
...@@ -139,8 +143,12 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat ...@@ -139,8 +143,12 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat
if (model.getAddress() != null) { if (model.getAddress() != null) {
JSONObject address = WaterResourceServiceImpl.getLongLatFromAddress(model.getAddress()); JSONObject address = WaterResourceServiceImpl.getLongLatFromAddress(model.getAddress());
model.setAddress(address.getString(BizConstant.ADDRESS)); model.setAddress(address.getString(BizConstant.ADDRESS));
model.setLongitude(Double.valueOf(address.getString(BizConstant.LONGITUDE))); if(!"0".equals(address.getString(BizConstant.LONGITUDE))) {
model.setLatitude(Double.valueOf(address.getString(BizConstant.LATITUDE))); model.setLongitude(Double.valueOf(address.getString(BizConstant.LONGITUDE)));
}
if(!"0".equals(address.getString(BizConstant.LATITUDE))) {
model.setLongitude(Double.valueOf(address.getString(BizConstant.LATITUDE)));
}
} }
FireStation entity = this.prepareEntity(model); FireStation entity = this.prepareEntity(model);
......
...@@ -66,9 +66,6 @@ public class RealTimeSpeechTranscriberListener extends SpeechTranscriberListener ...@@ -66,9 +66,6 @@ public class RealTimeSpeechTranscriberListener extends SpeechTranscriberListener
@Override @Override
public void onTranscriberStart(SpeechTranscriberResponse response) { public void onTranscriberStart(SpeechTranscriberResponse response) {
logger.warn("服务端准备好了进行识别"); logger.warn("服务端准备好了进行识别");
logger.warn("task_id: " + response.getTaskId()
+ ", name: " + response.getName()
+ ", status: " + response.getStatus());
} }
/** /**
...@@ -77,9 +74,6 @@ public class RealTimeSpeechTranscriberListener extends SpeechTranscriberListener ...@@ -77,9 +74,6 @@ public class RealTimeSpeechTranscriberListener extends SpeechTranscriberListener
@Override @Override
public void onSentenceBegin(SpeechTranscriberResponse response) { public void onSentenceBegin(SpeechTranscriberResponse response) {
logger.warn("服务端检测到了一句话的开始"); logger.warn("服务端检测到了一句话的开始");
logger.warn("task_id: " + response.getTaskId()
+ ", name: " + response.getName()
+ ", status: " + response.getStatus());
} }
/** /**
......
package com.yeejoin.amos.boot.module.jcs.biz.controller; package com.yeejoin.amos.boot.module.jcs.biz.controller;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -25,36 +54,9 @@ import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStatusEnum; ...@@ -25,36 +54,9 @@ import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStatusEnum;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.AlertCalledServiceImpl; import com.yeejoin.amos.boot.module.jcs.biz.service.impl.AlertCalledServiceImpl;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.AlertFormValueServiceImpl; import com.yeejoin.amos.boot.module.jcs.biz.service.impl.AlertFormValueServiceImpl;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ESAlertCalledService; import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ESAlertCalledService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
...@@ -515,4 +517,14 @@ public class AlertCalledController extends BaseController { ...@@ -515,4 +517,14 @@ public class AlertCalledController extends BaseController {
public ResponseModel<Object> getLocationLike(@RequestParam(required = false) String locationt) { public ResponseModel<Object> getLocationLike(@RequestParam(required = false) String locationt) {
return ResponseHelper.buildResponse(iAlertCalledService.getLocationLike(locationt)); return ResponseHelper.buildResponse(iAlertCalledService.getLocationLike(locationt));
} }
/**
* 警情预案匹配
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/police/situation/match")
@ApiOperation(httpMethod = "GET", value = "警情预案匹配", notes = "警情预案匹配")
public ResponseModel<Object> toCompletePoliceSituationMatch(@RequestParam Long id)throws Exception {
return ResponseHelper.buildResponse(iAlertCalledService.toCompletePoliceSituationMatch(id));
}
} }
\ No newline at end of file
package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
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.entity.ControllerLog;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerGroupEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerTypeEnum;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ControllerEquipServiceImpl;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ControllerLogServiceImpl;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ControllerServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.component.emq.EmqKeeper;
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 java.util.*;
/**
* 联动控制器
*
* @author system_generator
* @date 2021-12-03
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/controller")
public class ControllerController extends BaseController {
@Autowired
ControllerServiceImpl controllerServiceImpl;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "更新联动控制器状态", notes = "更新联动控制器状态")
@PostMapping(value = "/updateControllerState")
public ResponseModel<Object> updateControllerState(@RequestBody Controller[] controllers) {
return ResponseHelper.buildResponse(controllerServiceImpl.changeControllerState(controllers));
}
/**
* 列表全部数据查询
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<Object> selectForList() {
List<Controller> controllerList = controllerServiceImpl.list();
List<Map<String, Object>> controllerStations = new ArrayList<>();
//分类联动控制站点
HashSet<Integer> controllerStation = new HashSet<>();
controllerList.forEach(controller -> controllerStation.add(Integer.valueOf(controller.getStation())));
controllerStation.forEach(station -> {
ArrayList<ControllerDto> controllerDtos = new ArrayList<>();
controllerList.forEach(controller -> {
if (station.equals(Integer.valueOf(controller.getStation()))) {
ControllerDto controllerDto = new ControllerDto();
ControllerTypeEnum anEnum = ControllerTypeEnum.getEnum(controller.getType());
BeanUtils.copyProperties(controller, controllerDto);
controllerDto.setTypeEnum(anEnum);
controllerDto.setTypeDescription(anEnum.getName());
controllerDtos.add(controllerDto);
}
});
//类型排序
controllerDtos.sort(Comparator.comparingInt(o -> o.getTypeEnum().getSort()));
HashMap<String, Object> result = new HashMap<>();
result.put("groupEnum", ControllerGroupEnum.getEnum(station));
result.put("groupName", Objects.requireNonNull(ControllerGroupEnum.getEnum(station)).getName());
result.put("controllers", controllerDtos);
controllerStations.add(result);
});
//大队排序
controllerStations.sort(Comparator.comparingInt(o -> ((ControllerGroupEnum) o.get("groupEnum")).getOrder()));
return ResponseHelper.buildResponse(controllerStations);
}
}
package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
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.biz.service.impl.ControllerEquipServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
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 java.util.List;
/**
* 控制器设备
*
* @author system_generator
* @date 2021-12-03
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/controller-equip")
public class ControllerEquipController extends BaseController {
@Autowired
ControllerEquipServiceImpl controllerEquipServiceImpl;
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<ControllerEquip>> selectForList() {
return ResponseHelper.buildResponse(controllerEquipServiceImpl.list());
}
}
package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jcs.api.dto.ControllerLogDto;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerGroupEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerTypeEnum;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.ControllerLogServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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 javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* 联动控制日志记录
*
* @author system_generator
* @date 2021-12-03
*/
@RestController
@Api(tags = "Api")
@RequestMapping(value = "/controller-log")
public class ControllerLogController extends BaseController {
@Autowired
ControllerLogServiceImpl controllerLogServiceImpl;
/**
* 新增
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<ControllerLogDto> save(@RequestBody ControllerLogDto model) {
model = controllerLogServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<ControllerLogDto> updateBySequenceNbrControllerLog(@RequestBody ControllerLogDto model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(controllerLogServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(controllerLogServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<ControllerLogDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(controllerLogServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 获取今天的记录
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "获取今天的记录", notes = "获取今天的记录")
@GetMapping(value = "/selectToday")
public ResponseModel<List<Map<String, Object>>> selectToday() {
List<Map<String, Object>> controllerLogDtos = controllerLogServiceImpl.selectToday();
controllerLogDtos.forEach(item -> {
item.put("station", ControllerGroupEnum.getEnum(Integer.parseInt(item.get("station").toString())).getName());
item.put("type", ControllerTypeEnum.getEnum(item.get("type").toString()).getName());
});
return ResponseHelper.buildResponse(controllerLogDtos);
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<ControllerLogDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size) {
Page<ControllerLogDto> page = new Page<ControllerLogDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(controllerLogServiceImpl.queryForControllerLogPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<ControllerLogDto>> selectForList() {
return ResponseHelper.buildResponse(controllerLogServiceImpl.queryForControllerLogList());
}
}
...@@ -177,10 +177,8 @@ public class PowerTransferController extends BaseController { ...@@ -177,10 +177,8 @@ public class PowerTransferController extends BaseController {
AgencyUserModel userInfo = getUserInfo(); AgencyUserModel userInfo = getUserInfo();
powerTransferDto.setTaskSenderId(Long.parseLong(userInfo.getUserId())); powerTransferDto.setTaskSenderId(Long.parseLong(userInfo.getUserId()));
powerTransferDto.setTaskSenderName(userInfo.getRealName()); powerTransferDto.setTaskSenderName(userInfo.getRealName());
String companyName = getSelectedOrgInfo().getCompany().getCompanyName(); String companyName = getSelectedOrgInfo().getCompany().getCompanyName();
powerTransferDto.setCompanyName(companyName); powerTransferDto.setCompanyName(companyName);
boolean save = powerTransferService.createPowerTransfer(powerTransferDto); boolean save = powerTransferService.createPowerTransfer(powerTransferDto);
return ResponseHelper.buildResponse(save); return ResponseHelper.buildResponse(save);
} }
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl; package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import static org.hamcrest.CoreMatchers.nullValue;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jcs.api.dto.*; import org.apache.commons.lang3.ObjectUtils;
import com.yeejoin.amos.boot.module.jcs.api.entity.*;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertBusinessTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.service.IVoiceRecordFileService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -25,8 +26,10 @@ import org.typroject.tyboot.component.emq.EmqKeeper; ...@@ -25,8 +26,10 @@ import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -44,10 +47,27 @@ import com.yeejoin.amos.boot.module.common.api.dto.FormValue; ...@@ -44,10 +47,27 @@ import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrzhDto; import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrzhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData; import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.feign.JcsControlServerClient; import com.yeejoin.amos.boot.module.common.api.feign.JcsControlServerClient;
import com.yeejoin.amos.boot.module.common.api.feign.KnowledgebaseFeignClient;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FirefightersServiceImpl; import com.yeejoin.amos.boot.module.common.biz.service.impl.FirefightersServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.KeySiteServiceImpl; import com.yeejoin.amos.boot.module.common.biz.service.impl.KeySiteServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl; import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.WaterResourceServiceImpl; import com.yeejoin.amos.boot.module.common.biz.service.impl.WaterResourceServiceImpl;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledDto;
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.dto.VoiceRecordFileDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.Aircraft;
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.AlertLocationLog;
import com.yeejoin.amos.boot.module.jcs.api.entity.Template;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertBusinessTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStageEnums; 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.ControllerTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum; import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum;
...@@ -66,98 +86,100 @@ import com.yeejoin.amos.component.rule.config.RuleConfig; ...@@ -66,98 +86,100 @@ import com.yeejoin.amos.component.rule.config.RuleConfig;
*/ */
@Service @Service
public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCalled, AlertCalledMapper> public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCalled, AlertCalledMapper>
implements IAlertCalledService { implements IAlertCalledService {
private final Logger logger = LogManager.getLogger(AlertCalledServiceImpl.class);
private final Logger logger = LogManager.getLogger(AlertCalledServiceImpl.class);
@Autowired
@Autowired RedisUtils redisUtils;
RedisUtils redisUtils; @Autowired
@Autowired AlertCalledMapper alertCalledMapper;
AlertCalledMapper alertCalledMapper; @Autowired
@Autowired RuleAlertCalledService ruleAlertCalledService;
RuleAlertCalledService ruleAlertCalledService; @Autowired
@Autowired TemplateMapper templateMapper;
TemplateMapper templateMapper; @Autowired
@Autowired PowerTransferMapper powerTransferMapper;
PowerTransferMapper powerTransferMapper; @Autowired
@Autowired AlertSubmittedMapper alertSubmittedMapper;
AlertSubmittedMapper alertSubmittedMapper; @Autowired
@Autowired private JcsControlServerClient jcsControlServerClient;
private JcsControlServerClient jcsControlServerClient; @Autowired
@Autowired private AlertFormValueServiceImpl iAlertFormValueService;
private AlertFormValueServiceImpl iAlertFormValueService; @Autowired
@Autowired private ESAlertCalledService eSAlertCalledService;
private ESAlertCalledService eSAlertCalledService; @Autowired
@Autowired private ControllerServiceImpl controllerService;
private ControllerServiceImpl controllerService; @Autowired
@Autowired private ControllerEquipServiceImpl controllerEquipService;
private ControllerEquipServiceImpl controllerEquipService; @Autowired
@Autowired FirefightersServiceImpl firefightersService;
FirefightersServiceImpl firefightersService; @Autowired
@Autowired KeySiteServiceImpl keySiteService;
KeySiteServiceImpl keySiteService; @Autowired
@Autowired AlertSubmittedServiceImpl alertSubmittedService;
AlertSubmittedServiceImpl alertSubmittedService;
@Autowired
@Autowired private AlertLocationLogServiceImpl alertLocationLogService;
private AlertLocationLogServiceImpl alertLocationLogService;
@Autowired
@Autowired private EmqKeeper emqKeeper;
private EmqKeeper emqKeeper; @Value("${mqtt.topic.command.alert.notice}")
@Value("${mqtt.topic.command.alert.notice}") private String topic;
private String topic; @Value("${redis.cache.failure.time}")
@Value("${redis.cache.failure.time}") private long time;
private long time; @Value("${mqtt.topic.command.power.deployment}")
@Value("${mqtt.topic.command.power.deployment}") private String topic1;
private String topic1;
@Autowired
@Autowired private OrgUsrServiceImpl iOrgUsrService;
private OrgUsrServiceImpl iOrgUsrService;
@Autowired
@Autowired AircraftServiceImpl aircraftService;
AircraftServiceImpl aircraftService;
@Autowired
@Autowired AlertFormValueServiceImpl alertFormValueService;
AlertFormValueServiceImpl alertFormValueService;
@Autowired
@Autowired OrgUsrServiceImpl orgUsrServiceImpl;
OrgUsrServiceImpl orgUsrServiceImpl; @Autowired
@Autowired VoiceRecordFileServiceImpl voiceRecordFileService;
VoiceRecordFileServiceImpl voiceRecordFileService;
@Autowired
private static int comparingByGroupVal(Map<String, Object> map, Map<String, Object> map2, String key) { KnowledgebaseFeignClient knowledgebaseFeignClient;
int result = 0;
if (map.get(key) instanceof DateTime) { private static int comparingByGroupVal(Map<String, Object> map, Map<String, Object> map2, String key) {
long r1 = ((Date) map.get(key)).getTime(); int result = 0;
long r2 = ((Date) map2.get(key)).getTime(); if (map.get(key) instanceof DateTime) {
result = Long.compare(r1, r2); long r1 = ((Date) map.get(key)).getTime();
} long r2 = ((Date) map2.get(key)).getTime();
return result; result = Long.compare(r1, r2);
} }
return result;
/** }
* 指挥系统 未结束的警情列表
**/ /**
@Override * 指挥系统 未结束的警情列表
public List<AlertCalledZhDto> alertCalledListByAlertStatus(Integer pageNum, Integer pageSize, RequestData par) { **/
@Override
List<AlertCalledZhDto> list = alertCalledMapper.alertCalledListByAlertStatus(pageNum, pageSize, par); public List<AlertCalledZhDto> alertCalledListByAlertStatus(Integer pageNum, Integer pageSize, RequestData par) {
return list;
List<AlertCalledZhDto> list = alertCalledMapper.alertCalledListByAlertStatus(pageNum, pageSize, par);
} return list;
@Override }
public int alertCalledListByAlertStatusCount(RequestData par) {
return alertCalledMapper.alertCalledListByAlertStatusCount(par); @Override
} public int alertCalledListByAlertStatusCount(RequestData par) {
return alertCalledMapper.alertCalledListByAlertStatusCount(par);
/** }
* 接警记录 列表分页查询
**/ /* /**
* bug2407 筛选参数解析异常 修改筛选条件方法 XML中添加了selectAllPage 方法 data代表排序条件 lift 升降序 陈召 * 接警记录 列表分页查询
* 2021-09-03 开始 **/ /*
*/ * bug2407 筛选参数解析异常 修改筛选条件方法 XML中添加了selectAllPage 方法 data代表排序条件 lift 升降序 陈召
* 2021-09-03 开始
*/
// public IPage<AlertCalled> queryForCalledList(Page pageBean, Integer alertStatus, // public IPage<AlertCalled> queryForCalledList(Page pageBean, Integer alertStatus,
// String alertTypeCode, // String alertTypeCode,
// String alertSourceCode, // String alertSourceCode,
...@@ -174,467 +196,468 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal ...@@ -174,467 +196,468 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
// //
// List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, alertTypeCode, alertSourceCode, startTime, endTime, data, lift); // List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, alertTypeCode, alertSourceCode, startTime, endTime, data, lift);
// } // }
public IPage<AlertCalled> queryForCalledList(Page pageBean, Integer alertStatus, String alertTypeCode, public IPage<AlertCalled> queryForCalledList(Page pageBean, Integer alertStatus, String alertTypeCode,
String alertSourceCode, String startTime, String endTime, String sort, String isFatherAlert) { String alertSourceCode, String startTime, String endTime, String sort, String isFatherAlert) {
String[] split = sort != null ? sort.split(",") : null; String[] split = sort != null ? sort.split(",") : null;
/* 2407 【web】日常值班>警情记录>接警记录,表头排序功能失效 chenzhao 09-28 start */ /* 2407 【web】日常值班>警情记录>接警记录,表头排序功能失效 chenzhao 09-28 start */
if (split != null) { if (split != null) {
if (split[0] != null) { if (split[0] != null) {
if (split[0].equals("alertType") || split[0].equals("alertSource") || split[0].equals("alarmType")) { if (split[0].equals("alertType") || split[0].equals("alertSource") || split[0].equals("alarmType")) {
split[0] = split[0] + "Code"; split[0] = split[0] + "Code";
} }
if (split[0].equals("alertStatusStr")) { if (split[0].equals("alertStatusStr")) {
split[0] = "alertStatus"; split[0] = "alertStatus";
} }
} }
if (split[1] != null) { if (split[1] != null) {
if (split[1].equals("ascend")) { if (split[1].equals("ascend")) {
split[1] = "ASC"; split[1] = "ASC";
} }
if (split[1].equals("descend")) { if (split[1].equals("descend")) {
split[1] = "DESC"; split[1] = "DESC";
} }
} }
} }
String data = split != null ? RedisKey.humpToLine(split[0]) : null; String data = split != null ? RedisKey.humpToLine(split[0]) : null;
/* 2407 【web】日常值班>警情记录>接警记录,表头排序功能失效 chenzhao 09-28 end */ /* 2407 【web】日常值班>警情记录>接警记录,表头排序功能失效 chenzhao 09-28 end */
String lift = split != null ? split[1] : null; String lift = split != null ? split[1] : null;
List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus, List<AlertCalled> list = alertCalledMapper.selectAllPage(pageBean.getCurrent(), pageBean.getSize(), alertStatus,
alertTypeCode, alertSourceCode, startTime, endTime, data, lift, isFatherAlert); alertTypeCode, alertSourceCode, startTime, endTime, data, lift, isFatherAlert);
IPage<AlertCalled> iPage = new Page<>(); IPage<AlertCalled> iPage = new Page<>();
iPage.setRecords(list); iPage.setRecords(list);
iPage.setTotal( iPage.setTotal(alertCalledMapper.selectAllCount(alertStatus, alertTypeCode, alertSourceCode, startTime, endTime,
alertCalledMapper.selectAllCount(alertStatus, alertTypeCode, alertSourceCode, startTime, endTime, isFatherAlert)); isFatherAlert));
//iPage.setSize(pageBean.getSize()); // iPage.setSize(pageBean.getSize());
return iPage; return iPage;
/* bug2407 表头筛选失效 补充条件方法 XML中添加了排序条件判断 data代表排序条件 lift 升降序 陈召 2021-09-03 结束 */ /* bug2407 表头筛选失效 补充条件方法 XML中添加了排序条件判断 data代表排序条件 lift 升降序 陈召 2021-09-03 结束 */
} }
/** /**
* 根据灾情id 查询灾情详情 * 根据灾情id 查询灾情详情
**/ **/
@Override @Override
public Object selectAlertCalledById(Long id) { public Object selectAlertCalledById(Long id) {
if (redisUtils.hasKey(RedisKey.ALERTCALLED_ID + id)) { if (redisUtils.hasKey(RedisKey.ALERTCALLED_ID + id)) {
Object obj = redisUtils.get(RedisKey.ALERTCALLED_ID + id); Object obj = redisUtils.get(RedisKey.ALERTCALLED_ID + id);
return obj; return obj;
} else { } else {
// 警情基本信息 // 警情基本信息
AlertCalled alertCalled = this.getById(id); AlertCalled alertCalled = this.getById(id);
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>(); QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("alert_called_id", id); queryWrapper.eq("alert_called_id", id);
// 警情动态表单数据 // 警情动态表单数据
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper); List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
List<FormValue> formValue = new ArrayList<FormValue>(); List<FormValue> formValue = new ArrayList<FormValue>();
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
for (AlertFormValue alertFormValue : list) { for (AlertFormValue alertFormValue : list) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
"text", alertFormValue.getFieldValue(), alertFormValue.getBlock()); "text", alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value); formValue.add(value);
} }
} }
AlertCalledFormDto alertCalledFormVo = new AlertCalledFormDto(alertCalled, formValue); AlertCalledFormDto alertCalledFormVo = new AlertCalledFormDto(alertCalled, formValue);
redisUtils.set(RedisKey.ALERTCALLED_ID + id, JSON.toJSON(alertCalledFormVo), time); redisUtils.set(RedisKey.ALERTCALLED_ID + id, JSON.toJSON(alertCalledFormVo), time);
return alertCalledFormVo; return alertCalledFormVo;
} }
} }
/** /**
* 根据灾情id 查询灾情详情 * 根据灾情id 查询灾情详情
**/ **/
@Override @Override
public Object selectAlertCalledByIdNoRedis(Long id) { public Object selectAlertCalledByIdNoRedis(Long id) {
// 警情基本信息 // 警情基本信息
AlertCalled alertCalled = this.getById(id); AlertCalled alertCalled = this.getById(id);
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>(); QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("alert_called_id", id); queryWrapper.eq("alert_called_id", id);
// 警情动态表单数据 // 警情动态表单数据
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper); List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
List<FormValue> formValue = new ArrayList<FormValue>(); List<FormValue> formValue = new ArrayList<FormValue>();
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
for (AlertFormValue alertFormValue : list) { for (AlertFormValue alertFormValue : list) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), "text",
"text", alertFormValue.getFieldValue(), alertFormValue.getBlock()); alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value); formValue.add(value);
} }
} }
AlertCalledFormDto alertCalledFormVo = new AlertCalledFormDto(alertCalled, formValue); AlertCalledFormDto alertCalledFormVo = new AlertCalledFormDto(alertCalled, formValue);
return alertCalledFormVo; return alertCalledFormVo;
} }
/** /**
* 根据灾情id 查询灾情详情 * 根据灾情id 查询灾情详情
**/ **/
@Override @Override
public Object selectAlertCalledByIdNoRedisNew(Long id) { public Object selectAlertCalledByIdNoRedisNew(Long id) {
// 警情基本信息 // 警情基本信息
AlertCalled alertCalled = this.getById(id); AlertCalled alertCalled = this.getById(id);
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>(); QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("alert_called_id", id); queryWrapper.eq("alert_called_id", id);
// 警情动态表单数据 // 警情动态表单数据
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper); List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
List<FormValue> formValue = new ArrayList<FormValue>(); List<FormValue> formValue = new ArrayList<FormValue>();
// //
AlertCalledObjsDto alertCalledFormVo = new AlertCalledObjsDto(); AlertCalledObjsDto alertCalledFormVo = new AlertCalledObjsDto();
alertCalledFormVo.setAlertCalled(alertCalled); alertCalledFormVo.setAlertCalled(alertCalled);
alertCalledFormVo.setAlertFormValue(list); alertCalledFormVo.setAlertFormValue(list);
return alertCalledFormVo; return alertCalledFormVo;
} }
/** /**
* <pre> * <pre>
* 保存警情信息 * 保存警情信息
* </pre> * </pre>
* *
* @param alertCalledObjsDto * @param alertCalledObjsDto
* @return * @return
*/ */
@Transactional(rollbackFor = RuntimeException.class) @Transactional(rollbackFor = RuntimeException.class)
public AlertCalledObjsDto createAlertCalled(AlertCalledObjsDto alertCalledObjsDto) { public AlertCalledObjsDto createAlertCalled(AlertCalledObjsDto alertCalledObjsDto) {
try { try {
// 警情基本信息 // 警情基本信息
AlertCalled alertCalled = alertCalledObjsDto.getAlertCalled(); AlertCalled alertCalled = alertCalledObjsDto.getAlertCalled();
//主表增加备注字段 // 主表增加备注字段
if (alertCalled.getAddress() != null) { if (alertCalled.getAddress() != null) {
JSONObject address = WaterResourceServiceImpl.getLongLatFromAddress(alertCalled.getAddress()); JSONObject address = WaterResourceServiceImpl.getLongLatFromAddress(alertCalled.getAddress());
alertCalled.setAddress(address.getString(BizConstant.ADDRESS)); alertCalled.setAddress(address.getString(BizConstant.ADDRESS));
alertCalled.setCoordinateX(Double.valueOf(address.getString(BizConstant.LONGITUDE))); alertCalled.setCoordinateX(Double.valueOf(address.getString(BizConstant.LONGITUDE)));
alertCalled.setCoordinateY(Double.valueOf(address.getString(BizConstant.LATITUDE))); alertCalled.setCoordinateY(Double.valueOf(address.getString(BizConstant.LATITUDE)));
} }
alertCalled.setCallTime(new Date()); alertCalled.setCallTime(new Date());
if (AlertStageEnums.RG.getValue().equals(alertCalled.getAlertSourceCode()) if (AlertStageEnums.RG.getValue().equals(alertCalled.getAlertSourceCode())
|| AlertStageEnums.RG.getValue().equals(alertCalled.getAlertSourceCode())) { || AlertStageEnums.RG.getValue().equals(alertCalled.getAlertSourceCode())) {
alertCalled.setType("0"); alertCalled.setType("0");
} else { } else {
alertCalled.setType("1"); alertCalled.setType("1");
} }
// 动态表单 // 动态表单
List<AlertFormValue> alertFormValuelist = alertCalledObjsDto.getAlertFormValue(); List<AlertFormValue> alertFormValuelist = alertCalledObjsDto.getAlertFormValue();
// 判断是否航空器救援 如果为航空器救援则保存冗余字段 response_level_code bug2542 bykongfm // 判断是否航空器救援 如果为航空器救援则保存冗余字段 response_level_code bug2542 bykongfm
if (AlertStageEnums.HKJY.getCode().equals(alertCalled.getAlertTypeCode())) { if (AlertStageEnums.HKJY.getCode().equals(alertCalled.getAlertTypeCode())) {
alertFormValuelist.stream().forEach(alertFormValue -> { alertFormValuelist.stream().forEach(alertFormValue -> {
if (alertFormValue.getFieldCode().equals("responseLevel")) { if (alertFormValue.getFieldCode().equals("responseLevel")) {
alertCalled.setResponseLevelCode(alertFormValue.getFieldValueCode()); alertCalled.setResponseLevelCode(alertFormValue.getFieldValueCode());
alertCalled.setResponseLevel(alertFormValue.getFieldValue()); alertCalled.setResponseLevel(alertFormValue.getFieldValue());
} }
}); });
} }
// 判断是否归并警情 // 判断是否归并警情
if (alertCalled.getFatherAlert() != null) { if (alertCalled.getFatherAlert() != null) {
// 警情归并,设置当前警情状态为结束。 // 警情归并,设置当前警情状态为结束。
alertCalled.setAlertStatus(true); alertCalled.setAlertStatus(true);
alertCalled.setAlertStage(AlertStageEnums.JQJB.getValue()); alertCalled.setAlertStage(AlertStageEnums.JQJB.getValue());
alertCalled.setAlarmType(AlertStageEnums.JQGB.getValue()); alertCalled.setAlarmType(AlertStageEnums.JQGB.getValue());
alertCalled.setAlarmTypeCode(AlertStageEnums.JQGB.getCode()); alertCalled.setAlarmTypeCode(AlertStageEnums.JQGB.getCode());
alertCalled.setUpdateTime(new Date()); alertCalled.setUpdateTime(new Date());
alertCalled.setRemark(alertCalledObjsDto.getRemark()); alertCalled.setRemark(alertCalledObjsDto.getRemark());
this.save(alertCalled); this.save(alertCalled);
// 填充警情主键 // 填充警情主键
alertFormValuelist.stream().forEach(alertFormValue -> { alertFormValuelist.stream().forEach(alertFormValue -> {
alertFormValue.setAlertCalledId(alertCalled.getSequenceNbr()); alertFormValue.setAlertCalledId(alertCalled.getSequenceNbr());
alertFormValue.setAlertTypeCode(alertCalled.getAlertTypeCode()); alertFormValue.setAlertTypeCode(alertCalled.getAlertTypeCode());
}); });
// 保存动态表单数据 // 保存动态表单数据
iAlertFormValueService.saveBatch(alertFormValuelist); iAlertFormValueService.saveBatch(alertFormValuelist);
emqKeeper.getMqttClient().publish(topic1, "1".getBytes(), RuleConfig.DEFAULT_QOS, true); emqKeeper.getMqttClient().publish(topic1, "1".getBytes(), RuleConfig.DEFAULT_QOS, true);
} else { } else {
// 警情报送 // 警情报送
// ****************************************************待确认开发 // ****************************************************待确认开发
alertCalled.setAlertStatus(false); alertCalled.setAlertStatus(false);
alertCalled.setIsDelete(false); alertCalled.setIsDelete(false);
alertCalled.setAlertStage(AlertStageEnums.LLDP.getValue()); alertCalled.setAlertStage(AlertStageEnums.LLDP.getValue());
alertCalled.setAlarmType(AlertStageEnums.JQCB.getValue()); alertCalled.setAlarmType(AlertStageEnums.JQCB.getValue());
alertCalled.setAlarmTypeCode(AlertStageEnums.JQCB.getCode()); alertCalled.setAlarmTypeCode(AlertStageEnums.JQCB.getCode());
alertCalled.setRemark(alertCalledObjsDto.getRemark()); alertCalled.setRemark(alertCalledObjsDto.getRemark());
this.save(alertCalled); this.save(alertCalled);
// 填充警情主键 // 填充警情主键
alertFormValuelist.stream().forEach(alertFormValue -> { alertFormValuelist.stream().forEach(alertFormValue -> {
alertFormValue.setAlertCalledId(alertCalled.getSequenceNbr()); alertFormValue.setAlertCalledId(alertCalled.getSequenceNbr());
alertFormValue.setAlertTypeCode(alertCalled.getAlertTypeCode()); alertFormValue.setAlertTypeCode(alertCalled.getAlertTypeCode());
}); });
// 保存动态表单数据 // 保存动态表单数据
iAlertFormValueService.saveBatch(alertFormValuelist); iAlertFormValueService.saveBatch(alertFormValuelist);
alertCalledObjsDto.setAlertCalled(alertCalled); alertCalledObjsDto.setAlertCalled(alertCalled);
alertCalledObjsDto.setAlertFormValue(alertFormValuelist); alertCalledObjsDto.setAlertFormValue(alertFormValuelist);
// 警情报送 // 警情报送
// 调用规则 警情初报 // 调用规则 警情初报
ruleAlertCalledService.fireAlertCalledRule(alertCalledObjsDto, AlertBusinessTypeEnum.警情初报.getCode(), null, null, null); ruleAlertCalledService.fireAlertCalledRule(alertCalledObjsDto, AlertBusinessTypeEnum.警情初报.getCode(),
// 通知实战指挥页面发送mqtt 默认发送 String 类型 0, 新警情 1 警情状态变化 null, null, null);
emqKeeper.getMqttClient().publish(topic, "0".getBytes(), RuleConfig.DEFAULT_QOS, true); // 通知实战指挥页面发送mqtt 默认发送 String 类型 0, 新警情 1 警情状态变化
/** emqKeeper.getMqttClient().publish(topic, "0".getBytes(), RuleConfig.DEFAULT_QOS, true);
* 同步保存ES /**
*/ * 同步保存ES
eSAlertCalledService.saveAlertCalledToES(alertCalled); */
} eSAlertCalledService.saveAlertCalledToES(alertCalled);
return alertCalledObjsDto; }
} catch (Exception e) { return alertCalledObjsDto;
e.printStackTrace(); } catch (Exception e) {
throw new RuntimeException("报送失败,系统异常!"); e.printStackTrace();
} throw new RuntimeException("报送失败,系统异常!");
} }
}
/**
* 根据id 修改警情 type:警情相关 操作类型 0警情续报 1非警情确认 2 警情结案 /**
*/ * 根据id 修改警情 type:警情相关 操作类型 0警情续报 1非警情确认 2 警情结案
@Override */
@Transactional(rollbackFor = RuntimeException.class) @Override
public boolean updateAlertCalled(Long id, String code) { @Transactional(rollbackFor = RuntimeException.class)
// TODO Auto-generated method stub public boolean updateAlertCalled(Long id, String code) {
try { // TODO Auto-generated method stub
switch (code) { try {
case "314": switch (code) {
alertCalledMapper.update(null, case "314":
new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id).set("alert_status", 1) alertCalledMapper.update(null,
.set("alert_stage", AlertStageEnums.ZBQJ.getValue()) new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id).set("alert_status", 1)
.set("update_time", new Date()) .set("alert_stage", AlertStageEnums.ZBQJ.getValue()).set("update_time", new Date())
.set("alarm_type", AlertStageEnums.FJQ.getValue()) .set("alarm_type", AlertStageEnums.FJQ.getValue())
.set("alarm_type_code", AlertStageEnums.FJQ.getCode())); .set("alarm_type_code", AlertStageEnums.FJQ.getCode()));
break; break;
case "315": case "315":
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id) alertCalledMapper.update(null,
.set("alert_status", 1).set("update_time", new Date()).set("alert_stage", AlertStageEnums.CZJS.getValue())); new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id).set("alert_status", 1)
break; .set("update_time", new Date()).set("alert_stage", AlertStageEnums.CZJS.getValue()));
default: break;
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id) default:
.set("update_time", new Date()).set("alert_stage", AlertStageEnums.CZGZ.getValue())); alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("update_time", new Date()).set("alert_stage", AlertStageEnums.CZGZ.getValue()));
break;
} break;
}
AlertCalled alertCalled = this.getById(id);
// 删除缓存 AlertCalled alertCalled = this.getById(id);
redisUtils.del(RedisKey.ALERTCALLED_ID + id); // 删除缓存
/** redisUtils.del(RedisKey.ALERTCALLED_ID + id);
* 同步更新存ES /**
*/ * 同步更新存ES
eSAlertCalledService.saveAlertCalledToES(alertCalled); */
eSAlertCalledService.saveAlertCalledToES(alertCalled);
// 通知实战指挥页面发送mqtt 默认发送 String 类型 0新警情, 1警情状态变化
emqKeeper.getMqttClient().publish(topic, "1".getBytes(), RuleConfig.DEFAULT_QOS, true); // 通知实战指挥页面发送mqtt 默认发送 String 类型 0新警情, 1警情状态变化
emqKeeper.getMqttClient().publish(topic, "1".getBytes(), RuleConfig.DEFAULT_QOS, true);
return true;
} catch (Exception e) { return true;
throw new RuntimeException("系统异常!"); } catch (Exception e) {
} throw new RuntimeException("系统异常!");
} }
}
/**
* 根据时间区间查询警情列表信息 /**
* * 根据时间区间查询警情列表信息
* @param beginDate 开始时间 *
* @param endDate 结束时间 * @param beginDate 开始时间
*/ * @param endDate 结束时间
public List<Map<String, Object>> listByDateRange(String beginDate, String endDate) { */
// 查询指定日期内的警情列表 public List<Map<String, Object>> listByDateRange(String beginDate, String endDate) {
// 查询指定日期内的警情列表
List<AlertCalled> alertCalledList = this.list(new LambdaQueryWrapper<AlertCalled>()
.apply(!ValidationUtil.isEmpty(beginDate), "call_time >= '" + beginDate + "'") List<AlertCalled> alertCalledList = this.list(new LambdaQueryWrapper<AlertCalled>()
.le(true, AlertCalled::getCallTime, endDate)); .apply(!ValidationUtil.isEmpty(beginDate), "call_time >= '" + beginDate + "'")
Map<String, String> queryParams = Maps.newHashMap(); .le(true, AlertCalled::getCallTime, endDate));
queryParams.put("beginDate", beginDate); Map<String, String> queryParams = Maps.newHashMap();
queryParams.put("endDate", endDate); queryParams.put("beginDate", beginDate);
List<Map<String, Object>> allList = Lists.newArrayList(); queryParams.put("endDate", endDate);
if (!ValidationUtil.isEmpty(alertCalledList)) { List<Map<String, Object>> allList = Lists.newArrayList();
Map<String, List<AlertCalled>> alertCalledMap = alertCalledList.stream() if (!ValidationUtil.isEmpty(alertCalledList)) {
.collect(Collectors.groupingBy(AlertCalled::getAlertTypeCode)); Map<String, List<AlertCalled>> alertCalledMap = alertCalledList.stream()
Map<Long, AlertCalled> calledMap = alertCalledList.stream() .collect(Collectors.groupingBy(AlertCalled::getAlertTypeCode));
.collect(Collectors.toMap(AlertCalled::getSequenceNbr, Function.identity())); Map<Long, AlertCalled> calledMap = alertCalledList.stream()
alertCalledMap.forEach((alertTypeCode, list) -> { .collect(Collectors.toMap(AlertCalled::getSequenceNbr, Function.identity()));
allList.addAll(iAlertFormValueService.listAll(alertTypeCode, queryParams)); alertCalledMap.forEach((alertTypeCode, list) -> {
}); allList.addAll(iAlertFormValueService.listAll(alertTypeCode, queryParams));
});
allList.forEach(i -> {
// 增加非空判断 cz 2021-10-08 allList.forEach(i -> {
if (calledMap.get(Long.parseLong(i.get("instanceId").toString())) != null) { // 增加非空判断 cz 2021-10-08
AlertCalled alertCalled = calledMap.get(Long.parseLong(i.get("instanceId").toString())); if (calledMap.get(Long.parseLong(i.get("instanceId").toString())) != null) {
i.putAll(Bean.BeantoMap(alertCalled)); AlertCalled alertCalled = calledMap.get(Long.parseLong(i.get("instanceId").toString()));
} i.putAll(Bean.BeantoMap(alertCalled));
}); }
} });
// 按接警时间正序排序 }
allList.sort((e, o) -> comparingByGroupVal(e, o, "recDate")); // 按接警时间正序排序
return allList; allList.sort((e, o) -> comparingByGroupVal(e, o, "recDate"));
} return allList;
}
public Map<String, Object> getAlertInfoList(String beginDate, String endDate) {
Map<String, Object> result = Maps.newHashMap(); public Map<String, Object> getAlertInfoList(String beginDate, String endDate) {
List<Map<String, Object>> list = listByDateRange(beginDate, endDate); Map<String, Object> result = Maps.newHashMap();
// 获取接警情况模板 List<Map<String, Object>> list = listByDateRange(beginDate, endDate);
List<Template> templateList = templateMapper.selectList(new LambdaQueryWrapper<Template>() // 获取接警情况模板
.eq(Template::getFormat, false).like(Template::getTypeCode, DutyInfoEnum.接警情况.getKey() + "-")); List<Template> templateList = templateMapper.selectList(new LambdaQueryWrapper<Template>()
Map<String, Template> templateMap = templateList.stream() .eq(Template::getFormat, false).like(Template::getTypeCode, DutyInfoEnum.接警情况.getKey() + "-"));
.collect(Collectors.toMap(Template::getTypeCode, Function.identity())); Map<String, Template> templateMap = templateList.stream()
List<String> contentList = Lists.newArrayList(); .collect(Collectors.toMap(Template::getTypeCode, Function.identity()));
// 增加非空判断 cz 2021-10-08 List<String> contentList = Lists.newArrayList();
list.forEach(i -> { // 增加非空判断 cz 2021-10-08
if (i.get("alertTypeCode") != null) { list.forEach(i -> {
String tempContent = templateMap.get(DutyInfoEnum.接警情况.getKey() + "-" + i.get("alertTypeCode")) if (i.get("alertTypeCode") != null) {
.getContent(); String tempContent = templateMap.get(DutyInfoEnum.接警情况.getKey() + "-" + i.get("alertTypeCode"))
contentList.add(replaceTemplate(tempContent, i)); .getContent();
} contentList.add(replaceTemplate(tempContent, i));
}); }
Map<String, Integer> statusCountMap = alertCalledMapper.queryAlertStatusCount(beginDate, endDate); });
Integer unFinishedCount = this Map<String, Integer> statusCountMap = alertCalledMapper.queryAlertStatusCount(beginDate, endDate);
.count(new LambdaQueryWrapper<AlertCalled>().eq(AlertCalled::getAlertStatus, false));// bug2532 Integer unFinishedCount = this
// 未结案警情统计错误 .count(new LambdaQueryWrapper<AlertCalled>().eq(AlertCalled::getAlertStatus, false));// bug2532
// bykongfm // 未结案警情统计错误
// bykongfm
result.put("alertInfoList", contentList);
result.putAll(statusCountMap); result.put("alertInfoList", contentList);
result.put("unFinishedCount", unFinishedCount); result.putAll(statusCountMap);
return result; result.put("unFinishedCount", unFinishedCount);
} return result;
}
/**
* 替换模板 /**
* * 替换模板
* @param tempContent 模板 *
* @param objMap 对象map * @param tempContent 模板
* @return * @param objMap 对象map
*/ * @return
private String replaceTemplate(String tempContent, Map<String, Object> objMap) { */
int size = objMap.size(); private String replaceTemplate(String tempContent, Map<String, Object> objMap) {
String[] keys = objMap.keySet().toArray(new String[size]); int size = objMap.size();
Object[] values = objMap.values().toArray(new Object[size]); String[] keys = objMap.keySet().toArray(new String[size]);
List<String> strList = Lists.newArrayList(); Object[] values = objMap.values().toArray(new Object[size]);
for (Object obj : values) { List<String> strList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(obj)) { for (Object obj : values) {
if (obj instanceof Date) { if (!ValidationUtil.isEmpty(obj)) {
obj = DateUtils.date2LongStr((Date) obj); if (obj instanceof Date) {
} obj = DateUtils.date2LongStr((Date) obj);
strList.add(obj.toString()); }
} else { strList.add(obj.toString());
strList.add(""); } else {
} strList.add("");
} }
return StringUtils.replaceEach(tempContent, keys, strList.toArray(new String[strList.size()])); }
} return StringUtils.replaceEach(tempContent, keys, strList.toArray(new String[strList.size()]));
}
@Override
public Map<String, Object> selectAlertCalledKeyValueLabelById(Long id) { @Override
public Map<String, Object> selectAlertCalledKeyValueLabelById(Long id) {
// 警情基本信息
AlertCalled alertCalled = this.getById(id); // 警情基本信息
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>(); AlertCalled alertCalled = this.getById(id);
Map<String, Object> map = new HashMap<String, Object>(); QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
map.put("title", "【" + alertCalled.getAlertType() + "】" + alertCalled.getAddress()); Map<String, Object> map = new HashMap<String, Object>();
queryWrapper.eq("alert_called_id", id); map.put("title", "【" + alertCalled.getAlertType() + "】" + alertCalled.getAddress());
queryWrapper.eq("alert_called_id", id);
// 警情动态表单数据
List<KeyValueLabel> listdate = new ArrayList<>(); // 警情动态表单数据
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper); List<KeyValueLabel> listdate = new ArrayList<>();
listdate.add(new KeyValueLabel("接警时间", "callTime", alertCalled.getCallTime())); List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
listdate.add(new KeyValueLabel("警情地点", "address", alertCalled.getAddress())); listdate.add(new KeyValueLabel("接警时间", "callTime", alertCalled.getCallTime()));
listdate.add(new KeyValueLabel("警情类型", "alertType", alertCalled.getAlertType())); listdate.add(new KeyValueLabel("警情地点", "address", alertCalled.getAddress()));
listdate.add(new KeyValueLabel("警情阶段", "alertStage", alertCalled.getAlertStage())); listdate.add(new KeyValueLabel("警情类型", "alertType", alertCalled.getAlertType()));
listdate.add(new KeyValueLabel("警情等级", "responseLevel", "无")); listdate.add(new KeyValueLabel("警情阶段", "alertStage", alertCalled.getAlertStage()));
listdate.add(new KeyValueLabel("被困人数", "trappedNum", alertCalled.getTrappedNum())); listdate.add(new KeyValueLabel("警情等级", "responseLevel", "无"));
listdate.add(new KeyValueLabel("伤亡人数", "casualtiesNum", alertCalled.getCasualtiesNum())); listdate.add(new KeyValueLabel("被困人数", "trappedNum", alertCalled.getTrappedNum()));
listdate.add(new KeyValueLabel("联系人", "contactUser", alertCalled.getContactUser())); listdate.add(new KeyValueLabel("伤亡人数", "casualtiesNum", alertCalled.getCasualtiesNum()));
listdate.add(new KeyValueLabel("联系电话", "contactPhone", alertCalled.getContactPhone())); listdate.add(new KeyValueLabel("联系人", "contactUser", alertCalled.getContactUser()));
listdate.add(new KeyValueLabel("联系电话", "contactPhone", alertCalled.getContactPhone()));
// listdate.add(new KeyValueLabel("联系人电话", "contactPhone", alertCalled.getContactPhone())); // listdate.add(new KeyValueLabel("联系人电话", "contactPhone", alertCalled.getContactPhone()));
list.stream().forEach(alertFormValue -> { list.stream().forEach(alertFormValue -> {
/* 2661 灾情详情中字典类数据错误显示为code 改为value值 2021-09-23 陈召 开始 */ /* 2661 灾情详情中字典类数据错误显示为code 改为value值 2021-09-23 陈召 开始 */
String valueCode = alertFormValue.getFieldValue(); String valueCode = alertFormValue.getFieldValue();
/* 2661 灾情详情中字典类数据错误显示为code 改为value值 2021-09-23 陈召 结束 */ /* 2661 灾情详情中字典类数据错误显示为code 改为value值 2021-09-23 陈召 结束 */
/* /*
* if(null == valueCode) { valueCode = alertFormValue.getFieldValue(); } * if(null == valueCode) { valueCode = alertFormValue.getFieldValue(); }
*/ */
listdate.add(new KeyValueLabel(alertFormValue.getFieldName(), alertFormValue.getFieldCode(), valueCode)); listdate.add(new KeyValueLabel(alertFormValue.getFieldName(), alertFormValue.getFieldCode(), valueCode));
}); });
map.put("data", listdate); map.put("data", listdate);
return map; return map;
} }
@Override @Override
public List<KeyValueLabel> selectAlertCalledcount(Long id) { public List<KeyValueLabel> selectAlertCalledcount(Long id) {
// 警情基本信息 // 警情基本信息
AlertCalled alertCalled = this.getById(id); AlertCalled alertCalled = this.getById(id);
List<KeyValueLabel> listdate = new ArrayList<>(); List<KeyValueLabel> listdate = new ArrayList<>();
listdate.add(new KeyValueLabel("被困人数", "trappedNum", alertCalled.getTrappedNum())); listdate.add(new KeyValueLabel("被困人数", "trappedNum", alertCalled.getTrappedNum()));
listdate.add(new KeyValueLabel("伤亡人数", "casualtiesNum", alertCalled.getCasualtiesNum())); listdate.add(new KeyValueLabel("伤亡人数", "casualtiesNum", alertCalled.getCasualtiesNum()));
return listdate; return listdate;
} }
@Override @Override
public List<KeyValueLabel> powercount(Long id) { public List<KeyValueLabel> powercount(Long id) {
Map<String, Integer> map = powerTransferMapper.getCarNum(id); Map<String, Integer> map = powerTransferMapper.getCarNum(id);
// Map<String,Integer> mapc=powerTransferMapper.getCompanyNum(id); // Map<String,Integer> mapc=powerTransferMapper.getCompanyNum(id);
// Map<String,Integer> mapu= alertSubmittedMapper.getUseNum(id); // Map<String,Integer> mapu= alertSubmittedMapper.getUseNum(id);
// 统计参与人员 // 统计参与人员
List<KeyValueLabel> listdate = new ArrayList<>(); List<KeyValueLabel> listdate = new ArrayList<>();
listdate.add(new KeyValueLabel("调动人力", "useNum", "0", "人")); listdate.add(new KeyValueLabel("调动人力", "useNum", "0", "人"));
// 统计参与车辆 // 统计参与车辆
listdate.add(new KeyValueLabel("调动人力", "carNum", map.get("carNum"), "辆")); listdate.add(new KeyValueLabel("调动人力", "carNum", map.get("carNum"), "辆"));
// 统计参与队伍 // 统计参与队伍
listdate.add(new KeyValueLabel("调动单位", "companyNum", map.get("companyNum"), "个")); listdate.add(new KeyValueLabel("调动单位", "companyNum", map.get("companyNum"), "个"));
return listdate; return listdate;
} }
@Override @Override
public List<PowerData> getPowerDataList(Long id) { public List<PowerData> getPowerDataList(Long id) {
List<PowerData> list = powerTransferMapper.getPowerDataList(id); List<PowerData> list = powerTransferMapper.getPowerDataList(id);
return list; return list;
} }
@Override @Override
public AlertCalled getAlertCalledById(Long id) { public AlertCalled getAlertCalledById(Long id) {
return this.getById(id); return this.getById(id);
} }
@Override @Override
public Integer AlertCalledcountTime(int type) { public Integer AlertCalledcountTime(int type) {
return alertCalledMapper.AlertCalledcountTime(type); return alertCalledMapper.AlertCalledcountTime(type);
} }
@Override @Override
public List<AlertCalledTodyDto> getTodayAlertCalled() { public List<AlertCalledTodyDto> getTodayAlertCalled() {
return alertCalledMapper.getTodayAlertCalled(); return alertCalledMapper.getTodayAlertCalled();
} }
public Boolean controlEquip() { public Boolean controlEquip() {
/** /**
* 获取控制器设备 * 获取控制器设备
*/ */
List<ControllerEquipDto> controllerEquipDtoList = controllerEquipService.queryAllForList(); List<ControllerEquipDto> controllerEquipDtoList = controllerEquipService.queryAllForList();
Map<Long, List<String>> controllerEquipMap = new HashMap<>(); Map<Long, List<String>> controllerEquipMap = new HashMap<>();
for (ControllerEquipDto controllerEquipDto : controllerEquipDtoList) { for (ControllerEquipDto controllerEquipDto : controllerEquipDtoList) {
List<String> numList = controllerEquipMap.get(controllerEquipDto.getControllerSeq()); List<String> numList = controllerEquipMap.get(controllerEquipDto.getControllerSeq());
if (ValidationUtil.isEmpty(numList)) { if (ValidationUtil.isEmpty(numList)) {
numList = new ArrayList<>(); numList = new ArrayList<>();
} }
numList.add(controllerEquipDto.getNum()); numList.add(controllerEquipDto.getNum());
controllerEquipMap.put(controllerEquipDto.getControllerSeq(), numList); controllerEquipMap.put(controllerEquipDto.getControllerSeq(), numList);
} }
/** /**
* 获取联动控制器 * 获取联动控制器
*/ */
List<ControllerDto> controllerDtoList = controllerService.queryAllForList(); List<ControllerDto> controllerDtoList = controllerService.queryAllForList();
StringBuilder bellNumSb = new StringBuilder(); StringBuilder bellNumSb = new StringBuilder();
// StringBuilder broadcastNumSb = new StringBuilder(); // StringBuilder broadcastNumSb = new StringBuilder();
for (ControllerDto controllerDto : controllerDtoList) { for (ControllerDto controllerDto : controllerDtoList) {
// 消防警铃 // 消防警铃
if (controllerDto.getType().equals(ControllerTypeEnum.BELL.getCode())) { if (controllerDto.getType().equals(ControllerTypeEnum.BELL.getCode())) {
List<String> bellNumList = controllerEquipMap.get(controllerDto.getSequenceNbr()); List<String> bellNumList = controllerEquipMap.get(controllerDto.getSequenceNbr());
if (!ValidationUtil.isEmpty(bellNumList)) { if (!ValidationUtil.isEmpty(bellNumList)) {
for (String num : bellNumList) { for (String num : bellNumList) {
bellNumSb.append(num).append(","); bellNumSb.append(num).append(",");
} }
} }
} }
// 广播 // 广播
// if (controllerDto.getType().equals(ControllerTypeEnum.BROADCAST.getCode())) { // if (controllerDto.getType().equals(ControllerTypeEnum.BROADCAST.getCode())) {
// List<String> broadcastList = controllerEquipMap.get(controllerDto.getSequenceNbr()); // List<String> broadcastList = controllerEquipMap.get(controllerDto.getSequenceNbr());
// if (!ValidationUtil.isEmpty(broadcastList)) { // if (!ValidationUtil.isEmpty(broadcastList)) {
...@@ -643,266 +666,267 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal ...@@ -643,266 +666,267 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
// } // }
// } // }
// } // }
} }
/** /**
* 打开消防警铃 * 打开消防警铃
*/ */
if (!ValidationUtil.isEmpty(bellNumSb.toString())) { if (!ValidationUtil.isEmpty(bellNumSb.toString())) {
String bellNum = bellNumSb.toString(); String bellNum = bellNumSb.toString();
bellNum = bellNum.substring(0, bellNum.length() - 1); bellNum = bellNum.substring(0, bellNum.length() - 1);
String[] bellNums = bellNum.split(","); String[] bellNums = bellNum.split(",");
for (int i = 0; i < bellNums.length; i++) { for (int i = 0; i < bellNums.length; i++) {
//打开15s后自动关闭 // 打开15s后自动关闭
try { try {
jcsControlServerClient.sendBellActionWithTime(bellNums[i], "1", 15); jcsControlServerClient.sendBellActionWithTime(bellNums[i], "1", 15);
} catch (Exception e) { } catch (Exception e) {
logger.info("打开警铃【" + bellNums[i] + "】异常!"); logger.info("打开警铃【" + bellNums[i] + "】异常!");
} }
} }
} }
/** /**
* 播放广播 * 播放广播
*/ */
// if (!ValidationUtil.isEmpty(broadcastNumSb.toString())) { // if (!ValidationUtil.isEmpty(broadcastNumSb.toString())) {
// String broadcastNum = broadcastNumSb.toString(); // String broadcastNum = broadcastNumSb.toString();
// broadcastNum = broadcastNum.substring(0, broadcastNum.length() - 1); // broadcastNum = broadcastNum.substring(0, broadcastNum.length() - 1);
// jcsControlServerClient.sendFileAction(broadcastNum, "1490075199246.mp3"); // jcsControlServerClient.sendFileAction(broadcastNum, "1490075199246.mp3");
// } // }
/** /**
* 打开北站车库门 * 打开北站车库门
*/ */
List<ControllerDto> northDoor = controllerService.queryForList("3", ControllerTypeEnum.DOOR.getCode()); List<ControllerDto> northDoor = controllerService.queryForList("3", ControllerTypeEnum.DOOR.getCode());
if (!ValidationUtil.isEmpty(northDoor)) { if (!ValidationUtil.isEmpty(northDoor)) {
ControllerDto controllerDto = northDoor.get(0); ControllerDto controllerDto = northDoor.get(0);
// 打开北站车库门 // 打开北站车库门
try { try {
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 100, "1,1,1,1"); jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 100, "1,1,1,1");
} catch (Exception e) { } catch (Exception e) {
logger.info("打开北站车库门【" + controllerDto.getIp() + "】异常!"); logger.info("打开北站车库门【" + controllerDto.getIp() + "】异常!");
} }
// 打开北站车库门弱电警铃 // 打开北站车库门弱电警铃
try { try {
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 107, "1"); jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 107, "1");
} catch (Exception e) { } catch (Exception e) {
logger.info("打开北站弱电警铃【" + controllerDto.getIp() + "】异常!"); logger.info("打开北站弱电警铃【" + controllerDto.getIp() + "】异常!");
} }
} }
/** /**
* 打开南站车库门 * 打开南站车库门
*/ */
List<ControllerDto> southDoor = controllerService.queryForList("2", ControllerTypeEnum.DOOR.getCode()); List<ControllerDto> southDoor = controllerService.queryForList("2", ControllerTypeEnum.DOOR.getCode());
if (!ValidationUtil.isEmpty(southDoor)) { if (!ValidationUtil.isEmpty(southDoor)) {
ControllerDto controllerDto = southDoor.get(0); ControllerDto controllerDto = southDoor.get(0);
// 打开南站车库门 // 打开南站车库门
try { try {
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 100, "1"); jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 100, "1");
} catch (Exception e) { } catch (Exception e) {
logger.info("打开南站车库门【" + controllerDto.getIp() + "】异常!"); logger.info("打开南站车库门【" + controllerDto.getIp() + "】异常!");
} }
// 打开南站车库门弱电警铃 // 打开南站车库门弱电警铃
try { try {
jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 107, "1"); jcsControlServerClient.writeStateAction(controllerDto.getIp(), controllerDto.getPort(), 107, "1");
} catch (Exception e) { } catch (Exception e) {
logger.info("打开南站弱电警铃【" + controllerDto.getIp() + "】异常!"); logger.info("打开南站弱电警铃【" + controllerDto.getIp() + "】异常!");
} }
} }
return true; return true;
} }
/** /**
* 警情重新定位 * 警情重新定位
* *
* @param alertId 警情id * @param alertId 警情id
* @param longitude 经度 * @param longitude 经度
* @param latitude 纬度 * @param latitude 纬度
* @return * @return
*/ */
public Boolean reLocate(String alertId, String longitude, String latitude) { public Boolean reLocate(String alertId, String longitude, String latitude) {
try { try {
// 更新警情主表 // 更新警情主表
AlertCalled alertCalled = this.baseMapper.selectById(alertId); AlertCalled alertCalled = this.baseMapper.selectById(alertId);
alertCalled.setCoordinateX(Double.valueOf(longitude)); alertCalled.setCoordinateX(Double.valueOf(longitude));
alertCalled.setCoordinateY(Double.valueOf(latitude)); alertCalled.setCoordinateY(Double.valueOf(latitude));
this.updateById(alertCalled); this.updateById(alertCalled);
// 插入定位日志表 // 插入定位日志表
AlertLocationLog alertLocationLog = new AlertLocationLog(); AlertLocationLog alertLocationLog = new AlertLocationLog();
alertLocationLog.setAlertId(Long.valueOf(alertId)); alertLocationLog.setAlertId(Long.valueOf(alertId));
alertLocationLog.setLongitude(longitude); alertLocationLog.setLongitude(longitude);
alertLocationLog.setLatitude(latitude); alertLocationLog.setLatitude(latitude);
alertLocationLogService.save(alertLocationLog); alertLocationLogService.save(alertLocationLog);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString()); log.error(e.toString());
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException("警情定位失败!"); throw new RuntimeException("警情定位失败!");
} }
} }
@Override @Override
public Map<String, Object> queryAlertCalledById(Long id) { public Map<String, Object> queryAlertCalledById(Long id) {
// 警情基本信息 // 警情基本信息
AlertCalled alertCalled = this.getById(id); AlertCalled alertCalled = this.getById(id);
QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>(); QueryWrapper<AlertFormValue> queryWrapper = new QueryWrapper<>();
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("title", "【" + alertCalled.getAlertType() + "】" + alertCalled.getAddress()); map.put("title", "【" + alertCalled.getAlertType() + "】" + alertCalled.getAddress());
queryWrapper.eq("alert_called_id", id); queryWrapper.eq("alert_called_id", id);
// 警情动态表单数据 // 警情动态表单数据
List<KeyValueLabel> listdate = new ArrayList<>(); List<KeyValueLabel> listdate = new ArrayList<>();
List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper); List<AlertFormValue> list = iAlertFormValueService.list(queryWrapper);
listdate.add(new KeyValueLabel("接警时间", "callTime", alertCalled.getCallTime())); listdate.add(new KeyValueLabel("接警时间", "callTime", alertCalled.getCallTime()));
listdate.add(new KeyValueLabel("警情地点", "address", alertCalled.getAddress())); listdate.add(new KeyValueLabel("警情地点", "address", alertCalled.getAddress()));
listdate.add(new KeyValueLabel("警情类型", "alertType", alertCalled.getAlertType())); listdate.add(new KeyValueLabel("警情类型", "alertType", alertCalled.getAlertType()));
listdate.add(new KeyValueLabel("警情阶段", "alertStage", alertCalled.getAlertStage())); listdate.add(new KeyValueLabel("警情阶段", "alertStage", alertCalled.getAlertStage()));
listdate.add(new KeyValueLabel("警情等级", "responseLevel", "无")); listdate.add(new KeyValueLabel("警情等级", "responseLevel", "无"));
listdate.add(new KeyValueLabel("被困人数", "trappedNum", alertCalled.getTrappedNum())); listdate.add(new KeyValueLabel("被困人数", "trappedNum", alertCalled.getTrappedNum()));
listdate.add(new KeyValueLabel("伤亡人数", "casualtiesNum", alertCalled.getCasualtiesNum())); listdate.add(new KeyValueLabel("伤亡人数", "casualtiesNum", alertCalled.getCasualtiesNum()));
listdate.add(new KeyValueLabel("联系人", "contactUser", alertCalled.getContactUser())); listdate.add(new KeyValueLabel("联系人", "contactUser", alertCalled.getContactUser()));
listdate.add(new KeyValueLabel("联系电话", "contactPhone", alertCalled.getContactPhone())); listdate.add(new KeyValueLabel("联系电话", "contactPhone", alertCalled.getContactPhone()));
listdate.add(new KeyValueLabel("联系人电话", "contactPhone", alertCalled.getContactPhone())); listdate.add(new KeyValueLabel("联系人电话", "contactPhone", alertCalled.getContactPhone()));
list.stream().forEach(alertFormValue -> { list.stream().forEach(alertFormValue -> {
String valueCode = alertFormValue.getFieldValueCode(); String valueCode = alertFormValue.getFieldValueCode();
if (null == valueCode) { if (null == valueCode) {
valueCode = alertFormValue.getFieldValue(); valueCode = alertFormValue.getFieldValue();
} }
listdate.add(new KeyValueLabel(alertFormValue.getFieldName(), alertFormValue.getFieldCode(), valueCode)); listdate.add(new KeyValueLabel(alertFormValue.getFieldName(), alertFormValue.getFieldCode(), valueCode));
if ("fireTime".equals(alertFormValue.getFieldCode())) { if ("fireTime".equals(alertFormValue.getFieldCode())) {
map.put("occurrenceTime", alertFormValue.getFieldValue()); map.put("occurrenceTime", alertFormValue.getFieldValue());
} }
}); });
map.put("data", listdate); map.put("data", listdate);
// app警情首页使用alarmDetailInfo,alarmContactInfo // app警情首页使用alarmDetailInfo,alarmContactInfo
if (!AlertStageEnums.YBHZ.getCode().equals(alertCalled.getAlertTypeCode())) { if (!AlertStageEnums.YBHZ.getCode().equals(alertCalled.getAlertTypeCode())) {
map.put("occurrenceTime", alertCalled.getCallTime()); map.put("occurrenceTime", alertCalled.getCallTime());
} }
map.put("alertType", alertCalled.getAlertType()); map.put("alertType", alertCalled.getAlertType());
map.put("address", alertCalled.getAddress()); map.put("address", alertCalled.getAddress());
map.put("contactUser", alertCalled.getContactUser()); map.put("contactUser", alertCalled.getContactUser());
map.put("contactPhone", alertCalled.getContactPhone()); map.put("contactPhone", alertCalled.getContactPhone());
map.put("callTime", alertCalled.getCallTime()); map.put("callTime", alertCalled.getCallTime());
//获取通话录音文件地址 // 获取通话录音文件地址
List<VoiceRecordFileDto> voiceRecordFileDtos = voiceRecordFileService.listByAlertId(alertCalled.getSequenceNbr()); List<VoiceRecordFileDto> voiceRecordFileDtos = voiceRecordFileService
if (!voiceRecordFileDtos.isEmpty()) { .listByAlertId(alertCalled.getSequenceNbr());
map.put("voiceRecordFile", voiceRecordFileDtos.get(0).getFilePath()); if (!voiceRecordFileDtos.isEmpty()) {
} map.put("voiceRecordFile", voiceRecordFileDtos.get(0).getFilePath());
return map; }
} return map;
}
// 未结案警情统计
@Override // 未结案警情统计
public Integer AlertCalledcount(int type) { @Override
return alertCalledMapper.AlertCalledcount(0); public Integer AlertCalledcount(int type) {
} return alertCalledMapper.AlertCalledcount(0);
}
@Override
public List<AlertCalled> AlertCalledStatusPage(Integer current, Integer size) { @Override
return alertCalledMapper.AlertCalledStatusPage(current, size); public List<AlertCalled> AlertCalledStatusPage(Integer current, Integer size) {
} return alertCalledMapper.AlertCalledStatusPage(current, size);
}
@Override
public List<JSONObject> queryDisposalObjectList(String alertId) { @Override
AlertCalled alertCalled = this.getById(Long.valueOf(alertId)); public List<JSONObject> queryDisposalObjectList(String alertId) {
String alertTypeCode = alertCalled.getAlertTypeCode(); AlertCalled alertCalled = this.getById(Long.valueOf(alertId));
AlertStageEnums alertStage = AlertStageEnums.getEnum(alertTypeCode); String alertTypeCode = alertCalled.getAlertTypeCode();
List<JSONObject> resultList = Lists.newArrayList(); AlertStageEnums alertStage = AlertStageEnums.getEnum(alertTypeCode);
if (alertStage != null) { List<JSONObject> resultList = Lists.newArrayList();
switch (alertStage) { if (alertStage != null) {
case YBHZ: switch (alertStage) {
case TFSJ: case YBHZ:
case QTJQ: case TFSJ:
resultList = queryDisposalObjectUnit(alertCalled); case QTJQ:
break; resultList = queryDisposalObjectUnit(alertCalled);
case HKJY: break;
case LYXC: case HKJY:
case ZJBZ: case LYXC:
resultList = queryDisposalObjectAircraft(alertCalled); case ZJBZ:
default: resultList = queryDisposalObjectAircraft(alertCalled);
break; default:
} break;
} }
return resultList; }
} return resultList;
}
private List<JSONObject> queryDisposalObjectUnit(AlertCalled alertCalled) {
List<JSONObject> resultList = Lists.newArrayList(); private List<JSONObject> queryDisposalObjectUnit(AlertCalled alertCalled) {
if (!ValidationUtil.isEmpty(alertCalled.getUnitInvolved())) { List<JSONObject> resultList = Lists.newArrayList();
List<OrgUsrzhDto> unitInvolvedDto = iOrgUsrService.getOrgUsrzhDto(alertCalled.getUnitInvolved()); if (!ValidationUtil.isEmpty(alertCalled.getUnitInvolved())) {
JSONObject a1 = new JSONObject(); List<OrgUsrzhDto> unitInvolvedDto = iOrgUsrService.getOrgUsrzhDto(alertCalled.getUnitInvolved());
a1.put("name", "单位名称"); JSONObject a1 = new JSONObject();
a1.put("value", a1.put("name", "单位名称");
!ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getBizOrgName() : ""); a1.put("value",
JSONObject a2 = new JSONObject(); !ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getBizOrgName() : "");
a2.put("name", "单位性质"); JSONObject a2 = new JSONObject();
a2.put("value", a2.put("name", "单位性质");
!ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getCompanyNature() : ""); a2.put("value",
JSONObject a3 = new JSONObject(); !ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getCompanyNature() : "");
a3.put("name", "单位电话"); JSONObject a3 = new JSONObject();
a3.put("value", a3.put("name", "单位电话");
!ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getCompanyPhone() : ""); a3.put("value",
JSONObject a4 = new JSONObject(); !ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getCompanyPhone() : "");
a4.put("name", "单位地址"); JSONObject a4 = new JSONObject();
a4.put("value", a4.put("name", "单位地址");
!ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getCompanyLocation() : ""); a4.put("value",
JSONObject a5 = new JSONObject(); !ValidationUtil.isEmpty(unitInvolvedDto.get(0)) ? unitInvolvedDto.get(0).getCompanyLocation() : "");
a5.put("name", "重点部位数量"); JSONObject a5 = new JSONObject();
a5.put("value", !ValidationUtil.isEmpty(unitInvolvedDto.get(0)) a5.put("name", "重点部位数量");
? unitInvolvedDto.get(0).getKeySiteCount() != null ? unitInvolvedDto.get(0).getKeySiteCount() : 0 a5.put("value", !ValidationUtil.isEmpty(unitInvolvedDto.get(0))
: 0 + "个"); ? unitInvolvedDto.get(0).getKeySiteCount() != null ? unitInvolvedDto.get(0).getKeySiteCount() : 0
resultList.add(a1); : 0 + "个");
resultList.add(a2); resultList.add(a1);
resultList.add(a3); resultList.add(a2);
resultList.add(a4); resultList.add(a3);
resultList.add(a5); resultList.add(a4);
} resultList.add(a5);
return resultList; }
} return resultList;
}
private List<JSONObject> queryDisposalObjectAircraft(AlertCalled alertCalled) {
// 警情动态表单数据 private List<JSONObject> queryDisposalObjectAircraft(AlertCalled alertCalled) {
List<AlertFormValue> list = alertFormValueService.getzqlist(alertCalled.getSequenceNbr()); // 警情动态表单数据
Aircraft aircraft = new Aircraft(); List<AlertFormValue> list = alertFormValueService.getzqlist(alertCalled.getSequenceNbr());
for (AlertFormValue alertFormValue : list) { Aircraft aircraft = new Aircraft();
if ("aircraftModel".equals(alertFormValue.getFieldCode())) { for (AlertFormValue alertFormValue : list) {
String aircraftModel = alertFormValue.getFieldValue(); if ("aircraftModel".equals(alertFormValue.getFieldCode())) {
aircraft = aircraftService.queryAircraftInfoByModel(aircraftModel); String aircraftModel = alertFormValue.getFieldValue();
break; aircraft = aircraftService.queryAircraftInfoByModel(aircraftModel);
} break;
} }
List<JSONObject> resultList = Lists.newArrayList(); }
if (!ValidationUtil.isEmpty(aircraft)) { List<JSONObject> resultList = Lists.newArrayList();
JSONObject a1 = new JSONObject(); if (!ValidationUtil.isEmpty(aircraft)) {
a1.put("name", "飞机型号"); JSONObject a1 = new JSONObject();
a1.put("value", aircraft.getAircraftModel()); a1.put("name", "飞机型号");
JSONObject a2 = new JSONObject(); a1.put("value", aircraft.getAircraftModel());
a2.put("name", "发动机类型"); JSONObject a2 = new JSONObject();
a2.put("value", aircraft.getEngineType()); a2.put("name", "发动机类型");
JSONObject a3 = new JSONObject(); a2.put("value", aircraft.getEngineType());
a3.put("name", "发动机数量"); JSONObject a3 = new JSONObject();
a3.put("value", aircraft.getEnginesmNum()); a3.put("name", "发动机数量");
JSONObject a4 = new JSONObject(); a3.put("value", aircraft.getEnginesmNum());
a4.put("name", "燃油类型"); JSONObject a4 = new JSONObject();
a4.put("value", aircraft.getFuelType()); a4.put("name", "燃油类型");
JSONObject a5 = new JSONObject(); a4.put("value", aircraft.getFuelType());
a5.put("name", "主要燃烧物质"); JSONObject a5 = new JSONObject();
a5.put("value", aircraft.getCombustionMaterial()); a5.put("name", "主要燃烧物质");
resultList.add(a1); a5.put("value", aircraft.getCombustionMaterial());
resultList.add(a2); resultList.add(a1);
resultList.add(a3); resultList.add(a2);
resultList.add(a4); resultList.add(a3);
resultList.add(a5); resultList.add(a4);
} resultList.add(a5);
return resultList; }
} return resultList;
}
/* 2304 地址 联系人模糊查询缺失 陈召 2021-09-23 开始 */
public List<Map<String, String>> getContactName() { /* 2304 地址 联系人模糊查询缺失 陈召 2021-09-23 开始 */
// List<Map<String,String>> firefightersName = public List<Map<String, String>> getContactName() {
// firefightersService.getFirefightersName(); // List<Map<String,String>> firefightersName =
// firefightersName.forEach(r->{ // firefightersService.getFirefightersName();
// firefightersName.forEach(r->{
// String phone = r.get("phone"); // String phone = r.get("phone");
// phone = QRCodeUtil.generateQRCode()+"@"+phone; // phone = QRCodeUtil.generateQRCode()+"@"+phone;
// r.put("phone",phone); // r.put("phone",phone);
...@@ -916,32 +940,248 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal ...@@ -916,32 +940,248 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
// } // }
// ); // );
// firefightersName.addAll(contactNames); // firefightersName.addAll(contactNames);
List<Map<String, String>> list = orgUsrServiceImpl.getPersonSimpleDetail(); List<Map<String, String>> list = orgUsrServiceImpl.getPersonSimpleDetail();
list.stream().forEach(i -> { list.stream().forEach(i -> {
String phone = ""; String phone = "";
if (i.containsKey("phone")) { if (i.containsKey("phone")) {
phone = QRCodeUtil.generateQRCode() + "@" + i.get("phone").toString(); phone = QRCodeUtil.generateQRCode() + "@" + i.get("phone").toString();
i.replace("phone", phone); i.replace("phone", phone);
} else { } else {
phone = QRCodeUtil.generateQRCode() + "@" + phone; phone = QRCodeUtil.generateQRCode() + "@" + phone;
i.put("phone", phone); i.put("phone", phone);
} }
}); });
return list; return list;
} }
public List<String> getCalledAddress() { public List<String> getCalledAddress() {
List<String> keyAddress = keySiteService.getAddress(); List<String> keyAddress = keySiteService.getAddress();
List<String> alertAddress = alertCalledMapper.getAddress(); List<String> alertAddress = alertCalledMapper.getAddress();
keyAddress.addAll(alertAddress); keyAddress.addAll(alertAddress);
return keyAddress; return keyAddress;
} }
/* 2304 地址 联系人模糊查询缺失 陈召 2021-09-23 结束 */ /* 2304 地址 联系人模糊查询缺失 陈召 2021-09-23 结束 */
public Set<Map<String, Object>> getLocationLike(String locationt) { public Set<Map<String, Object>> getLocationLike(String locationt) {
Set<Map<String, Object>> set = alertCalledMapper.getLocation(); Set<Map<String, Object>> set = alertCalledMapper.getLocation();
set.remove(null); set.remove(null);
return set; return set;
} }
@SuppressWarnings("unchecked")
public Object toCompletePoliceSituationMatch(Long id) throws Exception{
AlertCalledFormDto dto = (AlertCalledFormDto) selectAlertCalledByIdNoRedis(id);
AlertCalled alertCalled = dto.getAlertCalled();
List<FormValue> list = dto.getDynamicFormAlert();
if (alertCalled.getAlertTypeCode().equals(AlertStageEnums.YBHZ.getCode())) {// 一般火灾
String condition1 = alertCalled.getAlertType();// 一般火灾
String condition2 = alertCalled.getUnitInvolved();// 事发单位
String condition3 = "";
for (FormValue i : list) {
if (i.getKey().equals(AlertStageEnums.keySiteExcle.getCode())) {
condition3 = i.getValue();
break;
}
}
return getIdsList1( alertCalled.getAlertTypeCode() ,AlertStageEnums.救援预案警情类型.getValue() + "," + condition1,
AlertStageEnums.责任单位.getValue() + "," + condition2,
AlertStageEnums.重点部位名称.getValue() + "," + condition3);
} else if (alertCalled.getAlertTypeCode().equals(AlertStageEnums.HKJY.getCode())) {
String condition1 = alertCalled.getAlertType();// 航空器救援
String condition2 = "";
for (FormValue i : list) {
if (i.getKey().equals(AlertStageEnums.aircraftRescueSub.getCode())) {
condition2 = condition1 + i.getValue();
}
}
return getIdsList1(alertCalled.getAlertTypeCode(),AlertStageEnums.救援预案警情类型.getValue() + "," + condition1,
AlertStageEnums.航空器救援子类.getValue() + "," + condition2, null);
} else {
String condition1 = alertCalled.getAlertType();
return getIdsList1(alertCalled.getAlertTypeCode(),AlertStageEnums.救援预案警情类型.getValue() + "," + condition1, null, null);
}
}
// private List<Map<String, Object>> getIdsList(String condition1, String condition2, String condition3) {
// List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
// ResponseModel condition1Response = knowledgebaseFeignClient.getAllTegartValue(condition1.split(",")[1]);
// List condition1List = (List) condition1Response.getResult();
// if (condition1List.size() < 1) {
// return null;
// } else {
// for (Object i : condition1List) {
// int priority = 1;
// JSONObject obj = JSONObject.parseObject(JSONObject.toJSONString(i));
// String instanceSeq = obj.getString("instanceSeq");
// ResponseModel<Object> list = knowledgebaseFeignClient.findById(Long.parseLong(instanceSeq));
// Object instanceReslt = list.getResult();
// if (instanceReslt != null) {
// JSONObject instanceResltobj = JSONObject.parseObject(JSONObject.toJSONString(instanceReslt));
// String targetSeq = instanceResltobj.getString("targetSeq");
// ResponseModel<Object> targetSeqResult = knowledgebaseFeignClient
// .queryListByTargetSeq(Long.parseLong(targetSeq));
// Object targetSeqResultObj = targetSeqResult.getResult();
// JSONArray targetSeqResultArray = JSONArray.parseArray(JSONArray.toJSONString(targetSeqResultObj));
// boolean flag2 = false;
// boolean flag3 = false;
// for (Object targetDetail : targetSeqResultArray) {
// JSONObject targetDetailJson = JSONObject.parseObject(JSONObject.toJSONString(targetDetail));
// String sequenceNbr = targetDetailJson.getString("sequenceNbr");
// ResponseModel<Object> detailResponseModel = knowledgebaseFeignClient
// .queryByInstance(Long.parseLong(sequenceNbr));
// Object detailResponseModelObj = detailResponseModel.getResult();
// JSONArray detailResponseModelArray = JSONArray
// .parseArray(JSONArray.toJSONString(detailResponseModelObj));
// JSONObject detailJson = JSONObject
// .parseObject(JSONObject.toJSONString(detailResponseModelArray.get(0)));
// if (!detailJson.containsKey("tagValue")) {
// continue;
// }
// if (condition2 != null && condition2.split(",")[1].equals(detailJson.getString("tagValue"))) {
// flag2 = true;
// }
// if (condition3 != null && condition3.split(",")[1].equals(detailJson.getString("tagValue"))) {
// flag3 = true;
// }
// }
// if (StringUtils.isNotBlank(condition3)) {
// if (flag2 && flag3) {
// priority = 1;
// } else if (flag2) {
// priority = 2;
// } else if (flag3) {
// priority = 3;
// } else {
// priority = 0;
// }
// } else if (StringUtils.isNotBlank(condition2) && condition3 == null) {
// if (flag2) {
// priority = 1;
// } else {
// priority = 2;
// }
// }
//
// Map<String, Object> map = new HashMap<String, Object>();
// ResponseModel<Object> SimpleDetailResponse = knowledgebaseFeignClient.getSimpleDetail(targetSeq);
// if (ObjectUtils.isNotEmpty(SimpleDetailResponse) && priority != 0) {
// map.put("priority", priority);
// map.put("data", SimpleDetailResponse.getResult());
// resultList.add(map);
// }
// }
// }
// }
// return resultList;
// }
private Object getIdsList1(String type ,String condition1, String condition2, String condition3)throws Exception {
List<Object> resultList = new ArrayList<Object>();
ResponseModel<Object> responseForcondition1Name = knowledgebaseFeignClient
.queryListByTagName(condition1.split(",")[0]);
if(200!= responseForcondition1Name.getStatus()) {
return responseForcondition1Name;
}
List listForcondition1Name = (List) responseForcondition1Name.getResult();
if (listForcondition1Name.size() > 0) {
for (Object i : listForcondition1Name) {
int priority = 1;
boolean flag2 = false;
boolean flag3 = false;
JSONObject listForcondition1Nameobj = JSONObject.parseObject(JSONObject.toJSONString(i));
ResponseModel<Object> responseForInstanceId = knowledgebaseFeignClient
.queryByInstance(Long.parseLong(listForcondition1Nameobj.getString("sequenceNbr")));
List responseForInstanceIdList = (List) responseForInstanceId.getResult();
Object responseForInstanceIdDetail = responseForInstanceIdList.get(0);
JSONObject responseForInstanceIdJsonDetail = JSONObject
.parseObject(JSONObject.toJSONString(responseForInstanceIdDetail));
if (!(condition1.split(",")[1]).equals(responseForInstanceIdJsonDetail.getString("tagValue"))) {
continue;
}
String condition2Name = null;
String condition2value = null;
if (condition2 != null) {
String[] condition2Array = condition2.split(",");
if(condition2Array.length>1) {
condition2Name = condition2Array[0];
condition2value = condition2Array[1];
}
}
String condition3Name = null;
String condition3value = null;
if (condition3 != null) {
String[] condition3Array = condition3.split(",");
if(condition3Array.length>1) {
condition3Name = condition3Array[0];
condition3value = condition3Array[1];
}
}
ResponseModel<Object> targetSeqResult = knowledgebaseFeignClient
.queryListByTargetSeq(Long.parseLong(listForcondition1Nameobj.getString("targetSeq")));
Object targetSeqResultObj = targetSeqResult.getResult();
JSONArray targetSeqResultArray = JSONArray.parseArray(JSONArray.toJSONString(targetSeqResultObj));
for (Object m : targetSeqResultArray) {
JSONObject detailJson = JSONObject.parseObject(JSONObject.toJSONString(m));
if (condition2Name != null && condition2Name.equals(detailJson.getString("tagName"))) {
ResponseModel<Object> condition2ResponseForInstanceId = knowledgebaseFeignClient
.queryByInstance(Long.parseLong(detailJson.getString("sequenceNbr")));
List condition2ResponseForInstanceIdList = (List) condition2ResponseForInstanceId.getResult();
Object condition2ResponseForInstanceIdDetail = condition2ResponseForInstanceIdList.get(0);
JSONObject condition2ResponseForInstanceIdJsonDetail = JSONObject
.parseObject(JSONObject.toJSONString(condition2ResponseForInstanceIdDetail));
if (condition2value != null && condition2value
.equals(condition2ResponseForInstanceIdJsonDetail.getString("tagValue"))) {
flag2 = true;
}
}
if (condition3Name != null && condition3Name.equals(detailJson.getString("tagName"))) {
ResponseModel<Object> condition3ResponseForInstanceId = knowledgebaseFeignClient
.queryByInstance(Long.parseLong(detailJson.getString("sequenceNbr")));
List condition3ResponseForInstanceIdList = (List) condition3ResponseForInstanceId.getResult();
Object condition3ResponseForInstanceIdDetail = condition3ResponseForInstanceIdList.get(0);
JSONObject condition3ResponseForInstanceIdJsonDetail = JSONObject
.parseObject(JSONObject.toJSONString(condition3ResponseForInstanceIdDetail));
if (condition3value != null && condition3value
.equals(condition3ResponseForInstanceIdJsonDetail.getString("tagValue"))) {
flag3 = true;
}
}
}
if (type.equals(AlertStageEnums.YBHZ.getCode())) {
if (flag2 && flag3) {
priority = 1;
} else if (flag2) {
priority = 2;
} else if (flag3) {
priority = 3;
} else {
priority = 0;
}
} else if (type.equals(AlertStageEnums.HKJY.getCode())) {
if (flag2) {
priority = 1;
} else {
priority = 2;
}
}
Map<String, Object> map = new HashMap<String, Object>();
ResponseModel<Object> SimpleDetailResponse = knowledgebaseFeignClient
.getSimpleDetail(listForcondition1Nameobj.getString("targetSeq"));
if (ObjectUtils.isNotEmpty(SimpleDetailResponse.getResult()) && priority != 0) {
JSONArray detailJsonArray = JSONArray.parseArray(JSONArray.toJSONString(SimpleDetailResponse.getResult()));
JSONObject detailJsonObject= detailJsonArray.getJSONObject(0);
map.put("recDate",detailJsonObject.getString("REC_DATE"));
map.put("sequenceNbr", detailJsonObject.getString("SEQUENCE_NBR"));
map.put("docTitle", detailJsonObject.getString("DOC_TITLE"));
map.put("priority", priority);
resultList.add(map);
}
}
}
return resultList;
}
} }
...@@ -3,6 +3,12 @@ package com.yeejoin.amos.boot.module.jcs.biz.service.impl; ...@@ -3,6 +3,12 @@ package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.module.common.api.feign.JcsControlServerClient;
import com.yeejoin.amos.boot.module.jcs.api.entity.Controller;
import com.yeejoin.amos.boot.module.jcs.api.service.IControllerEquipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
...@@ -11,7 +17,6 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.ControllerEquip; ...@@ -11,7 +17,6 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.ControllerEquip;
import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerEquipMapper; import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerEquipMapper;
/** /**
*
* <pre> * <pre>
* 控制器设备 服务实现类 * 控制器设备 服务实现类
* </pre> * </pre>
...@@ -20,10 +25,46 @@ import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerEquipMapper; ...@@ -20,10 +25,46 @@ import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerEquipMapper;
* @version $Id: ControllerEquipServiceImpl.java, v 0.1 2021年8月20日 上午10:16:33 gwb Exp $ * @version $Id: ControllerEquipServiceImpl.java, v 0.1 2021年8月20日 上午10:16:33 gwb Exp $
*/ */
@Service @Service
public class ControllerEquipServiceImpl extends BaseService<ControllerEquipDto, ControllerEquip, ControllerEquipMapper> public class ControllerEquipServiceImpl extends BaseService<ControllerEquipDto, ControllerEquip, ControllerEquipMapper> implements IControllerEquipService {
{ @Autowired
JcsControlServerClient jcsControlServerClient;
public List<ControllerEquipDto> queryAllForList() {
public List<ControllerEquipDto> queryAllForList() {
return this.queryForList("", false); return this.queryForList("", false);
} }
/**
* 改变警铃状态 0关闭,1开启
*/
@Async
public void changeBell(Controller controller, String type) {
if (controller == null) return;
List<ControllerEquip> list = getControllerEquips(controller);
list.forEach(controllerEquip -> jcsControlServerClient.sendBellAction(controllerEquip.getNum(), type));
}
/**
* 改变广播状态 0关闭,1开启
*/
@Async
public void changeBroadcast(Controller controller, String type) {
if (controller == null) return;
List<ControllerEquip> list = getControllerEquips(controller);
list.forEach(controllerEquip -> jcsControlServerClient.sendFileAction(controllerEquip.getNum(), ""));
}
/**
* 改变车库门状态 0关闭,1开启
*/
@Async
public void changeDoor(Controller controller, String type) {
if (controller == null) return;
List<ControllerEquip> list = getControllerEquips(controller);
list.forEach(controllerEquip -> jcsControlServerClient.writeStateAction(controller.getIp(), controller.getPort(), Integer.parseInt(controllerEquip.getNum()), type));
}
private List<ControllerEquip> getControllerEquips(Controller controller) {
LambdaQueryWrapper<ControllerEquip> wrapper = new LambdaQueryWrapper<ControllerEquip>().eq(ControllerEquip::getControllerSeq, controller.getSequenceNbr());
return list(wrapper);
}
} }
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.yeejoin.amos.boot.module.jcs.api.entity.Controller;
import com.yeejoin.amos.boot.module.jcs.api.entity.ControllerLog;
import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerLogMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IControllerLogService;
import com.yeejoin.amos.boot.module.jcs.api.dto.ControllerLogDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
*
* @author system_generator
* @date 2021-12-03
*/
@Service
public class ControllerLogServiceImpl extends BaseService<ControllerLogDto, ControllerLog, ControllerLogMapper> implements IControllerLogService {
@Autowired
ControllerLogMapper controllerLogMapper;
/**
* 获取今天的记录
*/
public List<Map<String, Object>> selectToday() {
return controllerLogMapper.selectToday();
}
/**
* 分页查询
*/
public Page<ControllerLogDto> queryForControllerLogPage(Page<ControllerLogDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<ControllerLogDto> queryForControllerLogList() {
return this.queryForList("", false);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jcs.biz.service.impl; package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.List; import java.util.*;
import com.yeejoin.amos.boot.module.jcs.api.entity.ControllerLog;
import com.yeejoin.amos.boot.module.jcs.api.enums.ControllerTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.service.IControllerService;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.rdbms.service.BaseService; 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.dto.ControllerDto;
...@@ -11,7 +17,6 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.Controller; ...@@ -11,7 +17,6 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.Controller;
import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerMapper; import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerMapper;
/** /**
*
* <pre> * <pre>
* 联动控制器 服务实现类 * 联动控制器 服务实现类
* </pre> * </pre>
...@@ -20,14 +25,198 @@ import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerMapper; ...@@ -20,14 +25,198 @@ import com.yeejoin.amos.boot.module.jcs.api.mapper.ControllerMapper;
* @version $Id: ControllerServiceImpl.java, v 0.1 2021年8月20日 上午10:15:49 gwb Exp $ * @version $Id: ControllerServiceImpl.java, v 0.1 2021年8月20日 上午10:15:49 gwb Exp $
*/ */
@Service @Service
public class ControllerServiceImpl extends BaseService<ControllerDto, Controller, ControllerMapper> public class ControllerServiceImpl extends BaseService<ControllerDto, Controller, ControllerMapper> implements IControllerService {
{ /**
* 将延迟的任务存放在Hashtable中,以便在多个请求中控制任务的取消分享等操作
public List<ControllerDto> queryAllForList() { */
private final Map<Long, TimerTask> tasks = new Hashtable<>();
private final Timer timer = new Timer();
public static final String CONTROLLER_STATE_CHANGED_TOPIC = "controllerStateChanged";
@Autowired
ControllerMapper controllerMapper;
@Autowired
ControllerEquipServiceImpl controllerEquipServiceImpl;
@Autowired
ControllerLogServiceImpl controllerLogServiceImpl;
@Autowired
private EmqKeeper emqKeeper;
public List<ControllerDto> queryAllForList() {
return this.queryForList("", false); return this.queryForList("", false);
} }
public List<ControllerDto> queryForList(String station, String type) { public List<ControllerDto> queryForList(String station, String type) {
return this.queryForList("", false, station, type); return this.queryForList("", false, station, type);
} }
public List<ControllerDto> getCurrentStationController(Long sequenceNbr) {
return controllerMapper.getCurrentStationController(sequenceNbr);
}
/**
* 更新station联动控制器状态
* 3.1.3 警铃、广播、车库门 联动规则:
* 当 点击【全部启动】、【某大队全部启动】时:
* 1> 首先:消防警铃第一时间 响铃持续15s 后自动关闭。
* 2> 然后:警铃 响铃结束后,广播系统开启。广播 启动预制的 广播音频, 播放。
* 3> 车库门和警铃第一时间自动开启。
* 4> 系统 需要打印出 “警铃、广播、车库门 ” 启动指令和 停止指令的 日志。
* 当同时 点击【启动警铃】、【启动广播】时
* 1> 首先:消防警铃第一时间 响铃持续15s 后自动关闭。
* 2> 然后:警铃 响铃结束后,广播系统开启。广播 启动预制的 广播音频, 播放。
*/
public boolean changeControllerState(Controller[] controllers) {
boolean isBatch = controllers.length > 1;
if (isBatch) {//全部操作
//分组
HashSet<String> groupTypes = new HashSet<>();
for (Controller controller : controllers) {
groupTypes.add(controller.getStation());
}
//按分组进行归类
List<Map<String, Controller>> groups = new ArrayList<>();
groupTypes.forEach(groupType -> {
Map<String, Controller> group = new HashMap<>();
for (Controller controller : controllers) {
if (groupType.equals(controller.getStation())) group.put(controller.getType(), controller);
}
groups.add(group);
});
//开始处理
startJob(groups);
} else {//单个操作
for (Controller controller : controllers) {
//保存日志
saveLog(controller);
String type = controller.getType();
// 打开警铃,并开始计时15秒,若15秒内启动广播,则播放完警铃后再播放广播
if ("0".equals(controller.getState())) {//关闭操作
if (ControllerTypeEnum.BELL.getCode().equals(type)) {
//取消该警铃的任务
TimerTask stopBellTaskHistory = tasks.get(controller.getSequenceNbr());
if (stopBellTaskHistory != null) {
stopBellTaskHistory.cancel();
tasks.remove(controller.getSequenceNbr());
}
controllerEquipServiceImpl.changeBell(controller, "0");//关闭警铃
} else if (ControllerTypeEnum.BROADCAST.getCode().equals(type)) {
//取消该广播的任务
TimerTask startBroadcastTaskHistory = tasks.get(controller.getSequenceNbr());
if (startBroadcastTaskHistory != null) {
startBroadcastTaskHistory.cancel();
tasks.remove(controller.getSequenceNbr());
}
controllerEquipServiceImpl.changeBroadcast(controller, "0");//关闭广播
} else if (ControllerTypeEnum.DOOR.getCode().equals(type)) {//车库门不能关闭
}
} else {//启动操作
if (ControllerTypeEnum.BELL.getCode().equals(type)) {//启动警铃
controllerEquipServiceImpl.changeBell(controller, "1");//启动警铃
//开始计时15秒,15秒后关闭警铃
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
tasks.remove(controller.getSequenceNbr());
controllerEquipServiceImpl.changeBell(controller, "0");//关闭警铃
}
};
tasks.put(controller.getSequenceNbr(), timerTask);
timer.schedule(timerTask, 15000);
} else if (ControllerTypeEnum.BROADCAST.getCode().equals(type)) {//启动广播
controllerEquipServiceImpl.changeBroadcast(controller, "1");//开启广播
} else if (ControllerTypeEnum.DOOR.getCode().equals(type)) {//启动车库门
controllerEquipServiceImpl.changeDoor(controller, "1");//开启车库门
}
}
}
}
return true;
}
/**
* 全部操作:启动警铃,启动车库门,15秒后关闭警铃,启动广播
*/
public void startJob(List<Map<String, Controller>> groups) {
groups.forEach(group -> {
Controller bellController = group.get(ControllerTypeEnum.BELL.getCode());
Controller broadcastController = group.get(ControllerTypeEnum.BROADCAST.getCode());
Controller doorController = group.get(ControllerTypeEnum.DOOR.getCode());
//保存操作日志
saveLog(bellController);
saveLog(broadcastController);
saveLog(doorController);
if ("0".equals(bellController.getState())) {//全部关闭(车库们不能关闭)
//先查看是否有未执行的历史任务,如果有则取消任务
TimerTask stopBellTaskHistory = tasks.get(bellController.getSequenceNbr());
if (stopBellTaskHistory != null) {
stopBellTaskHistory.cancel();
tasks.remove(bellController.getSequenceNbr());
}
if (broadcastController != null) {
TimerTask startBroadcastTaskHistory = tasks.get(broadcastController.getSequenceNbr());
if (startBroadcastTaskHistory != null) {
startBroadcastTaskHistory.cancel();
tasks.remove(broadcastController.getSequenceNbr());
}
}
controllerEquipServiceImpl.changeBell(bellController, "0");//关闭警铃
controllerEquipServiceImpl.changeBroadcast(broadcastController, "0");//关闭广播
} else {//全部打开
//立即启动警铃,打开车库门
controllerEquipServiceImpl.changeBell(bellController, "1");//开启警铃
controllerEquipServiceImpl.changeDoor(doorController, "1");//开启车库门
//15秒后关闭警铃,启动广播
TimerTask stopBellTask = new TimerTask() {
@Override
public void run() {
tasks.remove(bellController.getSequenceNbr());
controllerEquipServiceImpl.changeBell(bellController, "0");//关闭警铃
}
};
TimerTask startBroadcastTask = new TimerTask() {
@Override
public void run() {
tasks.remove(broadcastController.getSequenceNbr());
controllerEquipServiceImpl.changeBell(broadcastController, "1");//开启广播
}
};
//先查看是否有未执行的历史任务,如果有则取消任务
TimerTask stopBellTaskHistory = tasks.get(bellController.getSequenceNbr());
if (stopBellTaskHistory != null) stopBellTaskHistory.cancel();
TimerTask startBroadcastTaskHistory = tasks.get(broadcastController.getSequenceNbr());
if (startBroadcastTaskHistory != null) startBroadcastTaskHistory.cancel();
//保存新的任务至map中,同时开始调度新任务
tasks.put(bellController.getSequenceNbr(), stopBellTask);
tasks.put(broadcastController.getSequenceNbr(), startBroadcastTask);
timer.schedule(stopBellTask, 15000);
timer.schedule(startBroadcastTask, 16000);
}
});
}
/**
* 保存操作日志
*/
private void saveLog(Controller controller) {
if (controller == null) return;
boolean update = updateById(controller);
if (update) {
ControllerLog controllerLog = new ControllerLog();
controllerLog.setControllerSeq(controller.getSequenceNbr());
controllerLog.setState(controller.getState());
controllerLog.setExecuteDate(new Date());
controllerLogServiceImpl.save(controllerLog);
}
// 分发状态变更通知
try {
emqKeeper.getMqttClient().publish(CONTROLLER_STATE_CHANGED_TOPIC, "".getBytes(), 2, true);
} catch (MqttException e) {
e.printStackTrace();
}
}
} }
...@@ -1480,7 +1480,9 @@ public class ExcelServiceImpl { ...@@ -1480,7 +1480,9 @@ public class ExcelServiceImpl {
list.add(row.getAndIncrement()); list.add(row.getAndIncrement());
list.add(o.getFireTeamName() + "@" + o.getFireTeamId()); list.add(o.getFireTeamName() + "@" + o.getFireTeamId());
list.add(o.getName() + "@" + o.getSequenceNbr()); list.add(o.getName() + "@" + o.getSequenceNbr());
list.add(o.getJobTitle() + "@" + o.getJobTitleCode()); if(!ValidationUtil.isEmpty(o.getJobTitle())) {
list.add(o.getJobTitle() + "@" + o.getJobTitleCode());
}
data.add(list); data.add(list);
}); });
} }
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl; package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.*;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
...@@ -47,12 +44,6 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferDto; ...@@ -47,12 +44,6 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferResourceDto; import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferResourceDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto; import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.ResourceStatisticsDto; import com.yeejoin.amos.boot.module.jcs.api.dto.ResourceStatisticsDto;
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.PowerTransfer;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransferCompany;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransferCompanyResources;
import com.yeejoin.amos.boot.module.jcs.api.entity.Template;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertFeedbackStatusEnum; import com.yeejoin.amos.boot.module.jcs.api.enums.AlertFeedbackStatusEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum; import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.FireBrigadeTypeEnum; import com.yeejoin.amos.boot.module.jcs.api.enums.FireBrigadeTypeEnum;
...@@ -69,165 +60,168 @@ import com.yeejoin.amos.component.rule.config.RuleConfig; ...@@ -69,165 +60,168 @@ import com.yeejoin.amos.component.rule.config.RuleConfig;
*/ */
@Service @Service
public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, PowerTransfer, PowerTransferMapper> public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, PowerTransfer, PowerTransferMapper>
implements IPowerTransferService { implements IPowerTransferService {
@Autowired @Autowired
AlertCalledServiceImpl alertCalledService; AlertCalledServiceImpl alertCalledService;
@Autowired @Autowired
PowerTransferCompanyServiceImpl powerTransferCompanyService; PowerTransferCompanyServiceImpl powerTransferCompanyService;
@Autowired @Autowired
PowerTransferCompanyResourcesServiceImpl powerTransferCompanyResourcesService; PowerTransferCompanyResourcesServiceImpl powerTransferCompanyResourcesService;
@Autowired @Autowired
TemplateServiceImpl templateService; TemplateServiceImpl templateService;
@Autowired @Autowired
AlertFormValueServiceImpl alertFormValueService; AlertFormValueServiceImpl alertFormValueService;
@Autowired @Autowired
EquipFeignClient equipFeignService; EquipFeignClient equipFeignService;
@Autowired @Autowired
FireTeamServiceImpl fireTeamService; FireTeamServiceImpl fireTeamService;
@Autowired @Autowired
PowerTransferMapper powerTransferMapper; PowerTransferMapper powerTransferMapper;
@Autowired @Autowired
EquipFeignClient equipFeignClient; EquipFeignClient equipFeignClient;
@Autowired @Autowired
private EmqKeeper emqKeeper; private EmqKeeper emqKeeper;
@Value("${mqtt.topic.command.power.deployment}") @Value("${mqtt.topic.command.power.deployment}")
private String topic; private String topic;
@Autowired @Autowired
private DutyCarServiceImpl dutyCarService; private DutyCarServiceImpl dutyCarService;
@Autowired @Autowired
FireTeamServiceImpl iFireTeamService; FireTeamServiceImpl iFireTeamService;
@Autowired @Autowired
DynamicFormInstanceMapper dynamicFormInstanceMapper; DynamicFormInstanceMapper dynamicFormInstanceMapper;
@Autowired @Autowired
RuleAlertCalledService ruleAlertCalledService; RuleAlertCalledService ruleAlertCalledService;
@Override @Autowired
public PowerTransferSimpleDto getPowerTransferList(Long alertCalledId) { ControllerServiceImpl controllerServiceImpl;
List<PowerTransferCompanyResourcesDto> powerTransferList = this.baseMapper.getPowerTransferList(alertCalledId);
PowerTransferSimpleDto powerTransferSimpleDto = new PowerTransferSimpleDto(); @Override
int resourcesCount = powerTransferList.size(); public PowerTransferSimpleDto getPowerTransferList(Long alertCalledId) {
powerTransferSimpleDto.setResourcesCount(resourcesCount); List<PowerTransferCompanyResourcesDto> powerTransferList = this.baseMapper.getPowerTransferList(alertCalledId);
powerTransferSimpleDto.setResourcesList(powerTransferList); PowerTransferSimpleDto powerTransferSimpleDto = new PowerTransferSimpleDto();
return powerTransferSimpleDto; int resourcesCount = powerTransferList.size();
} powerTransferSimpleDto.setResourcesCount(resourcesCount);
powerTransferSimpleDto.setResourcesList(powerTransferList);
@Override return powerTransferSimpleDto;
@Transactional(rollbackFor = Exception.class) }
public boolean createPowerTransfer(PowerTransferDto powerTransferDto) {
try { @Override
// 获取调派ID @Transactional(rollbackFor = Exception.class)
Long alertCalledId = powerTransferDto.getAlertCalledId(); public boolean createPowerTransfer(PowerTransferDto powerTransferDto) {
int count = count(new QueryWrapper<PowerTransfer>().eq("alert_called_id", alertCalledId)); try {
String dispatch_num = alertCalledId.toString() + (count + 1); // 获取调派ID
Long alertCalledId = powerTransferDto.getAlertCalledId();
// 获取警情详情 int count = count(new QueryWrapper<PowerTransfer>().eq("alert_called_id", alertCalledId));
AlertCalledObjsDto alertCalled = (AlertCalledObjsDto) alertCalledService String dispatch_num = alertCalledId.toString() + (count + 1);
.selectAlertCalledByIdNoRedisNew(alertCalledId);
// 获取警情详情
// 创建力量调派 AlertCalledObjsDto alertCalled = (AlertCalledObjsDto) alertCalledService
PowerTransfer powerTransfer = new PowerTransfer(); .selectAlertCalledByIdNoRedisNew(alertCalledId);
BeanUtils.copyProperties(powerTransferDto, powerTransfer);
BeanUtils.copyProperties(alertCalled.getAlertCalled(), powerTransfer); // 创建力量调派
powerTransfer.setDispatchNum(dispatch_num); PowerTransfer powerTransfer = new PowerTransfer();
powerTransfer.setSequenceNbr(null); BeanUtils.copyProperties(powerTransferDto, powerTransfer);
BeanUtils.copyProperties(alertCalled.getAlertCalled(), powerTransfer);
save(powerTransfer); powerTransfer.setDispatchNum(dispatch_num);
Long powerTransferSequenceNbr = powerTransfer.getSequenceNbr(); powerTransfer.setSequenceNbr(null);
// 获取任务派发模板 save(powerTransfer);
Template template = templateService Long powerTransferSequenceNbr = powerTransfer.getSequenceNbr();
.getOne(new QueryWrapper<Template>().eq("type_code", "LLDP").eq("format", false));
String content = template.getContent(); // 获取任务派发模板
Map<String, String> definitions = new HashMap<>(); Template template = templateService
// initDefinitions(definitions, alertCalled, powerTransferDto); .getOne(new QueryWrapper<Template>().eq("type_code", "LLDP").eq("format", false));
String content = template.getContent();
// 创建力量调派单位 Map<String, String> definitions = new HashMap<>();
createPowerTransferCompany(powerTransferDto, powerTransferSequenceNbr, definitions, content, alertCalled); // initDefinitions(definitions, alertCalled, powerTransferDto);
// 封装调派任务的集合,以便于实现任务规则校验 // 创建力量调派单位
try { createPowerTransferCompany(powerTransferDto, powerTransferSequenceNbr, definitions, content, alertCalled);
packagePowerTransferDetail(powerTransferDto);
} catch (Exception e) { // 封装调派任务的集合,以便于实现任务规则校验
log.error("调用规则失败:PowerTransferServiceImpl。createPowerTransfer()"); try {
} packagePowerTransferDetail(powerTransferDto);
} catch (Exception e) {
// 发送调派通知 log.error("调用规则失败:PowerTransferServiceImpl。createPowerTransfer()");
// 通知实战指挥页面发送mqtt 默认发送 String 类型 0, 新警情 1 警情状态变化 }
emqKeeper.getMqttClient().publish(topic, "0".getBytes(), RuleConfig.DEFAULT_QOS, true);
} catch (MqttException e) { // 发送调派通知
throw new RuntimeException(); // 通知实战指挥页面发送mqtt 默认发送 String 类型 0, 新警情 1 警情状态变化
} emqKeeper.getMqttClient().publish(topic, "0".getBytes(), RuleConfig.DEFAULT_QOS, true);
} catch (MqttException e) {
return true; throw new RuntimeException();
} }
private void packagePowerTransferDetail(PowerTransferDto powerTransferDto) throws Exception { return true;
List<PowerTransferCompanyDto> powerTransferCompanyDtoList = powerTransferDto.getPowerTransferCompanyDotList(); }
Set<PowerTransferCompanyDto> fullTimeList = new HashSet<PowerTransferCompanyDto>();
Set<PowerTransferCompanyDto> medicalTeamList = new HashSet<PowerTransferCompanyDto>(); private void packagePowerTransferDetail(PowerTransferDto powerTransferDto) throws Exception {
Set<PowerTransferCompanyDto> monitorTeamList = new HashSet<PowerTransferCompanyDto>(); List<PowerTransferCompanyDto> powerTransferCompanyDtoList = powerTransferDto.getPowerTransferCompanyDotList();
Set<PowerTransferCompanyDto> fullTimeList = new HashSet<PowerTransferCompanyDto>();
for (PowerTransferCompanyDto powerTransferCompanyDto : powerTransferCompanyDtoList) { Set<PowerTransferCompanyDto> medicalTeamList = new HashSet<PowerTransferCompanyDto>();
if (FireBrigadeTypeEnum.专职消防队.getKey().equals(powerTransferCompanyDto.getPowerTransType())) { Set<PowerTransferCompanyDto> monitorTeamList = new HashSet<PowerTransferCompanyDto>();
fullTimeList.add(powerTransferCompanyDto);
} else if (FireBrigadeTypeEnum.医疗救援队.getKey().equals(powerTransferCompanyDto.getPowerTransType())) { for (PowerTransferCompanyDto powerTransferCompanyDto : powerTransferCompanyDtoList) {
medicalTeamList.add(powerTransferCompanyDto); if (FireBrigadeTypeEnum.专职消防队.getKey().equals(powerTransferCompanyDto.getPowerTransType())) {
} else if (FireBrigadeTypeEnum.监控大队.getKey().equals(powerTransferCompanyDto.getPowerTransType())) { fullTimeList.add(powerTransferCompanyDto);
monitorTeamList.add(powerTransferCompanyDto); } else if (FireBrigadeTypeEnum.医疗救援队.getKey().equals(powerTransferCompanyDto.getPowerTransType())) {
} medicalTeamList.add(powerTransferCompanyDto);
} } else if (FireBrigadeTypeEnum.监控大队.getKey().equals(powerTransferCompanyDto.getPowerTransType())) {
if (fullTimeList.size() > 0) { monitorTeamList.add(powerTransferCompanyDto);
ruleAlertCalledService.powerTransferCalledRule(fullTimeList, powerTransferDto.getAlertCalledId(), }
FireBrigadeTypeEnum.专职消防队.getKey()); }
} if (fullTimeList.size() > 0) {
if (medicalTeamList.size() > 0) { ruleAlertCalledService.powerTransferCalledRule(fullTimeList, powerTransferDto.getAlertCalledId(),
ruleAlertCalledService.powerTransferCalledRule(medicalTeamList, powerTransferDto.getAlertCalledId(), FireBrigadeTypeEnum.专职消防队.getKey());
FireBrigadeTypeEnum.医疗救援队.getKey()); }
if (medicalTeamList.size() > 0) {
} ruleAlertCalledService.powerTransferCalledRule(medicalTeamList, powerTransferDto.getAlertCalledId(),
if (monitorTeamList.size() > 0) { FireBrigadeTypeEnum.医疗救援队.getKey());
ruleAlertCalledService.powerTransferCalledRule(monitorTeamList, powerTransferDto.getAlertCalledId(),
FireBrigadeTypeEnum.监控大队.getKey()); }
if (monitorTeamList.size() > 0) {
} ruleAlertCalledService.powerTransferCalledRule(monitorTeamList, powerTransferDto.getAlertCalledId(),
} FireBrigadeTypeEnum.监控大队.getKey());
@Override }
public List<FireBrigadeResourceDto> getPowerTree(String type) { }
List<FireBrigadeResourceDto> fireBrigadeResourceList = Lists.newArrayList();
@Override
if (type != null && !"".equals(type) && "1214".equals(type)) { public List<FireBrigadeResourceDto> getPowerTree(String type) {
// 3.消防队伍-监控大队 List<FireBrigadeResourceDto> fireBrigadeResourceList = Lists.newArrayList();
List<FireBrigadeResourceDto> monitorFireBrigadeList1 = fireTeamService
.listMonitorFireBrigade(FireBrigadeTypeEnum.医疗救援队.getCode()); if (type != null && !"".equals(type) && "1214".equals(type)) {
FireBrigadeResourceDto monitorResourceDto1 = new FireBrigadeResourceDto(); // 3.消防队伍-监控大队
monitorResourceDto1.setId("-1"); List<FireBrigadeResourceDto> monitorFireBrigadeList1 = fireTeamService
monitorResourceDto1.setName(FireBrigadeTypeEnum.医疗救援队.getName()); .listMonitorFireBrigade(FireBrigadeTypeEnum.医疗救援队.getCode());
monitorResourceDto1.setType(FireBrigadeTypeEnum.医疗救援队.getKey()); FireBrigadeResourceDto monitorResourceDto1 = new FireBrigadeResourceDto();
monitorResourceDto1.setChildren(monitorFireBrigadeList1); monitorResourceDto1.setId("-1");
if (!CollectionUtils.isEmpty(monitorFireBrigadeList1)) { monitorResourceDto1.setName(FireBrigadeTypeEnum.医疗救援队.getName());
fireBrigadeResourceList.add(monitorResourceDto1); monitorResourceDto1.setType(FireBrigadeTypeEnum.医疗救援队.getKey());
} monitorResourceDto1.setChildren(monitorFireBrigadeList1);
} if (!CollectionUtils.isEmpty(monitorFireBrigadeList1)) {
fireBrigadeResourceList.add(monitorResourceDto1);
// 1.调用装备服务接口查询车辆列表 }
List<FireBrigadeResourceDto> fireCarDtoList = Lists.newArrayList(); }
ResponseModel<Object> result = equipFeignService.getFireCarListAll();
// 1.调用装备服务接口查询车辆列表
List<FireBrigadeResourceDto> fireCarDtoList = Lists.newArrayList();
ResponseModel<Object> result = equipFeignService.getFireCarListAll();
// if (!ObjectUtils.isEmpty(result)) { // if (!ObjectUtils.isEmpty(result)) {
// List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult(); // List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult();
// if (!ValidationUtil.isEmpty(fireCarListMapList)) { // if (!ValidationUtil.isEmpty(fireCarListMapList)) {
...@@ -248,76 +242,76 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe ...@@ -248,76 +242,76 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
// } // }
// } // }
// 查询车辆当前任务状态 // 查询车辆当前任务状态
QueryWrapper<PowerTransferCompanyResources> queryWrapper = new QueryWrapper<>(); QueryWrapper<PowerTransferCompanyResources> queryWrapper = new QueryWrapper<>();
// queryWrapper.notIn("car_status", // queryWrapper.notIn("car_status",
// FireCarStatusEnum.返队.getCode(),FireCarStatusEnum.加油.getCode(),FireCarStatusEnum.演练.getCode(),FireCarStatusEnum.训练.getCode(),FireCarStatusEnum.试车.getCode()); // FireCarStatusEnum.返队.getCode(),FireCarStatusEnum.加油.getCode(),FireCarStatusEnum.演练.getCode(),FireCarStatusEnum.训练.getCode(),FireCarStatusEnum.试车.getCode());
queryWrapper.eq("status", FireCarStatusEnum.执行中.getCode()); queryWrapper.eq("status", FireCarStatusEnum.执行中.getCode());
List<PowerTransferCompanyResources> alertFormValue = powerTransferCompanyResourcesService.list(queryWrapper); List<PowerTransferCompanyResources> alertFormValue = powerTransferCompanyResourcesService.list(queryWrapper);
Map<String, String> appleMap = alertFormValue != null && alertFormValue.size() > 0 Map<String, String> appleMap = alertFormValue != null && alertFormValue.size() > 0
? alertFormValue.stream().collect(Collectors.toMap(PowerTransferCompanyResources::getResourcesId, ? alertFormValue.stream().collect(Collectors.toMap(PowerTransferCompanyResources::getResourcesId,
PowerTransferCompanyResources::getCarStatus)) PowerTransferCompanyResources::getCarStatus))
: null; : null;
if (!ObjectUtils.isEmpty(result)) { if (!ObjectUtils.isEmpty(result)) {
List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult(); List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult();
if (!ValidationUtil.isEmpty(fireCarListMapList)) { if (!ValidationUtil.isEmpty(fireCarListMapList)) {
fireCarListMapList.stream().filter(car -> ObjectUtils.isNotEmpty(car.get("teamId"))).forEach(car -> { fireCarListMapList.stream().filter(car -> ObjectUtils.isNotEmpty(car.get("teamId"))).forEach(car -> {
FireBrigadeResourceDto fireCarDto = (FireBrigadeResourceDto) Bean.mapToBean(car, FireBrigadeResourceDto fireCarDto = (FireBrigadeResourceDto) Bean.mapToBean(car,
FireBrigadeResourceDto.class); FireBrigadeResourceDto.class);
// TODO 后期根据车物联状态来返回,现在为"(装备)在位=执勤","(装备)执勤=出动" // TODO 后期根据车物联状态来返回,现在为"(装备)在位=执勤","(装备)执勤=出动"
if (FireCarStatusEnum.执勤.getCode().equals(fireCarDto.getCarState())) { if (FireCarStatusEnum.执勤.getCode().equals(fireCarDto.getCarState())) {
fireCarDto.setCarStateDesc(FireCarStatusEnum.执勤.getName()); fireCarDto.setCarStateDesc(FireCarStatusEnum.执勤.getName());
} else { } else {
if (appleMap != null) { if (appleMap != null) {
String state = appleMap.containsKey(car.get("id")) ? appleMap.get(car.get("id")) : null; String state = appleMap.containsKey(car.get("id")) ? appleMap.get(car.get("id")) : null;
fireCarDto.setCarState(state); fireCarDto.setCarState(state);
fireCarDto fireCarDto
.setCarStateDesc(state != null ? FireCarStatusEnum.getEnum(state).getName() : null); .setCarStateDesc(state != null ? FireCarStatusEnum.getEnum(state).getName() : null);
} else { } else {
fireCarDto.setCarState(null); fireCarDto.setCarState(null);
fireCarDto.setCarStateDesc(null); fireCarDto.setCarStateDesc(null);
} }
} }
fireCarDtoList.add(fireCarDto); fireCarDtoList.add(fireCarDto);
}); });
} }
} }
// 2.查询消防队伍列表 // 2.查询消防队伍列表
List<FireTeam> fullTimeFireBrigadeList = fireTeamService.list( List<FireTeam> fullTimeFireBrigadeList = fireTeamService.list(
new QueryWrapper<FireTeam>().eq("type_code", FireBrigadeTypeEnum.专职消防队.getCode()).eq("is_delete", 0)); new QueryWrapper<FireTeam>().eq("type_code", FireBrigadeTypeEnum.专职消防队.getCode()).eq("is_delete", 0));
if (!CollectionUtils.isEmpty(fullTimeFireBrigadeList)) { if (!CollectionUtils.isEmpty(fullTimeFireBrigadeList)) {
Map<String, List<FireBrigadeResourceDto>> resultMap = fireCarDtoList.stream() Map<String, List<FireBrigadeResourceDto>> resultMap = fireCarDtoList.stream()
.collect(Collectors.groupingBy(FireBrigadeResourceDto::getTeamId)); .collect(Collectors.groupingBy(FireBrigadeResourceDto::getTeamId));
if (!ValidationUtil.isEmpty(fullTimeFireBrigadeList)) { if (!ValidationUtil.isEmpty(fullTimeFireBrigadeList)) {
fullTimeFireBrigadeList.forEach(brigade -> { fullTimeFireBrigadeList.forEach(brigade -> {
if (!CollectionUtils.isEmpty(resultMap.get(brigade.getSequenceNbr().toString()))) { if (!CollectionUtils.isEmpty(resultMap.get(brigade.getSequenceNbr().toString()))) {
FireBrigadeResourceDto fireCarResourceDto = new FireBrigadeResourceDto(); FireBrigadeResourceDto fireCarResourceDto = new FireBrigadeResourceDto();
List<FireBrigadeResourceDto> fireBrigadeResourceDtoList = resultMap List<FireBrigadeResourceDto> fireBrigadeResourceDtoList = resultMap
.get(brigade.getSequenceNbr().toString()); .get(brigade.getSequenceNbr().toString());
long onDutyCarCount = fireBrigadeResourceDtoList.stream() long onDutyCarCount = fireBrigadeResourceDtoList.stream()
.filter(car -> FireCarStatusEnum.执勤.getCode().equals(car.getCarState())).count(); .filter(car -> FireCarStatusEnum.执勤.getCode().equals(car.getCarState())).count();
long outCarCount = fireBrigadeResourceDtoList.size() - onDutyCarCount; long outCarCount = fireBrigadeResourceDtoList.size() - onDutyCarCount;
fireCarResourceDto.setId(brigade.getSequenceNbr().toString()); fireCarResourceDto.setId(brigade.getSequenceNbr().toString());
fireCarResourceDto.setType(FireBrigadeTypeEnum.专职消防队.getKey()); fireCarResourceDto.setType(FireBrigadeTypeEnum.专职消防队.getKey());
fireCarResourceDto.setName(brigade.getName()); fireCarResourceDto.setName(brigade.getName());
fireCarResourceDto.getChildren().addAll(fireBrigadeResourceDtoList); fireCarResourceDto.getChildren().addAll(fireBrigadeResourceDtoList);
fireCarResourceDto.setOutCount((int) outCarCount); fireCarResourceDto.setOutCount((int) outCarCount);
fireCarResourceDto.setOnDutyCount((int) onDutyCarCount); fireCarResourceDto.setOnDutyCount((int) onDutyCarCount);
fireBrigadeResourceList.add(fireCarResourceDto); fireBrigadeResourceList.add(fireCarResourceDto);
} }
}); });
} }
} }
// 3.消防队伍-监控大队 // 3.消防队伍-监控大队
List<FireBrigadeResourceDto> monitorFireBrigadeList = fireTeamService List<FireBrigadeResourceDto> monitorFireBrigadeList = fireTeamService
.listMonitorFireBrigade(FireBrigadeTypeEnum.监控大队.getCode()); .listMonitorFireBrigade(FireBrigadeTypeEnum.监控大队.getCode());
// List<FireBrigadeResourceDto> monitorFireBrigadeList = // List<FireBrigadeResourceDto> monitorFireBrigadeList =
// fireTeamService.listMonitorFireBrigade(); // fireTeamService.listMonitorFireBrigade();
/* bug 2403 队伍未显示图片 2021-09-23 陈召开始 */ /* bug 2403 队伍未显示图片 2021-09-23 陈召开始 */
// for (FireBrigadeResourceDto fireBrigadeResourceDto : monitorFireBrigadeList) { // for (FireBrigadeResourceDto fireBrigadeResourceDto : monitorFireBrigadeList) {
// if (fireBrigadeResourceDto.getPic() != null) { // if (fireBrigadeResourceDto.getPic() != null) {
// String[] split = fireBrigadeResourceDto.getPic().split(","); // String[] split = fireBrigadeResourceDto.getPic().split(",");
...@@ -330,54 +324,54 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe ...@@ -330,54 +324,54 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
// } // }
// } // }
// } // }
/* bug 2403 队伍未显示图片 2021-09-23 陈召结束 */ /* bug 2403 队伍未显示图片 2021-09-23 陈召结束 */
FireBrigadeResourceDto monitorResourceDto = new FireBrigadeResourceDto(); FireBrigadeResourceDto monitorResourceDto = new FireBrigadeResourceDto();
monitorResourceDto.setId("0"); monitorResourceDto.setId("0");
monitorResourceDto.setName(FireBrigadeTypeEnum.监控大队.getName()); monitorResourceDto.setName(FireBrigadeTypeEnum.监控大队.getName());
monitorResourceDto.setType(FireBrigadeTypeEnum.监控大队.getKey()); monitorResourceDto.setType(FireBrigadeTypeEnum.监控大队.getKey());
monitorResourceDto.setChildren(monitorFireBrigadeList); monitorResourceDto.setChildren(monitorFireBrigadeList);
if (!CollectionUtils.isEmpty(monitorFireBrigadeList)) { if (!CollectionUtils.isEmpty(monitorFireBrigadeList)) {
fireBrigadeResourceList.add(monitorResourceDto); fireBrigadeResourceList.add(monitorResourceDto);
} }
return fireBrigadeResourceList; return fireBrigadeResourceList;
} }
private List<PowerTransferCompanyResources> DtoEntityBatchConvert( private List<PowerTransferCompanyResources> DtoEntityBatchConvert(
List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesDtoList, List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesDtoList,
Long powerTransferCompanySequenceNbr) { Long powerTransferCompanySequenceNbr) {
ArrayList<PowerTransferCompanyResources> powerTransferCompanyResourcesList = new ArrayList<>(); ArrayList<PowerTransferCompanyResources> powerTransferCompanyResourcesList = new ArrayList<>();
PowerTransferCompanyResources powerTransferCompanyResources; PowerTransferCompanyResources powerTransferCompanyResources;
List idList = powerTransferCompanyResourcesDtoList.stream() List idList = powerTransferCompanyResourcesDtoList.stream()
.map(PowerTransferCompanyResourcesDto::getResourcesId).collect(Collectors.toList()); .map(PowerTransferCompanyResourcesDto::getResourcesId).collect(Collectors.toList());
QueryWrapper<PowerTransferCompanyResources> queryWrapper = new QueryWrapper<>(); QueryWrapper<PowerTransferCompanyResources> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", FireCarStatusEnum.执行中.getCode()); queryWrapper.eq("status", FireCarStatusEnum.执行中.getCode());
queryWrapper.in("resources_id", idList); queryWrapper.in("resources_id", idList);
List<PowerTransferCompanyResources> alertFormValue = powerTransferCompanyResourcesService.list(queryWrapper); List<PowerTransferCompanyResources> alertFormValue = powerTransferCompanyResourcesService.list(queryWrapper);
if (alertFormValue != null && alertFormValue.size() > 0) { if (alertFormValue != null && alertFormValue.size() > 0) {
throw new RuntimeException("已选车辆有已调派车辆!"); throw new RuntimeException("已选车辆有已调派车辆!");
} else { } else {
for (PowerTransferCompanyResourcesDto powerTransferCompanyResourcesDto : powerTransferCompanyResourcesDtoList) { for (PowerTransferCompanyResourcesDto powerTransferCompanyResourcesDto : powerTransferCompanyResourcesDtoList) {
powerTransferCompanyResources = new PowerTransferCompanyResources(); powerTransferCompanyResources = new PowerTransferCompanyResources();
BeanUtils.copyProperties(powerTransferCompanyResourcesDto, powerTransferCompanyResources); BeanUtils.copyProperties(powerTransferCompanyResourcesDto, powerTransferCompanyResources);
powerTransferCompanyResources.setPowerTransferCompanyId(powerTransferCompanySequenceNbr); powerTransferCompanyResources.setPowerTransferCompanyId(powerTransferCompanySequenceNbr);
// 资源状态 // 资源状态
powerTransferCompanyResources.setStatus(FireCarStatusEnum.执行中.getCode()); powerTransferCompanyResources.setStatus(FireCarStatusEnum.执行中.getCode());
// 资源状态 // 资源状态
powerTransferCompanyResources.setCarStatus(FireCarStatusEnum.出动.getCode()); powerTransferCompanyResources.setCarStatus(FireCarStatusEnum.出动.getCode());
powerTransferCompanyResourcesList.add(powerTransferCompanyResources); powerTransferCompanyResourcesList.add(powerTransferCompanyResources);
} }
return powerTransferCompanyResourcesList; return powerTransferCompanyResourcesList;
} }
} }
private void initDefinitions(Map<String, String> definitions, AlertCalled alertCalled, private void initDefinitions(Map<String, String> definitions, AlertCalled alertCalled,
PowerTransferDto powerTransferDto) { PowerTransferDto powerTransferDto) {
List<AlertFormValue> alertFormValue = alertFormValueService List<AlertFormValue> alertFormValue = alertFormValueService
.list(new QueryWrapper<AlertFormValue>().eq("alert_called_id", alertCalled.getSequenceNbr())); .list(new QueryWrapper<AlertFormValue>().eq("alert_called_id", alertCalled.getSequenceNbr()));
// definitions.put("rescueGrid", alertCalled.getRescueGrid()); // definitions.put("rescueGrid", alertCalled.getRescueGrid());
// definitions.put("alertType", alertCalled.getAlertType()); // definitions.put("alertType", alertCalled.getAlertType());
// definitions.put("address", alertCalled.getAddress()); // definitions.put("address", alertCalled.getAddress());
...@@ -385,373 +379,373 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe ...@@ -385,373 +379,373 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
// definitions.put("casualtiesNum", alertCalled.getCasualtiesNum().toString()); // definitions.put("casualtiesNum", alertCalled.getCasualtiesNum().toString());
// definitions.put("companyName", powerTransferDto.getCompanyName()); // definitions.put("companyName", powerTransferDto.getCompanyName());
for (AlertFormValue formValue : alertFormValue) { for (AlertFormValue formValue : alertFormValue) {
definitions.put(formValue.getFieldCode(), formValue.getFieldValue()); definitions.put(formValue.getFieldCode(), formValue.getFieldValue());
} }
} }
private String getTaskInformation(String content, Map<String, String> definitions) { private String getTaskInformation(String content, Map<String, String> definitions) {
int size = definitions.size(); int size = definitions.size();
String[] keys = definitions.keySet().toArray(new String[size]); String[] keys = definitions.keySet().toArray(new String[size]);
String[] values = definitions.values().toArray(new String[size]); String[] values = definitions.values().toArray(new String[size]);
return StringUtils.replaceEach(content, keys, values); return StringUtils.replaceEach(content, keys, values);
} }
private void createPowerTransferCompany(PowerTransferDto powerTransferDto, Long powerTransferSequenceNbr, private void createPowerTransferCompany(PowerTransferDto powerTransferDto, Long powerTransferSequenceNbr,
Map<String, String> definitions, String content, AlertCalledObjsDto alertCalledObjsDto) { Map<String, String> definitions, String content, AlertCalledObjsDto alertCalledObjsDto) {
List<PowerTransferCompanyDto> powerTransferCompanyDotList = powerTransferDto.getPowerTransferCompanyDotList(); List<PowerTransferCompanyDto> powerTransferCompanyDotList = powerTransferDto.getPowerTransferCompanyDotList();
PowerTransferCompany powerTransferCompany; PowerTransferCompany powerTransferCompany;
List<Object> carStatusInfoDtoList = Lists.newArrayList();
List<Object> carStatusInfoDtoList = Lists.newArrayList(); AlertCalled alertCalled = alertCalledObjsDto.getAlertCalled();
// 初始化警情 信息
AlertCalled alertCalled = alertCalledObjsDto.getAlertCalled(); /**
* 构建警情报送规则对象
// 初始化警情 信息 */
/** AlertCalledRo alertCalledRo = new AlertCalledRo();
* 构建警情报送规则对象 String replaceContent = "";
*/ if (null != alertCalled) {
AlertCalledRo alertCalledRo = new AlertCalledRo(); replaceContent = RuleAlertCalledService.init(alertCalledRo, alertCalledObjsDto);
String replaceContent =""; }
if(null != alertCalled) { definitions.put("rescueGrid", alertCalled.getAddress());
replaceContent = RuleAlertCalledService.init(alertCalledRo, alertCalledObjsDto); definitions.put("type", alertCalled.getAlertType());
} definitions.put("contactUser", alertCalled.getContactUser());
definitions.put("contactPhone", alertCalled.getContactPhone());
definitions.put("rescueGrid", alertCalled.getAddress()); definitions.put("type", alertCalled.getAlertType());
definitions.put("type", alertCalled.getAlertType()); definitions.put("replaceContent", replaceContent);
definitions.put("contactUser", alertCalled.getContactUser()); definitions.put("callTime",
definitions.put("contactPhone", alertCalled.getContactPhone()); DateUtils.convertDateToString(alertCalled.getCallTime(), DateUtils.DATE_TIME_PATTERN));
definitions.put("type", alertCalled.getAlertType()); for (PowerTransferCompanyDto powerTransferCompanyDto : powerTransferCompanyDotList) {
definitions.put("replaceContent", replaceContent); powerTransferCompany = new PowerTransferCompany();
definitions.put("callTime", BeanUtils.copyProperties(powerTransferCompanyDto, powerTransferCompany);
DateUtils.convertDateToString(alertCalled.getCallTime(), DateUtils.DATE_TIME_PATTERN)); powerTransferCompany.setPowerTransferId(powerTransferSequenceNbr);
List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesDtoList = powerTransferCompanyDto
.getPowerTransferCompanyResourcesDtoList();
for (PowerTransferCompanyDto powerTransferCompanyDto : powerTransferCompanyDotList) { if (powerTransferCompanyResourcesDtoList.size() == 0) {
powerTransferCompany = new PowerTransferCompany(); powerTransferCompany.setIsDistributionAgencies(true);
BeanUtils.copyProperties(powerTransferCompanyDto, powerTransferCompany); definitions.put("departmentName", powerTransferCompanyDto.getCompanyName());
powerTransferCompany.setPowerTransferId(powerTransferSequenceNbr);
List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesDtoList = powerTransferCompanyDto definitions.put("content", "");
.getPowerTransferCompanyResourcesDtoList(); powerTransferCompany.setTaskInformation(getTaskInformation(content, definitions));
if (powerTransferCompanyResourcesDtoList.size() == 0) { powerTransferCompanyService.save(powerTransferCompany);
powerTransferCompany.setIsDistributionAgencies(true); powerTransferCompanyDto.setSequenceNbr(powerTransferCompany.getSequenceNbr());
definitions.put("departmentName", powerTransferCompanyDto.getCompanyName()); } else {
powerTransferCompany.setIsDistributionAgencies(false);
definitions.put("content", ""); StringBuilder taskInformation = new StringBuilder();
powerTransferCompany.setTaskInformation(getTaskInformation(content, definitions)); for (PowerTransferCompanyResourcesDto powerTransferCompanyResourcesDto : powerTransferCompanyResourcesDtoList) {
powerTransferCompanyService.save(powerTransferCompany);
powerTransferCompanyDto.setSequenceNbr(powerTransferCompany.getSequenceNbr());
} else {
powerTransferCompany.setIsDistributionAgencies(false);
StringBuilder taskInformation = new StringBuilder();
for (PowerTransferCompanyResourcesDto powerTransferCompanyResourcesDto : powerTransferCompanyResourcesDtoList) {
// definitions.put("type", powerTransferCompanyResourcesDto.getType()); // definitions.put("type", powerTransferCompanyResourcesDto.getType());
// definitions.put("resourcesNum", powerTransferCompanyResourcesDto.getResourcesNum()); // definitions.put("resourcesNum", powerTransferCompanyResourcesDto.getResourcesNum());
String information = powerTransferCompanyResourcesDto.getType().concat("车牌号") String information = powerTransferCompanyResourcesDto.getType().concat("车牌号")
.concat(powerTransferCompanyResourcesDto.getResourcesNum()); .concat(powerTransferCompanyResourcesDto.getResourcesNum());
taskInformation.append(information).append("丶"); taskInformation.append(information).append("丶");
CarStatusInfoDto carStatusInfoDto = new CarStatusInfoDto();
CarStatusInfoDto carStatusInfoDto = new CarStatusInfoDto(); carStatusInfoDto.setSequenceNbr(powerTransferCompanyResourcesDto.getResourcesId());
carStatusInfoDto.setSequenceNbr(powerTransferCompanyResourcesDto.getResourcesId()); carStatusInfoDto.setStatus(FireCarStatusEnum.出动.getCode());
carStatusInfoDto.setStatus(FireCarStatusEnum.出动.getCode()); carStatusInfoDtoList.add(carStatusInfoDto);
carStatusInfoDtoList.add(carStatusInfoDto); }
} definitions.put("departmentName", powerTransferCompanyDto.getCompanyName());
definitions.put("content", taskInformation.toString());
definitions.put("departmentName", powerTransferCompanyDto.getCompanyName()); powerTransferCompany.setTaskInformation(getTaskInformation(content, definitions));
definitions.put("content", taskInformation.toString()); powerTransferCompanyService.save(powerTransferCompany);
powerTransferCompanyDto.setSequenceNbr(powerTransferCompany.getSequenceNbr());
powerTransferCompany.setTaskInformation(getTaskInformation(content, definitions)); Long powerTransferCompanySequenceNbr = powerTransferCompany.getSequenceNbr();
powerTransferCompanyService.save(powerTransferCompany); List<PowerTransferCompanyResources> powerTransferCompanyResourcesList = DtoEntityBatchConvert(
powerTransferCompanyDto.setSequenceNbr(powerTransferCompany.getSequenceNbr()); powerTransferCompanyResourcesDtoList, powerTransferCompanySequenceNbr);
Long powerTransferCompanySequenceNbr = powerTransferCompany.getSequenceNbr(); powerTransferCompanyResourcesService.saveBatch(powerTransferCompanyResourcesList);
List<PowerTransferCompanyResources> powerTransferCompanyResourcesList = DtoEntityBatchConvert( List<PowerTransferCompanyResourcesDto> resourcesDtoList = new ArrayList<>();
powerTransferCompanyResourcesDtoList, powerTransferCompanySequenceNbr); powerTransferCompanyResourcesList.stream().forEach(e -> {
powerTransferCompanyResourcesService.saveBatch(powerTransferCompanyResourcesList); PowerTransferCompanyResourcesDto dto = new PowerTransferCompanyResourcesDto();
List<PowerTransferCompanyResourcesDto> resourcesDtoList = new ArrayList<>(); Bean.toPo(e, dto);
powerTransferCompanyResourcesList.stream().forEach(e->{ resourcesDtoList.add(dto);
PowerTransferCompanyResourcesDto dto = new PowerTransferCompanyResourcesDto(); });
Bean.toPo(e,dto); powerTransferCompanyDto.setPowerTransferCompanyResourcesDtoList(resourcesDtoList);
resourcesDtoList.add(dto); // 更新车辆状态
}); equipFeignService.updateCarStatus(carStatusInfoDtoList);
powerTransferCompanyDto.setPowerTransferCompanyResourcesDtoList(resourcesDtoList); // 警情力量调派时,点击【任务派发】后,如果被调派的 力量包含消防车,那么该消防车所在的 大队的警铃、广播自动 启动,消防车所在的车库门自动开启
try {
// 更新车辆状态 List<Controller> controllers = controllerServiceImpl.list(new LambdaQueryWrapper<Controller>().eq(Controller::getFireTeamSeq, powerTransferCompanyDto.getCompanyId()));
equipFeignService.updateCarStatus(carStatusInfoDtoList); if (controllers.size() > 0) {
} controllerServiceImpl.changeControllerState(controllers.toArray(new Controller[0]));
} }
} } catch (Exception e) {
log.error(e.getMessage());
@Override log.error("车库门、警铃、广播的 联动 功能出现异常");
public List<PowerTransferCompanyDto> getLastPowerTransferCompany(Long alertCalledId) { }
return this.baseMapper.getLastPowerTransferCompany(alertCalledId); }
} }
}
public List<String> queryTransferCarIdsByAlertCalledId(Long alertCalledId) {
return this.baseMapper.queryTransferCarIdsByAlertCalledId(alertCalledId); @Override
} public List<PowerTransferCompanyDto> getLastPowerTransferCompany(Long alertCalledId) {
return this.baseMapper.getLastPowerTransferCompany(alertCalledId);
public Map<String, Object> getPowerTransferList(String beginDate, String endDate) { }
// 获取力量调派信息
List<PowerTransferDto> powerTransferInfo = this.baseMapper.getPowerTransferInfo(beginDate, endDate); public List<String> queryTransferCarIdsByAlertCalledId(Long alertCalledId) {
List<PowerTransferCompanyDto> powerTransferCompanyInfo = this.baseMapper.getPowerTransferCompanyInfo(beginDate, return this.baseMapper.queryTransferCarIdsByAlertCalledId(alertCalledId);
endDate); }
List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesInfo = this.baseMapper
.getPowerTransferCompanyResourcesInfo(beginDate, endDate); public Map<String, Object> getPowerTransferList(String beginDate, String endDate) {
Map<String, Object> transferInfo = this.baseMapper.getPowerTransferInfoCount(beginDate, endDate); // 获取力量调派信息
List<PowerTransferDto> powerTransferInfo = this.baseMapper.getPowerTransferInfo(beginDate, endDate);
// 获取力量出动模板 List<PowerTransferCompanyDto> powerTransferCompanyInfo = this.baseMapper.getPowerTransferCompanyInfo(beginDate,
Template template = templateService endDate);
.getOne(new QueryWrapper<Template>().eq("type_code", DutyInfoEnum.力量出动.getKey()).eq("format", false)); List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesInfo = this.baseMapper
String templateContent = template.getContent(); .getPowerTransferCompanyResourcesInfo(beginDate, endDate);
List<String> transferContent = new ArrayList<>(); Map<String, Object> transferInfo = this.baseMapper.getPowerTransferInfoCount(beginDate, endDate);
powerTransferInfo.forEach(pt -> {
StringBuilder transferDetail = new StringBuilder(); // 获取力量出动模板
Long powerTransferId = pt.getSequenceNbr(); Template template = templateService
String rescueGrid = pt.getRescueGrid(); .getOne(new QueryWrapper<Template>().eq("type_code", DutyInfoEnum.力量出动.getKey()).eq("format", false));
powerTransferCompanyInfo.forEach(ptc -> { String templateContent = template.getContent();
if (powerTransferId.equals(ptc.getPowerTransferId())) { List<String> transferContent = new ArrayList<>();
transferDetail.append(ptc.getCompanyName()); powerTransferInfo.forEach(pt -> {
if (!ptc.getIsDistributionAgencies()) { StringBuilder transferDetail = new StringBuilder();
Long powerTransferCompanyId = ptc.getSequenceNbr(); Long powerTransferId = pt.getSequenceNbr();
transferDetail.append("车辆车牌号"); String rescueGrid = pt.getRescueGrid();
powerTransferCompanyResourcesInfo.forEach(ptcr -> { powerTransferCompanyInfo.forEach(ptc -> {
if (powerTransferCompanyId.equals(ptcr.getPowerTransferCompanyId())) { if (powerTransferId.equals(ptc.getPowerTransferId())) {
transferDetail.append(ptcr.getResourcesNum()).append("、"); transferDetail.append(ptc.getCompanyName());
transferDetail.append(ptcr.getStatus()).append("、"); if (!ptc.getIsDistributionAgencies()) {
} Long powerTransferCompanyId = ptc.getSequenceNbr();
}); transferDetail.append("车辆车牌号");
transferDetail.deleteCharAt(transferDetail.length() - 1); powerTransferCompanyResourcesInfo.forEach(ptcr -> {
} if (powerTransferCompanyId.equals(ptcr.getPowerTransferCompanyId())) {
transferDetail.append(";"); transferDetail.append(ptcr.getResourcesNum()).append("、");
} transferDetail.append(ptcr.getStatus()).append("、");
}); }
transferDetail.deleteCharAt(transferDetail.length() - 1); });
if (transferDetail.toString().contains("、")) { transferDetail.deleteCharAt(transferDetail.length() - 1);
String transfer = null; }
String taskStatus = null; transferDetail.append(";");
String[] split = transferDetail.toString().split("、"); }
if (split.length > 1) { });
transfer = split[0]; transferDetail.deleteCharAt(transferDetail.length() - 1);
taskStatus = split[1]; if (transferDetail.toString().contains("、")) {
} String transfer = null;
String transferDetails = templateContent.replace("departmentName-type-resourcesNum", transfer) String taskStatus = null;
.replace("rescueGrid", rescueGrid == null ? "" : rescueGrid).replace("taskStatus", String[] split = transferDetail.toString().split("、");
taskStatus != null ? FireCarStatusEnum.getEnum(taskStatus).getName() : null); if (split.length > 1) {
transferContent.add(transferDetails); transfer = split[0];
} else { taskStatus = split[1];
String transferDetails = templateContent }
.replace("departmentName-type-resourcesNum", transferDetail.toString()) String transferDetails = templateContent.replace("departmentName-type-resourcesNum", transfer)
.replace("rescueGrid", rescueGrid == null ? "" : rescueGrid).replace("taskStatus", ""); .replace("rescueGrid", rescueGrid == null ? "" : rescueGrid).replace("taskStatus",
transferContent.add(transferDetails); taskStatus != null ? FireCarStatusEnum.getEnum(taskStatus).getName() : null);
} transferContent.add(transferDetails);
}); } else {
transferInfo.put("transferContent", transferContent); String transferDetails = templateContent
.replace("departmentName-type-resourcesNum", transferDetail.toString())
return transferInfo; .replace("rescueGrid", rescueGrid == null ? "" : rescueGrid).replace("taskStatus", "");
} transferContent.add(transferDetails);
}
@Override });
public List<PowerCompanyCountDto> getPowerCompanyCountDtocount(Long id) { transferInfo.put("transferContent", transferContent);
List<PowerCompanyCountDto> list = powerTransferMapper.getPowerCompanyCountDtocount(id);
if (list != null && list.size() > 0) { return transferInfo;
list.stream().forEach(powerCompanyCountDto -> { }
List<PowerCarCountDto> li = powerTransferMapper.getPowerCarCountDtocount(id,
powerCompanyCountDto.getCompanyId()); @Override
powerCompanyCountDto.setPowerCarCountDto(li); public List<PowerCompanyCountDto> getPowerCompanyCountDtocount(Long id) {
}); List<PowerCompanyCountDto> list = powerTransferMapper.getPowerCompanyCountDtocount(id);
} if (list != null && list.size() > 0) {
return list; list.stream().forEach(powerCompanyCountDto -> {
} List<PowerCarCountDto> li = powerTransferMapper.getPowerCarCountDtocount(id,
powerCompanyCountDto.getCompanyId());
@Override powerCompanyCountDto.setPowerCarCountDto(li);
public IPage<PowerTransferResourceDto> getPowerTransferPageByParam(Long alertCalledId, String type, });
Page<PowerTransferResourceDto> page) { }
if (ValidationUtil.isEmpty(alertCalledId)) { return list;
throw new BaseException("警情id为空", "", "警情id为空"); }
}
IPage<PowerTransferResourceDto> resultPage = null; @Override
switch (type) { public IPage<PowerTransferResourceDto> getPowerTransferPageByParam(Long alertCalledId, String type,
case "team": Page<PowerTransferResourceDto> page) {
resultPage = getPowerTransferTeamResource(page, alertCalledId); if (ValidationUtil.isEmpty(alertCalledId)) {
break; throw new BaseException("警情id为空", "", "警情id为空");
case "car": }
resultPage = getPowerTransferCarResource(page, alertCalledId); IPage<PowerTransferResourceDto> resultPage = null;
break; switch (type) {
case "person": case "team":
// TODO 暂时没有调度人员 resultPage = getPowerTransferTeamResource(page, alertCalledId);
resultPage = new Page<>(); break;
break; case "car":
default: resultPage = getPowerTransferCarResource(page, alertCalledId);
break; break;
} case "person":
return resultPage; // TODO 暂时没有调度人员
} resultPage = new Page<>();
break;
@Override default:
public List<ResourceStatisticsDto> getPowerTransferStatistics(Long alertCalledId, String type) { break;
List<ResourceStatisticsDto> result; }
result = powerTransferMapper.getPowerTransferTeamResourceCount(alertCalledId, type); return resultPage;
if (ValidationUtil.isEmpty(result)) { }
ResourceStatisticsDto team = new ResourceStatisticsDto("team", 0, 0, 0);
ResourceStatisticsDto car = new ResourceStatisticsDto("car", 0, 0, 0); @Override
ResourceStatisticsDto person = new ResourceStatisticsDto("person", 0, 0, 0); public List<ResourceStatisticsDto> getPowerTransferStatistics(Long alertCalledId, String type) {
result.add(team); List<ResourceStatisticsDto> result;
result.add(car); result = powerTransferMapper.getPowerTransferTeamResourceCount(alertCalledId, type);
result.add(person); if (ValidationUtil.isEmpty(result)) {
} ResourceStatisticsDto team = new ResourceStatisticsDto("team", 0, 0, 0);
return result; ResourceStatisticsDto car = new ResourceStatisticsDto("car", 0, 0, 0);
} ResourceStatisticsDto person = new ResourceStatisticsDto("person", 0, 0, 0);
result.add(team);
public IPage<PowerTransferResourceDto> getPowerTransferTeamResource(Page<PowerTransferResourceDto> page, result.add(car);
Long alertCalledId) { result.add(person);
return powerTransferMapper.getPowerTransferTeamResource(page, alertCalledId); }
} return result;
}
private IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page,
Long alertCalledId) { public IPage<PowerTransferResourceDto> getPowerTransferTeamResource(Page<PowerTransferResourceDto> page,
Map<String, List<Map<String, Object>>> carInfoMap = getCarListMap(); Long alertCalledId) {
return powerTransferMapper.getPowerTransferTeamResource(page, alertCalledId);
IPage<PowerTransferResourceDto> carResourcePage = powerTransferMapper.getPowerTransferCarResource(page, }
alertCalledId);
Map<String, List<Map<String, Object>>> finalCarInfoMap = carInfoMap; private IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page,
carResourcePage.getRecords().forEach(car -> { Long alertCalledId) {
String seq = car.getSequenceNbr().toString(); Map<String, List<Map<String, Object>>> carInfoMap = getCarListMap();
car.setName((String) finalCarInfoMap.get(seq).get(0).get("name"));
String carStateCode = (String) finalCarInfoMap.get(seq).get(0).get("carState"); IPage<PowerTransferResourceDto> carResourcePage = powerTransferMapper.getPowerTransferCarResource(page,
car.setCarState(!ValidationUtil.isEmpty(FireCarStatusEnum.getEnum(carStateCode)) alertCalledId);
? FireCarStatusEnum.getEnum(carStateCode).getName() Map<String, List<Map<String, Object>>> finalCarInfoMap = carInfoMap;
: ""); carResourcePage.getRecords().forEach(car -> {
List<String> images = (List<String>) finalCarInfoMap.get(seq).get(0).get("image"); String seq = car.getSequenceNbr().toString();
car.setImg(!ValidationUtil.isEmpty(images) ? images.get(0) : ""); car.setName((String) finalCarInfoMap.get(seq).get(0).get("name"));
}); String carStateCode = (String) finalCarInfoMap.get(seq).get(0).get("carState");
return carResourcePage; car.setCarState(!ValidationUtil.isEmpty(FireCarStatusEnum.getEnum(carStateCode))
} ? FireCarStatusEnum.getEnum(carStateCode).getName()
: "");
private Map<String, List<Map<String, Object>>> getCarListMap() { List<String> images = (List<String>) finalCarInfoMap.get(seq).get(0).get("image");
ResponseModel<Object> result = equipFeignClient.getFireCarListAll(); car.setImg(!ValidationUtil.isEmpty(images) ? images.get(0) : "");
Map<String, List<Map<String, Object>>> carInfoMap = Maps.newConcurrentMap(); });
if (!ValidationUtil.isEmpty(result)) { return carResourcePage;
List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult(); }
if (!ValidationUtil.isEmpty(fireCarListMapList)) {
carInfoMap = fireCarListMapList.stream() private Map<String, List<Map<String, Object>>> getCarListMap() {
.collect(Collectors.groupingBy(car -> car.get("id").toString())); ResponseModel<Object> result = equipFeignClient.getFireCarListAll();
} Map<String, List<Map<String, Object>>> carInfoMap = Maps.newConcurrentMap();
} if (!ValidationUtil.isEmpty(result)) {
return carInfoMap; List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult();
} if (!ValidationUtil.isEmpty(fireCarListMapList)) {
carInfoMap = fireCarListMapList.stream()
private List<Map<String, Object>> getCarList() { .collect(Collectors.groupingBy(car -> car.get("id").toString()));
ResponseModel<Object> result = equipFeignClient.getFireCarListAll(); }
List<Map<String, Object>> fireCarListMapList = Lists.newArrayList(); }
if (!ValidationUtil.isEmpty(result)) { return carInfoMap;
fireCarListMapList = (List<Map<String, Object>>) result.getResult(); }
}
return fireCarListMapList; private List<Map<String, Object>> getCarList() {
} ResponseModel<Object> result = equipFeignClient.getFireCarListAll();
List<Map<String, Object>> fireCarListMapList = Lists.newArrayList();
@Override if (!ValidationUtil.isEmpty(result)) {
public JSONObject getPowerTransferCarResourceStatistics(Long alertCalledId) { fireCarListMapList = (List<Map<String, Object>>) result.getResult();
// 所有车辆 }
List<Map<String, Object>> carList = getCarList(); return fireCarListMapList;
}
IPage<PowerTransferResourceDto> carResourcePage = powerTransferMapper
.getPowerTransferCarResource(new Page<>(1L, Long.MAX_VALUE), alertCalledId); @Override
// 调派的车辆id列表 public JSONObject getPowerTransferCarResourceStatistics(Long alertCalledId) {
List<Long> carIdList = Lists.transform(carResourcePage.getRecords(), PowerTransferResourceDto::getSequenceNbr); // 所有车辆
// 调派的车辆信息列表 List<Map<String, Object>> carList = getCarList();
List<Map<String, Object>> totalCarList = carList.stream()
.filter(c -> carIdList.contains(Long.valueOf((String) c.get("id")))).collect(Collectors.toList()); IPage<PowerTransferResourceDto> carResourcePage = powerTransferMapper
// TODO 车辆枚举后期修改为已到达状态车辆 .getPowerTransferCarResource(new Page<>(1L, Long.MAX_VALUE), alertCalledId);
List<Map<String, Object>> arrivedCarList = carList.stream() // 调派的车辆id列表
.filter(c -> carIdList.contains(Long.valueOf((String) c.get("id"))) List<Long> carIdList = Lists.transform(carResourcePage.getRecords(), PowerTransferResourceDto::getSequenceNbr);
&& FireCarStatusEnum.出动.getCode().equals(c.get("carState"))) // 调派的车辆信息列表
.collect(Collectors.toList()); List<Map<String, Object>> totalCarList = carList.stream()
// 调派-已到达车辆id列表 .filter(c -> carIdList.contains(Long.valueOf((String) c.get("id")))).collect(Collectors.toList());
List<Long> arrivedCarIdList = Lists.newArrayList(); // TODO 车辆枚举后期修改为已到达状态车辆
arrivedCarList.forEach(c -> { List<Map<String, Object>> arrivedCarList = carList.stream()
if (FireCarStatusEnum.出动.getCode().equals(c.get("carState"))) { .filter(c -> carIdList.contains(Long.valueOf((String) c.get("id")))
arrivedCarIdList.add(Long.valueOf((String) c.get("id"))); && FireCarStatusEnum.出动.getCode().equals(c.get("carState")))
} .collect(Collectors.toList());
}); // 调派-已到达车辆id列表
List<Long> arrivedCarIdList = Lists.newArrayList();
JSONObject resourceStatistics = new JSONObject(); arrivedCarList.forEach(c -> {
double carTotal = carResourcePage.getTotal(); if (FireCarStatusEnum.出动.getCode().equals(c.get("carState"))) {
arrivedCarIdList.add(Long.valueOf((String) c.get("id")));
// 车辆统计 }
carCount(arrivedCarList, resourceStatistics, carTotal, "car"); });
// 车辆人员统计 JSONObject resourceStatistics = new JSONObject();
dutyPersonCount(carIdList, arrivedCarIdList, resourceStatistics); double carTotal = carResourcePage.getTotal();
// 车载器材统计 // 车辆统计
fireAgentOnCarCount(totalCarList, arrivedCarList, resourceStatistics, "equipment", "equip"); carCount(arrivedCarList, resourceStatistics, carTotal, "car");
// TODO 车载水量统计 // 车辆人员统计
carCount(arrivedCarList, resourceStatistics, carTotal, "water"); dutyPersonCount(carIdList, arrivedCarIdList, resourceStatistics);
// 车载药剂统计 // 车载器材统计
fireAgentOnCarCount(totalCarList, arrivedCarList, resourceStatistics, "fireAgent", "medicament"); fireAgentOnCarCount(totalCarList, arrivedCarList, resourceStatistics, "equipment", "equip");
return resourceStatistics;
} // TODO 车载水量统计
carCount(arrivedCarList, resourceStatistics, carTotal, "water");
public void carCount(List<Map<String, Object>> arrivedCarList, JSONObject resourceStatistics, double carTotal,
String jsoKey) { // 车载药剂统计
JSONObject car = new JSONObject(); fireAgentOnCarCount(totalCarList, arrivedCarList, resourceStatistics, "fireAgent", "medicament");
car.put("total", carTotal); return resourceStatistics;
car.put("count", arrivedCarList.size()); }
resourceStatistics.put(jsoKey, car);
} public void carCount(List<Map<String, Object>> arrivedCarList, JSONObject resourceStatistics, double carTotal,
String jsoKey) {
public void dutyPersonCount(List<Long> carIdList, List<Long> arrivedCarIdList, JSONObject resourceStatistics) { JSONObject car = new JSONObject();
// 当前时间所在班次 car.put("total", carTotal);
List<Long> shiftIdList = dutyCarService.getDutyShiftIdList(); car.put("count", arrivedCarList.size());
List<Map<String, Object>> allDutyPersonList = Lists.newArrayList(); resourceStatistics.put(jsoKey, car);
if (!ValidationUtil.isEmpty(shiftIdList)) { }
// 当前值班车辆-人
allDutyPersonList = dutyCarService.dayDutyPersonList(DateUtils.getDateNowShortStr(), shiftIdList.get(0), public void dutyPersonCount(List<Long> carIdList, List<Long> arrivedCarIdList, JSONObject resourceStatistics) {
null); // 当前时间所在班次
} List<Long> shiftIdList = dutyCarService.getDutyShiftIdList();
// 当前车辆执勤人员 List<Map<String, Object>> allDutyPersonList = Lists.newArrayList();
List<Map<String, Object>> allTransferDutyPerson = allDutyPersonList.stream() if (!ValidationUtil.isEmpty(shiftIdList)) {
.filter(c -> carIdList.contains(Long.valueOf((String) c.get("carId")))).collect(Collectors.toList()); // 当前值班车辆-人
// 当前已到达车辆执勤人员 allDutyPersonList = dutyCarService.dayDutyPersonList(DateUtils.getDateNowShortStr(), shiftIdList.get(0),
List<Map<String, Object>> allArrivedTransferDutyPerson = allDutyPersonList.stream() null);
.filter(c -> arrivedCarIdList.contains(Long.valueOf((String) c.get("carId")))) }
.collect(Collectors.toList()); // 当前车辆执勤人员
JSONObject person = new JSONObject(); List<Map<String, Object>> allTransferDutyPerson = allDutyPersonList.stream()
person.put("total", allTransferDutyPerson.size()); .filter(c -> carIdList.contains(Long.valueOf((String) c.get("carId")))).collect(Collectors.toList());
person.put("count", allArrivedTransferDutyPerson.size()); // 当前已到达车辆执勤人员
resourceStatistics.put("person", person); List<Map<String, Object>> allArrivedTransferDutyPerson = allDutyPersonList.stream()
} .filter(c -> arrivedCarIdList.contains(Long.valueOf((String) c.get("carId"))))
.collect(Collectors.toList());
public void fireAgentOnCarCount(List<Map<String, Object>> totalCarList, List<Map<String, Object>> arrivedCarList, JSONObject person = new JSONObject();
JSONObject resourceStatistics, String equipType, String jsonKey) { person.put("total", allTransferDutyPerson.size());
double agentCountAll = totalCarList.stream().mapToDouble( person.put("count", allArrivedTransferDutyPerson.size());
car -> car.get("resourceList") != null ? ((List<Map<String, Object>>) car.get("resourceList")).stream() resourceStatistics.put("person", person);
.filter(res -> equipType.equals(res.get("equipType"))) }
.mapToDouble(c -> (double) c.get("equipCount")).sum() : 0)
.sum(); public void fireAgentOnCarCount(List<Map<String, Object>> totalCarList, List<Map<String, Object>> arrivedCarList,
JSONObject resourceStatistics, String equipType, String jsonKey) {
double agentCountArrived = arrivedCarList.stream().mapToDouble( double agentCountAll = totalCarList.stream().mapToDouble(
car -> car.get("resourceList") != null ? ((List<Map<String, Object>>) car.get("resourceList")).stream() car -> car.get("resourceList") != null ? ((List<Map<String, Object>>) car.get("resourceList")).stream()
.filter(res -> equipType.equals(res.get("equipType"))) .filter(res -> equipType.equals(res.get("equipType")))
.mapToDouble(c -> (double) c.get("equipCount")).sum() : 0) .mapToDouble(c -> (double) c.get("equipCount")).sum() : 0)
.sum(); .sum();
JSONObject jsonObject = new JSONObject(); double agentCountArrived = arrivedCarList.stream().mapToDouble(
jsonObject.put("total", agentCountAll); car -> car.get("resourceList") != null ? ((List<Map<String, Object>>) car.get("resourceList")).stream()
jsonObject.put("count", agentCountArrived); .filter(res -> equipType.equals(res.get("equipType")))
resourceStatistics.put(jsonKey, jsonObject); .mapToDouble(c -> (double) c.get("equipCount")).sum() : 0)
} .sum();
@Override JSONObject jsonObject = new JSONObject();
public List<Map<String, String>> getFireCarStatusList() { jsonObject.put("total", agentCountAll);
return FireCarStatusEnum.toList(); jsonObject.put("count", agentCountArrived);
} resourceStatistics.put(jsonKey, jsonObject);
}
@Override
public List<Map<String, String>> getDispatchTaskStatusList() { @Override
return AlertFeedbackStatusEnum.toList(); public List<Map<String, String>> getFireCarStatusList() {
} return FireCarStatusEnum.toList();
}
@Override
public List<Map<String, String>> getDispatchTaskStatusList() {
return AlertFeedbackStatusEnum.toList();
}
} }
package com.yeejoin.amos.knowledgebase.controller; package com.yeejoin.amos.knowledgebase.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.List;
import com.yeejoin.amos.knowledgebase.face.enumeration.DynamicsFunctional; import java.util.Map;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeDocContentModel;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeDocContent; import javax.servlet.http.HttpServletRequest;
import com.yeejoin.amos.knowledgebase.face.service.DocContentService;
import com.yeejoin.amos.knowledgebase.face.service.DocLibraryService;
import com.yeejoin.amos.knowledgebase.face.service.DynamicsOptionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.DateUtil;
import org.typroject.tyboot.core.foundation.utils.StringUtil; import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
...@@ -22,10 +22,16 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest; ...@@ -22,10 +22,16 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Date; import com.yeejoin.amos.knowledgebase.face.enumeration.DynamicsFunctional;
import java.util.List; import com.yeejoin.amos.knowledgebase.face.model.KnowledgeDocContentModel;
import java.util.Map; import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeDocContent;
import com.yeejoin.amos.knowledgebase.face.service.DocContentService;
import com.yeejoin.amos.knowledgebase.face.service.DocLibraryService;
import com.yeejoin.amos.knowledgebase.face.service.DynamicsOptionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/** /**
* <p> * <p>
...@@ -221,5 +227,12 @@ public class DocContentResource { ...@@ -221,5 +227,12 @@ public class DocContentResource {
@PathVariable(value = "sequenceNbr") Long sequenceNbr) { @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(docContentService.queryLikeOrDis(sequenceNbr)); return ResponseHelper.buildResponse(docContentService.queryLikeOrDis(sequenceNbr));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "获取简单的预案信息")
@RequestMapping(value = "/getSimpleDetail/{sequenceNbr}", method = RequestMethod.GET)
public ResponseModel<List<Map<String, Object>>> getSimpleDetail(
@PathVariable(value = "sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(docContentService.getSimpleDetail(sequenceNbr));
}
} }
package com.yeejoin.amos.knowledgebase.controller; package com.yeejoin.amos.knowledgebase.controller;
import com.yeejoin.amos.knowledgebase.face.service.TagInstanceService; import java.util.List;
import io.swagger.annotations.Api;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; 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.doc.TycloudResource; import org.typroject.tyboot.core.restful.doc.TycloudResource;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagInstanceModel;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeTagInstance;
import com.yeejoin.amos.knowledgebase.face.service.TagInstanceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/** /**
* <p> * <p>
...@@ -27,4 +41,25 @@ public class TagInstanceResource { ...@@ -27,4 +41,25 @@ public class TagInstanceResource {
private final Logger logger = LogManager.getLogger(TagInstanceResource.class); private final Logger logger = LogManager.getLogger(TagInstanceResource.class);
@Autowired @Autowired
private TagInstanceService tagInstanceService; private TagInstanceService tagInstanceService;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "根据主键查询实例标签")
@RequestMapping(value = "find/{id}", method = RequestMethod.GET)
public ResponseModel<KnowledgeTagInstance> findById(@PathVariable("id") Long id) {
return ResponseHelper.buildResponse(tagInstanceService.findById(id));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "根据targetSeq查询实例标签")
@RequestMapping(value = "targetSeq/{id}", method = RequestMethod.GET)
public ResponseModel<List<KnowledgeTagInstanceModel>> queryListByTargetSeq(@PathVariable("id") Long id) {
return ResponseHelper.buildResponse(tagInstanceService.queryListByTargetSeq(id));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "根据targetSeq查询实例标签")
@RequestMapping(value = "getTarget/byName", method = RequestMethod.GET)
public ResponseModel<List<KnowledgeTagInstanceModel>> queryListByTagName(@RequestParam String name) {
return ResponseHelper.buildResponse(tagInstanceService.queryListByTagName(name));
}
} }
package com.yeejoin.amos.knowledgebase.controller; package com.yeejoin.amos.knowledgebase.controller;
import com.yeejoin.amos.knowledgebase.face.service.TagValueService;
import io.swagger.annotations.Api;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; 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.doc.TycloudResource; import org.typroject.tyboot.core.restful.doc.TycloudResource;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.yeejoin.amos.knowledgebase.face.service.TagValueService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/** /**
* <p> * <p>
...@@ -27,5 +36,17 @@ public class TagValueResource { ...@@ -27,5 +36,17 @@ public class TagValueResource {
private final Logger logger = LogManager.getLogger(TagValueResource.class); private final Logger logger = LogManager.getLogger(TagValueResource.class);
@Autowired @Autowired
private TagValueService tagValueService; private TagValueService tagValueService;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "获取所有当前系统的值标签的实例值")
@RequestMapping(value = "/getAll/tegartValue", method = RequestMethod.GET)
public ResponseModel<Object> getAllTegartValue(@RequestParam String value) {
return ResponseHelper.buildResponse(tagValueService.getAllTegartValue(value));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "获取所有当前系统的值标签的实例值")
@RequestMapping(value = "/getOne/", method = RequestMethod.GET)
public ResponseModel<Object> queryByInstance(@RequestParam Long id) {
return ResponseHelper.buildResponse(tagValueService.queryByInstance(id));
}
} }
...@@ -16,6 +16,7 @@ import com.yeejoin.amos.knowledgebase.face.feign.RemoteData; ...@@ -16,6 +16,7 @@ import com.yeejoin.amos.knowledgebase.face.feign.RemoteData;
import com.yeejoin.amos.knowledgebase.face.model.*; import com.yeejoin.amos.knowledgebase.face.model.*;
import com.yeejoin.amos.knowledgebase.face.orm.dao.DocContentMapper; import com.yeejoin.amos.knowledgebase.face.orm.dao.DocContentMapper;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeDocContent; import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeDocContent;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeTagValue;
import com.yeejoin.amos.knowledgebase.face.util.Constants; import com.yeejoin.amos.knowledgebase.face.util.Constants;
import com.yeejoin.amos.knowledgebase.face.util.DocSortUtil; import com.yeejoin.amos.knowledgebase.face.util.DocSortUtil;
import com.yeejoin.amos.knowledgebase.face.util.QuoteCountFlushTiming; import com.yeejoin.amos.knowledgebase.face.util.QuoteCountFlushTiming;
...@@ -657,4 +658,19 @@ public class DocContentService extends BaseService<KnowledgeDocContentModel, Kno ...@@ -657,4 +658,19 @@ public class DocContentService extends BaseService<KnowledgeDocContentModel, Kno
private List<KnowledgeDocContentModel> queryListByCategorySeqList(@Condition(Operator.in) List<Long> directoryId) { private List<KnowledgeDocContentModel> queryListByCategorySeqList(@Condition(Operator.in) List<Long> directoryId) {
return this.queryForList(null, false, directoryId); return this.queryForList(null, false, directoryId);
} }
public List<Map<String, Object>> getSimpleDetail(String sequenceNbrs) {
String[] idStrings= sequenceNbrs.split(",");
List<String> idListString= Arrays.asList(idStrings);
List<Long> idList= new ArrayList<Long>();
idListString.stream().forEach(i->{
idList.add(Long.parseLong(i));
});
QueryWrapper<KnowledgeDocContent> wrapper = new QueryWrapper<KnowledgeDocContent>();
wrapper.eq("DOC_STATUS", "PUBLISHED");
wrapper.in("SEQUENCE_NBR",idList);
wrapper.select("SEQUENCE_NBR","DOC_TITLE","REC_DATE");
return this.baseMapper.selectMaps(wrapper);
}
} }
package com.yeejoin.amos.knowledgebase.face.service; package com.yeejoin.amos.knowledgebase.face.service;
import com.baomidou.mybatisplus.core.toolkit.Sequence; import java.util.ArrayList;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeDynamicsValueModel; import java.util.Collection;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagInstanceModel; import java.util.List;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagModel; import java.util.Map;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagValueModel;
import com.yeejoin.amos.knowledgebase.face.orm.dao.TagInstanceMapper;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeTagInstance;
import com.yeejoin.amos.knowledgebase.face.util.Constants;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -19,7 +15,14 @@ import org.typroject.tyboot.core.rdbms.annotation.Condition; ...@@ -19,7 +15,14 @@ import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator; import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.*; import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeDynamicsValueModel;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagInstanceModel;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagModel;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagValueModel;
import com.yeejoin.amos.knowledgebase.face.orm.dao.TagInstanceMapper;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeTagInstance;
import com.yeejoin.amos.knowledgebase.face.util.Constants;
/** /**
...@@ -152,4 +155,16 @@ public class TagInstanceService extends BaseService<KnowledgeTagInstanceModel, K ...@@ -152,4 +155,16 @@ public class TagInstanceService extends BaseService<KnowledgeTagInstanceModel, K
public List<KnowledgeTagInstanceModel> queryListByTargetSeqs(@Condition(Operator.in) Collection<Long> targetSeq) { public List<KnowledgeTagInstanceModel> queryListByTargetSeqs(@Condition(Operator.in) Collection<Long> targetSeq) {
return this.queryForList(null, false, targetSeq); return this.queryForList(null, false, targetSeq);
} }
public KnowledgeTagInstance findById(Long id) {
return this.baseMapper.selectById(id);
}
public List<KnowledgeTagInstanceModel> queryListByTagName(String tagName) {
// TODO Auto-generated method stub
return this.queryForList(null, false, tagName);
}
} }
package com.yeejoin.amos.knowledgebase.face.service; package com.yeejoin.amos.knowledgebase.face.service;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -12,10 +13,14 @@ import org.typroject.tyboot.core.foundation.utils.Bean; ...@@ -12,10 +13,14 @@ import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagValueModel; import com.yeejoin.amos.knowledgebase.face.model.KnowledgeTagValueModel;
import com.yeejoin.amos.knowledgebase.face.orm.dao.TagValueMapper; import com.yeejoin.amos.knowledgebase.face.orm.dao.TagValueMapper;
import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeTagValue; import com.yeejoin.amos.knowledgebase.face.orm.entity.KnowledgeTagValue;
import net.bytebuddy.asm.Advice.This;
/** /**
* <p> * <p>
...@@ -66,4 +71,13 @@ public class TagValueService extends BaseService<KnowledgeTagValueModel, Knowled ...@@ -66,4 +71,13 @@ public class TagValueService extends BaseService<KnowledgeTagValueModel, Knowled
public List<KnowledgeTagValueModel> queryTagValuesByDocIds(Collection<Long> docSeqList) { public List<KnowledgeTagValueModel> queryTagValuesByDocIds(Collection<Long> docSeqList) {
return Bean.toModels(this.getBaseMapper().queryTagValuesByDocIds(docSeqList), KnowledgeTagValueModel.class); return Bean.toModels(this.getBaseMapper().queryTagValuesByDocIds(docSeqList), KnowledgeTagValueModel.class);
} }
public List<KnowledgeTagValue> getAllTegartValue(String value) {
String[] strings = value.split(",");
QueryWrapper<KnowledgeTagValue> wrapper = new QueryWrapper<KnowledgeTagValue>();
wrapper.eq("AGENCY_CODE", RequestContext.getAgencyCode());
wrapper.in("TAG_VALUE", Arrays.asList(strings));
return this.baseMapper.selectList(wrapper);
}
} }
...@@ -6,8 +6,11 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.ElevatorDto; ...@@ -6,8 +6,11 @@ import com.yeejoin.amos.boot.module.tzs.api.dto.ElevatorDto;
import com.yeejoin.amos.boot.module.tzs.api.dto.MaintenanceUnitDto; import com.yeejoin.amos.boot.module.tzs.api.dto.MaintenanceUnitDto;
import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator; import com.yeejoin.amos.boot.module.tzs.api.entity.Elevator;
import com.yeejoin.amos.boot.module.tzs.api.entity.MaintenanceUnit; import com.yeejoin.amos.boot.module.tzs.api.entity.MaintenanceUnit;
import com.yeejoin.amos.boot.module.tzs.flc.api.dto.EquipmentDto;
import com.yeejoin.amos.boot.module.tzs.flc.api.dto.UnitInfoDto; import com.yeejoin.amos.boot.module.tzs.flc.api.dto.UnitInfoDto;
import com.yeejoin.amos.boot.module.tzs.flc.api.entity.Equipment;
import com.yeejoin.amos.boot.module.tzs.flc.api.entity.UnitInfo; import com.yeejoin.amos.boot.module.tzs.flc.api.entity.UnitInfo;
import com.yeejoin.amos.boot.module.tzs.flc.api.enums.EquipmentStatusEnum;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -274,4 +277,29 @@ public class BeanDtoVoUtils { ...@@ -274,4 +277,29 @@ public class BeanDtoVoUtils {
} }
}); });
} }
/**
* 将设备实体类转换为Vo
*
* @param page 原分页对象
* @return 转换后的分页对象
*/
public static IPage<EquipmentDto> equipmentIPageDto(IPage<Equipment> page) {
return page.convert(item -> {
try {
EquipmentDto target = new EquipmentDto();
// 把原对象数据拷贝到新对象
BeanUtils.copyProperties(item, target);
if(EquipmentStatusEnum.未安装.getCode().equals(item.getStatus())) {
target.setStatus(EquipmentStatusEnum.未安装.getName());
} else if(EquipmentStatusEnum.已安装.getCode().equals(item.getStatus())) {
target.setStatus(EquipmentStatusEnum.已安装.getName());
}
return target;
} catch (Exception e) {
return null;
}
});
}
} }
\ No newline at end of file
...@@ -132,7 +132,7 @@ public class EquipmentController extends BaseController { ...@@ -132,7 +132,7 @@ public class EquipmentController extends BaseController {
page = equipmentServiceImpl.page(pageBean, equipmentQueryWrapper); page = equipmentServiceImpl.page(pageBean, equipmentQueryWrapper);
int num= equipmentServiceImpl.count(equipmentQueryWrapper); int num= equipmentServiceImpl.count(equipmentQueryWrapper);
pageBean.setTotal(num); pageBean.setTotal(num);
IPage<EquipmentDto> equipmentDtoIPager = BeanDtoVoUtils.iPageVoStream(page,EquipmentDto.class); IPage<EquipmentDto> equipmentDtoIPager = BeanDtoVoUtils.equipmentIPageDto(page);
return ResponseHelper.buildResponse(equipmentDtoIPager); return ResponseHelper.buildResponse(equipmentDtoIPager);
} }
...@@ -163,12 +163,12 @@ public class EquipmentController extends BaseController { ...@@ -163,12 +163,12 @@ public class EquipmentController extends BaseController {
if (!ValidationUtil.isEmpty(equipmentDto.getName())) { // 设备名称 if (!ValidationUtil.isEmpty(equipmentDto.getName())) { // 设备名称
queryWrapper.like("name",equipmentDto.getName()); queryWrapper.like("name",equipmentDto.getName());
} }
if(!ValidationUtil.isEmpty(equipmentDto.getTypeId())) { // 设备种类
queryWrapper.eq("type_id",equipmentDto.getTypeId());
}
if(!ValidationUtil.isEmpty(equipmentDto.getCategoryId())) { // 设备类别 if(!ValidationUtil.isEmpty(equipmentDto.getCategoryId())) { // 设备类别
queryWrapper.eq("category_id",equipmentDto.getCategoryId()); queryWrapper.eq("category_id",equipmentDto.getCategoryId());
} }
if(!ValidationUtil.isEmpty(equipmentDto.getTypeId())) { // 设备种类
queryWrapper.eq("type_id",equipmentDto.getTypeId());
}
if(!ValidationUtil.isEmpty(equipmentDto.getVarietyId())) { // 设备品种 if(!ValidationUtil.isEmpty(equipmentDto.getVarietyId())) { // 设备品种
queryWrapper.eq("variety_id",equipmentDto.getVarietyId()); queryWrapper.eq("variety_id",equipmentDto.getVarietyId());
} }
......
...@@ -79,6 +79,8 @@ equip.fegin.name=AMOS-EQUIPMANAGE ...@@ -79,6 +79,8 @@ equip.fegin.name=AMOS-EQUIPMANAGE
## 设备联动服务(车库门、广播、警铃) ## 设备联动服务(车库门、广播、警铃)
control.fegin.name=JCS-API-CONTROL control.fegin.name=JCS-API-CONTROL
Knowledgebase.fegin.name=AMOS-API-KNOWLEDGEBASE
## 故障报修流程 ## 故障报修流程
failure.work.flow.processDefinitionKey=malfunction_repair failure.work.flow.processDefinitionKey=malfunction_repair
#设置文件上传的大小限制 #设置文件上传的大小限制
......
...@@ -2322,5 +2322,41 @@ ...@@ -2322,5 +2322,41 @@
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="hll" id="2021-12-06-hll-1">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="jc_controller_log"/>
</not>
</preConditions>
<comment>create table jc_controller_log</comment>
<sql>
CREATE TABLE `jc_controller_log` (
`sequence_nbr` bigint(22) NOT NULL,
`controller_seq` bigint(22) NOT NULL COMMENT '控制站ID',
`equip_seq` bigint(22) DEFAULT NULL COMMENT '装备ID',
`state` varchar(2) DEFAULT NULL COMMENT '变更后状态',
`execute_user_seq` bigint(22) DEFAULT NULL COMMENT '变更人ID',
`execute_date` datetime DEFAULT NULL COMMENT '变更时间',
`rec_user_name` varchar(15) CHARACTER SET utf8 DEFAULT NULL COMMENT '操作人名称',
`rec_user_id` varchar(19) CHARACTER SET utf8 DEFAULT NULL COMMENT '操作人员',
`rec_date` datetime DEFAULT NULL COMMENT '创建时间',
`is_delete` bit(1) DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`sequence_nbr`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
</sql>
</changeSet>
<changeSet author="hll" id="2021-12-06-hll-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="jc_controller" columnName="fire_team_seq"/>
</not>
</preConditions>
<comment>jc_controller add fire_team_seq</comment>
<sql>
alter table `jc_controller` add column `fire_team_seq` varchar(22) DEFAULT NULL COMMENT '关联的消防队伍ID';
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
...@@ -9,6 +9,9 @@ import org.slf4j.LoggerFactory; ...@@ -9,6 +9,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.WebApplicationType; import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
...@@ -20,6 +23,9 @@ import org.typroject.tyboot.core.restful.exception.GlobalExceptionHandler; ...@@ -20,6 +23,9 @@ import org.typroject.tyboot.core.restful.exception.GlobalExceptionHandler;
*/ */
@EnableScheduling @EnableScheduling
@EnableFeignClients
@EnableDiscoveryClient
@EnableEurekaClient
@EnableAsync @EnableAsync
@MapperScan({"com.yeejoin.amos.knowledgebase.face.orm.dao*", @MapperScan({"com.yeejoin.amos.knowledgebase.face.orm.dao*",
"org.typroject.tyboot.face.*.orm.dao*", "org.typroject.tyboot.face.*.orm.dao*",
......
##开发环境配置文件 ##开发环境配置文件
# jdbc_config # jdbc_config
spring.datasource.url=jdbc:mysql://localhost:3306/safety-knowledge-3.0.0?characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.url=jdbc:mysql://172.16.6.60:3306/knowledge_base?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=root_123 spring.datasource.password=root_123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
......
...@@ -71,7 +71,7 @@ class AppNslClientToken { ...@@ -71,7 +71,7 @@ class AppNslClientToken {
/** /**
* 获取访问Token,包含token和过期时间(2021-11-30测试Token过期时间为18天) * 获取访问Token,包含token和过期时间(2021-11-30测试Token过期时间为18天)
* 集成项目中,token放到缓存中,避免多次获取可能导致已进行的任务token失效 * 避免多次获取可能导致已进行的任务token失效
* *
* @return token 访问token * @return token 访问token
*/ */
......
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