Commit 1711267c authored by 李成龙's avatar 李成龙

Merge branch 'develop_20200601' into 'master'

Develop 20200601 See merge request !1
parents 1a648a07 2c115bd8
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea
*.iml
*.settings
*.classpath
*.project
*.springBeans
*.factorypath
target
......@@ -15,9 +15,10 @@ public enum AlarmPointEnum {
未确认已清除("未确认已清除", "未确认已清除"),
已确认未清除("已确认未清除", "已确认未清除"),
已确认已清除("已确认已清除", "已确认已清除"),
异常("异常", "异常"),
正常("正常", "正常");
NORMAL("正常", "正常"),
ABNORMAL("异常", "异常"),
ALARM("告警", "告警"),;
/**
* 名称,描述
*/
......
......@@ -11,13 +11,13 @@ import java.util.Map;
*
*/
public enum AlarmPointTypeEnum {
设备("设备", "1"),
动环("动环", "2"),
巡检("巡检", "3"),
通道("通道", "4"),
虚拟设备("虚拟设备", "5"),
火探("火探", "6");
SB("设备", "1"),
DH("动环", "2"),
XJ("巡检", "3"),
TD("通道", "4"),
XNSB("虚拟设备", "5"),
HT("火探", "6");
/**
* 名称,描述
*/
......
......@@ -10,7 +10,8 @@ public enum DeviceEnum {
NET_DEVICE("net_device", "网络设备"),
SERVER("server", "服务器"),
PATROL("patrol", "自动巡检设备");
PATROL("patrol", "自动巡检设备"),
IP_EQUIPMENT("ip_equipment", "IP设备");
DeviceEnum(String type, String desc) {
this.type = type;
......
......@@ -26,7 +26,7 @@ public enum DeviceUriEnum {
this.desc = desc;
}
public String getUri() {
public String getUri() {
return uri;
}
......
......@@ -9,7 +9,9 @@ public enum TopoNodeTypeEnum {
PAMS("PAMS", 2),
动环监控("动环监控", 3),
设备监控("设备监控", 4),
自建系统("自建系统", 5);
自建系统("自建系统", 5),
金融城域网("金融城域网", 6),
虚拟云平台监控("虚拟云平台监控", 7);
/**
* 名称
*/
......
......@@ -14,12 +14,4 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Repository
public interface BankInfoDao extends IBaseRepository<BankInfo, Long> {
@Query(value="select * from b_bank_info where source_id =?1",nativeQuery=true )
BankInfo findBySourceId(Long sourseId);
@Modifying
@Transactional
@Query(value="update b_bank_info set status = ?1 where source_id =?2",nativeQuery=true )
void updateBySourceId(int status, Long sourseId);
}
package com.yeejoin.amos.bank.dao.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
......@@ -49,6 +51,7 @@ public class Alarm {
private String orgCode;//'用于查询',
@Column(name = "update_date")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private String updateDate;//'用于查询',
......
......@@ -9,17 +9,19 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.bank.entity.BaseEntity;
import com.yeejoin.amos.spc.dao.entity.BasicEntity;
@Entity
@Table(name="p_alarm_point")
public class AlarmPoint{
public class AlarmPoint {
/**
*
*
*/
private static final long serialVersionUID = 5191299540189393188L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id",nullable=false,unique=true)
......@@ -27,29 +29,30 @@ public class AlarmPoint{
@Column(name = "point_id")
private Long pointId;
@Column(name = "update_date")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateDate;
@Column(name = "is_alarm")
private Integer isAlarm = 1;//0 正常|1 告警
@Column(name = "point_type")
private String pointType;
@Column(name = "content")
private String content;//告警内容
@Column(name = "code")
private String code;//code
@Column(name = "point_name")
private String pointName;
@Column(name = "source_id")
private String sourceId;
@Column(name = "auth_org")
private String authOrg;
......@@ -64,6 +67,16 @@ public class AlarmPoint{
@Column(name = "point_attrs")
private String pointAttrs;//告警点信息
@Column(name = "cpbl_id")
private Long cpblId;//告警指标ID
public Long getTarget() {
return cpblId;
}
public void setTarget(Long target) {
this.cpblId = target;
}
public Date getUpdateDate() {
return updateDate;
......
package com.yeejoin.amos.bank.dto;
/**
* @Author: xinglei
* @Description:
* @Date: 2020/6/3 16:08
*/
public class BankInfoDTO {
private String name;
private String img;
private String lng;
private String lat;
private String pamsPosition;
private String eName;
private String aName;
private int isCenter;
private String sourceIdStr;
private String sourceNameStr;
private int status;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getPamsPosition() {
return pamsPosition;
}
public void setPamsPosition(String pamsPosition) {
this.pamsPosition = pamsPosition;
}
public String geteName() {
return eName;
}
public void seteName(String eName) {
this.eName = eName;
}
public String getaName() {
return aName;
}
public void setaName(String aName) {
this.aName = aName;
}
public int getIsCenter() {
return isCenter;
}
public void setIsCenter(int isCenter) {
this.isCenter = isCenter;
}
public String getSourceIdStr() {
return sourceIdStr;
}
public void setSourceIdStr(String sourceIdStr) {
this.sourceIdStr = sourceIdStr;
}
public String getSourceNameStr() {
return sourceNameStr;
}
public void setSourceNameStr(String sourceNameStr) {
this.sourceNameStr = sourceNameStr;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
......@@ -74,6 +74,8 @@ public class TopographyNodeDTO{
*/
private Integer equipType;
private String ports;
public Integer getEquipType() {
return equipType;
......@@ -171,6 +173,14 @@ public class TopographyNodeDTO{
public void setWarnMessage(String warnMessage) {
this.warnMessage = warnMessage;
}
public String getPorts() {
return ports;
}
public void setPorts(String ports) {
this.ports = ports;
}
@Override
public String toString() {
return "TopographyNodeDTO [id=" + id + ", key=" + key + ", category=" + category + ", group=" + group + ", loc="
......
......@@ -7,7 +7,14 @@ public class pointReturn {
public String taskNo;
public long id;
public String coordinates;
public String floor;
public String getFloor() {
return floor;
}
public void setFloor(String floor) {
this.floor = floor;
}
public String getCoordinates() {
return coordinates;
}
......
......@@ -41,11 +41,6 @@
<artifactId>amos-component-feign</artifactId>
<version>1.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-core-foundation</artifactId>
<version>1.1.13-Ty</version>
</dependency>
<!-- fegion客户端引用end -->
<!-- 安全模块jar
<dependency>
......
......@@ -4,8 +4,7 @@ import java.util.List;
import java.util.Map;
import com.yeejoin.amos.spc.core.util.StringUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.log4j.Logger;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,7 +27,7 @@ import com.yeejoin.amos.spc.business.dao.mapper.EquipmentMapper;
@Component
public class BlueprintListener extends EmqxListener implements InitializingBean {
private final Logger logger = LogManager.getLogger(BlueprintListener.class);
private static final Logger logger = Logger.getLogger(BlueprintListener.class);
private static ObjectMapper mapper = new ObjectMapper();
......@@ -71,9 +70,10 @@ public class BlueprintListener extends EmqxListener implements InitializingBean
try {
String jsonStr = new String(mqttMessage.getPayload());
logger.error(">>>>>>>>>>>>>>>>>jsonStr",jsonStr);
logger.debug(">>>>>>>>>>>>>>>>>jsonStr" + jsonStr);
JSONObject parseObject = JSON.parseObject(jsonStr);
Long eqpId = parseObject.getLong("eqpId");
String eqpName = parseObject.getString("eqpName");
JSONArray jsonArray = parseObject.getJSONArray("metricDatas");
if (ObjectUtils.isEmpty(jsonArray)) {
return;
......@@ -84,7 +84,7 @@ public class BlueprintListener extends EmqxListener implements InitializingBean
if (!StringUtil.isNotEmpty(string)) {
return;
}
logger.error(">>>>>>>>>>>>>>>>>string",string);
logger.debug(">>>>>>>>>>>>>>>>>string"+ string);
JSONObject metricJson = JSONObject.parseObject(string);
for (Map.Entry entry : metricJson.entrySet()) {
// 指标名
......@@ -96,14 +96,14 @@ public class BlueprintListener extends EmqxListener implements InitializingBean
List<Long> riskFactorId = equipmentMapper.judgeEquipmentExists(equipmentsPointId);
if ((remark.equals("currentState") || "异常".equals(statusName) || "正常".equals(statusName)) && !ObjectUtils.isEmpty(queryEquipmentPoint) && riskFactorId.size() > 0) {
logger.error(">>>>>>>>>>>>>>>>>remark",remark);
logger.error(">>>>>>>>>>>>>>>>>statusName",statusName);
logger.debug(">>>>>>>>>>>>>>>>>remark" + remark);
logger.debug(">>>>>>>>>>>>>>>>>statusName" + statusName);
// 指标的值 0正常 1告警
Integer value = DevicePointEnum.getValue(statusName);
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
try {
for (int j = 0; j < riskFactorId.size(); j++) {
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j));
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j),eqpName,value);
}
} catch (InnerInvokException e1) {
logger.error("update rpn fail " + e1.getMessage());
......
......@@ -17,7 +17,7 @@ public enum CommTopic {
* 通道告警模拟
*/
AISLE_DEVICE("bank/aisle/alarm"),
/**
* 自建系统ping
*/
......
......@@ -4,8 +4,7 @@ import java.util.List;
import java.util.Map;
import com.yeejoin.amos.spc.core.util.StringUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.log4j.Logger;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,10 +27,15 @@ import com.yeejoin.amos.spc.business.dao.mapper.EquipmentMapper;
@Component
public class DeviceListener extends EmqxListener implements InitializingBean {
private final Logger logger = LogManager.getLogger(DeviceListener.class);
private static final Logger logger = Logger.getLogger(DeviceListener.class);
private static ObjectMapper mapper = new ObjectMapper();
//临界温度
private static final double CRITICAL_TEMPERATURE = 35;
@Autowired
private EmqKeeper emqKeeper;
......@@ -77,6 +81,7 @@ public class DeviceListener extends EmqxListener implements InitializingBean {
//logger.info("----shidumqtt received sucess",parseObject);
System.out.println("----shidumqtt received sucess :"+ parseObject);
Long eqpId = parseObject.getLong("eqpId");
String eqpName = parseObject.getString("eqpName");
JSONArray jsonArray = parseObject.getJSONArray("metricDatas");
if (ObjectUtils.isEmpty(jsonArray)) {
return;
......@@ -87,8 +92,8 @@ public class DeviceListener extends EmqxListener implements InitializingBean {
if (!StringUtil.isNotEmpty(string)) {
return;
}
logger.error("---------shudu--string",string);
System.out.println("----shidumqtt chuli recording : "+ string);
logger.error("---------shudu--string"+ string);
System.out.println("----shidumqtt chuli recording : " + string);
//{"describe":"A中心机房-机房温湿度监测-温度过高报警-报警值:35℃","temperatureAlarm":"正常","humidityAlarm":"正常"}
JSONObject metricJson = JSONObject.parseObject(string);
for (Map.Entry entry : metricJson.entrySet()) {
......@@ -102,25 +107,31 @@ public class DeviceListener extends EmqxListener implements InitializingBean {
Long equipmentsPointId = queryEquipmentPoint.getId();
System.out.println("----shudu equipmentsPointId : "+ equipmentsPointId);
List<Long> riskFactorId = equipmentMapper.judgeEquipmentExists(equipmentsPointId);
if ("35".equals(statusName)) {
Integer value = DevicePointEnum.getValue("异常");
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
} else {
Integer value = DevicePointEnum.getValue("正常");
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
}
Integer value = 0;
// if (Double.valueOf(statusName) >= CRITICAL_TEMPERATURE) {
// value = DevicePointEnum.getValue("异常");
// equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
// } else {
// value = DevicePointEnum.getValue("正常");
// equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
// }
System.out.println("----shudu riskFactorId : "+ riskFactorId);
for (int j = 0; j < riskFactorId.size(); j++) {
try {
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j));
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j),eqpName,value);
System.out.println("----udpate riskFactor sucess");
} catch (InnerInvokException e1) {
logger.error("update rpn fail " + e1.getMessage());
}
}
}
if (remark.equals("temperatureAlarm") || remark.equals("humidityAlarm")) {
if ("告警".equals(statusName)||"异常".equals(statusName)||"正常".equals(statusName)) {
System.out.println("----start chuli device temperatureAlarm : "+ remark);
EquipmentQualityVo queryEquipmentPoint = equipmentMapper.queryEquipmentPoint(eqpId, remark);
System.out.println("----update device queryEquipmentPoint :"+ queryEquipmentPoint);
......@@ -135,7 +146,7 @@ public class DeviceListener extends EmqxListener implements InitializingBean {
try {
for (int j = 0; j < riskFactorId.size(); j++) {
System.out.println("----shudu riskFactorId : "+ riskFactorId);
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j));
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j),eqpName,value);
System.out.println("----udpate riskFactor sucess");
}
} catch (InnerInvokException e1) {
......@@ -144,11 +155,9 @@ public class DeviceListener extends EmqxListener implements InitializingBean {
}else {
System.out.println("----update device state fail : "+ riskFactorId);
}
}
}
}
});
} catch (Exception e) {
......
......@@ -3,34 +3,84 @@ package com.yeejoin.amos.bank.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.bank.dao.BankInfoDao;
import com.yeejoin.amos.bank.entity.BankInfo;
import com.yeejoin.amos.bank.TopographyNode;
import com.yeejoin.amos.bank.common.enums.AlarmPointTypeEnum;
import com.yeejoin.amos.bank.common.enums.DevicePointEnum;
import com.yeejoin.amos.bank.common.enums.DeviceStatusEnum;
import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.dao.mapper.AlarmMapper;
import com.yeejoin.amos.bank.dao.mapper.BankInfoMapper;
import com.yeejoin.amos.bank.dao.repository.IAlarmRepository;
import com.yeejoin.amos.bank.entity.EquipmentQualityVo;
import com.yeejoin.amos.bank.remote.AmosWsService;
import com.yeejoin.amos.bank.remote.client.RiskModelRemoteClient;
import com.yeejoin.amos.bank.service.IAlarmPointService;
import com.yeejoin.amos.bank.service.IAlarmService;
import com.yeejoin.amos.bank.utils.DateTimeKit;
import com.yeejoin.amos.bank.utils.HttpUtil;
import com.yeejoin.amos.bank.utils.JsonUtil;
import com.yeejoin.amos.bank.webSocket.AmosWsClient;
import com.yeejoin.amos.bank.webSocket.WebsocketParam;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.spc.business.dao.mapper.EquipmentMapper;
import com.yeejoin.amos.spc.business.remote.RemoteWebSocketServer;
import com.yeejoin.amos.spc.core.util.StringUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener;
import org.apache.log4j.Logger;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import static com.yeejoin.amos.bank.constants.AlarmConstant.*;
/**
* @Author: Xing Lei
* @Description: 设备监听
* @Date: 2020-05-25 16:23
*/
@Component
public class EquipmentListener extends EmqxListener implements InitializingBean {
private final Logger logger = LogManager.getLogger(EquipmentListener.class);
private static final Logger logger = Logger.getLogger(EquipmentListener.class);
@Autowired
private EmqKeeper emqKeeper;
@Autowired
private BankInfoDao bankInfoDao;
private BankInfoMapper bankInfoMapper;
@Autowired
private AmosWsService amosWsService;
@Autowired
EquipmentMapper equipmentMapper;
@Autowired
private AmosWsClient client;
RiskModelRemoteClient riskModelRemoteClient;
@Autowired
private RemoteWebSocketServer webSocketServer;
@Autowired
private IAlarmPointService alarmPointService;
@Autowired
private IAlarmService alarmService;
@Autowired
private IAlarmRepository iAlarmDao;
@Autowired
private AlarmMapper alarmMapper;
/**
* 监听主题
......@@ -48,7 +98,6 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
blueprintMsgtransfer(mqttMessage);
}
/**
* 消息处理
*
......@@ -57,30 +106,110 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
private void blueprintMsgtransfer(MqttMessage mqttMessage) {
try {
String jsonStr = new String(mqttMessage.getPayload());
logger.error(">>>>>>>>>>>>>>>>>jsonStr", jsonStr);
JSONObject parseObject = JSON.parseObject(jsonStr);
Long eqpId = parseObject.getLong("eqpId");
JSONArray jsonArray = parseObject.getJSONArray("metricDatas");
logger.debug(">>>>>>>>>>>>>>>>>jsonStr" + jsonStr);
JSONArray jsonArray = JSON.parseObject(jsonStr).getJSONArray("metricDatas");
if (ObjectUtils.isEmpty(jsonArray)) {
return;
}
jsonArray.forEach(e -> {
JSONObject object = (JSONObject) e;
Long eqpId = object.getLong("eqpId");
String string = object.getString("metricJson");
if (!StringUtil.isNotEmpty(string)) {
return;
}
logger.error(">>>>>>>>>>>>>>>>>string", string);
logger.debug(">>>>>>>>>>>>>>>>>string" + string);
JSONObject metricJson = JSONObject.parseObject(string);
String communication = metricJson.get("communication").toString();
int status = communication.equals("正常") ? 0 : 1;
BankInfo bankInfo = bankInfoDao.findBySourceId(eqpId);
if (status != bankInfo.getStatus()) {
bankInfoDao.updateBySourceId(status, eqpId);
pushAisleAlarm();
String sourceIdStatus = bankInfoMapper.findBySourceId(eqpId);
if (!ObjectUtils.isEmpty(sourceIdStatus) && status != Integer.valueOf(sourceIdStatus).intValue()) {
bankInfoMapper.updateBySourceId(status, eqpId);
Map<String, Object> resultMap = bankInfoMapper.selectBankInfoBySourceId(eqpId);
resultMap.put("eqpId", eqpId);
amosWsService.pushAlarmPoint("aisleAlarm", resultMap);
logger.info("=======aisle状态有变化=====");
}
});
//告警处理
handleAlarmData(jsonStr);
} catch (Exception e) {
logger.error("消息流转报错.");
logger.error(e.getMessage(), e);
e.printStackTrace();
}
}
public void handleAlarmData(String jsonStr) {
try {
logger.info("start handle ip equipment alarm..");
JSONObject parseObject = JSON.parseObject(jsonStr);
Long eqpId = parseObject.getLong("eqpId");
JSONArray jsonArray = parseObject.getJSONArray("metricDatas");
JSONArray eqpConfigMap = parseObject.getJSONArray("eqpConfigMap");
// 获取ip
String ipAddress = getEqpConfigMapValueByKey(eqpConfigMap, "IP");
// 所属楼层
String lou = getEqpConfigMapValueByKey(eqpConfigMap, "所属楼层");
// 三维位置
String sanwei = getEqpConfigMapValueByKey(eqpConfigMap, "三维");
// 资源ID
String sourceId = getEqpConfigMapValueByKey(eqpConfigMap, "设备ID");
String eqpName = parseObject.getString("eqpName");
// orgcode
String orgCode = parseObject.getString("orgCode");
String authOrg = parseObject.getString("authOrg");
if (ObjectUtils.isEmpty(jsonArray)) {
return;
}
// 告警信息
String metricKey = "";
// 默认状态为正常
Object communication = JSONObject.parseObject(((JSONObject) jsonArray.get(0)).getString("metricJson")).get("communication");
int statusByName = !ObjectUtils.isEmpty(communication) && communication.equals("异常") ? 1 : 0;
for (Object e : jsonArray) {
JSONObject object = (JSONObject) e;
String string = object.getString("metricJson");
metricKey = object.getString("metricKey");
if (!StringUtil.isNotEmpty(string)) {
return;
}
logger.debug("---------ip equipment--string" + string);
System.out.println("----ip equipment chuli recording : " + string);
// {"describe":"状态","communication":"异常"}
JSONObject metricJson = JSONObject.parseObject(string);
for (Map.Entry entry : metricJson.entrySet()) {
// 指标名
System.out.println("----start chuli ip equipment state : " + entry);
String remark = entry.getKey().toString();
String statusName = entry.getValue().toString();
if (remark.equals("communication")) {
//拓扑闪烁
topographyAlarm(sourceId, statusByName);
// 触发风险合格不合格
riskAlarm(eqpId, remark, statusName,eqpName);
}
}
}
String authOrgTemp = JsonUtil.arraysToString(JsonUtil.toStringArray(authOrg));
if (!ObjectUtils.isEmpty(authOrgTemp)) {
orgCode = authOrgTemp;
}
// 增加报警(跑马灯,首页)
addAlarmMethod(eqpId, statusByName, eqpName, ipAddress, metricKey, orgCode, sanwei, lou);
// 增建告警记录表
addAlarmRecord(eqpId, metricKey, statusByName, orgCode, ipAddress, eqpName);
} catch (Exception e) {
logger.error("消息流转报错.");
logger.error(e.getMessage(), e);
......@@ -88,11 +217,168 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
}
}
private Integer riskAlarm(Long eqpId, String remark, String statusName,String eqpName) {
int statusByName = 0;
EquipmentQualityVo queryEquipmentPoint = equipmentMapper.queryEquipmentPoint(eqpId, remark);
if (!ObjectUtils.isEmpty(queryEquipmentPoint)) {
Long equipmentsPointId = queryEquipmentPoint.getId();
List<Long> riskFactorId = equipmentMapper.judgeEquipmentExists(equipmentsPointId);
Integer value = 0;
if ("异常".equals(statusName)) {
value = DevicePointEnum.getValue("异常");
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
statusByName = value;
} else {
value = DevicePointEnum.getValue("正常");
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
statusByName = value;
}
// 修改rpn值
for (int j = 0; j < riskFactorId.size(); j++) {
try {
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j),eqpName,value);
System.out.println("----udpate riskFactor sucess");
} catch (InnerInvokException e1) {
logger.error("update rpn fail " + e1.getMessage());
}
}
}
return statusByName;
}
private void topographyAlarm(String sourceId, Integer statusByName) {
// 查询设备绑定的拓扑图标
TopographyNode node = equipmentMapper.queryNodeBySourceId(sourceId);
// 拓扑闪烁
if (null != node && node.getState() != statusByName) {
node.setNumber(statusByName);
node.setState(statusByName);
equipmentMapper.updateNodeState(node);
String nodeDetail = (statusByName == 0 ? "[{\"name\":\"通信状态\",\"value\":\"正常\"}]"
: "[{\"name\":\"通信状态\",\"value\":\"异常\"}]");
equipmentMapper.updateNodeDetail(node.getId(), nodeDetail);
try {
//前端页面刷新告警
webSocketServer.sendMessage("refresh", "technologyIp");
} catch (Exception e1) {
logger.error("webSocketServer send self! ");
}
}
}
/**
* 发送通道刷新标识
* 根据eqpConfigMap中的key获取value
*
* @param eqpConfigMap
* @param key
* @return
*/
public String getEqpConfigMapValueByKey(JSONArray eqpConfigMap, String key) {
// 配置信息
if (null != eqpConfigMap && eqpConfigMap.size() > 0) {
for (Object object : eqpConfigMap) {
JSONObject obj = (JSONObject) object;
String displayName = obj.getString("displayName");
if (displayName.contains(key)) {
String valueStr = obj.getString("valueStr");
return valueStr;
}
}
}
return null;
}
/**
* 增加告警记录
*
* @param eqpId
* @param metricKey
* @param statusByName
* @param orgCode
* @param ipAddress
* @param eqpName
*/
public void pushAisleAlarm() {
WebsocketParam param = new WebsocketParam("aisleAlarm", "aisleRefresh");
client.sendMessage(param);
public void addAlarmRecord(Long eqpId, String metricKey, Integer statusByName, String orgCode, String ipAddress, String eqpName) {
List<Alarm> curAlarmList = alarmService.findByQueryColumn(eqpId + metricKey);
if (curAlarmList != null && curAlarmList.size() > 0) {
Alarm alarm = curAlarmList.get(0);
alarm.setUpdateDate(DateTimeKit.now());
alarm.setOrgCode(orgCode);
if (!ObjectUtils.isEmpty(alarm.getHappenDate())) {
String subtract = DateTimeKit.getSubtract(alarm.getHappenDate());
alarm.setContinueDate(subtract);
}
if (ALARM_ABNORMAL_STATUS.equals(alarm.getCurrentState()) && statusByName != 0) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
} else {
alarm.setClearDate(DateTimeKit.now());
alarm.setClearPerson(CLEAR_PERSON);
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
alarmMapper.updateAlarm(alarm);
} else {
Alarm alarm = new Alarm();
alarm.setSourceId(eqpId + "");
alarm.setAlarmLevel(ALARM_LEVEL);
alarm.setAlarmReason(ALARM_CAUSE);
alarm.setAlarmSourceIp(ipAddress + "");
alarm.setAlarmSourceName(eqpName);
alarm.setAlarmSourceType(ALARM_TYPE);
alarm.setClearDate("");
alarm.setContinueDate("");
alarm.setEnsureDate("");
alarm.setEnsurePerson("");
alarm.setOrgCode(orgCode);
alarm.setHappenDate(DateTimeKit.now());
alarm.setQueryColumn(eqpId + metricKey);
if (statusByName != 0) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
iAlarmDao.save(alarm);
} else {
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
}
}
public void addAlarmMethod(Long eqpId, Integer statusByName, String eqpName, String ipAddress, String metricKey, String orgCode, String sanwei, String lou) throws IOException {
List<AlarmPoint> alarmPoint = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.SB.getCode(),
eqpId);
if (alarmPoint != null && alarmPoint.size() > 0) {
// 存在报警,判断当前状态是不是合格,合格则删除上次的报警
if (statusByName == 0) {
// 删除告警
alarmPointService.delete(alarmPoint.get(0));
amosWsService.pushAlarmPoint("alarmPoint", alarmPointService.findAll());
} else {
AlarmPoint alarmPoint1 = alarmPoint.get(0);
alarmPoint1.setUpdateDate(new Date());
alarmPointService.save(alarmPoint1);
}
return;
} else {
// 不存在,判断当前状态是不是合格,不合格新增,合格不做任何操作
if (statusByName != 0) {
// 增加告警
AlarmPoint alarmPoint1 = new AlarmPoint();
alarmPoint1.setPointId(eqpId);
alarmPoint1.setPointType(AlarmPointTypeEnum.SB.getCode());
alarmPoint1.setUpdateDate(new Date());
alarmPoint1.setIsAlarm(1);// 不合格
alarmPoint1.setContent(eqpName + "-" + ipAddress + "," + ALARM_CAUSE);
alarmPoint1.setCode(orgCode);
alarmPoint1.setPointName(eqpName);
alarmPoint1.setAuthOrg(orgCode);
Map<String, Object> map = new HashMap<>();
map.put("position", sanwei);
map.put("storey", lou);
map.put("levelStr", "impEqu_04");
alarmPoint1.setPointAttrs(JSON.toJSONString(map));
alarmPointService.save(alarmPoint1);
// 推送告警
amosWsService.pushAlarmPoint("alarmPoint", alarmPointService.findAll());
}
}
}
}
package com.yeejoin.amos.bank.config;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.yeejoin.amos.bank.dao.mapper.AlarmMapper;
import com.yeejoin.amos.bank.remote.AmosWsService;
import com.yeejoin.amos.bank.utils.DateTimeKit;
import org.apache.log4j.Logger;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.bank.TopographyNode;
import com.yeejoin.amos.bank.common.enums.AlarmPointTypeEnum;
import com.yeejoin.amos.bank.common.enums.DevicePointEnum;
import com.yeejoin.amos.bank.common.enums.DeviceStatusEnum;
import com.yeejoin.amos.bank.dao.IDeviceRecord;
import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.dao.repository.IAlarmRepository;
import com.yeejoin.amos.bank.dao.repository.ITopographyLineRepository;
import com.yeejoin.amos.bank.entity.DeviceRecord;
import com.yeejoin.amos.bank.entity.EquipmentQualityVo;
import com.yeejoin.amos.bank.remote.client.RiskModelRemoteClient;
import com.yeejoin.amos.bank.service.IAlarmPointService;
import com.yeejoin.amos.bank.service.IAlarmService;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.spc.business.dao.mapper.EquipmentMapper;
import com.yeejoin.amos.spc.business.remote.RemoteWebSocketServer;
import com.yeejoin.amos.spc.core.util.StringUtil;
import liquibase.integration.commandline.Main;
import static com.yeejoin.amos.bank.constants.AlarmConstant.*;
@Component
public class SelfSupportListener extends EmqxListener implements InitializingBean {
private final Logger logger = LogManager.getLogger(SelfSupportListener.class);
private static ObjectMapper mapper = new ObjectMapper();
private static final Logger logger = Logger.getLogger(SelfSupportListener.class);
@Autowired
private EmqKeeper emqKeeper;
private static TaskExecutor taskExecutor;
@Autowired
EquipmentMapper equipmentMapper;
@Autowired
RiskModelRemoteClient riskModelRemoteClient;
@Autowired
IDeviceRecord iDeviceRecord;
@Autowired
ITopographyLineRepository nodeDao;
@Autowired
private RemoteWebSocketServer webSocketServer;
@Autowired
private IAlarmPointService alarmPointService;
@Autowired
private IAlarmService alarmService;
@Autowired
private IAlarmRepository iAlarmDao;
@Autowired
private AmosWsService amosWsService;
@Autowired
private AlarmMapper alarmMapper;
/**
* 监听主题
......@@ -83,82 +103,219 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
private void blueprintMsgtransfer(MqttMessage mqttMessage) {
try {
String jsonStr = new String(mqttMessage.getPayload());
System.out.println("----supprtmqtt received--jsonStr:" + jsonStr);
// logger.error("----supprtmqtt received--jsonStr",jsonStr);
JSONObject parseObject = JSON.parseObject(jsonStr);
//logger.info("----supprtmqtt received sucess",parseObject);
System.out.println("----supprtmqtt received sucess :"+ parseObject);
System.out.println("----supprtmqtt received sucess :" + parseObject);
Long eqpId = parseObject.getLong("eqpId");
JSONArray jsonArray = parseObject.getJSONArray("metricDatas");
JSONArray eqpConfigMap = parseObject.getJSONArray("eqpConfigMap");
//获取ip
String ipAddress = getIpAddress(eqpConfigMap);
//楼层
String lou = getIpAddress1(eqpConfigMap, "所属楼层");
//3为坐标
String sanwei = getIpAddress1(eqpConfigMap, "三维");
String eqpName = parseObject.getString("eqpName");
//orgcode
String orgCode1 = parseObject.getString("orgCode");
if (ObjectUtils.isEmpty(jsonArray)) {
return;
}
jsonArray.forEach(e -> {
//告警信息
String metricKey = "";
//默认状态为正常
int statusByName = 0;
// jsonArray.forEach(e -> {
for (Object e : jsonArray) {
JSONObject object = (JSONObject) e;
String string = object.getString("metricJson");
metricKey = object.getString("metricKey");
if (!StringUtil.isNotEmpty(string)) {
return;
}
logger.error("---------shudu--string",string);
System.out.println("----supprtmqtt chuli recording : "+ string);
logger.debug("---------shudu--string" + string);
System.out.println("----supprtmqtt chuli recording : " + string);
//{\"maxTime\":\"1\",\"packetLossRate\":\"0\",\"avgTime\":\"0\",\"minTime\":\"0\",\"发包数\":\"\",\"icmpPackSize\":\"32\",\"status\":\"通\"}
JSONObject metricJson = JSONObject.parseObject(string);
for (Map.Entry entry : metricJson.entrySet()) {
// 指标名
System.out.println("----start chuli device state : "+ entry);
String remark = entry.getKey().toString();
String statusName = entry.getValue().toString();
if (remark.equals("status")) {
DeviceRecord record = new DeviceRecord();
record.setDeviceId(eqpId);
int statusByName = DeviceStatusEnum.getStatusByName(statusName);
record.setDeviceStatus(statusByName);
record.setMetricData(string);
record.setName(eqpName + " " + ipAddress);
iDeviceRecord.save(record);
TopographyNode node = equipmentMapper.queryNodeBySourceId(String.valueOf(eqpId));
if(null!=node) {
node.setNumber(statusByName);
node.setState(statusByName);
equipmentMapper.updateNodeState(node);
String nodeDetail = (statusByName== 0 ? "[{\"name\":\"通信状态\",\"value\":\"正常\"}]":"[{\"name\":\"通信状态\",\"value\":\"异常\"}]");
equipmentMapper.updateNodeDetail(node.getId(), nodeDetail);
try {
webSocketServer.sendMessage("refresh", "self");
} catch (Exception e1) {
logger.error("webSocketServer send self! ");
}
}
}
}
});
for (Map.Entry entry : metricJson.entrySet()) {
// 指标名
System.out.println("----start chuli device state : " + entry);
String remark = entry.getKey().toString();
String statusName = entry.getValue().toString();
if (remark.equals("status")) {
DeviceRecord record = new DeviceRecord();
record.setDeviceId(eqpId);
statusByName = DeviceStatusEnum.getStatusByName(statusName);
record.setDeviceStatus(statusByName);
record.setMetricData(string);
record.setName(eqpName + " " + ipAddress);
iDeviceRecord.save(record);
TopographyNode node = equipmentMapper.queryNodeBySourceId(String.valueOf(eqpId));
logger.debug("start delete one hour deivceRecord");
equipmentMapper.deleteOneHourNormal();
logger.debug("end delete one hour deivceRecord");
//触发风险合格不合格
EquipmentQualityVo queryEquipmentPoint = equipmentMapper.queryEquipmentPoint(eqpId, remark);
Long equipmentsPointId = queryEquipmentPoint.getId();
List<Long> riskFactorId = equipmentMapper.judgeEquipmentExists(equipmentsPointId);
Integer value = 0;
if ("不通".equals(statusName)) {
value = DevicePointEnum.getValue("异常");
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
} else {
value = DevicePointEnum.getValue("正常");
equipmentMapper.updateEquipmentPointStatus(value, queryEquipmentPoint.getId());
}
//修改rpn值
for (int j = 0; j < riskFactorId.size(); j++) {
try {
riskModelRemoteClient.updateEquipmentAlarmData(riskFactorId.get(j),eqpName,value);
System.out.println("----udpate riskFactor sucess");
} catch (InnerInvokException e1) {
logger.error("update rpn fail " + e1.getMessage());
}
}
if (null != node) {
node.setNumber(statusByName);
node.setState(statusByName);
equipmentMapper.updateNodeState(node);
String nodeDetail = (statusByName == 0 ? "[{\"name\":\"通信状态\",\"value\":\"正常\"}]" : "[{\"name\":\"通信状态\",\"value\":\"异常\"}]");
equipmentMapper.updateNodeDetail(node.getId(), nodeDetail);
try {
webSocketServer.sendMessage("refresh", "self");
} catch (Exception e1) {
logger.error("webSocketServer send self! ");
}
}
}
}
}
;
// });
//增加报警
List<AlarmPoint> alarmPoint = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.SB.getCode(), eqpId);
if (alarmPoint != null && alarmPoint.size() > 0) {
//存在报警,判断当前状态是不是合格,合格则删除上次的报警
if (statusByName == 0) {
//删除告警
alarmPointService.delete(alarmPoint.get(0));
amosWsService.pushAlarmPoint("alarmPoint", alarmPointService.findAll());
} else {
AlarmPoint alarmPoint1 = alarmPoint.get(0);
alarmPoint1.setUpdateDate(new Date());
alarmPointService.save(alarmPoint1);
}
} else {
//不存在,判断当前状态是不是合格,不合格新增,合格不做任何操作
if (statusByName != 0) {
//增加告警
AlarmPoint alarmPoint1 = new AlarmPoint();
alarmPoint1.setPointId(eqpId);
alarmPoint1.setPointType(AlarmPointTypeEnum.SB.getCode());
alarmPoint1.setUpdateDate(new Date());
alarmPoint1.setIsAlarm(1);//不合格
alarmPoint1.setContent(eqpName + "-" + ipAddress + "-" + metricKey);
alarmPoint1.setCode(orgCode1);
alarmPoint1.setPointName(eqpName);
Map<String, Object> map = new HashMap<>();
map.put("position", sanwei);
map.put("storey", lou);
map.put("levelStr", "impEqu_04");
alarmPoint1.setPointAttrs(JSON.toJSONString(map));
alarmPointService.save(alarmPoint1);
//推送告警
amosWsService.pushAlarmPoint("alarmPoint", alarmPointService.findAll());
}
}
//增建告警记录表
//告警记录
List<Alarm> curAlarmList = alarmService.findByQueryColumn(eqpId + metricKey);
if (curAlarmList != null && curAlarmList.size() > 0) {
Alarm alarm = curAlarmList.get(0);
alarm.setUpdateDate(DateTimeKit.now());
if (!ObjectUtils.isEmpty(alarm.getHappenDate())) {
String subtract = DateTimeKit.getSubtract(alarm.getHappenDate());
alarm.setContinueDate(subtract);
}
if (ALARM_ABNORMAL_STATUS.equals(alarm.getCurrentState()) && statusByName != 0) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
} else {
alarm.setClearDate(DateTimeKit.now());
alarm.setClearPerson(CLEAR_PERSON);
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
alarmMapper.updateAlarm(alarm);
} else {
Alarm alarm = new Alarm();
alarm.setSourceId(eqpId + "");
alarm.setAlarmLevel(ALARM_LEVEL);
alarm.setAlarmReason(ALARM_CAUSE);
alarm.setAlarmSourceIp(ipAddress + "");
alarm.setAlarmSourceName(eqpName);
alarm.setAlarmSourceType(ALARM_TYPE);
alarm.setClearDate("");
alarm.setContinueDate("");
alarm.setEnsureDate("");
alarm.setEnsurePerson("");
alarm.setOrgCode(orgCode1);
alarm.setQueryColumn(eqpId + metricKey);
alarm.setHappenDate(DateTimeKit.now());
if (statusByName != 0) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
iAlarmDao.save(alarm);
} else {
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
}
} catch (Exception e) {
logger.error("消息流转报错.");
logger.error(e.getMessage(), e);
e.printStackTrace();
}
}
public String getIpAddress1(JSONArray eqpConfigMap, String name) {
//配置信息
if (null != eqpConfigMap && eqpConfigMap.size() > 0) {
for (Object object : eqpConfigMap) {
JSONObject obj = (JSONObject) object;
String str = obj.getString("displayName");
if (str.contains(name)) {
String ip = obj.getString("valueStr");
return ip;
}
}
}
return null;
}
public String getIpAddress(JSONArray eqpConfigMap) {
//配置信息
if(null != eqpConfigMap && eqpConfigMap.size() > 0) {
for (Object object : eqpConfigMap) {
JSONObject obj = (JSONObject) object;
String str = obj.getString("displayName");
if(str.contains("IP")) {
String ip = obj.getString("valueStr");
return ip;
}
}
//配置信息
if (null != eqpConfigMap && eqpConfigMap.size() > 0) {
for (Object object : eqpConfigMap) {
JSONObject obj = (JSONObject) object;
String str = obj.getString("displayName");
if (str.contains("IP")) {
String ip = obj.getString("valueStr");
return ip;
}
}
}
return null;
}
......
package com.yeejoin.amos.bank.constants;
/**
* @Author: xinglei
* @Description: 告警常量
* @Date: 2020/6/10 15:47
*/
public class AlarmConstant {
public static String ALARM_CAUSE = "设备Ping不通";
public static String CLEAR_PERSON = "自动清除";
public static String ALARM_LEVEL = "紧急告警";
public static String ALARM_TYPE = "IP设备告警";
public static String ALARM_NORMAL_STATUS = "清除";
public static String ALARM_ABNORMAL_STATUS = "告警";
public static String ALARM_DEVICE = "警告告警";
public static String ALARM_DEVICE_TYPE = "动环告警";
public static String ALARM_DEVICE_AlARAM = "监测异常";
public static String ALARM_DEVICE_MAJOR = "重要告警";
}
......@@ -4,9 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -26,13 +26,13 @@ import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.spc.business.controller.BaseController;
import com.yeejoin.amos.spc.business.param.ReginParams;
import io.swagger.annotations.ApiParam;
import io.micrometer.core.instrument.util.StringUtils;
@RestController
@RequestMapping(value = "/rtsp")
public class AddressController extends BaseController{
private final Logger log = LoggerFactory.getLogger(AddressController.class);
private static final Logger log = Logger.getLogger(AddressController.class);
@Autowired
VideoService videoService;
......@@ -105,9 +105,12 @@ public class AddressController extends BaseController{
* @return
*/
@GetMapping(value = "/list", produces = "application/json;charset=UTF-8")
public CommonResponse getVideosList(@RequestParam("floor3d") String floor3d) {
public CommonResponse getVideosList(@RequestParam("floor3d") String floor3d,@RequestParam("orgCode") String orgCode) {
try {
List<Video> findAll = videoService.findAll(floor3d);
if(StringUtils.isEmpty(orgCode)) {
return CommonResponseUtil.success(new ArrayList<Video>());
}
List<Video> findAll = videoService.findAll(floor3d,orgCode);
return CommonResponseUtil.success(findAll);
} catch (Exception e) {
log.error(e.getMessage(), e);
......
package com.yeejoin.amos.bank.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonArray;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.dao.repository.ITopographyNodeDetailRepository;
import com.yeejoin.amos.bank.param.DepartmentBo;
import com.yeejoin.amos.bank.service.IAlarmPointService;
import com.yeejoin.amos.bank.service.IAlarmService;
......@@ -12,16 +16,14 @@ import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.spc.business.controller.BaseController;
import com.yeejoin.amos.spc.business.param.ReginParams;
import com.yeejoin.amos.spc.business.remote.RemoteSecurityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -29,10 +31,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
......@@ -43,8 +44,7 @@ import java.util.stream.Collectors;
@Api(value = "/bank/alarm", tags = {"告警数据API"})
public class AlarmPointController extends BaseController {
private final Logger log = LoggerFactory.getLogger(AlarmPointController.class);
private static final Logger log = Logger.getLogger(AlarmPointController.class);
@Autowired
private IAlarmPointService alarmPointService;
......@@ -54,7 +54,8 @@ public class AlarmPointController extends BaseController {
private IAlarmService iAlarmService;
@Autowired
private RemoteSecurityService remoteSecurityService;
@Autowired
private ITopographyNodeDetailRepository iTopographyNodeDetailDao;
/**
* 获取告警数据
*
......@@ -94,24 +95,24 @@ public class AlarmPointController extends BaseController {
public CommonResponse bankInfoList() {
return CommonResponseUtil.success(autoInspectionService.bankInfoList());
}
@SuppressWarnings("unused")
@ApiOperation(value = "巡检点统计", notes = "首页统计")
@PostMapping(value = "/mobile/getcountxd")
public CommonResponse getcountxd(@RequestBody Map maps) {
//String code=maps.get("code").toString();
//获取当前登录人公司orgcode
ReginParams reginParams =getSelectedOrgInfo();
String code=reginParams.getCompany().getOrgCode();
// List<HashMap<String, Object>> listxd= iAlarmService.getcountxd(code);
List<HashMap<String, Object>> listyc= iAlarmService.getcountyc( code);
// List<HashMap<String, Object>> list2= iAlarmService.getcountnum(code);
List<HashMap<String, Object>> lista =new ArrayList<>();
// for (int i = 0; i < listxd.size(); i++) {
// HashMap<String, Object> map =new HashMap<>();
// for (int j = 0; j < listyc.size(); j++) {
......@@ -122,95 +123,94 @@ public class AlarmPointController extends BaseController {
// z=listxd.get(i).get("num").toString();
// }
// if(listyc.get(j).get("num")!=null){
// y=listyc.get(j).get("num").toString();
// y=listyc.get(j).get("num").toString();
// }
//
//
// map.put("value", z+"/"+y);
// map.put("name", listxd.get(i).get("name"));
// map.put("level",listxd.get(i).get("code"));
//
//
// }
//
//
// }
// lista.add(map);
//
//
// }
int num=0;
for (int i = 0; i < listyc.size(); i++) {
HashMap<String, Object> map =new HashMap<>();
String ynum="0";
if(listyc.get(i).get("num")!=null){
num=num+Integer.valueOf(listyc.get(i).get("num").toString());
num=num+Integer.valueOf(listyc.get(i).get("num").toString());
ynum=listyc.get(i).get("num").toString();
}
}
map.put("value",ynum);
map.put("name", listyc.get(i).get("name"));
map.put("level",listyc.get(i).get("code"));
lista.add(map);
}
Map<String, Object> map =new HashMap<>();
map.put("total",num);
map.put("data", lista);
return CommonResponseUtil.success(map);
}
//巡检点统计
@SuppressWarnings("unused")
@ApiOperation(value = "巡检点统计", notes = "首页统计")
@GetMapping(value = "/mobile/getxuncount")
public CommonResponse getxuncount() {
ReginParams reginParams =getSelectedOrgInfo();
ReginParams reginParams =getSelectedOrgInfo();
String code=reginParams.getCompany().getOrgCode();
List<HashMap<String, Object>> listyc= iAlarmService.getxuncount( code);
xun xu= new xun();
int count=0;
if(listyc!=null&&listyc.size()>0){
for (int i = 0; i < listyc.size(); i++) {
switch(listyc.get(i).get("status")+""){
case "0":
int nu= Integer.valueOf(listyc.get(i).get("num").toString()) ;
count= count+nu;
count= count+nu;
xu.setNotIncluded(nu);
break;
case "1":
int nu1= Integer.valueOf(listyc.get(i).get("num").toString()) ;
count= count+nu1;
count= count+nu1;
xu.setNormal(nu1);
break;
case "2":
case "2":
int nu2= Integer.valueOf(listyc.get(i).get("num").toString()) ;
count= count+nu2;
count= count+nu2;
xu.setAbnormal(nu2);
break;
break;
default:
int nu3= Integer.valueOf(listyc.get(i).get("num").toString()) ;
count= count+nu3;
count= count+nu3;
xu.setMissedDetection(nu3);
break;
}
}
}
}
xu.setCountnum(count);
}
}
return CommonResponseUtil.success(xu);
}
class xun{
int notIncluded;//未纳入巡检;
int normal;//正常;
int abnormal;//异常;
int missedDetection;//漏检;
int countnum;//总数;
int missedDetection;//漏检;
int countnum;//总数;
public int getNotIncluded() {
return notIncluded;
}
......@@ -241,13 +241,13 @@ public class AlarmPointController extends BaseController {
public void setCountnum(int countnum) {
this.countnum = countnum;
}
}
@ApiOperation(value = "获取当前用户所属公司的所有部门", notes = "获取当前用户所属公司的所有部门")
@RequestMapping(value = "/queryDept", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
public CommonResponse queryCurrentCompanyDept() {
......@@ -255,16 +255,16 @@ public class AlarmPointController extends BaseController {
ReginParams reginParams =getSelectedOrgInfo();
Long dep = reginParams.getCompany().getSequenceNbr();
List<DepartmentModel> departmentModels = remoteSecurityService.listDepartmentsByCompanyId(dep);
List<DepartmentBo> departmentBos = ModelToBo(departmentModels);
return CommonResponseUtil.success(departmentBos);
}
/**
* 类型转换 DepartmentModel => DepartmentBo
* @param departmentModels
......@@ -294,8 +294,8 @@ public class AlarmPointController extends BaseController {
);
return departmentBos;
}
private List<DepartmentBo> ModelToBo2(List<LinkedHashMap> departmentModels){
List<DepartmentBo> departmentBos = new ArrayList<>();
departmentModels.forEach(
......@@ -309,19 +309,114 @@ public class AlarmPointController extends BaseController {
departmentBo.setLevel(x.get("level")+"");
departmentBo.setOrgCode(x.get("orgCode")+"");
departmentBo.setParentId(x.get("parentId")+"");
if (x.get("children")!=null) {
List<LinkedHashMap> collect = (List<LinkedHashMap>) x.get("children");
departmentBos.addAll( ModelToBo2(collect));
departmentBos.addAll( ModelToBo2(collect));
}
departmentBos.add(departmentBo);
}
);
return departmentBos;
}
/**
* 获取七天告警数据统计
*
* @return 告警数据
*/
@GetMapping(value = "/statistics", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "七天告警数据统计", notes = "七天告警数据统计")
public CommonResponse getStatisticsAlarms() throws ParseException {
Map<String,Object> result = alarmPointService.getSevenDayscount();
return CommonResponseUtil.success(result);
}
/**
* 首页动环信息展示
*
* @return 告警数据
*/
@GetMapping(value = "/mobile/show", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "首页动环信息展示", notes = "首页动环信息展示")
public CommonResponse getMobileShow() {
List<Map<String,Object>> detailList = iTopographyNodeDetailDao.HomePageDetail();
List<Map<String,String>> changeList = new ArrayList<>();
for (int i = 0; i <detailList.size() ; i++) {
Map<String,String > map = new HashMap<>();
if(StringUtils.isEmpty(detailList.get(i).get("nodeid"))){
break;
}
map.put("nodeid",detailList.get(i).get("nodeid").toString());
map.put("text",detailList.get(i).get("text").toString());
JSONArray array = JSONArray.parseArray(detailList.get(i).get("node_detail").toString());
if(StringUtils.isEmpty(array)){
break;
}
if("3-0025".equals(detailList.get(i).get("nodeid").toString())||"3-0026".equals(detailList.get(i).get("nodeid").toString())){
map.put("area","西安");
for (int j = 0; j <array.size() ; j++) {
JSONObject detail = JSONObject.parseObject(array.get(j).toString());
if(detail.get("name").toString().equals("烟感探测器报警")){
map.put("value",detail.get("value").toString());
}
if(detail.get("name").toString().equals("漏水监测报警")){
map.put("value",detail.get("value").toString());
}
}
}else if("3-0044".equals(detailList.get(i).get("nodeid").toString())||"3-0045".equals(detailList.get(i).get("nodeid").toString())){
map.put("area","咸阳");
for (int j = 0; j <array.size() ; j++) {
JSONObject detail = JSONObject.parseObject(array.get(j).toString());
if(detail.get("name").toString().equals("烟感探测器报警")){
map.put("value",detail.get("value").toString());
}
if(detail.get("name").toString().equals("漏水监测报警")){
map.put("value",detail.get("value").toString());
}
}
}else{
for (int j = 0; j <array.size() ; j++) {
JSONObject detail = JSONObject.parseObject(array.get(j).toString());
if(detail.get("name").toString().equals("温度")||detail.get("name").toString().equals("室内温度")){
map.put("value",detail.get("value").toString());
}
}
}
changeList.add(map);
}
Map<String,Object> result = new HashMap<>();
List<Map<String,String>> QSZXList = new ArrayList<>();
List<Map<String,String>> SBJXList = new ArrayList<>();
List<Map<String,String>> HBList = new ArrayList<>();
List<Map<String,String>> XFJCList = new ArrayList<>();
List<Map<String,String>> LSJCList = new ArrayList<>();
for (int i = 0; i <changeList.size() ; i++) {
if ("1#温湿度".equals(changeList.get(i).get("text")) || "2#温湿度".equals(changeList.get(i).get("text"))) {
QSZXList.add(changeList.get(i));
}
if ("3#温湿度".equals(changeList.get(i).get("text")) || "4#温湿度".equals(changeList.get(i).get("text"))) {
SBJXList.add(changeList.get(i));
}
if ("1温湿度".equals(changeList.get(i).get("text")) || "5温湿度".equals(changeList.get(i).get("text"))) {
HBList.add(changeList.get(i));
}
if ("3-0044".equals(changeList.get(i).get("nodeid")) || "3-0025".equals(changeList.get(i).get("nodeid"))) {
XFJCList.add(changeList.get(i));
}
if ("3-0026".equals(changeList.get(i).get("nodeid")) || "3-0045".equals(changeList.get(i).get("nodeid"))) {
LSJCList.add(changeList.get(i));
}
}
result.put("QSZX",QSZXList);
result.put("SBJ",SBJXList);
result.put("HB",HBList);
result.put("XFJC",XFJCList);
result.put("LSJC",LSJCList);
return CommonResponseUtil.success(result);
}
}
package com.yeejoin.amos.bank.controller;
import java.util.Date;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.service.IAlarmPointService;
......@@ -23,17 +21,17 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/bank/dynamicRingData")
@Api(value = "/bank/dynamicRingData", tags = {"动环数据API"})
public class DynamicRingDataController extends BaseController{
@Autowired
private IDynamicRingDataService dynamicRingDataService;
@GetMapping(value = "/{id}", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "动环数据", notes = "动环数据")
public CommonResponse detail(@ApiParam(value = "动环数据id", required = false) @PathVariable(value = "id")Long id) {
String token = getToken();
return CommonResponseUtil.success(dynamicRingDataService.queryDynamicRingDataById(id,token));
}
@Autowired
private IAlarmPointService alar;
@GetMapping(value = "/test", produces = "application/json;charset=UTF-8")
......@@ -47,4 +45,10 @@ public class DynamicRingDataController extends BaseController{
return CommonResponseUtil.success();
}
@PutMapping (value = "/update", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "动环修改坐标位置", notes = "动环修改坐标位置")
public CommonResponse updatePosition(@ApiParam(value = "动环修改坐标位置", required = true) @RequestBody Map<String,Object> param) {
String result = dynamicRingDataService.updatePosition(param);
return CommonResponseUtil.success(result);
}
}
......@@ -2,7 +2,9 @@ package com.yeejoin.amos.bank.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Sort;
......@@ -14,9 +16,12 @@ import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.bank.entity.DeviceRecord;
import com.yeejoin.amos.bank.entity.EquipmentVo;
import com.yeejoin.amos.bank.param.PointParam;
import com.yeejoin.amos.bank.remote.client.RiskModelRemoteClient;
import com.yeejoin.amos.bank.service.IAlarmService;
import com.yeejoin.amos.bank.service.IEquipmentService;
import com.yeejoin.amos.bank.service.WarnService;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.op.core.common.query.DaoCriteria;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
......@@ -36,6 +41,8 @@ import io.swagger.annotations.ApiParam;
@Api(value = "/bank/equipment", tags = {"设备API"})
public class EquipmentController extends BaseController{
private static final Logger log = Logger.getLogger(EquipmentController.class);
@Autowired
private WarnService warnService;
......@@ -44,6 +51,9 @@ public class EquipmentController extends BaseController{
@Autowired
private IAlarmService iAlarmService;
@Autowired
RiskModelRemoteClient riskModelRemoteClient;
@GetMapping(value = "/detail", produces = "application/json;charset=UTF-8")
......@@ -87,7 +97,9 @@ public class EquipmentController extends BaseController{
@GetMapping(value = "/synchronization", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "同步设备接口", notes = "添加设备接口")
public CommonResponse synDevice() {
log.debug("synchronization deviece");
equipmentService.syncDeviceList();
log.debug("synchronization sucess");
return CommonResponseUtil.success("同步成功");
}
......@@ -103,4 +115,28 @@ public class EquipmentController extends BaseController{
Page selfDevice = equipmentService.queryEquimentRelation(commonPageable,fname);
return CommonResponseUtil.success(selfDevice);
}
@GetMapping(value = "/pointItemEquipment", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "装备指标列表查询", notes = "装备指标列表查询")
public CommonResponse getPointItemEquipment(@RequestParam(value = "factorId", required = false) Long factorId
) throws InnerInvokException {
List<PointParam> handleEquipmentsPointData = equipmentService.handleEquipmentsPointData(factorId);
return CommonResponseUtil.success(handleEquipmentsPointData);
}
@GetMapping(value = "/pointItemPatrol", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "装备指标列表查询", notes = "装备指标列表查询")
public CommonResponse getPointItemPatrol(@RequestParam(value = "factorId", required = false) Long factorId
) throws InnerInvokException {
List<PointParam> handlePatrolPointData = equipmentService.handlePatrolPointData(factorId);
return CommonResponseUtil.success(handlePatrolPointData);
}
@GetMapping(value = "/getPointItemDatas", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "指标列表查询", notes = "指标列表查询")
public CommonResponse getPointItemDatas(@RequestParam(value = "factorId", required = false) Long factorId
) throws InnerInvokException {
Map<String, List> handlePointDatas = equipmentService.handlePointDatas(factorId);
return CommonResponseUtil.success(handlePointDatas);
}
}
package com.yeejoin.amos.bank.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yeejoin.amos.bank.service.InspectionService;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.spc.business.controller.BaseController;
import com.yeejoin.amos.spc.business.param.ReginParams;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 巡检controller
* @author DELL
*
*/
@RestController
@RequestMapping(value = "/bank/inspection")
@Api(value = "/bank/inspection", tags = {"巡检API"})
public class InspectionController extends BaseController{
@Autowired
private InspectionService inspectionService;
@GetMapping(value = "/rightTopChart", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查询主页右上角图片", notes = "查询主页右上角图片")
public CommonResponse rightTopChartData(@ApiParam(value = "公司id", required = false)String companyId) {
// if(companyId == null || "".equals(companyId)) {
// ReginParams reginParams = getSelectedOrgInfo();
// companyId = getCompanyId(reginParams);
//
// return CommonResponseUtil.failure();
// }
ReginParams reginParams = getSelectedOrgInfo();
companyId = getCompanyId(reginParams);
return CommonResponseUtil.success(inspectionService.queryRightTopChart(companyId));
}
@GetMapping(value = "/bottomTable", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查询主页右下角table", notes = "查询主页右下角table")
public CommonResponse bottomTableData() {
return CommonResponseUtil.success(inspectionService.queryBottomTableData());
}
@ApiOperation(value = "巡检计划执行情况列表", notes = "巡检计划执行情况列表")
@GetMapping(value = "/patrolPlanList")
public CommonResponse patrolPlanList(@ApiParam(value = "当前条数", required = true) @RequestParam Integer start,
@ApiParam(value = "到条数", required = true) @RequestParam Integer end,
@ApiParam(value = "部门编号") @RequestParam(required = false) String deptId,
@ApiParam(value = "部门编号") @RequestParam(required = false) String deptName) {
try {
return CommonResponseUtil.success(inspectionService.queryRightTopChartlist(start, end, deptId,deptName));
} catch (Exception e) {
return CommonResponseUtil.failure("查询异常");
}
}
}
package com.yeejoin.amos.bank.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yeejoin.amos.bank.service.InspectionService;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.spc.business.controller.BaseController;
import com.yeejoin.amos.spc.business.param.ReginParams;
import com.yeejoin.amos.spc.business.remote.RemoteSecurityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 巡检controller
* @author DELL
*
*/
@RestController
@RequestMapping(value = "/bank/inspection")
@Api(value = "/bank/inspection", tags = {"巡检API"})
public class InspectionController extends BaseController{
@Autowired
private InspectionService inspectionService;
@Autowired
RemoteSecurityService remoteSecurityService;
@GetMapping(value = "/rightTopChart", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查询主页右上角图片", notes = "查询主页右上角图片")
public CommonResponse rightTopChartData(@ApiParam(value = "公司id", required = false)String companyId) {
// if(companyId == null || "".equals(companyId)) {
// ReginParams reginParams = getSelectedOrgInfo();
// companyId = getCompanyId(reginParams);
//
// return CommonResponseUtil.failure();
// }
ReginParams reginParams = getSelectedOrgInfo();
companyId = getCompanyId(reginParams);
return CommonResponseUtil.success(inspectionService.queryRightTopChart(companyId));
}
@GetMapping(value = "/bottomTable", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查询主页右下角table", notes = "查询主页右下角table")
public CommonResponse bottomTableData() {
return CommonResponseUtil.success(inspectionService.queryBottomTableData());
}
@ApiOperation(value = "巡检计划执行情况列表", notes = "巡检计划执行情况列表")
@GetMapping(value = "/patrolPlanList")
public CommonResponse patrolPlanList(@ApiParam(value = "当前条数", required = true) @RequestParam Integer start,
@ApiParam(value = "到条数", required = true) @RequestParam Integer end,
@ApiParam(value = "部门编号") @RequestParam(required = false) String deptId,
@ApiParam(value = "部门编号") @RequestParam(required = false) String deptName) {
try {
return CommonResponseUtil.success(inspectionService.queryRightTopChartlist(start, end, deptId,deptName));
} catch (Exception e) {
return CommonResponseUtil.failure("查询异常");
}
}
@GetMapping(value = "/getporint", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "点的状态", notes = "点的状态")
public CommonResponse getporint(@ApiParam(value = "公司id", required = false)String pointid) {
java.util.HashMap<String, Object> map=inspectionService.getporint(pointid);
List<DictionarieValueModel> listDictionaryByDictCode = remoteSecurityService.listDictionaryByDictCode("BANK_ORG");
String xian="";
String xianyang="";
StringBuffer sb = new StringBuffer();
for (DictionarieValueModel e : listDictionaryByDictCode) {
if("xian".equals(e.getDictDataKey())) {
xian=e.getDictDataValue();
}
if("xianyang".equals(e.getDictDataKey())) {
xianyang=e.getDictDataValue();
}
}
java.util.HashMap<String, Object> map1 =new java.util.HashMap<>();
if(map!=null){
boolean status= (boolean) map.get("status");
String code= map.get("code").toString();
if(status){
map1.put("pointtype", true);
}else{
map1.put("pointtype",false );
}
if (code.indexOf(xian)!=-1){
map1.put("cstype","xian" );
}
if (code.indexOf(xianyang)!=-1){
map1.put("cstype","xianyang" );
}
}else{
java.util.HashMap<String, Object> mapp=inspectionService.getporintdate(pointid);
if(mapp!=null){
String code= mapp.get("code").toString();
map1.put("pointtype",false );
if (code.indexOf(xian)!=-1){
map1.put("cstype","xian" );
}else if (code.indexOf(xianyang)!=-1){
map1.put("cstype","xianyang" );
}
}
}
return CommonResponseUtil.success(map1);
}
}
package com.yeejoin.amos.bank.controller;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -28,7 +26,7 @@ import io.swagger.annotations.ApiOperation;
@Api(value = "/bank", tags = {"新平台请求数据API测试"})
public class TestController extends BaseController {
private final Logger log = LoggerFactory.getLogger(TestController.class);
private static final Logger log = Logger.getLogger(TestController.class);
// @Autowired
// RemoteSecurityService service;
......
......@@ -5,13 +5,7 @@ import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -381,8 +375,64 @@ public class TopographyController extends BaseController {
topographyService.saveNodes(topographyService.getSelfOrgCode(),nodeData);
}
return CommonResponseUtil.success();
}
/**
*查询-树
*
* @param type 类型
* @return
*/
@GetMapping(value = "/treeByType/{type}", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查询-树", notes = "查询-树")
public CommonResponse treeByType(@ApiParam(value = "查询类型:1-网络拓扑图;2-PAMS;3-动环监控;4-设备监控;5-自建系统;6-金融城域网;7-虚拟云平台监控", required = true)
@PathVariable int type) {
//获取当前登录人的公司code
ReginParams reginParams =getSelectedOrgInfo();
List<TopographyTreeDTO> list = topographyService.getTree("%#"+reginParams.getCompany().getOrgCode(), type);
return CommonResponseUtil.success(list);
}
/**
* 查询拓扑图
*
* @param type 节点类型
* @return
*/
@GetMapping(value = "/getNodesByTypeAndTreeId/{type}/{treeId}", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "拓扑图", notes = "拓扑图")
public CommonResponse getNodesByTypeAndTreeId(@ApiParam(value = "类型", required = true) @PathVariable int type,
@ApiParam(value = "树id", required = false) @PathVariable String treeId) {
//获取当前登录人的公司code
ReginParams reginParams =getSelectedOrgInfo();
List<TopographyNodeDTO> nodes = topographyService.getNodes("%#" + reginParams.getCompany().getOrgCode(),treeId,type);
List<TopographyLineDTO> links = topographyService.getLinks("%#" + reginParams.getCompany().getOrgCode(),treeId,type);
Map<String,Object> results = new HashMap<>();
results.put("nodeData", nodes);
results.put("linkData", links);
return CommonResponseUtil.success(results);
}
/**
* 保存自建系统
*
* @param type 节点类型
* @return
*/
@PostMapping(value = "/saveNodesByType/{type}", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "保存动环拓扑图", notes = "保存动环拓扑图")
public CommonResponse saveNodesByType(@ApiParam(value = "类型", required = true) @PathVariable int type,
@ApiParam(value = "", required = false) @RequestBody JSONObject topography) {
JSONArray nodes = topography.getJSONArray("nodeData");
List<TopographyNodeDTO> nodeData = JSON.parseArray(JSON.toJSONString(nodes), TopographyNodeDTO.class);
//获取当前登录人的公司code
ReginParams reginParams =getSelectedOrgInfo();
if(reginParams.getDepartment()!=null){
topographyService.saveNodes(topographyService.getSelfOrgCode(),nodeData);
}else{
topographyService.saveNodes(topographyService.getSelfOrgCode(),nodeData);
}
return CommonResponseUtil.success();
}
}
......@@ -2,8 +2,7 @@ package com.yeejoin.amos.bank.controller;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -28,7 +27,7 @@ import com.yeejoin.amos.op.core.util.CommonResponseUtil;
@RequestMapping(value = "/video")
public class VideoController {
private final Logger log = LoggerFactory.getLogger(VideoController.class);
private static final Logger log = Logger.getLogger(VideoController.class);
@Autowired
VideoService videoService;
......
package com.yeejoin.amos.bank.dao.mapper;
import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.spc.business.dao.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
public interface AlarmMapper extends BaseMapper {
void updateAlarm(Alarm alarm);
}
package com.yeejoin.amos.bank.dao.mapper;
import com.yeejoin.amos.bank.dto.BankInfoDTO;
import com.yeejoin.amos.spc.business.dao.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @Author: xinglei
* @Description:
* @Date: 2020/6/3 15:59
*/
public interface BankInfoMapper extends BaseMapper {
List<BankInfoDTO> selectBankInfoList();
String findBySourceId(@Param("sourceId")Long sourceId);
void updateBySourceId(@Param("status") int status, @Param("sourceId")Long sourceId);
/**
* 跟着设备ID查询当前银行状态
* @param sourceId
* @return
*/
Map<String, Object> selectBankInfoBySourceId(@Param("sourceId")Long sourceId);
}
......@@ -19,7 +19,7 @@ public interface VideoMapper {
* @param floor3d
* @return
*/
public List<Video> findAll(@Param("floor3d") String floor3d);
public List<Video> findAll(@Param("floor3d") String floor3d,@Param("orgCode")String orgCode);
List<Video> selectByParentId(@Param("orgCode")String orgCode);
......
......@@ -19,4 +19,7 @@ public interface IAlarmPointRepository extends IBaseRepository<AlarmPoint, Strin
@Query(value="select * from p_alarm_point where point_type IN ('4','5') and point_id =?1 and content = ?2 ",nativeQuery=true )
public List<AlarmPoint> selectPointTypeAndPointId(String pointId,String content);
@Query(value="select * from p_alarm_point where point_type =?1 and point_id =?2 and cpbl_id =?3 ",nativeQuery=true )
public List<AlarmPoint> selectPointTypeAndPointId(String type, Long pointId,Long cpblId);
}
package com.yeejoin.amos.bank.dao.repository;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Map;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.op.core.jpa.IBaseRepository;
import org.springframework.transaction.annotation.Transactional;
@Repository("iAlarmDao")
public interface IAlarmRepository extends IBaseRepository<Alarm, String> {
@Query(value="select * from spc_alarm where query_column =?1 AND current_state in ('未确认未清除','已确认未清除','异常')",nativeQuery=true )
public List<Alarm> selectbyqueryColumn(String type);
@Query(value="select COUNT(*) value,spc_alarm.alarm_level name from spc_alarm where spc_alarm.org_code like CONCAT(?1,'%' ) and spc_alarm.current_state in ('未确认未清除','已确认未清除','异常') GROUP BY spc_alarm.alarm_level ",nativeQuery=true )
public List<Object[]> countnum(String code);
@Query(value="select * from spc_alarm where query_column =?1 AND current_state in ('未确认未清除','已确认未清除','异常','告警')",nativeQuery=true )
public List<Alarm> selectByQueryColumn(String type);
@Query(value="select COUNT(*) value,sa.alarm_level name, sa.org_code orgCode from spc_alarm sa where sa.org_code like CONCAT('%', ?1, '%' ) and sa.current_state in ('未确认未清除','已确认未清除','异常','告警') GROUP BY sa.alarm_level",nativeQuery=true )
public List<Map<String, Object>> countnum(String code);
@Query(value="select * from spc_alarm where source_id =?1 AND current_state in ('未确认未清除','已确认未清除','异常','告警')",nativeQuery=true )
public List<Alarm> selectByQuerySourceId(String sourceId);
}
package com.yeejoin.amos.bank.dao.repository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import com.yeejoin.amos.bank.TopographyNodeDetail;
import com.yeejoin.amos.op.core.jpa.IBaseRepository;
import java.util.List;
import java.util.Map;
@Repository("iTopographyNodeDetailDao")
public interface ITopographyNodeDetailRepository extends IBaseRepository<TopographyNodeDetail, String> {
TopographyNodeDetail findByNodeid(String nodeid);
@Query(value="SELECT\n" +
"\tb.nodeid,b.node_detail,a.state,a.text,a.treeid \n" +
"FROM\n" +
"( SELECT id ,state ,text,treeid FROM b_topography_node WHERE text IN ( '1#温湿度', '2#温湿度', '3#温湿度', '4#温湿度', '1温湿度', '5温湿度', '消防监测', '漏水监测' ) ) AS a\n" +
"\tLEFT JOIN b_topography_node_detail b ON a.id = b.nodeid",nativeQuery=true )
List<Map<String,Object>> HomePageDetail();
}
package com.yeejoin.amos.bank.dao.repository;
import java.util.List;
import java.util.Map;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
......@@ -10,12 +11,12 @@ import com.yeejoin.amos.op.core.jpa.IBaseRepository;
@Repository("iTopographyNodeDao")
public interface ITopographyNodeRepository extends IBaseRepository<TopographyNode, String> {
@Query(value="select * from b_topography_node where org_code like concat(?1,'%') and treeid =?2 and type =?3",nativeQuery=true )
List<TopographyNode> findByOrgCodeAndTreeidAndType(String orgcode,String treeid, int type);
@Query(value="select * from b_topography_node where org_code like concat(?1,'%') and type =?2",nativeQuery=true )
List<TopographyNode> findByOrgCodeAndType(String orgcode,int type);
TopographyNode findBySourceId(String sourceId);
TopographyNode findBySourceIdAndTreeid(String fromSourceId, String treeId);
......@@ -25,4 +26,7 @@ public interface ITopographyNodeRepository extends IBaseRepository<TopographyNod
TopographyNode findBySourceIdAndTreeidAndGroup(String toSourceId, String treeIdStr, String groupKey);
TopographyNode findBySourceIdAndType(String sourceId, int type);
@Query(value = "SELECT node.id,detail.node_detail FROM b_topography_node node LEFT JOIN b_topography_node_detail detail ON node.id = detail.nodeid WHERE node.source_id =?1", nativeQuery=true )
Map<String,Object> findNodeDetailBySourceId(String sourceId);
}
package com.yeejoin.amos.bank.param;
import java.io.Serializable;
/**
* 巡检点、设备指标项情况
* @author DELL
*
*/
public class PointParam implements Serializable {
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
//告警类型 patrol巡检 device设备
private String type;
//巡检点名称或者设备名称
private String name;
//检查项名称
private String value;
//qualified合格 unqualified不合格
private String identification;
private Long factorId;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getIdentification() {
return identification;
}
public void setIdentification(String identification) {
this.identification = identification;
}
public Long getFactorId() {
return factorId;
}
public void setFactorId(Long factorId) {
this.factorId = factorId;
}
}
package com.yeejoin.amos.bank.remote;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.bank.webSocket.AmosWsClient;
import com.yeejoin.amos.bank.webSocket.WebsocketParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author: xinglei
* @Description:
* @Date: 2020/6/11 8:56
*/
@Service
public class AmosWsService {
@Autowired
private AmosWsClient client;
/**
* 发送Websocket
*/
public void pushAlarmPoint(String WS, Object object) {
WebsocketParam param = new WebsocketParam(WS, JSON.toJSONString(object));
client.sendMessage(param);
}
}
......@@ -79,4 +79,14 @@ public class RemoteDeviceService {
}
return null;
}
public String updatePosition(String jsonDate) {
try {
Object result = deviceRemoteClient.updatePosition(jsonDate);
return JSON.toJSONString(result);
} catch (InnerInvokException e) {
log.error("updatePosition fail " + e.getMessage());
}
return null;
}
}
......@@ -41,7 +41,7 @@ public interface DeviceRemoteClient {
*/
@RequestMapping(value = "/xml/alarm", method = RequestMethod.GET)
Object sendAlarm(@RequestParam(value = "xmlData", required = false) String xmlData) throws InnerInvokException;
/**
* 查询设备详情列表以及指标
* @param equipmentId
......@@ -50,5 +50,9 @@ public interface DeviceRemoteClient {
*/
@RequestMapping(value = "/device/cpbl/attr", method = RequestMethod.GET)
CommonResponse listDeviceAndDeviceCpblAttr(@RequestParam(value = "equipmentId",required = false) Long equipmentId) throws InnerInvokException;
/**
* 修改动环设备坐标点(暂时不启用)
*/
@RequestMapping(value = "/xml/updatePosition", method = RequestMethod.POST)
Object updatePosition(@RequestParam(value = "xmlData", required = false) String xmlData) throws InnerInvokException;
}
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.bank.remote.client;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -12,12 +13,12 @@ import org.springframework.web.bind.annotation.RequestMethod;
* @Description:
* @Date: 2020-02-18 14:52
*/
@FeignClient(name = "YEEAMOSPATROL-237")
@FeignClient(name = "${gateway.fegin.name}")
public interface PatrolRemoteClient {
/**
* 发送告警信息
*/
@RequestMapping(value = "api/msgSubscribe/alarmNotification", method = RequestMethod.POST, consumes="application/json" )
@RequestMapping(value = "api/msgSubscribe/alarmNotification", method = RequestMethod.POST, consumes= MediaType.APPLICATION_JSON_UTF8_VALUE)
CommonResponse sendAlarmNotification(@RequestBody String input) throws InnerInvokException;
}
......@@ -3,7 +3,7 @@ package com.yeejoin.amos.bank.remote.client;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -13,12 +13,27 @@ import org.springframework.web.bind.annotation.RequestParam;
* @author DELL
*
*/
@FeignClient(name = "${Risk.fegin.name}")
@FeignClient(name = "${gateway.fegin.name}")
public interface RiskModelRemoteClient {
/**
* 修改rpn值
* 修改rpn值
*/
@RequestMapping(value = "api/risksource/update/fireqeuiment/sod", method = RequestMethod.GET, consumes= MediaType.APPLICATION_JSON_UTF8_VALUE)
CommonResponse updateEquipmentAlarmData(@RequestParam(value = "riskFactorID") Long riskFactorID,
@RequestParam("equipmentName") String equipmentName,@RequestParam("state") Integer state)
throws InnerInvokException;
/**
* 根据风险因素id查询巡检点和指标项目列表
*/
@RequestMapping(value = "/api/risksource/getEquiments/points", method = RequestMethod.GET, consumes= MediaType.APPLICATION_JSON_UTF8_VALUE)
CommonResponse listPointInputitemByFactorId(@RequestParam(value = "factorId") Long factorId) throws InnerInvokException;
/**
* 根据风险因素id查询设备和指标项列表
*/
@RequestMapping(value = "api/risksource/update/fireqeuiment/sod", method = RequestMethod.GET, consumes="application/json" )
CommonResponse updateEquipmentAlarmData(@RequestParam(value = "riskFactorID") Long riskFactorID) throws InnerInvokException;
@RequestMapping(value = "/api/risksource/getFactorBindPoints", method = RequestMethod.GET, consumes= MediaType.APPLICATION_JSON_UTF8_VALUE)
CommonResponse queryBoundByFactroId(@RequestParam(value = "factorId") Long factorId) throws InnerInvokException;
}
package com.yeejoin.amos.bank.service;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.op.core.jpa.IGenericManager;
public interface IAlarmPointService extends IGenericManager<AlarmPoint, String> {
public void saveItem(AlarmPoint alarmPoint);
public void deleteItem(List<AlarmPoint> alarmPointList);
public void deleteItems(List<AlarmPoint> alarmPointList);
public List<AlarmPoint> selectPointTypeAndPointId(String type,Long pointId);
public void alarmTigger(String xmlData,String token);
public List<AlarmPoint> queryAutoInspection(String pointId, String content);
public Map<String,Object> getSevenDayscount() throws ParseException;
public List<AlarmPoint> selectPointTypeAndPointId(String type,Long pointId,Long cpblId);
}
......@@ -12,18 +12,20 @@ import com.yeejoin.amos.op.core.jpa.IGenericManager;
import com.yeejoin.amos.spc.core.common.request.CommonPageable;
public interface IAlarmService extends IGenericManager<Alarm, String> {
public Page<Alarm> list(List<DaoCriteria> criterias,CommonPageable commonPageable);
public void saveBatch(List<Alarm> alarms);
public List<Alarm> findByQueryColumn(String queryColumn);
public List<Object[]> countnum(String code);
public List<Map<String, Object>> countnum(String code);
List<HashMap<String, Object>> getcountxd(String code);
List<HashMap<String, Object>> getcountnum(String code);
List<HashMap<String, Object>> getcountyc( String code);
List<HashMap<String, Object>> getxuncount( String code);
public List<Alarm> selectByQuerySourceId(String sourceId);
}
package com.yeejoin.amos.bank.service;
import java.util.ArrayList;
import java.util.Map;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.spc.core.common.response.Node3DVoResponse;
......@@ -13,6 +14,7 @@ public interface IDynamicRingDataService {
JSONArray queryDynamicRingDataById(Long id,String token);
ArrayList<Node3DVoResponse> query3dData(String token);
ArrayList<Node3DVoResponse> query3dData(String token,String orgCode);
String updatePosition (Map<String,Object> param);
}
......@@ -2,11 +2,14 @@ package com.yeejoin.amos.bank.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Page;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.bank.entity.DeviceRecord;
import com.yeejoin.amos.bank.param.PointParam;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.spc.core.common.request.CommonPageable;
import com.yeejoin.amos.spc.core.common.response.Node3DVoResponse;
......@@ -31,5 +34,10 @@ public interface IEquipmentService {
List<DeviceRecord> selfDevice();
Page queryEquimentRelation(CommonPageable commonPageable, String fname);
List<PointParam> handleEquipmentsPointData (Long factorId) throws InnerInvokException;
List<PointParam> handlePatrolPointData(Long factorId) throws InnerInvokException;
Map<String, List> handlePointDatas(Long factorId) throws InnerInvokException;
}
package com.yeejoin.amos.bank.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.yeejoin.amos.bank.entity.planTaskReturn;
/*
* 巡检service
*/
public interface InspectionService {
List<HashMap<String, Object>> queryRightTopChart(String companyId);
HashMap<String, Object> queryBottomTableData();
Map<String, Object> queryRightTopChartlist(Integer pageIndex, Integer pageSize, String deptId,String deptName);
}
package com.yeejoin.amos.bank.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.yeejoin.amos.bank.entity.planTaskReturn;
/*
* 巡检service
*/
public interface InspectionService {
List<HashMap<String, Object>> queryRightTopChart(String companyId);
HashMap<String, Object> queryBottomTableData();
Map<String, Object> queryRightTopChartlist(Integer pageIndex, Integer pageSize, String deptId,String deptName);
HashMap<String, Object> getporint(String pointid);
HashMap<String, Object> getporintdate(String pointid);
}
......@@ -12,7 +12,7 @@ public interface VideoService {
public PageModel<Video> findPageList(MonitorParam param);
List<Video> findAll(String floor3d);
List<Video> findAll(String floor3d,String orgCode);
List<Map<String, Object>>videoTree(String code);
......
......@@ -2,6 +2,7 @@
package com.yeejoin.amos.bank.service.impl;
import com.google.common.collect.Maps;
import com.yeejoin.amos.bank.common.enums.AbnormalStateEnum;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.dao.repository.IAlarmPointRepository;
import com.yeejoin.amos.bank.remote.RemoteAlarmTiggerService;
......@@ -11,20 +12,20 @@ import com.yeejoin.amos.spc.business.dao.mapper.InputItemMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
public class AlarmServiceImpl extends GenericManagerImpl<AlarmPoint, String> implements IAlarmPointService {
@Autowired
private IAlarmPointRepository iAlarmPointDao;
@Autowired
private InputItemMapper inputMapper;
@Autowired
private RemoteAlarmTiggerService alarmTiggerService;
......@@ -59,11 +60,17 @@ public class AlarmServiceImpl extends GenericManagerImpl<AlarmPoint, String> im
@Override
public List<AlarmPoint> selectPointTypeAndPointId(String type, Long pointId) {
return iAlarmPointDao.selectPointTypeAndPointId( type, pointId);
}
@Override
public List<AlarmPoint> selectPointTypeAndPointId(String type, Long pointId,Long cpblId) {
return iAlarmPointDao.selectPointTypeAndPointId( type,pointId,cpblId);
}
@Override
public void alarmTigger(String xmlData,String token) {
......@@ -78,4 +85,33 @@ public class AlarmServiceImpl extends GenericManagerImpl<AlarmPoint, String> im
public List<AlarmPoint> queryAutoInspection(String pointId,String content) {
return iAlarmPointDao.selectPointTypeAndPointId(pointId,content);
}
@Override
public Map<String,Object> getSevenDayscount() throws ParseException {
Map<String,Object> result = new HashMap<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, -6);
//紧急告警
List<Long> urgent = inputMapper.getSevenDayscount(AbnormalStateEnum.E.getName());
result.put("urgent",urgent);
//重要告警
List<Long> important = inputMapper.getSevenDayscount(AbnormalStateEnum.M.getName());
result.put("important",important);
//次要告警
List<Long> secondary = inputMapper.getSevenDayscount(AbnormalStateEnum.S.getName());
result.put("secondary",secondary);
//警告告警
List<Long> warning = inputMapper.getSevenDayscount(AbnormalStateEnum.W.getName());
result.put("warning",warning);
List<String> xAxis = new ArrayList<>();
for (int i = 0; i < 7; i++) {
xAxis.add(sdf.format(c.getTime()).substring(5,sdf.format(c.getTime()).length()));
c.add(Calendar.DATE, 1);
}
//时间轴
result.put("xAxis",xAxis);
return result;
}
}
......@@ -4,7 +4,9 @@ package com.yeejoin.amos.bank.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.bank.dao.BankInfoDao;
import com.yeejoin.amos.bank.dao.mapper.AutoInspectionMapper;
import com.yeejoin.amos.bank.dao.mapper.BankInfoMapper;
import com.yeejoin.amos.bank.dao.repository.IAutoInspectionRepository;
import com.yeejoin.amos.bank.dto.BankInfoDTO;
import com.yeejoin.amos.bank.entity.AutoInspection;
import com.yeejoin.amos.bank.entity.BankInfo;
import com.yeejoin.amos.bank.service.IAutoInspectionService;
......@@ -30,7 +32,7 @@ public class AutoInspectionServiceImpl extends GenericManagerImpl<AutoInspection
private AutoInspectionMapper autoInspectionMapper;
@Autowired
private BankInfoDao bankInfoDao;
private BankInfoMapper bankInfoMapper;
@Override
public List<AutoInspection> findAbnormalByMonitorItemNameAndHost(String monitorItemName, String monitorHostMachine) {
......@@ -148,9 +150,9 @@ public class AutoInspectionServiceImpl extends GenericManagerImpl<AutoInspection
public Map<String, Object> bankInfoList() {
Map<String, Object> map = new HashMap();
List<BankInfo> bankInfoList = bankInfoDao.findAll();
List<BankInfo> centerList = bankInfoList.stream().filter(x -> x.getIsCenter() == 1).distinct().collect(Collectors.toList());
List<BankInfo> unCenterList = bankInfoList.stream().filter(x -> x.getIsCenter() == 0).distinct().collect(Collectors.toList());
List<BankInfoDTO> bankInfoList = bankInfoMapper.selectBankInfoList();
List<BankInfoDTO> centerList = bankInfoList.stream().filter(x -> x.getIsCenter() == 1).distinct().collect(Collectors.toList());
List<BankInfoDTO> unCenterList = bankInfoList.stream().filter(x -> x.getIsCenter() == 0).distinct().collect(Collectors.toList());
map.put("centerList",centerList);
map.put("unCenterList",unCenterList);
......
......@@ -10,6 +10,7 @@ import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -22,6 +23,8 @@ import com.yeejoin.amos.spc.core.common.response.CoordDTO;
import com.yeejoin.amos.spc.core.common.response.Node3DVoResponse;
import com.yeejoin.amos.spc.exception.YeeException;
import feign.Logger;
@Service
public class DynamicRingDataServiceImpl implements IDynamicRingDataService {
......@@ -46,13 +49,13 @@ public class DynamicRingDataServiceImpl implements IDynamicRingDataService {
}
@Override
public ArrayList<Node3DVoResponse> query3dData(String token) {
String params1 = "{\"eqpTempAttr\":{\"name\":\"affiliatedSystem\",\"value\":\"动环系统\"},\"needAttr\":[\"position\",\"storey\",\"storey\"]}";
public ArrayList<Node3DVoResponse> query3dData(String token,String orgCode) {
String params1 = "{\"eqpTempAttr\":{\"name\":\"affiliatedSystem\",\"value\":\"动环系统\"},\"pageNumber\":0,\"pageSize\":1000000000,\"needAttr\":[\"position\",\"storey\",\"storey\"]}";
String resStr = deviceService.selectEquipments(params1);
//String resStr = deviceService.dynamicRingData(DeviceUriEnum.查询三维设备点, token, params1);
JSONObject resJson = JSONObject.parseObject(resStr);
String params2 = "{\"eqpTempAttr\":{\"name\":\"affiliatedSystem\",\"value\":\"火探\"},\"needAttr\":[\"position\",\"storey\",\"storey\"]}";
String params2 = "{\"eqpTempAttr\":{\"name\":\"affiliatedSystem\",\"value\":\"火探\"},\"pageNumber\":0,\"pageSize\":1000000000,\"needAttr\":[\"position\",\"storey\",\"storey\"]}";
String fireDetectionStr = deviceService.selectEquipments(params2);
//String fireDetectionStr = deviceService.dynamicRingData(DeviceUriEnum.查询三维设备点, token, params2);
JSONObject fireDetectionJson = JSONObject.parseObject(fireDetectionStr);
......@@ -62,57 +65,91 @@ public class DynamicRingDataServiceImpl implements IDynamicRingDataService {
ArrayList<Node3DVoResponse> list = new ArrayList<>();
if (resJson != null) {
convertNode3DVoResponse(list, resJson, "01");
convertNode3DVoResponse(list, resJson, "01",orgCode);
}
if (fireDetectionJson != null) {
convertNode3DVoResponse(list, fireDetectionJson, "02");
convertNode3DVoResponse(list, fireDetectionJson, "02",orgCode);
}
return list;
}
private void convertNode3DVoResponse(ArrayList<Node3DVoResponse> list, JSONObject json, String type) {
@Override
public String updatePosition(Map<String, Object> param) {
String params1 = "{\"eqpTempAttr\":{\"name\":\"affiliatedSystem\",\"value\":\"动环系统\"},\"pageNumber\":0,\"pageSize\":1000000000,\"needAttr\":[\"position\",\"storey\",\"storey\"]}";
String resStr = deviceService.selectEquipments(params1);
//String resStr = deviceService.dynamicRingData(DeviceUriEnum.查询三维设备点, token, params1);
JSONObject updateObject =new JSONObject();
JSONArray resJson = JSONArray.parseArray(JSONObject.parseObject(resStr).get("content").toString());
for (int i = 0; i <resJson.size() ; i++) {
if(resJson.getJSONObject(i).get("id").equals(param.get("id"))){
resJson.getJSONObject(i).getJSONObject("equipmentAttrs").put("position",param.get("position3d"));
updateObject = resJson.getJSONObject(i);
}
}
return deviceService.updatePosition(updateObject.toJSONString());
}
private void convertNode3DVoResponse(ArrayList<Node3DVoResponse> list, JSONObject json, String type,String orgCode) {
List<JSONObject> dataArray = (List<JSONObject>) json.get("content");
dataArray.forEach(e -> {
Node3DVoResponse node3dVoResponse = new Node3DVoResponse();
JSONObject paramsRes = e.getJSONObject("cfgParamJsonObject");
node3dVoResponse.setId(e.getString("id"));
// node3dVoResponse.setIsDoor(paramsRes.getBoolean("isDoor"));
node3dVoResponse.setKey("dynamicRingData" + e.getString("id"));
node3dVoResponse.setLabel(e.getString("name"));
node3dVoResponse.setLevel(type);
node3dVoResponse.setTitle(e.getString("name"));
node3dVoResponse.setLevelStr("dynamicRingData_" + type);
node3dVoResponse.setObjType(type);
node3dVoResponse.setObjKey(paramsRes.getString("storey"));
node3dVoResponse.setSourceId(paramsRes.getString("sourceId"));
CoordDTO postion = new CoordDTO();
String positonStr = paramsRes.getString("position");
if (positonStr != null && positonStr.contains("{")) {
JSONObject parseObject = JSONObject.parseObject(positonStr);
postion.setX(parseObject.getDouble("x"));
postion.setY(parseObject.getDouble("y"));
postion.setZ(parseObject.getDouble("z"));
} else if (positonStr != null && !"".equals(positonStr)) {
positonStr = positonStr.replace("[", "").replace("]", "").replace(",", ",");
String[] split = positonStr.split(",");
postion.setX(Double.valueOf(split[0]));
postion.setY(Double.valueOf(split[1]));
postion.setZ(Double.valueOf(split[2]));
}
node3dVoResponse.setPositionDTO(postion.toString());
node3dVoResponse.setPosition(postion);
node3dVoResponse.setRate(0);
node3dVoResponse.setRotation(new CoordDTO(0d, 0d, 0d));
node3dVoResponse.setRotationDTO(new CoordDTO(0d, 0d, 0d).toString());
node3dVoResponse.setScale(new CoordDTO(1d, 1d, 1d));
node3dVoResponse.setScaleDTO(new CoordDTO(1d, 1d, 1d).toString());
node3dVoResponse.setShowInfo(false);
node3dVoResponse.setTwinkle(false);
node3dVoResponse.setType("dynamicRingData");
list.add(node3dVoResponse);
JSONArray authOrgs = e.getJSONArray("authOrg");
if(!ObjectUtils.isEmpty(authOrgs)) {
List<String> authOrgList = JSONObject.parseArray(authOrgs.toJSONString(), String.class);
//确认授权才显示
if(authOrgList.contains(orgCode)) {
try {
Node3DVoResponse node3dVoResponse = handledata(type, e);
list.add(node3dVoResponse);
} catch (Exception e1) {
System.out.println("device iot piezhi is error: " + e1.getMessage());
}
}
}
});
}
private Node3DVoResponse handledata(String type, JSONObject e) {
Node3DVoResponse node3dVoResponse = new Node3DVoResponse();
JSONObject paramsRes = e.getJSONObject("cfgParamJsonObject");
node3dVoResponse.setId(e.getString("id"));
// node3dVoResponse.setIsDoor(paramsRes.getBoolean("isDoor"));
node3dVoResponse.setKey("dynamicRingData" + e.getString("id"));
node3dVoResponse.setLabel(e.getString("name"));
node3dVoResponse.setLevel(type);
node3dVoResponse.setTitle(e.getString("name"));
node3dVoResponse.setLevelStr("dynamicRingData_" + type);
node3dVoResponse.setObjType(type);
node3dVoResponse.setObjKey(paramsRes.getString("storey"));
node3dVoResponse.setSourceId(paramsRes.getString("sourceId"));
CoordDTO postion = new CoordDTO();
String positonStr = paramsRes.getString("position");
if (positonStr != null && positonStr.contains("{")) {
JSONObject parseObject = JSONObject.parseObject(positonStr);
postion.setX(parseObject.getDouble("x"));
postion.setY(parseObject.getDouble("y"));
postion.setZ(parseObject.getDouble("z"));
} else if (positonStr != null && !"".equals(positonStr)) {
positonStr = positonStr.replace("[", "").replace("]", "").replace(",", ",");
String[] split = positonStr.split(",");
postion.setX(Double.valueOf(split[0]));
postion.setY(Double.valueOf(split[1]));
postion.setZ(Double.valueOf(split[2]));
}
node3dVoResponse.setPositionDTO(postion.toString());
node3dVoResponse.setPosition(postion);
node3dVoResponse.setRate(0);
node3dVoResponse.setRotation(new CoordDTO(0d, 0d, 0d));
node3dVoResponse.setRotationDTO(new CoordDTO(0d, 0d, 0d).toString());
node3dVoResponse.setScale(new CoordDTO(1d, 1d, 1d));
node3dVoResponse.setScaleDTO(new CoordDTO(1d, 1d, 1d).toString());
node3dVoResponse.setShowInfo(false);
node3dVoResponse.setTwinkle(false);
node3dVoResponse.setType("dynamicRingData");
return node3dVoResponse;
}
public static void main(String[] args) {
}
}
......@@ -10,7 +10,6 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
......@@ -19,8 +18,10 @@ import com.yeejoin.amos.bank.dao.IDeviceRecord;
import com.yeejoin.amos.bank.entity.DeviceRecord;
import com.yeejoin.amos.bank.entity.EquipmentQualityVo;
import com.yeejoin.amos.bank.entity.EquipmentVo;
import com.yeejoin.amos.bank.param.PointParam;
import com.yeejoin.amos.bank.remote.RemoteDeviceService;
import com.yeejoin.amos.bank.remote.client.DeviceRemoteClient;
import com.yeejoin.amos.bank.remote.client.RiskModelRemoteClient;
import com.yeejoin.amos.bank.service.IEquipmentService;
import com.yeejoin.amos.bank.utils.JsonUtil;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
......@@ -31,6 +32,8 @@ import com.yeejoin.amos.spc.core.common.response.CoordDTO;
import com.yeejoin.amos.spc.core.common.response.Node3DVoResponse;
import com.yeejoin.amos.spc.exception.YeeException;
import fr.opensagres.xdocreport.template.velocity.internal.Foreach;
@Service
public class EquipmentServuceImpl2 implements IEquipmentService {
......@@ -46,6 +49,9 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
@Autowired
IDeviceRecord iDeviceRecord;
@Autowired
RiskModelRemoteClient riskModelRemoteClient;
@Override
public JSONArray queryEquipmentById(Long id, String type, String token) {
......@@ -84,7 +90,11 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
String netDeviceResStr = deviceService.listByOrgCodeAndModel(orgCode, DeviceEnum.NET_DEVICE.getType());
String serverResStr = deviceService.listByOrgCodeAndModel(orgCode, DeviceEnum.SERVER.getType());
String patrolResStr = deviceService.listByOrgCodeAndModel(orgCode, DeviceEnum.PATROL.getType());
String ipequipmentStr =deviceService.listByOrgCodeAndModel(orgCode, DeviceEnum.IP_EQUIPMENT.getType());
JSONObject ipequipmentStrjson = JSONObject.parseObject(ipequipmentStr);
//String netDeviceResStr = deviceService.deviceDoGet(DeviceUriEnum.根据型号查询设备点, params);
JSONObject netDeviceResJson = JSONObject.parseObject(netDeviceResStr);
......@@ -195,6 +205,43 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
convertNode3DVoResponse(list, patrolResJson, "03");
}
//IP 设备
if (ipequipmentStrjson != null) {
convertNode3DVoResponse(list, ipequipmentStrjson, "04");
}
// Node3DVoResponse node3dVoResponse = new Node3DVoResponse();
// node3dVoResponse.setId("1");
// node3dVoResponse.setKey("equipment-" +"1");
// node3dVoResponse.setLabel("测试");
// node3dVoResponse.setTitle("测试");
// node3dVoResponse.setLevel("04");
// node3dVoResponse.setLevelStr("impEqu_" + "04");
// node3dVoResponse.setObjType("04");
// node3dVoResponse.setObjKey("floor_3");
// node3dVoResponse.setSourceId("1");
// CoordDTO postion = new CoordDTO();
// postion.setX(344.9619516812333);
// postion.setY(93.90619659423828);
// postion.setZ(154.7298426229343);
// node3dVoResponse.setPositionDTO(postion.toString());
// node3dVoResponse.setPosition(postion);
// node3dVoResponse.setRate(0);
// node3dVoResponse.setRotation(new CoordDTO(0d, 0d, 0d));
// node3dVoResponse.setRotationDTO(new CoordDTO(0d, 0d, 0d).toString());
// node3dVoResponse.setScale(new CoordDTO(1d, 1d, 1d));
// node3dVoResponse.setScaleDTO(new CoordDTO(1d, 1d, 1d).toString());
// node3dVoResponse.setShowInfo(false);
// node3dVoResponse.setTwinkle(false);
// node3dVoResponse.setType("impEquipment");
// list.add(node3dVoResponse);
return list;
}
......@@ -285,4 +332,76 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
return new PageImpl<>(list, commonPageable, total);
}
@Override
public List<PointParam> handleEquipmentsPointData(Long factorId) throws InnerInvokException {
List<PointParam> list = new ArrayList<PointParam>();
CommonResponse queryBoundByFactroId = riskModelRemoteClient.listPointInputitemByFactorId(factorId);
List<Map> dataList = (List<Map>) queryBoundByFactroId.getDataList();
if(null !=dataList && dataList.size() > 0) {
for (Map map : dataList) {
//指标项
String equipmentPointNames = (String) map.get("equipmentPointNames");
String eqName = (String) map.get("equipmentName");
String[] split = equipmentPointNames.split("\n|\r");
for (int i = 0; i < split.length; i++) {
PointParam param = new PointParam();
String inputItemName = split[i];
//检查项目是否合格
String identification = inputItemName.endsWith("##0")?"qualified":"unqualified";
param.setFactorId(factorId);
param.setIdentification(identification);
param.setName(eqName);
param.setType("device");
param.setValue(inputItemName.substring(0, inputItemName.length()-3));
list.add(param);
}
}
}
return list;
}
@Override
public List<PointParam> handlePatrolPointData(Long factorId) throws InnerInvokException {
List<PointParam> list = new ArrayList<PointParam>();
CommonResponse queryBoundByFactroId = riskModelRemoteClient.queryBoundByFactroId(factorId);
List<Map> dataList = (List<Map>) queryBoundByFactroId.getDataList();
if(null !=dataList && dataList.size() > 0) {
for (Map map : dataList) {
//指标项
String inputItems = (String) map.get("inputItems");
String patrolName = (String) map.get("pointName");
String[] split = inputItems.split("\n|\r");
for (int i = 0; i < split.length; i++) {
//检查项名称
PointParam param = new PointParam();
String inputItemName = split[i];
//检查项目是否合格
String identification = inputItemName.endsWith("##0")?"qualified":"unqualified";
param.setFactorId(factorId);
param.setIdentification(identification);
param.setName(patrolName);
param.setType("patrol");
param.setValue(inputItemName.substring(0, inputItemName.length()-3));
list.add(param);
}
}
}
return list;
}
@Override
public Map<String, List> handlePointDatas(Long factorId) throws InnerInvokException {
Map<String, List> map = new HashMap<>();
List<PointParam> handlePatrolPointData = handlePatrolPointData(factorId);
List<PointParam> handleEquipmentsPointData = handleEquipmentsPointData(factorId);
map.put("patrol", handlePatrolPointData);
map.put("device", handleEquipmentsPointData);
return map;
}
}
package com.yeejoin.amos.bank.service.impl;
import com.google.common.base.Joiner;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.yeejoin.amos.bank.common.enums.PaymentEnum;
import com.yeejoin.amos.bank.entity.planTaskReturn;
import com.yeejoin.amos.bank.entity.pointReturn;
import com.yeejoin.amos.bank.service.InspectionService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.spc.business.dao.mapper.InputItemMapper;
import com.yeejoin.amos.spc.business.dao.mapper.StatisticsMapper;
import com.yeejoin.amos.spc.business.remote.RemoteSecurityService;
import com.yeejoin.amos.spc.business.service.impl.SpcSecurityServiceImpl;
import com.yeejoin.amos.spc.core.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.*;
@Service
public class InspectionServiceImpl implements InspectionService {
@Autowired
private StatisticsMapper statisticsMapper;
@Autowired
private SpcSecurityServiceImpl securityService;
@Autowired
private InputItemMapper inputMapper;
@Autowired
private RemoteSecurityService remoteSecurityService;
@Override
public List<HashMap<String, Object>> queryRightTopChart(String companyId) {
List<DepartmentModel> com=securityService.listDepartmentTree(companyId);
// String departmentid=null;
// if(com!=null){
//
// Map<String, Object> json=(Map<String, Object>) com;
// Map<String, Object> department=(Map<String, Object>)json.get("department");
// departmentid=department.get("sequenceNbr")+"";
// }
//
//// List<DepartmentModel> listDepartments = securityService.listDepartmentTree(companyID);
// List<DepartmentModel> listDepartments = securityService.querySubAgencyTree(departmentid);
List<LinkedHashMap> listDepartments =new ArrayList<LinkedHashMap>();
if(com!=null&&com.size()>0){
//获取二级部门
com.forEach(e -> {
List<LinkedHashMap> ch= (List<LinkedHashMap>) e.getChildren();
if(ch!=null&&ch.size()>0){
ch.forEach(a -> {
listDepartments.add(a);
});
}
});
}
HashMap<String, Object> depMap = new HashMap<String, Object>();
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
//未开始
List wks=new ArrayList();
//运行中
List yxz=new ArrayList();
//已结束
List yjs=new ArrayList();
//已超时
List ycs=new ArrayList();
//x
List x=new ArrayList();
if(listDepartments!=null&&listDepartments.size()>0){
listDepartments.forEach(
e -> {
int num=0;
HashMap<String, Object> rightTopChartData = statisticsMapper.queryRightTopChartDataByDepId(e.get("orgCode").toString());
if (rightTopChartData == null) {
wks.add(0);
yxz.add(0);
yjs.add(0);
ycs.add(0);
}else{
wks.add(rightTopChartData.get("noStartNum" ));
yxz.add( rightTopChartData.get("noPassNum"));
yjs.add(rightTopChartData.get("passNum"));
ycs.add(rightTopChartData.get("overTimeNum"));
num=Integer.valueOf(rightTopChartData.get("noStartNum" ).toString())+
Integer.valueOf(rightTopChartData.get("noPassNum" ).toString())+
Integer.valueOf(rightTopChartData.get("passNum" ).toString())+
Integer.valueOf(rightTopChartData.get("overTimeNum" ).toString());
}
x.add(e.get("departmentName"));
depMap.put(e.get("departmentName").toString(), e.get("orgCode").toString());
depMap.put(e.get("orgCode").toString(), num);
}
);
}
depMap.put("wks", wks);
depMap.put("yxz", yxz);
depMap.put("yjs", yjs);
depMap.put("ycs", ycs);
depMap.put("x", x);
list.add(depMap);
return list;
}
@Override
public HashMap<String, Object> queryBottomTableData() {
List<String> enumCodesList = PaymentEnum.getEnumCodesList();
List<HashMap<String, Object>> list = inputMapper.queryPaymentByCodes(enumCodesList);
List<HashMap<String, Object>> ljlrjy = new ArrayList<>();
List<HashMap<String, Object>> ljlcjy = new ArrayList<>();
List<HashMap<String, Object>> ljlrjyje = new ArrayList<>();
List<HashMap<String, Object>> ljlcjyje = new ArrayList<>();
if (list != null && list.size() > 0) {
for (HashMap<String, Object> m : list) {
String itemNo = (String) m.get("item_no");
if (PaymentEnum.流入笔数.getCode().equals(itemNo)) {
ljlrjy.add(m);
} else if (PaymentEnum.流出笔数.getCode().equals(itemNo)) {
ljlcjy.add(m);
} else if (PaymentEnum.流入金额.getCode().equals(itemNo)) {
Double score = StringUtil.getNumToDouble(m.get("score").toString());
m.put("score", score);
ljlrjyje.add(m);
} else {
Double score = StringUtil.getNumToDouble(m.get("score").toString());
m.put("score", score);
ljlcjyje.add(m);
}
}
}
HashMap<String, Object> data = new HashMap<>();
data.put(PaymentEnum.流入笔数.getCode(), ljlrjy);
data.put(PaymentEnum.流出笔数.getCode(), ljlcjy);
data.put(PaymentEnum.流入金额.getCode(), ljlrjyje);
data.put(PaymentEnum.流出金额.getCode(), ljlcjyje);
return data;
}
@Override
public Map<String, Object> queryRightTopChartlist(Integer pageIndex, Integer pageSize, String deptId, String deptName) {
List<planTaskReturn> list = statisticsMapper.planTaskReturnliat(pageIndex, pageSize, deptId);
List<planTaskReturn> listnum = statisticsMapper.planTaskReturnliat(null, null, deptId);
int num = 0;
if (listnum != null) {
num = listnum.size();
}
Map<String, Object> map2 = new HashMap<>();
Set<String> userIds = Sets.newHashSet();
Map<String, AgencyUserModel> AgencyUserModelMap = null;
list.forEach(m -> {
if (m.getUserId() != null) {
String[] staffs = m.getUserId().split(",");
List staffsList = Arrays.asList(staffs);
userIds.addAll(staffsList);
}
});
if (userIds.size() > 0) {
List<AgencyUserModel> AgencyUserModels = remoteSecurityService.listUserByUserIds(Joiner.on(",").join(userIds));
AgencyUserModelMap = Maps.uniqueIndex(AgencyUserModels, AgencyUserModel::getUserId);
}
for (planTaskReturn map : list) {
if (AgencyUserModelMap != null) {
String[] staffs = map.getUserId().split(",");
String nameu = "";
if (staffs != null) {
for (int i = 0; i < staffs.length; i++) {
AgencyUserModel AgencyUserModel = AgencyUserModelMap.get(staffs[i]);
if (!ObjectUtils.isEmpty(AgencyUserModel)){
if (i == 0) {
nameu = nameu + AgencyUserModel.getRealName();
} else {
nameu = nameu + "," + AgencyUserModel.getRealName();
}
}
}
}
map.setUserId(nameu);
map.setDeptName(deptName);
}
//查询点状态
String planTaskId = map.getPlanTaskId();
List<pointReturn> listd = statisticsMapper.pointReturnlist(planTaskId);
map.setPointReturn(listd);
}
map2.put("date", list);
map2.put("num", num);
return map2;
}
}
package com.yeejoin.amos.bank.service.impl;
import com.google.common.base.Joiner;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.yeejoin.amos.bank.common.enums.PaymentEnum;
import com.yeejoin.amos.bank.entity.planTaskReturn;
import com.yeejoin.amos.bank.entity.pointReturn;
import com.yeejoin.amos.bank.service.InspectionService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.spc.business.dao.mapper.InputItemMapper;
import com.yeejoin.amos.spc.business.dao.mapper.StatisticsMapper;
import com.yeejoin.amos.spc.business.remote.RemoteSecurityService;
import com.yeejoin.amos.spc.business.service.impl.SpcSecurityServiceImpl;
import com.yeejoin.amos.spc.core.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.*;
@Service
public class InspectionServiceImpl implements InspectionService {
@Autowired
private StatisticsMapper statisticsMapper;
@Autowired
private SpcSecurityServiceImpl securityService;
@Autowired
private InputItemMapper inputMapper;
@Autowired
private RemoteSecurityService remoteSecurityService;
@Override
public List<HashMap<String, Object>> queryRightTopChart(String companyId) {
List<DepartmentModel> com=securityService.listDepartmentTree(companyId);
// String departmentid=null;
// if(com!=null){
//
// Map<String, Object> json=(Map<String, Object>) com;
// Map<String, Object> department=(Map<String, Object>)json.get("department");
// departmentid=department.get("sequenceNbr")+"";
// }
//
//// List<DepartmentModel> listDepartments = securityService.listDepartmentTree(companyID);
// List<DepartmentModel> listDepartments = securityService.querySubAgencyTree(departmentid);
List<LinkedHashMap> listDepartments =new ArrayList<LinkedHashMap>();
if(com!=null&&com.size()>0){
//获取二级部门
com.forEach(e -> {
List<LinkedHashMap> ch= (List<LinkedHashMap>) e.getChildren();
if(ch!=null&&ch.size()>0){
ch.forEach(a -> {
listDepartments.add(a);
});
}
});
}
HashMap<String, Object> depMap = new HashMap<String, Object>();
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
//未开始
List wks=new ArrayList();
//运行中
List yxz=new ArrayList();
//已结束
List yjs=new ArrayList();
//已超时
List ycs=new ArrayList();
//x
List x=new ArrayList();
if(listDepartments!=null&&listDepartments.size()>0){
listDepartments.forEach(
e -> {
int num=0;
HashMap<String, Object> rightTopChartData = statisticsMapper.queryRightTopChartDataByDepId(e.get("orgCode").toString());
if (rightTopChartData == null) {
wks.add(0);
yxz.add(0);
yjs.add(0);
ycs.add(0);
}else{
wks.add(rightTopChartData.get("noStartNum" ));
yxz.add( rightTopChartData.get("noPassNum"));
yjs.add(rightTopChartData.get("passNum"));
ycs.add(rightTopChartData.get("overTimeNum"));
num=Integer.valueOf(rightTopChartData.get("noStartNum" ).toString())+
Integer.valueOf(rightTopChartData.get("noPassNum" ).toString())+
Integer.valueOf(rightTopChartData.get("passNum" ).toString())+
Integer.valueOf(rightTopChartData.get("overTimeNum" ).toString());
}
x.add(e.get("departmentName"));
depMap.put(e.get("departmentName").toString(), e.get("orgCode").toString());
depMap.put(e.get("orgCode").toString(), num);
}
);
}
depMap.put("wks", wks);
depMap.put("yxz", yxz);
depMap.put("yjs", yjs);
depMap.put("ycs", ycs);
depMap.put("x", x);
list.add(depMap);
return list;
}
@Override
public HashMap<String, Object> queryBottomTableData() {
List<String> enumCodesList = PaymentEnum.getEnumCodesList();
List<HashMap<String, Object>> list = inputMapper.queryPaymentByCodes(enumCodesList);
List<HashMap<String, Object>> ljlrjy = new ArrayList<>();
List<HashMap<String, Object>> ljlcjy = new ArrayList<>();
List<HashMap<String, Object>> ljlrjyje = new ArrayList<>();
List<HashMap<String, Object>> ljlcjyje = new ArrayList<>();
if (list != null && list.size() > 0) {
for (HashMap<String, Object> m : list) {
String itemNo = (String) m.get("item_no");
if (PaymentEnum.流入笔数.getCode().equals(itemNo)) {
ljlrjy.add(m);
} else if (PaymentEnum.流出笔数.getCode().equals(itemNo)) {
ljlcjy.add(m);
} else if (PaymentEnum.流入金额.getCode().equals(itemNo)) {
Double score = StringUtil.getNumToDouble(m.get("score").toString());
m.put("score", score);
ljlrjyje.add(m);
} else {
Double score = StringUtil.getNumToDouble(m.get("score").toString());
m.put("score", score);
ljlcjyje.add(m);
}
}
}
HashMap<String, Object> data = new HashMap<>();
data.put(PaymentEnum.流入笔数.getCode(), ljlrjy);
data.put(PaymentEnum.流出笔数.getCode(), ljlcjy);
data.put(PaymentEnum.流入金额.getCode(), ljlrjyje);
data.put(PaymentEnum.流出金额.getCode(), ljlcjyje);
return data;
}
@Override
public Map<String, Object> queryRightTopChartlist(Integer pageIndex, Integer pageSize, String deptId, String deptName) {
List<planTaskReturn> list = statisticsMapper.planTaskReturnliat(pageIndex, pageSize, deptId);
List<planTaskReturn> listnum = statisticsMapper.planTaskReturnliat(null, null, deptId);
int num = 0;
if (listnum != null) {
num = listnum.size();
}
Map<String, Object> map2 = new HashMap<>();
Set<String> userIds = Sets.newHashSet();
Map<String, AgencyUserModel> AgencyUserModelMap = null;
list.forEach(m -> {
if (m.getUserId() != null) {
String[] staffs = m.getUserId().split(",");
List staffsList = Arrays.asList(staffs);
userIds.addAll(staffsList);
}
});
if (userIds.size() > 0) {
List<AgencyUserModel> AgencyUserModels = remoteSecurityService.listUserByUserIds(Joiner.on(",").join(userIds));
AgencyUserModelMap = Maps.uniqueIndex(AgencyUserModels, AgencyUserModel::getUserId);
}
for (planTaskReturn map : list) {
if (AgencyUserModelMap != null) {
String[] staffs = map.getUserId().split(",");
String nameu = "";
if (staffs != null) {
for (int i = 0; i < staffs.length; i++) {
AgencyUserModel AgencyUserModel = AgencyUserModelMap.get(staffs[i]);
if (!ObjectUtils.isEmpty(AgencyUserModel)){
if (i == 0) {
nameu = nameu + AgencyUserModel.getRealName();
} else {
nameu = nameu + "," + AgencyUserModel.getRealName();
}
}
}
}
map.setUserId(nameu);
map.setDeptName(deptName);
}
//查询点状态
String planTaskId = map.getPlanTaskId();
List<pointReturn> listd = statisticsMapper.pointReturnlist(planTaskId);
map.setPointReturn(listd);
}
map2.put("date", list);
map2.put("num", num);
return map2;
}
@Override
public HashMap<String, Object> getporint(String pointid) {
HashMap<String, Object> listd = statisticsMapper.getporint(pointid);
return listd;
}
@Override
public HashMap<String, Object> getporintdate(String pointid) {
HashMap<String, Object> listd = statisticsMapper.getporintdate(pointid);
return listd;
}
}
......@@ -11,6 +11,7 @@ import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -37,6 +38,8 @@ import com.yeejoin.amos.op.core.jpa.GenericManagerImpl;
import com.yeejoin.amos.spc.business.remote.RemoteSecurityService;
import com.yeejoin.amos.spc.business.remote.RemoteWebSocketServer;
import fr.opensagres.xdocreport.template.velocity.internal.Foreach;
/**
* 拓扑图service
*
......@@ -45,6 +48,15 @@ import com.yeejoin.amos.spc.business.remote.RemoteWebSocketServer;
@Service
public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, String> implements ITopographyService {
//平台字典管理中配置value为key值
private static final String BNAK_ORG_KEY = "BANK_ORG";
//平台字典管理中配置value为key值
private static final String BNAK_XIAN_KEY = "xian";
//平台字典管理中配置value为key值
private static final String BNAK_KEJICHU_KEY = "科技处";
@Autowired
private ITopographyTreeRepository iTopographyTreeDao;
......@@ -62,7 +74,7 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
@Autowired
private RemoteWebSocketServer webSocketServer;
@Autowired
RemoteSecurityService remoteSecurityService;
......@@ -73,7 +85,12 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
@Override
public List<TopographyTreeDTO> getTree(String orgcode,int type) {
List<TopographyTreeDTO> list = iTopographyTreeDao.findByTypeAndOrgCode(type,orgcode).stream().map(t -> convert(t)).collect(Collectors.toList());
boolean judgeDeviceAuth = JudgeDeviceAuth(list,orgcode);
if(false == judgeDeviceAuth) {
return new ArrayList<TopographyTreeDTO>();
}
Map<String, TopographyTreeDTO> map = list.stream().collect(Collectors.toMap(n -> n.getId(), n -> n));
list.forEach(n -> {
if (n.getParent() != null) {
......@@ -90,6 +107,7 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
topographyTreeDTO.setParent(node.getParentCode());
topographyTreeDTO.setTreeCode(node.getTreeCode());
topographyTreeDTO.setGroup(node.getGroup());
topographyTreeDTO.setOrgCode(node.getOrgCode());
return topographyTreeDTO;
}
......@@ -105,6 +123,7 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
TopographyNodeDTO topographyNodeDTO = new TopographyNodeDTO();
BeanUtils.copyProperties(node, topographyNodeDTO);
topographyNodeDTO.setWarnState(node.getState());
topographyNodeDTO.setPorts(node.getPorts());
if (node.getState() != 0) {
topographyNodeDTO.setWarnMessage(node.getNumber() + AbnormalStateEnum.getText(node.getState()));
}
......@@ -140,18 +159,18 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
}
iTopographyNodeDao.saveAll(list);
}
@Override
public String getSelfOrgCode() {
List<DictionarieValueModel> listDictionaryByDictCode = remoteSecurityService.listDictionaryByDictCode("BANK_ORG");
List<DictionarieValueModel> listDictionaryByDictCode = remoteSecurityService.listDictionaryByDictCode(BNAK_ORG_KEY);
StringBuffer sb = new StringBuffer();
listDictionaryByDictCode.forEach(e ->{
if("xian".equals(e.getDictDataKey())||"kejichu".equals(e.getDictDataKey())) {
if(BNAK_XIAN_KEY.equals(e.getDictDataKey())||BNAK_KEJICHU_KEY.equals(e.getDictDataKey())) {
sb.append('#').append(e.getDictDataValue());
}
});
return sb.toString();
}
@Override
......@@ -307,8 +326,9 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
public Object getNodeDetail(String id) {
TopographyNode node = iTopographyNodeDao.findById(id).get();
TopographyNodeDetail detail = iTopographyNodeDetailDao.findByNodeid(id);
List<Map> list = new ArrayList<>();
if (detail != null) {
List<Map> list = JSON.parseArray(detail.getNodeDetail(), Map.class);
list = JSON.parseArray(detail.getNodeDetail(), Map.class);
for (Map map : list) {
if (map.get("name").equals("监测状态") || map.get("name").equals("健康状态")) {
if (node.getState() == 0) {
......@@ -323,10 +343,12 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
}
return list;
} else {
return null;
return list;
}
}
@Override
public List<Map> getDeviceNodes(String orgcode) {
List<TopographyNode> nodes = iTopographyNodeDao.findByOrgCodeAndType(orgcode, 4);
......@@ -344,6 +366,7 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
return results;
}
@Override
public List<TopographyLineDTO> getDeviceLinks(String orgcode) {
return getLinks(orgcode,null, 4);
......@@ -374,4 +397,76 @@ public class TopographyServiceImpl extends GenericManagerImpl<TopographyTree, St
}
/**
* 判断该用户登选择公司有无查看该拓扑的权限
* @param list
* @param userOrgCode
* @return
*/
private boolean JudgeDeviceAuth(List<TopographyTreeDTO> list, String orgCode) {
String userOrgCode = null;
if(orgCode.startsWith("%#")) {
userOrgCode = truncateHeadString(orgCode,2);
}else {
userOrgCode = orgCode;
}
for (TopographyTreeDTO topographyTreeDTO : list) {
if (!StringUtils.isEmpty(topographyTreeDTO.getOrgCode())) {
if (topographyTreeDTO.getOrgCode().contains("#")) {
String[] array = topographyTreeDTO.getOrgCode().split("#");
for (int i = 0; i < array.length; i++) {
String str = array[i];
if(str.contains("-")) {
String[] split = str.split("-");
for (int j = 0; j < split.length; j++) {
if (userOrgCode.equals(split[j])) {
return true;
}
}
} else {
if(userOrgCode.equals(str)) {
return true;
}
}
}
} else {
String[] arr = topographyTreeDTO.getOrgCode().split("-");
for (int i = 0; i < arr.length; i++) {
if (userOrgCode.equals(arr[i])) {
return true;
}
}
}
}
}
return false;
}
/**
* 去除字符串前n个字符
* @param origin 要操作的字符串
* @param count 去掉字符串的数量
* @return
*/
public static String truncateHeadString(String origin, int count) {
if (origin == null || origin.length() < count) {
return null;
}
char[] arr = origin.toCharArray();
char[] ret = new char[arr.length - count];
for (int i = 0; i < ret.length; i++) {
ret[i] = arr[i + count];
}
return String.copyValueOf(ret);
}
}
......@@ -47,8 +47,8 @@ public class VideoServiceImpl implements VideoService {
}
@Override
public List<Video> findAll(String floor3d) {
List<Video> findAll = mapper.findAll(floor3d);
public List<Video> findAll(String floor3d,String orgCode) {
List<Video> findAll = mapper.findAll(floor3d,orgCode);
return findAll;
}
......
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.bank.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
......@@ -19,7 +20,7 @@ import com.yeejoin.amos.spc.core.util.query.BaseQuerySpecification;
@Service
public class spcAlarmServiceImpl extends GenericManagerImpl<Alarm, String> implements IAlarmService {
@Autowired
private IAlarmRepository iAlarmDao;
@Autowired
......@@ -31,9 +32,8 @@ public class spcAlarmServiceImpl extends GenericManagerImpl<Alarm, String> impl
@Override
public Page<Alarm> list(List<DaoCriteria> criterias, CommonPageable commonPageable) {
BaseQuerySpecification<Alarm> spec = new BaseQuerySpecification<>(criterias);
Page<Alarm> page = iAlarmDao.findAll(spec, commonPageable);
Page<Alarm> page = iAlarmDao.findAll(spec, commonPageable);
return page;
}
......@@ -44,11 +44,10 @@ public class spcAlarmServiceImpl extends GenericManagerImpl<Alarm, String> impl
@Override
public List<Alarm> findByQueryColumn(String queryColumn) {
return iAlarmDao.selectbyqueryColumn(queryColumn);
return iAlarmDao.selectByQueryColumn(queryColumn);
}
public List<Object[]> countnum(String code) {
public List<Map<String, Object>> countnum(String code) {
return iAlarmDao.countnum(code);
}
......@@ -75,4 +74,9 @@ public class spcAlarmServiceImpl extends GenericManagerImpl<Alarm, String> impl
// TODO Auto-generated method stub
return inputMapper.getxuncount(code);
}
@Override
public List<Alarm> selectByQuerySourceId(String sourceId) {
return iAlarmDao.selectByQuerySourceId(sourceId);
}
}
package com.yeejoin.amos.bank.utils;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
/**
* @Author: xinglei
* @Description:
* @Date: 2020/6/10 16:31
*/
public class DateTimeKit {
public static final String PATTERN_DEFAULT = "yyyy-MM-dd HH:mm:ss";
public static final String PATTERN_FULL = "yyyy-MM-dd HH:mm:ss SSS";
public static final String PATTERN_DATE = "yyyy-MM-dd";
public static final String PATTERN_TIME = "HH:mm:ss";
public static final String PATTERN_SEQUENCE = "yyyyMMddHHmmssSSS";
public DateTimeKit() {
}
public static String format(ZonedDateTime dateTime) {
return format(dateTime, "yyyy-MM-dd HH:mm:ss");
}
public static String format(ZonedDateTime dateTime, String pattern) {
return dateTime == null ? null : dateTime.format(DateTimeFormatter.ofPattern(pattern));
}
public static String now() {
return format(ZonedDateTime.now());
}
public static String getSubtract(String date) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(PATTERN_DEFAULT).withZone(ZoneId.of("Asia/Shanghai"));
ZonedDateTime startTime = ZonedDateTime.parse(date, dateTimeFormatter);
long day = ChronoUnit.DAYS.between(startTime, ZonedDateTime.now());
long hour = ChronoUnit.HOURS.between(startTime, ZonedDateTime.now());
long minute = ChronoUnit.MINUTES.between(startTime, ZonedDateTime.now());
StringBuffer sb = new StringBuffer();
if (day != 0) {
sb.append(day).append("天");
}
if (hour != 0) {
sb.append(hour % 24).append("小时");
}
if (minute != 0) {
sb.append(minute % 60).append("分");
}
return sb.toString();
}
}
......@@ -2,13 +2,21 @@ package com.yeejoin.amos.bank.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.framework.apollo.core.utils.StringUtils;
import com.google.common.base.Joiner;
import org.apache.commons.io.FileUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ResourceUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @Author: xinglei
......@@ -17,11 +25,11 @@ import java.io.IOException;
*/
public class JsonUtil {
public static JSONArray getJsonArray(String jsonPath){
public static JSONArray getJsonArray(String jsonPath) {
File jsonFile = null;
String json = "";
try {
jsonFile = ResourceUtils.getFile(String.format("classpath:json/%s",jsonPath));
jsonFile = ResourceUtils.getFile(String.format("classpath:json/%s", jsonPath));
json = FileUtils.readFileToString(jsonFile);
} catch (Exception e) {
e.printStackTrace();
......@@ -29,12 +37,12 @@ public class JsonUtil {
JSONArray jsonArray = JSON.parseArray(json);
return jsonArray;
}
public static JSONObject getJsonObject(String jsonPath){
public static JSONObject getJsonObject(String jsonPath) {
File jsonFile = null;
String json = "";
try {
jsonFile = ResourceUtils.getFile(String.format("classpath:json/%s",jsonPath));
jsonFile = ResourceUtils.getFile(String.format("classpath:json/%s", jsonPath));
json = FileUtils.readFileToString(jsonFile);
} catch (Exception e) {
e.printStackTrace();
......@@ -42,46 +50,74 @@ public class JsonUtil {
JSONObject parseObject = JSON.parseObject(json);
return parseObject;
}
//classpath:json/donghuanAlarm.json
public static String readJsonFile(String path) {
try {
File jsonFile = ResourceUtils.getFile(path);
String json = FileUtils.readFileToString(jsonFile);
return json;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
try {
File jsonFile = ResourceUtils.getFile(path);
String json = FileUtils.readFileToString(jsonFile);
return json;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
/**
* 去除json中多余的转义符号
*
* @param paramString
* @return
*/
public static String formatJsonString(String paramString) {
// 序列化为JSON字符串
String data02 = JSON.toJSONString(paramString);
System.out.println("data02:" + data02);
// 通过 replace 去掉斜杠
String data03 = data02.replace("\\", "");
System.out.println("data03:" + data03);
// 去掉首尾的引号
String data04 = data03.substring(1, data03.length() - 1);
System.out.println("data04:" + data04);
// 去掉首尾的引号
if (data04.startsWith("{") && data04.endsWith("}")) {
return data04;
} else {
String data05 = data03.substring(2, data04.length());
System.out.println("data05:" + data05);
return data05;
}
}
// 序列化为JSON字符串
String data02 = JSON.toJSONString(paramString);
// System.out.println("data02:" + data02);
// 通过 replace 去掉斜杠
String data03 = data02.replace("\\", "");
// System.out.println("data03:" + data03);
// 去掉首尾的引号
String data04 = data03.substring(1, data03.length() - 1);
// System.out.println("data04:" + data04);
// 去掉首尾的引号
if (data04.startsWith("{") && data04.endsWith("}")) {
return data04;
} else {
String data05 = data03.substring(2, data04.length());
System.out.println("data05:" + data05);
return data05;
}
}
public static String[] toStringArray(String fields) {
fields = fields.replace("\"", "");
String[] field = null;
if (fields != null && fields.length() > 0) {
field = fields.split(",");
String first = field[0];
field[0] = first.substring(first.indexOf("[") + 1);
String last = field[field.length - 1];
field[field.length - 1] = last.substring(0, last.indexOf("]"));
}
String[] objects = Arrays.stream(field).filter(x -> !x.isEmpty() && !x.equals("null")).toArray(String[]::new);
return objects;
}
public static String arraysToString(String[] str){
String result = null;
for(int i = 0; i < str.length; i++) {
str[i] = str[i].replace(" ", "");
if (ObjectUtils.isEmpty(result)){
result = "#" + str[i];
} else {
result = result + "#" + str[i];
}
}
return result;
}
}
......@@ -14,8 +14,7 @@ import java.util.Properties;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.data.domain.Sort;
......@@ -44,7 +43,7 @@ import com.yeejoin.amos.spc.exception.YeeException;
*/
public class AlarmWebSocketClient extends WebSocketClient {
private final Logger log = LoggerFactory.getLogger(AlarmWebSocketClient.class);
private static final Logger log = Logger.getLogger(AlarmWebSocketClient.class);
private IAlarmPointService alarmPointService;
private IAlarmService alarmService;
......@@ -56,9 +55,9 @@ public class AlarmWebSocketClient extends WebSocketClient {
// @Value("${params.patrol}")
// private String address;
private PatrolRemoteClient patrolRemoteClient;
private static ApplicationContext allpicationContext;
public static void setAllpicationContext(ApplicationContext context) {
allpicationContext = context;
}
......@@ -100,7 +99,7 @@ public class AlarmWebSocketClient extends WebSocketClient {
String curStatus = msgJson.getString("currentState");
synchronized (this) {
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.设备.getCode(), eqpId);
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.SB.getCode(), eqpId);
if (AlarmPointEnum.已确认已清除.getName().equals(curStatus) || AlarmPointEnum.未确认已清除.getName().equals(curStatus)) {
alarmPointService.deleteItems(pointList);
log.info("Clear alarm data ...success");
......@@ -116,7 +115,7 @@ public class AlarmWebSocketClient extends WebSocketClient {
AlarmPoint alarmPoint = new AlarmPoint();
alarmPoint.setPointId(eqpId);
alarmPoint.setSourceId(msgJson.getString("sourceId"));
alarmPoint.setPointType(AlarmPointTypeEnum.设备.getCode());
alarmPoint.setPointType(AlarmPointTypeEnum.SB.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setContent(alramContent);
alarmPoint.setPointAttrs(equipmentAttrs);
......@@ -163,7 +162,7 @@ public class AlarmWebSocketClient extends WebSocketClient {
iAlarmDao.save(alarm);
log.info("Update alarm records ...success");
} else {
// if (alarm == null || AlarmPointEnum.已确认已清除.getName().equals(curStatus)
// if (alarm == null || AlarmPointEnum.已确认已清除.getName().equals(curStatus)
// || AlarmPointEnum.未确认已清除.getName().equals(curStatus)) {
Alarm alarm = new Alarm();
alarm.setSourceId(msgJson.getString("sourceId"));
......
......@@ -14,5 +14,4 @@ public interface AmosWsClient {
@PostMapping("/generic/sendDataList")
CommonResponse sendDataList(@RequestBody WebsocketListParam param);
}
......@@ -14,8 +14,7 @@ import java.util.Properties;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.data.domain.Sort;
......@@ -46,7 +45,7 @@ import com.yeejoin.amos.spc.exception.YeeException;
*/
public class FireDetectionWebSocketClient extends WebSocketClient {
private final Logger log = LoggerFactory.getLogger(FireDetectionWebSocketClient.class);
private static final Logger log = Logger.getLogger(FireDetectionWebSocketClient.class);
private IAlarmPointService alarmPointService;
private IAlarmService alarmService;
......@@ -58,7 +57,7 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
// @Value("${params.patrol}")
// private String address;
private static ApplicationContext allpicationContext;
private PatrolRemoteClient patrolRemoteClient;
public static void setAllpicationContext(ApplicationContext context) {
......@@ -106,7 +105,7 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
String affiliatedSystem = equipmentAttrs.getString("affiliatedSystem");
if(affiliatedSystem != null && "火探".equals(affiliatedSystem)) {
log.info("Received message:" + paramString);
Long eqpId = msgJson.getLong("eqpId");
String status = msgJson.getString("status");
String sourceId = equipmentAttrs.getString("sourceId");
......@@ -115,23 +114,23 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
Integer level = msgJson.getInteger("level") != null ? msgJson.getInteger("level") : 1;
if (eqpId != null && status != null && !"".equals(status) && sourceId != null && !"".equals(sourceId)) {
synchronized (this) {
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.火探.getCode(), eqpId);
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.HT.getCode(), eqpId);
if (!FireDetectionAlarmType.产生.getCode().equals(status)) {
alarmPointService.deleteItems(pointList);
log.info("Clear alarm data ...success");
// iTopographyService.sendAbnormal(eqpId, 0);
iTopographyService.sendAbnormalByType(String.valueOf(eqpId),
AbnormalStateEnum.N.getCode(),
iTopographyService.sendAbnormalByType(String.valueOf(eqpId),
AbnormalStateEnum.N.getCode(),
TopoNodeTypeEnum.动环监控.getType(),
alramContent);
} else {
if (null == pointList || pointList.size() == 0) {
AlarmPoint alarmPoint = new AlarmPoint();
alarmPoint.setPointId(eqpId);
alarmPoint.setSourceId(sourceId);
alarmPoint.setPointType(AlarmPointTypeEnum.火探.getCode());
alarmPoint.setPointType(AlarmPointTypeEnum.HT.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setContent(alramContent);
alarmPoint.setPointAttrs(equipmentAttrsJson);
......@@ -139,7 +138,7 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
alarmPoint.setCode(msgJson.getString("orgCode"));
alarmPointService.saveItem(alarmPoint);
log.info("Save alarm data ...success");
//String url = address + "api/msgSubscribe/alarmNotification";
try {
Map<String, Object> map = new HashMap<String, Object>();
......@@ -152,12 +151,12 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
} catch (Exception e) {
log.info("手机推送告警信息失败...fail" + e.getMessage());
}
}
String alarmLevel = AbnormalStateEnum.getAbnormalName(level);
// AbnormalStateEnum enum1 = AbnormalStateEnum.getEnum(alarmLevel);
// iTopographyService.sendAbnormal(eqpId, enum1 == null ? 0 : enum1.getCode());
AbnormalStateEnum enum1 = AbnormalStateEnum.getEnum(alarmLevel);
iTopographyService.sendAbnormalByType(String.valueOf(eqpId), enum1 == null ? 0 : enum1.getCode(),
TopoNodeTypeEnum.动环监控.getType(), alramContent);
......@@ -170,7 +169,7 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
log.info("send websocekt info:" + param);
//告警记录
String queryColumn = eqpId + "_" + msgJson.getString("type");
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn);
......@@ -190,7 +189,7 @@ public class FireDetectionWebSocketClient extends WebSocketClient {
alarm.setAlarmReason(alramContent);
alarm.setAlarmSourceIp(msgJson.getString("alarmSourceIp"));
alarm.setAlarmSourceName(eqpName);
alarm.setAlarmSourceType(AlarmPointTypeEnum.火探.getName());
alarm.setAlarmSourceType(AlarmPointTypeEnum.HT.getName());
alarm.setCurrentState(FireDetectionAlarmType.getEnumStatus(status));
Date date = new Date(msgJson.getLong("raiseTime"));
alarm.setHappenDate(df.format(date));
......
......@@ -17,8 +17,7 @@ import java.util.Properties;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.data.domain.Sort;
......@@ -54,9 +53,9 @@ import com.yeejoin.amos.spc.exception.YeeException;
*
*/
public class InspectionWebSocketClient extends WebSocketClient{
private final Logger log = LoggerFactory.getLogger(InspectionWebSocketClient.class);
private static final Logger log = Logger.getLogger(InspectionWebSocketClient.class);
private IAutoInspectionService autoInspectionService;
private ITopographyService iTopographyService;
private IAisleInfoService aisleInfoService;
......@@ -65,20 +64,20 @@ public class InspectionWebSocketClient extends WebSocketClient{
private AmosWsClient client;
private IAlarmRepository iAlarmDao;
private static final String TAB = "\r\n";
private PatrolRemoteClient patrolRemoteClient;
//private String address;
private static ApplicationContext allpicationContext;
public static void setAllpicationContext(ApplicationContext context){
allpicationContext = context;
}
public InspectionWebSocketClient(String url) throws URISyntaxException {
super(new URI(url));
}
@Override
public void onOpen(ServerHandshake shake) {
log.info("InspectionWebSocketClient Shake hands......");
......@@ -103,7 +102,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
e.printStackTrace();
}
}
@Override
@Transactional
public void onMessage(String paramString) {
......@@ -117,22 +116,22 @@ public class InspectionWebSocketClient extends WebSocketClient{
String alarmState = msgJson.getString("alarmState");
String monitorHostMachine = msgJson.getString("monitorHostMachine");
String eqpId = msgJson.getString("eqpId");
if(monitorItemName != null && !"".equals(monitorItemName) && alarmState != null && !"".equals(alarmState)
&& eqpId != null && !"".equals(eqpId)) {
log.info("监控项名称:" + monitorItemName + " 发送设备: " + monitorHostMachine);
//查询自动巡检告警列表
List<AutoInspection> abnormals = autoInspectionService.findAbnormalByMonitorItemNameAndHost(monitorItemName,monitorHostMachine);
if(abnormals != null && abnormals.size() > 0) {
log.info("告警列表:" + abnormals);
String nextCheckTime = msgJson.getString("nextCheckTime");
AutoInspection abnormalInspection = abnormals.get(abnormals.size()-1);
//状态更新为正常时 发送websocket
Boolean sendMsg = false;
Boolean sendMsg = false;
if(!alarmState.equals(abnormalInspection.getAlarmState())) {
sendMsg = true;
//删除告警表
......@@ -148,30 +147,30 @@ public class InspectionWebSocketClient extends WebSocketClient{
autoInspectionService.save(abnormalInspection);
log.info("异常[" + monitorItemName + "]点状态更新为"+ alarmState +",下次检查时间"+ nextCheckTime +"...success");
saveSpcAlarm(abnormalInspection,msgJson);//保存告警记录
if(sendMsg) {
String aisleType = abnormalInspection.getAisleType();
if( (AutoInspectionTypeEnum.商业银行通道.getType().equals(aisleType)
if( (AutoInspectionTypeEnum.商业银行通道.getType().equals(aisleType)
|| AutoInspectionTypeEnum.NPC通道.getType().equals(aisleType))) {//通道 状态更新时
sendWebSocketMsg(abnormalInspection.getLabel1());
Long treeId = aisleInfoService.queryTreeIdByStratAndEnd(monitorHostMachine,abnormalInspection.getLabel2());
iTopographyService.sendPMTSAbnormal(PMTSTypeEnum.getEnumType(monitorHostMachine)
,abnormalInspection.getLabel2()
,TopoGroupEnum.PMTS.getName()
,treeId,0);
log.info("topo图PMTS 通道状态更新信息发送成功...success");
}else if((AutoInspectionTypeEnum.MQ状态.getType().equals(aisleType)
}else if((AutoInspectionTypeEnum.MQ状态.getType().equals(aisleType)
|| AutoInspectionTypeEnum.设备状态.getType().equals(aisleType))){//设备状态 更新
iTopographyService.sendAbnormalByType(monitorHostMachine,
AbnormalStateEnum.N.getCode(),
iTopographyService.sendAbnormalByType(monitorHostMachine,
AbnormalStateEnum.N.getCode(),
TopoNodeTypeEnum.设备监控.getType(),
monitorItemName);
log.info("topo图设备监控更新信息发送成功...success");
}
}
}else {
AutoInspection autoInspection = new AutoInspection();
autoInspection.setAlarmState(alarmState);
autoInspection.setMonitorItemName(monitorItemName);
......@@ -183,7 +182,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
autoInspection.setSourceId(msgJson.getString("sourceId"));
autoInspection.setCurrentCheckTime(msgJson.getString("currentCheckTime"));
autoInspection.setCurrentValue(msgJson.getString("currentValue"));
ArrayList<String> aisleInfo = new ArrayList<>();
if(monitorItemName.contains("行号")) {
String[] splits = monitorItemName.split(" ");
......@@ -199,11 +198,11 @@ public class InspectionWebSocketClient extends WebSocketClient{
autoInspection.setLabel1(aisleInfo.get(0));
String label2 = aisleInfo.get(1);
String aisle = aisleInfo.get(2);
// label2 = aisle.contains("1") ? label2 + "1" : label2;
// label2 = aisle.contains("1") ? label2 + "1" : label2;
autoInspection.setLabel2(label2);
autoInspection.setAisle(aisle);
log.info("设置通道信息Aisle:" + aisleInfo.get(2) + "Label1:"+ aisleInfo.get(0)+ "Label2:"+ aisleInfo.get(1));
}else if(monitorItemName.contains("MQ系统")) {
autoInspection.setAisle("MQ系统");
autoInspection.setAisleType(AutoInspectionTypeEnum.MQ状态.getType());
......@@ -212,19 +211,19 @@ public class InspectionWebSocketClient extends WebSocketClient{
}else {
autoInspection.setAisleType(AutoInspectionTypeEnum.设备状态.getType());
}
autoInspectionService.save(autoInspection);
log.info("[" + monitorItemName + "]自动巡检状态["+ alarmState +"],保存成功...success");
saveSpcAlarm(autoInspection,msgJson);//保存告警记录
if(AlarmPointEnum.异常.getName().equals(alarmState)) {
if(AlarmPointEnum.ABNORMAL.getName().equals(alarmState)) {
saveAlarmPoint(autoInspection,msgJson,eqpId);
String aisleType = autoInspection.getAisleType();
if( (AutoInspectionTypeEnum.商业银行通道.getType().equals(aisleType)
if( (AutoInspectionTypeEnum.商业银行通道.getType().equals(aisleType)
|| AutoInspectionTypeEnum.NPC通道.getType().equals(aisleType))) {//通道 状态为异常时
sendWebSocketMsg(autoInspection.getLabel1());
Long treeId = aisleInfoService.queryTreeIdByStratAndEnd(monitorHostMachine,autoInspection.getLabel2());
iTopographyService.sendPMTSAbnormal(PMTSTypeEnum.getEnumType(monitorHostMachine)
,autoInspection.getLabel2()
......@@ -232,21 +231,21 @@ public class InspectionWebSocketClient extends WebSocketClient{
,treeId
,AbnormalStateEnum.M.getCode());
log.info("topo图PMTS异常发送成功...success");
}else if((AutoInspectionTypeEnum.MQ状态.getType().equals(aisleType)
}else if((AutoInspectionTypeEnum.MQ状态.getType().equals(aisleType)
|| AutoInspectionTypeEnum.设备状态.getType().equals(aisleType))) {//设备状态为异常时
iTopographyService.sendAbnormalByType(monitorHostMachine,
iTopographyService.sendAbnormalByType(monitorHostMachine,
AbnormalStateEnum.M.getCode(),
TopoNodeTypeEnum.设备监控.getType(),
monitorItemName);
log.info("topo图设备监控异常发送成功...success");
}
//推送消息巡检app
//String url =address+"api/msgSubscribe/alarmNotification";
try {
Map<String, Object> map=new HashMap<String, Object>();
map.put("code", msgJson.getString("orgCode"));
map.put("code", msgJson.getString("orgCode"));
map.put("body", "告警源名称:"+monitorItemName+TAB+"告警信息"+alarmState);
String stringJson = JSONObject.toJSONString(map);
// HttpUtil.PostJson(url, stringJson);
......@@ -257,16 +256,16 @@ public class InspectionWebSocketClient extends WebSocketClient{
}
}
}
}else {
throw new YeeException("监控项名/或告警状态/eqpId 不能为空!!!");
}
}
}
} catch (Exception e) {
log.info("*****************error**************************");
log.info(e.getMessage());
......@@ -277,13 +276,13 @@ public class InspectionWebSocketClient extends WebSocketClient{
public void onClose(int paramInt, String paramString, boolean paramBoolean) {
log.info("shut down...");
}
@Override
public void onError(Exception e) {
log.info("abnormal"+e);
}
public static synchronized void synInspectionAlarm() {
System.out.println("-------------------Inspection alarms Socket start-------------------------");
try {
......@@ -297,10 +296,10 @@ public class InspectionWebSocketClient extends WebSocketClient{
System.out.println("build..." + alarmWebSocketClientUrl + " connected");
} catch (URISyntaxException | IOException e) {
e.printStackTrace();
}
}
}
private static ArrayList<String> getAisleInfo(String content,String replaceStr){
ArrayList<String> list = new ArrayList<>();
String replaceAll = content.replaceAll("[^a-zA-Z0-9]", "_");//取英文数字
......@@ -313,7 +312,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
list.add(substring);
return list;
}
public static void main(String[] args) {
String aaaString="791TB到NPC发送通道状态1F";
String bbbString="791TB到NPC发送通道状态F";
......@@ -322,7 +321,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
ArrayList<String> bbb = getAisleInfo(bbbString,"");
System.out.println(bbb);
}
private void sendWebSocketMsg(String label) {
try {
log.info("send websocekt start ");
......@@ -349,11 +348,11 @@ public class InspectionWebSocketClient extends WebSocketClient{
List<AlarmPoint> pointList = alarmPointService.queryAutoInspection(eqpId,content);
AlarmPoint alarmPoint = null;
if(pointList != null && pointList.size()==0) {
alarmPoint = new AlarmPoint();
alarmPoint.setPointType(autoInspection.getAisleType().equals(AutoInspectionTypeEnum.NPC通道.getType())
|| autoInspection.getAisleType().equals(AutoInspectionTypeEnum.商业银行通道.getType())
? AlarmPointTypeEnum.通道.getCode() : AlarmPointTypeEnum.虚拟设备.getCode());
alarmPoint.setPointType(autoInspection.getAisleType().equals(AutoInspectionTypeEnum.NPC通道.getType())
|| autoInspection.getAisleType().equals(AutoInspectionTypeEnum.商业银行通道.getType())
? AlarmPointTypeEnum.TD.getCode() : AlarmPointTypeEnum.XNSB.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setPointId(msgJson.getLong("eqpId") != null ? msgJson.getLong("eqpId") : 0);
alarmPoint.setContent(autoInspection.getMonitorItemName());
......@@ -363,7 +362,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
alarmPointService.save(alarmPoint);
log.info("p_alarm_point 告警表保存成功...success");
sendAlarmWebSocket();
}else {
alarmPoint = pointList.get(0);
alarmPoint.setUpdateDate(new Date());
......@@ -371,7 +370,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
log.info("p_alarm_point 告警表更新成功...success");
}
}
//删除告警表信息
private void deleteAlarmPoint(String eqpId,String content) {
List<AlarmPoint> pointList = alarmPointService.queryAutoInspection(eqpId,content);
......@@ -381,8 +380,8 @@ public class InspectionWebSocketClient extends WebSocketClient{
log.info("删除告警点[eqpId:"+ eqpId +"] p_alarm_point 成功...success");
sendAlarmWebSocket();
}
//推送前端告警信息 跑马灯
//推送前端告警信息 跑马灯
private void sendAlarmWebSocket() {
try {
Sort sort = new Sort(Sort.Direction.DESC, "updateDate");
......@@ -398,7 +397,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
e.printStackTrace();
}
}
private void saveSpcAlarm(AutoInspection autoInspection, JSONObject msgJson) {
String columnString = msgJson.getString("eqpId") + "_" + autoInspection.getMonitorItemName();
List<Alarm> spcAlarmList = alarmService.findByQueryColumn(columnString);
......@@ -427,7 +426,7 @@ public class InspectionWebSocketClient extends WebSocketClient{
log.info("Save alarm records...success");
}
}
}
\ No newline at end of file
......@@ -12,11 +12,18 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.bank.TopographyNodeDetail;
import com.yeejoin.amos.bank.dao.mapper.AlarmMapper;
import com.yeejoin.amos.bank.dao.repository.ITopographyNodeDetailRepository;
import com.yeejoin.amos.bank.dao.repository.ITopographyNodeRepository;
import com.yeejoin.amos.bank.utils.DateTimeKit;
import com.yeejoin.amos.spc.core.util.StringUtil;
import io.micrometer.core.instrument.util.StringUtils;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.support.PropertiesLoaderUtils;
......@@ -38,6 +45,9 @@ import com.yeejoin.amos.bank.utils.HttpUtil;
import com.yeejoin.amos.bank.utils.JsonUtil;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.spc.exception.YeeException;
import org.springframework.util.ObjectUtils;
import static com.yeejoin.amos.bank.constants.AlarmConstant.*;
/**
* 接收动环告警
......@@ -46,28 +56,52 @@ import com.yeejoin.amos.spc.exception.YeeException;
*/
public class MonitorAlarmWebSocketClient extends WebSocketClient {
private final Logger log = LoggerFactory.getLogger(MonitorAlarmWebSocketClient.class);
private static final Logger log = Logger.getLogger(MonitorAlarmWebSocketClient.class);
private static final String TAB = "\r\n";
private static ApplicationContext allpicationContext;
private ITopographyNodeRepository iTopographyNodeRepository;
private ITopographyNodeDetailRepository iTopographyNodeDetailDao;
private IAlarmPointService alarmPointService;
private IAlarmService alarmService;
private ITopographyService iTopographyService;
private AmosWsClient client;
private static final String TAB = "\r\n";
private AlarmMapper alarmMapper;
private IAlarmRepository iAlarmDao;
private String address;
private static ApplicationContext allpicationContext;
private PatrolRemoteClient patrolRemoteClient;
public MonitorAlarmWebSocketClient(String url) throws URISyntaxException {
super(new URI(url));
}
public static void setAllpicationContext(ApplicationContext context) {
allpicationContext = context;
}
public MonitorAlarmWebSocketClient(String url) throws URISyntaxException {
super(new URI(url));
private static String getAuthOrg(String authOrg) {
if (!StringUtils.isEmpty(authOrg) && authOrg.startsWith("[") && authOrg.endsWith("]")) {
String str = authOrg.substring(1, authOrg.length() - 1).replace(" ", "").replace(",", "#");
return "#"+ str;
}
return null;
}
public static synchronized void synMonitorAlarmPoint() {
System.out.println("-------------------Monitoring of ring alarms start-------------------------");
try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String monitorAlarmWebSocketClientUrl = (String) props.get("params.remoteWebsocketUrl") + "metricData?subData=monitorAlarm";
MonitorAlarmWebSocketClient client = new MonitorAlarmWebSocketClient(monitorAlarmWebSocketClientUrl);
client.connect();
while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {
//System.out.println("connecting...Dynamic ring alarm----" + client.getReadyState());
}
System.out.println("build " + monitorAlarmWebSocketClientUrl + "connected...");
} catch (URISyntaxException | IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
@Override
......@@ -83,6 +117,9 @@ public class MonitorAlarmWebSocketClient extends WebSocketClient {
alarmService = (IAlarmService) allpicationContext.getBean(IAlarmService.class);
patrolRemoteClient= (PatrolRemoteClient) allpicationContext.getBean(PatrolRemoteClient.class);
iAlarmDao =(IAlarmRepository) allpicationContext.getBean(IAlarmRepository.class);
alarmMapper = (AlarmMapper) allpicationContext.getBean(AlarmMapper.class);
iTopographyNodeRepository = (ITopographyNodeRepository) allpicationContext.getBean(ITopographyNodeRepository.class);
iTopographyNodeDetailDao = (ITopographyNodeDetailRepository) allpicationContext.getBean(ITopographyNodeDetailRepository.class);
try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
......@@ -100,118 +137,169 @@ public class MonitorAlarmWebSocketClient extends WebSocketClient {
String formatJsonString = JsonUtil.formatJsonString(paramString);
JSONObject msgJson = JSONObject.parseObject(formatJsonString);
Long eqpId = msgJson.getLong("eqpId");
String cpblName = msgJson.getString("cpblName");
if (null != eqpId) {
String curStatus = msgJson.getString("currentState");
Map<String,Object> nodeDetailMap = iTopographyNodeRepository.findNodeDetailBySourceId(msgJson.getString("sourceId"));
List<JSONObject> alarmAttributes = (List<JSONObject>) msgJson.get("capacityAttrList");
List<Map<String, String>> DHlist = new ArrayList<>();
synchronized (this) {
Boolean alarmFlagBoolean = false;
//1.指标是否有异常
boolean alarmFlagBoolean = false;
for (JSONObject a : alarmAttributes) {
String atr = (String) a.get("name");
String res = (String) msgJson.get(atr);
if (res != null && AlarmPointEnum.异常.getName().equals(res)) {
if (res != null &&(AlarmPointEnum.ABNORMAL.getName().equals(res)||AlarmPointEnum.ALARM.getName().equals(res))) {
alarmFlagBoolean = true;
log.info("Moving ring device[" + eqpId + "]" + atr + "abnormal");
break;
}
}
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.动环.getCode(), eqpId);
if (!alarmFlagBoolean && pointList != null) {
alarmPointService.deleteItems(pointList);
log.info("Clear p_alarm_point Alarm data ...success");
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 0);
//2.修改动环详情表的信息
for (int i = 0; i < alarmAttributes.size(); i++) {
JSONObject a = alarmAttributes.get(i);
String atr = (String) a.get("name");
String res = (String) msgJson.get(atr);
Map<String, String> map = new HashMap();
if (!"labelType".equals(atr)) {
map.put("name", a.get("displayName").toString());
map.put("value", msgJson.get(atr).toString());
DHlist.add(map);
}
}
if (nodeDetailMap.get("node_detail") != null && !StringUtils.isBlank(nodeDetailMap.get("node_detail").toString())) {
JSONArray nodeDetailArray = JSONArray.parseArray(nodeDetailMap.get("node_detail").toString());
for (int i = 0; i < DHlist.size(); i++) {
int count = 0;
for (int j = 0; j < nodeDetailArray.size(); j++) {
if (DHlist.get(i).get("name").equals(JSONObject.parseObject(nodeDetailArray.get(j).toString()).get("name"))) {
nodeDetailArray.getJSONObject(j).put("value", DHlist.get(i).get("value"));
count++;
}
}
if (count == 0) {
JSONObject detailObject = new JSONObject();
detailObject.put("name", DHlist.get(i).get("name"));
detailObject.put("value", DHlist.get(i).get("value"));
nodeDetailArray.add(detailObject);
}
TopographyNodeDetail topographyNodeDetail = iTopographyNodeDetailDao.findByNodeid(nodeDetailMap.get("id").toString());
topographyNodeDetail.setNodeDetail(nodeDetailArray.toJSONString());
iTopographyNodeDetailDao.save(topographyNodeDetail);
}
} else {
if (null == pointList || pointList.size() == 0) {
String alramContent = msgJson.getString("describe");
String eqpType = msgJson.getString("eqpType");
String eqpName = msgJson.getString("eqpName");
String equipmentAttrs = msgJson.getString("equipmentAttrs");
String sourceId = msgJson.getString("sourceId");
String orgCode = msgJson.getString("orgCode");
AlarmPoint alarmPoint = new AlarmPoint();
alarmPoint.setCode(orgCode);
alarmPoint.setPointId(eqpId);
// alarmPoint.setPointType(eqpType);
alarmPoint.setPointType(AlarmPointTypeEnum.动环.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setContent(alramContent);
alarmPoint.setPointAttrs(equipmentAttrs);
alarmPoint.setPointName(eqpName);
alarmPointService.saveItem(alarmPoint);
log.info("Save alarm data....success");
//推送消息巡检app
//String url = address + "api/msgSubscribe/alarmNotification";
try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", msgJson.getString("orgCode"));
map.put("body", "告警源名称:" + eqpName + TAB + "告警信息" + alramContent);
String stringJson = JSONObject.toJSONString(map);
//HttpUtil.PostJson(url, stringJson);
CommonResponse result = patrolRemoteClient.sendAlarmNotification(stringJson);
log.info("手机推送告警信息...success");
} catch (Exception e) {
log.info("手机推送告警信息失败...fail" + e.getMessage());
}
JSONArray nodeDetailArray = new JSONArray();
for (int i = 0; i < DHlist.size(); i++) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", DHlist.get(i).get("name").toString());
jsonObject.put("value", DHlist.get(i).get("value").toString());
nodeDetailArray.add(jsonObject);
}
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 1);
TopographyNodeDetail topographyNodeDetail = new TopographyNodeDetail();
topographyNodeDetail.setNodeDetail(JSON.toJSONString(nodeDetailArray));
topographyNodeDetail.setNodeid(nodeDetailMap.get("id").toString());
iTopographyNodeDetailDao.save(topographyNodeDetail);
}
Sort sort = new Sort(Sort.Direction.DESC, "updateDate");
List<AlarmPoint> alarms = alarmPointService.findAll(sort);
WebsocketParam param = new WebsocketParam("alarmPoint", JSON.toJSONString(alarms));
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
log.info("send websocekt info:" + param);
//告警记录
ArrayList<Alarm> alarmList = new ArrayList<>();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//3.数据插入告警记录
String res = AlarmPointEnum.NORMAL.getName();
String alarmTypeCombination="";
for (JSONObject atrJson : alarmAttributes) {
String atrName = (String) atrJson.get("name");
String alarmType = (String) atrJson.get("displayName");
String res = (String) msgJson.get(atrName);
if ("labelType".equals(atrName)) {
continue;
}
String alarmType = (String) atrJson.get("displayName");
if(AlarmPointEnum.ABNORMAL.getName().equals(msgJson.getString(atrName))||AlarmPointEnum.ALARM.getName().equals(msgJson.getString(atrName))){
alarmTypeCombination = alarmType + alarmTypeCombination;
res = AlarmPointEnum.ABNORMAL.getName();
}
//告警记录
String queryColumn = msgJson.getString("sourceId") + "_" + alarmType;
//查出当前记录中的告警记录
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn);
if (curAlarmList != null && curAlarmList.size() > 0) {
Alarm alarm = curAlarmList.get(0);
// if(alarm != null || AlarmPointEnum.异常.getName().equals(res)) {
alarm.setUpdateDate(df.format(new Date()));
alarm.setCurrentState(res);
alarmList.add(alarm);
// }
} else {//记录无告警则新增
Alarm alarm = new Alarm();
alarm.setSourceId(msgJson.getString("sourceId"));
alarm.setAlarmSourceIp(msgJson.getString("sourceId"));
alarm.setAlarmSourceType(alarmType);
alarm.setUpdateDate(df.format(new Date()));
alarm.setOrgCode(msgJson.getString("orgCode"));
alarm.setQueryColumn(queryColumn);
alarm.setAlarmLevel("警告告警");
alarm.setCurrentState(res);
alarmList.add(alarm);
}
Long cpblId = msgJson.getLong("cpblId");
String sourceId = msgJson.getString("sourceId");
String orgCode = msgJson.getString("orgCode");
String authOrg = msgJson.getString("authOrg");
String eqpName = msgJson.getString("eqpName");
String alramContent = msgJson.getString("alramContent");
String authOrgTemp = JsonUtil.arraysToString(JsonUtil.toStringArray(authOrg));
if (!ObjectUtils.isEmpty(authOrgTemp)) {
orgCode = authOrgTemp;
}
if(!"运行参数".equals(cpblName)||!"常电监测".equals(cpblName)||!"常电监测".equals(cpblName)){
addRecordAlarm(alarmTypeCombination, res, sourceId, orgCode, authOrg, eqpName,cpblName,alramContent);
//4.对跑马灯显示进行处理
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.DH.getCode(), eqpId,cpblId);
List<Alarm> curAlarmList = alarmService.selectByQuerySourceId(sourceId);
if (!alarmFlagBoolean && pointList.size() > 0) {
alarmPointService.deleteItems(pointList);
log.info("Clear p_alarm_point Alarm data ...success");
//设备所有的指标都不异常,才可以将state置为0
if(curAlarmList.size()==0){
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 0);
}
} else {
if (alarmFlagBoolean && pointList.size() == 0) {
String eqpType = msgJson.getString("eqpType");
String equipmentAttrs = msgJson.getString("equipmentAttrs");
String authOrgs = getAuthOrg(msgJson.getString("authOrg"));
AlarmPoint alarmPoint = new AlarmPoint();
alarmPoint.setCode(authOrgs);
alarmPoint.setSourceId(sourceId);
alarmPoint.setPointId(eqpId);
alarmPoint.setAuthOrg(authOrgs);
alarmPoint.setPointType(AlarmPointTypeEnum.DH.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setContent(eqpName+alarmTypeCombination);
alarmPoint.setPointAttrs(equipmentAttrs);
alarmPoint.setPointName(eqpName);
alarmPoint.setTarget(cpblId);
alarmPointService.saveItem(alarmPoint);
log.info("Save alarm data....success");
// 6 .推送消息巡检app
try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", msgJson.getString("orgCode"));
map.put("body", "告警源名称:" + eqpName + TAB + "告警信息" + alramContent);
String stringJson = JSONObject.toJSONString(map);
CommonResponse result = patrolRemoteClient.sendAlarmNotification(stringJson);
log.info("手机推送告警信息...success");
} catch (Exception e) {
log.info("手机推送告警信息失败...fail" + e.getMessage());
}
}else {
if(pointList.size()>0){
AlarmPoint alarmPoint =pointList.get(0);
alarmPoint.setContent(eqpName+alarmTypeCombination);
alarmPointService.save(alarmPoint);
}
}
}
if(alarmFlagBoolean){
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 1);
}
//7.给前台发送websocket
Sort sort = new Sort(Sort.Direction.DESC, "updateDate");
List<AlarmPoint> alarms = alarmPointService.findAll(sort);
WebsocketParam param = new WebsocketParam("alarmPoint", JSON.toJSONString(alarms));
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
log.info("send websocekt info:" + param);
}
//alarmService.save(alarmList);
iAlarmDao.saveAll(alarmList);
log.info("Save alarm records ....success");
}
}else {
throw new YeeException("eqpId 不能为空!!!");
}
} catch (Exception e) {
log.info("*********************error****************************");
log.info(e.getMessage());
......@@ -229,21 +317,61 @@ public class MonitorAlarmWebSocketClient extends WebSocketClient {
log.info("abnormal " + e);
}
public static synchronized void synMonitorAlarmPoint() {
System.out.println("-------------------Monitoring of ring alarms start-------------------------");
try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String monitorAlarmWebSocketClientUrl = (String) props.get("params.remoteWebsocketUrl") + "metricData?subData=monitorAlarm";
MonitorAlarmWebSocketClient client = new MonitorAlarmWebSocketClient(monitorAlarmWebSocketClientUrl);
client.connect();
while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {
/**
* 添加告警记录
* @param alarmType 告警类型
* @param alarmStatus 状态,正常 异常
* @param sourceId
* @param orgCode
* @param authOrg
* @param eqpName 设备名称
* @param cpblName 报警类型
*/
private void addRecordAlarm(String alarmType, String alarmStatus,String sourceId,String orgCode,String authOrg,String eqpName,String cpblName,String alramContent) {
//告警记录
String queryColumn = sourceId + "_" + cpblName;
//查出当前记录中的告警记录
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn);
if (curAlarmList != null && curAlarmList.size() > 0) {
Alarm alarm = curAlarmList.get(0);
alarm.setOrgCode(orgCode);
alarm.setUpdateDate(DateTimeKit.now());
if (!ObjectUtils.isEmpty(alarm.getHappenDate())) {
String subtract = DateTimeKit.getSubtract(alarm.getHappenDate());
alarm.setContinueDate(subtract);
}
System.out.println("connecting...Dynamic ring alarm----" + client.getReadyState());
if (AlarmPointEnum.ABNORMAL.getName().equals(alarmStatus)||AlarmPointEnum.ALARM.getName().equals(alarmStatus)) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
} else {
alarm.setClearDate(DateTimeKit.now());
alarm.setClearPerson(CLEAR_PERSON);
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
alarmMapper.updateAlarm(alarm);
} else {//记录无告警则新增
Alarm alarm = new Alarm();
alarm.setSourceId(sourceId);
alarm.setAlarmReason(cpblName);
alarm.setAlarmSourceName(eqpName);
alarm.setAlarmLevel(ALARM_DEVICE_MAJOR);
// alarm.setAlarmSourceIp(sourceId);
alarm.setAlarmSourceType(ALARM_DEVICE_TYPE);
alarm.setClearDate("");
alarm.setContinueDate("");
alarm.setEnsureDate("");
alarm.setEnsurePerson("");
alarm.setOrgCode(orgCode);
alarm.setHappenDate(DateTimeKit.now());
alarm.setQueryColumn( sourceId + "_" + cpblName);
List<Alarm> curAlarmRList = alarmService.findByQueryColumn(queryColumn);
if (AlarmPointEnum.ABNORMAL.getName().equals(alarmStatus)||AlarmPointEnum.ALARM.getName().equals(alarmStatus)) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
iAlarmDao.save(alarm);
} else {
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
System.out.println("build " + monitorAlarmWebSocketClientUrl + "connected...");
} catch (URISyntaxException | IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
log.info("Save shidu alarm records ....success");
}
}
package com.yeejoin.amos.bank.webSocket;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_ABNORMAL_STATUS;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_NORMAL_STATUS;
import static com.yeejoin.amos.bank.constants.AlarmConstant.CLEAR_PERSON;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_DEVICE_TYPE;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_DEVICE_MAJOR;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
......@@ -12,12 +18,13 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.yeejoin.amos.bank.TopographyNodeDetail;
import com.yeejoin.amos.bank.dao.repository.ITopographyNodeDetailRepository;
import com.yeejoin.amos.bank.dao.repository.ITopographyNodeRepository;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.data.domain.Sort;
......@@ -30,18 +37,20 @@ import com.yeejoin.amos.bank.common.enums.AlarmPointEnum;
import com.yeejoin.amos.bank.common.enums.AlarmPointTypeEnum;
import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.dao.mapper.AlarmMapper;
import com.yeejoin.amos.bank.dao.repository.IAlarmRepository;
import com.yeejoin.amos.bank.remote.client.PatrolRemoteClient;
import com.yeejoin.amos.bank.service.IAlarmPointService;
import com.yeejoin.amos.bank.service.IAlarmService;
import com.yeejoin.amos.bank.service.ITopographyService;
import com.yeejoin.amos.bank.utils.DateTimeKit;
import com.yeejoin.amos.bank.utils.HttpUtil;
import com.yeejoin.amos.bank.utils.JsonUtil;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.spc.exception.YeeException;
import fr.opensagres.xdocreport.template.velocity.internal.Foreach;
import io.micrometer.core.instrument.util.StringUtils;
import org.springframework.util.ObjectUtils;
/**
* 湿度动环告警
......@@ -50,28 +59,52 @@ import io.micrometer.core.instrument.util.StringUtils;
*/
public class ShiduAlarmWebSocketClient extends WebSocketClient {
private final Logger log = LoggerFactory.getLogger(ShiduAlarmWebSocketClient.class);
private static final Logger log = Logger.getLogger(ShiduAlarmWebSocketClient.class);
private static final String TAB = "\r\n";
private static ApplicationContext allpicationContext;
private ITopographyNodeRepository iTopographyNodeRepository;
private ITopographyNodeDetailRepository iTopographyNodeDetailDao;
private IAlarmPointService alarmPointService;
private IAlarmService alarmService;
private ITopographyService iTopographyService;
private AmosWsClient client;
private static final String TAB = "\r\n";
private IAlarmRepository iAlarmDao;
private String address;
private static ApplicationContext allpicationContext;
private PatrolRemoteClient patrolRemoteClient;
private AlarmMapper alarmMapper;
public ShiduAlarmWebSocketClient(String url) throws URISyntaxException {
super(new URI(url));
}
public static void setAllpicationContext(ApplicationContext context) {
allpicationContext = context;
}
public ShiduAlarmWebSocketClient(String url) throws URISyntaxException {
super(new URI(url));
private static String getAuthOrg(String authOrg) {
if (!StringUtils.isEmpty(authOrg) && authOrg.startsWith("[") && authOrg.endsWith("]")) {
String str = authOrg.substring(1, authOrg.length() - 1).replace(" ", "").replace(",", "#");
return "#"+ str;
}
return null;
}
public static synchronized void synMonitorAlarmPoint() {
System.out.println("-------------------shidu Monitoring of ring alarms start-------------------------");
try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String monitorAlarmWebSocketClientUrl = (String) props.get("params.remoteWebsocketUrl") + "metricData?subData=shiduAlarm";
ShiduAlarmWebSocketClient client = new ShiduAlarmWebSocketClient(monitorAlarmWebSocketClientUrl);
client.connect();
while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {
log.info("connecting... shidu Dynamic ring alarm----" + client.getReadyState());
}
System.out.println("build " + monitorAlarmWebSocketClientUrl + "connected...");
} catch (URISyntaxException | IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
@Override
......@@ -87,7 +120,9 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
alarmService = (IAlarmService) allpicationContext.getBean(IAlarmService.class);
patrolRemoteClient= (PatrolRemoteClient) allpicationContext.getBean(PatrolRemoteClient.class);
iAlarmDao =(IAlarmRepository) allpicationContext.getBean(IAlarmRepository.class);
alarmMapper = (AlarmMapper) allpicationContext.getBean(AlarmMapper.class);
iTopographyNodeRepository = (ITopographyNodeRepository) allpicationContext.getBean(ITopographyNodeRepository.class);
iTopographyNodeDetailDao = (ITopographyNodeDetailRepository) allpicationContext.getBean(ITopographyNodeDetailRepository.class);
try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
address = (String) props.get("params.patrol");
......@@ -105,131 +140,234 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
log.info("chuli shidu message after:" + formatJsonString);
JSONObject msgJson = JSONObject.parseObject(formatJsonString);
Long eqpId = msgJson.getLong("eqpId");
String cpblName = msgJson.getString("cpblName");
if (null != eqpId) {
Map<String,Object> nodeDetailMap = iTopographyNodeRepository.findNodeDetailBySourceId(msgJson.getString("sourceId"));
List<JSONObject> alarmAttributes = (List<JSONObject>) msgJson.get("capacityAttrList");
synchronized (this) {
synchronized (this) {
//拼接json存入动环详情表
Boolean alarmFlagBoolean = false;
for (JSONObject a : alarmAttributes) {
String atr = (String) a.get("name");
String res = (String) msgJson.get(atr);
if (res != null && AlarmPointEnum.异常.getName().equals(res)) {
if (res != null && (AlarmPointEnum.ABNORMAL.getName().equals(res)||AlarmPointEnum.ALARM.getName().equals(res))) {
alarmFlagBoolean = true;
log.info("Moving ring device[" + eqpId + "]" + atr + "abnormal");
break;
}
}
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.动环.getCode(), eqpId);
if (!alarmFlagBoolean && pointList != null) {
alarmPointService.deleteItems(pointList);
log.info("Clear p_alarm_point Alarm data ...success");
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 0);
} else {
if (null == pointList || pointList.size() == 0) {
String alramContent = msgJson.getString("describe");
String eqpType = msgJson.getString("eqpType");
String eqpName = msgJson.getString("eqpName");
String equipmentAttrs = msgJson.getString("equipmentAttrs");
String sourceId = msgJson.getString("sourceId");
String authOrgs = getAuthOrg(msgJson.getString("authOrg"));
//String orgCode = msgJson.getString("orgCode");
AlarmPoint alarmPoint = new AlarmPoint();
alarmPoint.setCode(authOrgs);
alarmPoint.setSourceId(sourceId);
alarmPoint.setPointId(eqpId);
alarmPoint.setAuthOrg(authOrgs);
// alarmPoint.setPointType(eqpType);
alarmPoint.setPointType(AlarmPointTypeEnum.动环.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setContent(alramContent);
alarmPoint.setPointAttrs(equipmentAttrs);
alarmPoint.setPointName(eqpName);
alarmPointService.saveItem(alarmPoint);
log.info("Save alarm data....success");
//推送消息巡检app
//String url = address + "api/msgSubscribe/alarmNotification";
try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", msgJson.getString("orgCode"));
map.put("body", "告警源名称:" + eqpName + TAB + "告警信息" + alramContent);
String stringJson = JSONObject.toJSONString(map);
//HttpUtil.PostJson(url, stringJson);
CommonResponse result = patrolRemoteClient.sendAlarmNotification(stringJson);
log.info("手机推送告警信息...success");
} catch (Exception e) {
log.info("手机推送告警信息失败...fail" + e.getMessage());
}
//组装动环信息JSON
List<Map<String, String>> DHlist = new ArrayList<>();
for (JSONObject a : alarmAttributes) {
String atr = (String) a.get("name");
String res = (String) msgJson.get(atr);
Map<String, String> map = new HashMap();
if (!"labelType".equals(atr)) {
map.put("name", a.get("displayName").toString());
map.put("value", msgJson.get(atr).toString());
DHlist.add(map);
}
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 1);
}
Sort sort = new Sort(Sort.Direction.DESC, "updateDate");
List<AlarmPoint> alarms = alarmPointService.findAll(sort);
WebsocketParam param = new WebsocketParam("alarmPoint", JSON.toJSONString(alarms));
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
log.info("send websocekt info:" + param);
if (nodeDetailMap.get("node_detail") != null) {
JSONArray nodeDetailArray = JSONArray.parseArray(nodeDetailMap.get("node_detail").toString());
for (int i = 0; i < DHlist.size(); i++) {
int count = 0;
for (int j = 0; j < nodeDetailArray.size(); j++) {
if (DHlist.get(i).get("name").equals(JSONObject.parseObject(nodeDetailArray.get(j).toString()).get("name"))) {
nodeDetailArray.getJSONObject(j).put("value", DHlist.get(i).get("value"));
count++;
}
}
if (count == 0) {
JSONObject detailObject = new JSONObject();
detailObject.put("name", DHlist.get(i).get("name"));
detailObject.put("value", DHlist.get(i).get("value"));
nodeDetailArray.add(detailObject);
}
TopographyNodeDetail topographyNodeDetail = iTopographyNodeDetailDao.findByNodeid(nodeDetailMap.get("id").toString());
topographyNodeDetail.setNodeDetail(nodeDetailArray.toJSONString());
iTopographyNodeDetailDao.save(topographyNodeDetail);
}
} else {
JSONArray nodeDetailArray = new JSONArray();
for (int i = 0; i < DHlist.size(); i++) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", DHlist.get(i).get("name").toString());
jsonObject.put("value", DHlist.get(i).get("value").toString());
nodeDetailArray.add(jsonObject);
}
TopographyNodeDetail topographyNodeDetail = new TopographyNodeDetail();
topographyNodeDetail.setNodeDetail(JSON.toJSONString(nodeDetailArray));
topographyNodeDetail.setNodeid(nodeDetailMap.get("id").toString());
iTopographyNodeDetailDao.save(topographyNodeDetail);
}
//告警记录
ArrayList<Alarm> alarmList = new ArrayList<>();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String res = AlarmPointEnum.NORMAL.getName();
String alarmTypeCombination="";
for (JSONObject atrJson : alarmAttributes) {
String atrName = (String) atrJson.get("name");
String alarmType = (String) atrJson.get("displayName");
String res = (String) msgJson.get(atrName);
if ("labelType".equals(atrName)) {
continue;
}
String alarmType = (String) atrJson.get("displayName");
if(AlarmPointEnum.ABNORMAL.getName().equals(msgJson.getString(atrName))||AlarmPointEnum.ALARM.getName().equals(msgJson.getString(atrName))){
alarmTypeCombination = alarmType + alarmTypeCombination;
res = AlarmPointEnum.ABNORMAL.getName();
}
}
Long cpblId = msgJson.getLong("cpblId");
String sourceId = msgJson.getString("sourceId");
String orgCode = msgJson.getString("orgCode");
String authOrg = msgJson.getString("authOrg");
String eqpName = msgJson.getString("eqpName");
String alramContent = msgJson.getString("alramContent");
String authOrgTemp = JsonUtil.arraysToString(JsonUtil.toStringArray(authOrg));
if (!ObjectUtils.isEmpty(authOrgTemp)) {
orgCode = authOrgTemp;
}
//添加告警记录
if(!"运行参数".equals(cpblName)||!"常电监测".equals(cpblName)||!"市电监测".equals(cpblName)||!"进行参数".equals(cpblName)){
addRecordAlarm(alarmTypeCombination, res, sourceId, orgCode, authOrg, eqpName,cpblName,alramContent);
List<AlarmPoint> pointList = alarmPointService.selectPointTypeAndPointId(AlarmPointTypeEnum.DH.getCode(), eqpId,cpblId);
List<Alarm> curAlarmList = alarmService.selectByQuerySourceId(sourceId);
if (!alarmFlagBoolean && pointList.size() > 0) {
alarmPointService.deleteItems(pointList);
log.info("Clear p_alarm_point Alarm data ...success");
//设备所有的指标都不异常,才可以将state置为0
if(curAlarmList.size()==0){
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 0);
}
} else {
if (alarmFlagBoolean && pointList.size() == 0) {
// String alramContent = msgJson.getString("describe");
String eqpType = msgJson.getString("eqpType");
// String eqpName = msgJson.getString("eqpName");
String equipmentAttrs = msgJson.getString("equipmentAttrs");
// String sourceId = msgJson.getString("sourceId");
String authOrgs = getAuthOrg(msgJson.getString("authOrg"));
//告警记录
String queryColumn = msgJson.getString("sourceId") + "_" + alarmType;
//查出当前记录中的告警记录
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn);
if (curAlarmList != null && curAlarmList.size() > 0) {
//String orgCode = msgJson.getString("orgCode");
AlarmPoint alarmPoint = new AlarmPoint();
alarmPoint.setCode(authOrgs);
alarmPoint.setSourceId(sourceId);
alarmPoint.setPointId(eqpId);
alarmPoint.setAuthOrg(authOrgs);
// alarmPoint.setPointType(eqpType);
alarmPoint.setPointType(AlarmPointTypeEnum.DH.getCode());
alarmPoint.setUpdateDate(new Date());
alarmPoint.setContent(eqpName+alarmTypeCombination);
alarmPoint.setPointAttrs(equipmentAttrs);
alarmPoint.setPointName(eqpName);
alarmPoint.setTarget(cpblId);
alarmPointService.saveItem(alarmPoint);
log.info("Save alarm data....success");
Alarm alarm = curAlarmList.get(0);
// if(alarm != null || AlarmPointEnum.异常.getName().equals(res)) {
alarm.setUpdateDate(df.format(new Date()));
alarm.setCurrentState(res);
alarmList.add(alarm);
// }
} else {//记录无告警则新增
Alarm alarm = new Alarm();
alarm.setSourceId(msgJson.getString("sourceId"));
alarm.setAlarmSourceIp(msgJson.getString("sourceId"));
alarm.setAlarmSourceType(alarmType);
alarm.setUpdateDate(df.format(new Date()));
alarm.setOrgCode(msgJson.getString("orgCode"));
alarm.setQueryColumn(queryColumn);
alarm.setAlarmLevel("警告告警");
alarm.setCurrentState(res);
alarmList.add(alarm);
//推送消息巡检app
//String url = address + "api/msgSubscribe/alarmNotification";
try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", msgJson.getString("orgCode"));
map.put("body", "告警源名称:" + eqpName + TAB + "告警信息" + alramContent);
String stringJson = JSONObject.toJSONString(map);
//HttpUtil.PostJson(url, stringJson);
CommonResponse result = patrolRemoteClient.sendAlarmNotification(stringJson);
log.info("手机推送告警信息...success");
} catch (Exception e) {
log.info("手机推送告警信息失败...fail" + e.getMessage());
}
}else {
if(pointList.size()>0){
AlarmPoint alarmPoint =pointList.get(0);
alarmPoint.setContent(eqpName+alarmTypeCombination);
alarmPointService.save(alarmPoint);
}
}
}
if(alarmFlagBoolean){
iTopographyService.sendAbnormal(msgJson.getString("sourceId"), 1);
}
Sort sort = new Sort(Sort.Direction.DESC, "updateDate");
List<AlarmPoint> alarms = alarmPointService.findAll(sort);
WebsocketParam param = new WebsocketParam("alarmPoint", JSON.toJSONString(alarms));
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
log.info("send websocekt info:" + param);
}
//alarmService.save(alarmList);
iAlarmDao.saveAll(alarmList);
log.info("Save shidu alarm records ....success");
}
}else {
throw new YeeException("eqpId 不能为空!!!");
}
} catch (Exception e) {
log.info("*********************error****************************");
log.info(e.getMessage());
e.printStackTrace();
}
}
private static String getAuthOrg(String authOrg) {
if (!StringUtils.isEmpty(authOrg) && authOrg.startsWith("[") && authOrg.endsWith("]")) {
String str = authOrg.substring(1, authOrg.length() - 1).replace(" ", "").replace(",", "#");
return "#"+ str;
}
return null;
/**
* 添加告警记录
* @param alarmType 告警类型
* @param alarmStatus 状态,正常 异常
* @param sourceId
* @param orgCode
* @param authOrg
* @param eqpName 设备名称
* @param cpblName 报警类型
*/
private void addRecordAlarm(String alarmType, String alarmStatus,String sourceId,String orgCode,String authOrg,String eqpName,String cpblName,String alramContent) {
//告警记录
String queryColumn = sourceId + "_" + cpblName;
//查出当前记录中的告警记录
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn);
if (curAlarmList != null && curAlarmList.size() > 0) {
Alarm alarm = curAlarmList.get(0);
alarm.setOrgCode(orgCode);
alarm.setUpdateDate(DateTimeKit.now());
if (!ObjectUtils.isEmpty(alarm.getHappenDate())) {
String subtract = DateTimeKit.getSubtract(alarm.getHappenDate());
alarm.setContinueDate(subtract);
}
if (AlarmPointEnum.ALARM.getName().equals(alarmStatus)||AlarmPointEnum.ABNORMAL.getName().equals(alarmStatus)) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
} else {
alarm.setClearDate(DateTimeKit.now());
alarm.setClearPerson(CLEAR_PERSON);
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
alarmMapper.updateAlarm(alarm);
} else {//记录无告警则新增
Alarm alarm = new Alarm();
alarm.setSourceId(sourceId);
alarm.setAlarmReason(cpblName);
alarm.setAlarmSourceName(eqpName);
alarm.setAlarmLevel(ALARM_DEVICE_MAJOR);
// alarm.setAlarmSourceIp(sourceId);
alarm.setAlarmSourceType(ALARM_DEVICE_TYPE);
alarm.setClearDate("");
alarm.setContinueDate("");
alarm.setEnsureDate("");
alarm.setEnsurePerson("");
alarm.setOrgCode(orgCode);
alarm.setHappenDate(DateTimeKit.now());
alarm.setQueryColumn( sourceId + "_" + cpblName);
List<Alarm> curAlarmRList = alarmService.findByQueryColumn(queryColumn);
if (AlarmPointEnum.ALARM.getName().equals(alarmStatus)||AlarmPointEnum.ABNORMAL.getName().equals(alarmStatus)) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
iAlarmDao.save(alarm);
} else {
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
}
log.info("Save shidu alarm records ....success");
}
@Override
......@@ -241,23 +379,4 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
public void onError(Exception e) {
log.info("abnormal " + e);
}
public static synchronized void synMonitorAlarmPoint() {
System.out.println("-------------------shidu Monitoring of ring alarms start-------------------------");
try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String monitorAlarmWebSocketClientUrl = (String) props.get("params.remoteWebsocketUrl") + "metricData?subData=shiduAlarm";
ShiduAlarmWebSocketClient client = new ShiduAlarmWebSocketClient(monitorAlarmWebSocketClientUrl);
client.connect();
while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {
System.out.println("connecting... shidu Dynamic ring alarm----" + client.getReadyState());
}
System.out.println("build " + monitorAlarmWebSocketClientUrl + "connected...");
} catch (URISyntaxException | IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
package com.yeejoin.amos.spc.business.controller;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Sort;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -21,8 +19,6 @@ import com.yeejoin.amos.op.core.common.query.DaoCriteria;
import com.yeejoin.amos.op.core.common.response.CommonResponse;
import com.yeejoin.amos.op.core.util.CommonResponseUtil;
import com.yeejoin.amos.spc.business.param.ReginParams;
//import com.yeejoin.amos.security.common.authorization.Authorization;
import com.yeejoin.amos.spc.business.service.intfc.ISpcEvaluateModelService;
import com.yeejoin.amos.spc.core.common.request.CommonPageable;
import com.yeejoin.amos.spc.core.common.request.CommonRequest;
import com.yeejoin.amos.spc.core.enums.QueryOperatorEnum;
......@@ -47,21 +43,25 @@ public class AlarmController extends BaseController {
@ApiParam(value = "查询条件")
@RequestBody(required = false) List<CommonRequest> queryRequests,
@ApiParam(value = "分页参数", required = true) CommonPageable commonPageable) {
//获取当前登录人的公司code
ReginParams reginParams =getSelectedOrgInfo();
DaoCriteria criteria =new DaoCriteria();
criteria.setValue( reginParams.getCompany().getOrgCode() + "%");
criteria.setOperator(QueryOperatorEnum.LIKE.getName());
criteria.setPropertyName("orgCode");
//获取当前登录人的公司code
ReginParams reginParams = getSelectedOrgInfo();
DaoCriteria criteria = new DaoCriteria();
criteria.setValue("%" + reginParams.getCompany().getOrgCode() + "%");
criteria.setOperator(QueryOperatorEnum.LIKE.getName());
criteria.setPropertyName("orgCode");
List<CommonRequest> collect = queryRequests.stream().filter(x -> x.getName().equals("sourceId") && x.getValue().toString().contains(",")).collect(Collectors.toList());
if (collect.size() == 1) {
queryRequests = toNewQuery(queryRequests, collect.get(0));
}
List<DaoCriteria> criterias = buildDaoCriterias(queryRequests);
criterias.add(criteria);
Sort sort = new Sort(Sort.Direction.DESC, "updateDate");
Sort sort = new Sort(Sort.Direction.DESC, "happenDate");
commonPageable.setSort(sort);
Page<Alarm> list = iAlarmService.list(criterias, commonPageable);
return CommonResponseUtil.success(list);
}
@SuppressWarnings("unused")
......@@ -73,13 +73,11 @@ public class AlarmController extends BaseController {
// if (!maps.isEmpty()) {
// code = maps.get("code");
// }
//获取当前登录人公司orgcode
ReginParams reginParams =getSelectedOrgInfo();
String code=reginParams.getCompany().getOrgCode();
ReginParams reginParams = getSelectedOrgInfo();
String code = reginParams.getCompany().getOrgCode();
List<Map<String, Object>> listdate2 = new ArrayList<>();
List<String> listd = new ArrayList<>();
......@@ -88,17 +86,21 @@ public class AlarmController extends BaseController {
listd.add("次要告警");
listd.add("警告告警");
List<Map<String, Object>> listdate1 = new ArrayList<>();
List<Object[]> list = iAlarmService.countnum(code);
List<Map<String, Object>> listdate = new ArrayList<>();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Map<String, Object> map = new HashMap<>();
Object[] h = list.get(i);
map.put("name", h[1]);
map.put("value", h[0]);
listdate.add(map);
}
}
List<Map<String, Object>> listdate = iAlarmService.countnum(code);
//list.forEach();
// List<Map<String, Object>> listdate = new ArrayList<>();
// if (list != null && list.size() > 0) {
// for (int i = 0; i < list.size(); i++) {
// Map<String, Object> map = new HashMap<>();
// Object[] h = list.get(i);
// map.put("name", h[1]);
// map.put("value", h[0]);
// listdate.add(map);
// }
// }
if (listdate != null && listdate.size() > 0) {
if (listdate.size() == 4) {
......@@ -109,7 +111,6 @@ public class AlarmController extends BaseController {
}
}
}
return CommonResponseUtil.success(listdate2);
} else {
for (int i = 0; i < listd.size(); i++) {
......@@ -123,14 +124,19 @@ public class AlarmController extends BaseController {
if (map.isEmpty()) {
map.put("value", 0);
if ((listd.get(i) + "").equals("紧急告警")) {
map.put("name", "紧急告警");
} else if ((listd.get(i) + "").equals("重要告警")) {
map.put("name", "重要告警");
} else if ((listd.get(i) + "").equals("警告告警")) {
map.put("name", "警告告警");
} else {
map.put("name", "次要告警");
switch (listd.get(i)) {
case "紧急告警":
map.put("name", "紧急告警");
break;
case "重要告警":
map.put("name", "重要告警");
break;
case "警告告警":
map.put("name", "警告告警");
break;
case "次要告警":
map.put("name", "次要告警");
break;
}
}
listdate1.add(map);
......@@ -151,7 +157,6 @@ public class AlarmController extends BaseController {
map.put("name", "次要告警");
}
}
listdate1.add(map);
}
}
......@@ -167,6 +172,52 @@ public class AlarmController extends BaseController {
}
}
return CommonResponseUtil.success(listdate2);
List<Map<String, Object>> result = refactorByOrgCode(listdate2, code);
return CommonResponseUtil.success(result);
}
private List<CommonRequest> toNewQuery(List<CommonRequest> queryRequests, CommonRequest commonRequest) {
List<CommonRequest> newQueryRequests = new ArrayList();
List<Object> strings = Arrays.asList(commonRequest.getValue().toString().split(","));
strings.forEach(
x -> {
CommonRequest newQuery = new CommonRequest();
newQuery.setName(commonRequest.getName());
newQuery.setType(commonRequest.getType());
newQuery.setValue(x);
newQueryRequests.add(newQuery);
}
);
return newQueryRequests;
}
private List<Map<String, Object>> refactorByOrgCode(List<Map<String, Object>> list, String orgCode) {
List<Map<String, Object>> result = new ArrayList<>();
list.forEach(
x -> {
HashMap<String, Object> newMap = new HashMap<>();
newMap.putAll(x);
if (!contrastStr(newMap.get("orgCode"), orgCode) && Integer.valueOf(newMap.get("value").toString()) != 0) {
newMap.put("value", 0);
}
newMap.remove("orgCode");
result.add(newMap);
}
);
return result;
}
private boolean contrastStr(Object mapOrgCode, String orgCode) {
boolean flag = false;
if (ObjectUtils.isEmpty(mapOrgCode)) {
return flag;
}
if (mapOrgCode.toString().contains("-")) {
mapOrgCode = mapOrgCode.toString().replace("-", "#");
}
if ((mapOrgCode + "#").contains(orgCode + "#")) {
flag = true;
}
return flag;
}
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolationException;
import com.yeejoin.amos.spc.exception.YeeException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.TransactionSystemException;
......@@ -148,9 +149,8 @@ public class BaseController {
return result;
} catch (InnerInvokException e) {
System.err.println("get user info fail");
throw new YeeException(e.getMessage());
}
return null;
}
protected String getUserId() {
......
......@@ -13,8 +13,7 @@ import com.yeejoin.amos.spc.core.util.FileHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -32,7 +31,7 @@ import java.util.UUID;
@Api(tags = "风险清单相关")
public class ExcelController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(ExcelController.class);
private static final Logger logger = Logger.getLogger(ExcelController.class);
@Autowired
private ExcelMapper excelMapper;
......
......@@ -7,8 +7,7 @@ import java.util.Map;
import java.util.Properties;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -42,7 +41,7 @@ import io.swagger.annotations.ApiOperation;
@Api(tags = "巡检信息推送")
public class ProtalDataController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(ProtalDataController.class);
private static final Logger log = Logger.getLogger(ProtalDataController.class);
@Autowired
private RemoteRuleServer remoteRuleServer;
......@@ -52,73 +51,74 @@ public class ProtalDataController extends BaseController {
@Autowired
private ISpcRiskFactorService iSpcRiskFactorService;
@Autowired
private IAlarmPointService alarmPointService;
@ApiOperation(value = "上传巡检数据", notes = "上传巡检数据")
@GetMapping(value = "/data")
public CommonResponse updateProtalData(@RequestParam("date")String json) throws Exception {
public CommonResponse updateProtalData(@RequestParam("date") String json) throws Exception {
// protalDataRo.setBatchNo(UUID.randomUUID().toString());
// Object result = remoteRuleServer.fireRule(protalDataRo, "weihuaguize/ProtalData");
// return CommonResponseUtil.success("SUCCESS");
//
ProtalDataRo date= JSONObject.parseObject(json, ProtalDataRo.class);
//对巡检异常存入表
//判断点是不是存在报警 type 默认为"point"
long pointid= Long.valueOf(date.getPointID()+"");
List<AlarmPoint> alarmPoint= alarmPointService.selectPointTypeAndPointId("3", pointid);
if(alarmPoint!=null&&alarmPoint.size()>0){
//存在报警,判断当前状态是不是合格,合格则删除上次的报警
if("1".equals(date.getExecuteStatus())){
//删除告警
//alarmPointService.delete(alarmPoint.get(0).getId()+"");
alarmPointService.delete(alarmPoint.get(0));
}
}else{
//不存在,判断当前状态是不是合格,不合格新增,合格不做任何操作
if(!"1".equals(date.getExecuteStatus())){
//增加告警
AlarmPoint alarmPoint1=new AlarmPoint();
alarmPoint1.setPointId(pointid);
alarmPoint1.setPointType("3");
alarmPoint1.setUpdateDate(new Date());
alarmPoint1.setIsAlarm(1);//不合格
alarmPoint1.setContent(date.getName()+"巡检出现异常!");
alarmPoint1.setCode(date.getCode());
alarmPoint1.setPointName(date.getName());
Map<String, Object> map = new HashMap<>();
map.put("position", date.getCoordinates());
map.put("storey", ""+date.getNum());
alarmPoint1.setPointAttrs(JSON.toJSONString(map));
alarmPointService.save(alarmPoint1);
}
}
List<AlarmPoint> list= alarmPointService.findAll();
WebsocketParam param=new WebsocketParam("alarmPoint", JSON.toJSONString(list));
//client.sendMessage(param);
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
return CommonResponseUtil.success("SUCCESS");
ProtalDataRo date = JSONObject.parseObject(json, ProtalDataRo.class);
//对巡检异常存入表
//判断点是不是存在报警 type 默认为"point"
long pointid = Long.valueOf(date.getPointID() + "");
List<AlarmPoint> alarmPoint = alarmPointService.selectPointTypeAndPointId("3", pointid);
if (alarmPoint != null && alarmPoint.size() > 0) {
//存在报警,判断当前状态是不是合格,合格则删除上次的报警
if ("1".equals(date.getExecuteStatus())) {
//删除告警
//alarmPointService.delete(alarmPoint.get(0).getId()+"");
alarmPointService.delete(alarmPoint.get(0));
} else {//更新时间
AlarmPoint alarmPoint1 = alarmPoint.get(0);
alarmPoint1.setUpdateDate(new Date());
alarmPointService.save(alarmPoint1);
}
} else {
//不存在,判断当前状态是不是合格,不合格新增,合格不做任何操作
if (!"1".equals(date.getExecuteStatus())) {
//增加告警
AlarmPoint alarmPoint1 = new AlarmPoint();
alarmPoint1.setPointId(pointid);
alarmPoint1.setPointType("3");
alarmPoint1.setUpdateDate(new Date());
alarmPoint1.setIsAlarm(1);//不合格
alarmPoint1.setContent(date.getName() + "巡检出现异常!");
alarmPoint1.setCode(date.getCode());
alarmPoint1.setPointName(date.getName());
Map<String, Object> map = new HashMap<>();
map.put("position", date.getCoordinates());
map.put("storey", "" + date.getNum());
alarmPoint1.setPointAttrs(JSON.toJSONString(map));
alarmPointService.save(alarmPoint1);
}
}
List<AlarmPoint> list = alarmPointService.findAll();
WebsocketParam param = new WebsocketParam("alarmPoint", JSON.toJSONString(list));
//client.sendMessage(param);
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
String url = (String) props.get("params.remoteWebsocketUrl") + "/generic/sendMessage";
HttpUtil.PostJson(url, JSON.toJSONString(param));
return CommonResponseUtil.success("SUCCESS");
}
@ApiOperation(value = "上传隐患信息", notes = "上传隐患信息")
@GetMapping(value = "/hiddentrouble")
public CommonResponse hiddenTroubleInfo(@RequestParam("date")String json) throws Exception {
HiddenTroubleRo hiddenTroubleRo= JSONObject.parseObject(json, HiddenTroubleRo.class);
public CommonResponse hiddenTroubleInfo(@RequestParam("date") String json) throws Exception {
HiddenTroubleRo hiddenTroubleRo = JSONObject.parseObject(json, HiddenTroubleRo.class);
hiddenTroubleRo.setBatchNo(UUID.randomUUID().toString());
Object result = remoteRuleServer.fireRule(hiddenTroubleRo, "weihuaguize/HiddenTrouble");
return CommonResponseUtil.success("SUCCESS");
......
......@@ -4,8 +4,7 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -31,7 +30,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/api/spcAftermath")
@Api(tags = "可能造成的后果")
public class SpcAftermathController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcAftermathController.class);
private static final Logger log = Logger.getLogger(SpcAftermathController.class);
@Autowired
private ISpcAftermathService iSpcAftermathService;
......
......@@ -5,8 +5,7 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -37,7 +36,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/api/spcCamera")
@Api(tags = "摄像机api")
public class SpcCameraController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcCameraController.class);
private static final Logger log = Logger.getLogger(SpcCameraController.class);
@Autowired
ISpcCameraService iCameraService;
......
......@@ -4,8 +4,7 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -35,7 +34,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "api/spcControlMeasure")
@Api(tags = "控制措施管理")
public class SpcControlMeasureController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcControlMeasureController.class);
private static final Logger log = Logger.getLogger(SpcControlMeasureController.class);
@Autowired
private ISpcControlMeasureService iSpcControlMeasuresService;
......
......@@ -3,8 +3,7 @@ package com.yeejoin.amos.spc.business.controller;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -37,7 +36,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/api/spcEuipmentFacilities")
@Api(tags = "设备设施api")
public class SpcEquipmentController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcEquipmentController.class);
private static final Logger log = Logger.getLogger(SpcEquipmentController.class);
@Autowired
ISpcCameraService iCameraService;
......
......@@ -4,8 +4,7 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -30,7 +29,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/api/spcHazardSourceClassify")
@Api(tags = "危险源分类")
public class SpcHazardSourceClassifyController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcHazardSourceClassifyController.class);
private static final Logger log = Logger.getLogger(SpcHazardSourceClassifyController.class);
@Autowired
private IHazardSourceClassifyService iHazardSourceClassifyService;
......
......@@ -5,8 +5,7 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -36,7 +35,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/api/spcIdentificationMethod")
@Api(tags = "风险辨识方法api")
public class SpcIdentificationMethodController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcIdentificationMethodController.class);
private static final Logger log = Logger.getLogger(SpcIdentificationMethodController.class);
@Autowired
ISpcIdentificationMethodService iIdentificationMethodService;
......
......@@ -2,8 +2,7 @@ package com.yeejoin.amos.spc.business.controller;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -30,7 +29,7 @@ import io.swagger.annotations.ApiParam;
@Api(tags = "重大危险源api")
public class SpcMajorHazardInstallationController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcMajorHazardInstallationController.class);
private static final Logger log = Logger.getLogger(SpcMajorHazardInstallationController.class);
@Autowired
ISpcMajorHazardInstallationService iSpcMajorHazardInstallationService;
......
package com.yeejoin.amos.spc.business.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
......@@ -21,7 +20,7 @@ import io.swagger.annotations.ApiOperation;
@Api(tags = "控制措施内容api")
public class SpcMeasureContentController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcCameraController.class);
private static final Logger log = Logger.getLogger(SpcMeasureContentController.class);
@Autowired
private ISpcMeasureContentService iSpcMeasureContentService;
......
......@@ -5,8 +5,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -43,7 +42,7 @@ import io.swagger.annotations.ApiParam;
@RequestMapping(value = "/api/spcRiskFactor")
@Api(tags = "风险因素")
public class SpcRiskFactorController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcRiskFactorController.class);
private static final Logger log = Logger.getLogger(SpcRiskFactorController.class);
@Autowired
private ISpcRiskSourceService spcRiskSourceService;
......
......@@ -3,8 +3,8 @@ package com.yeejoin.amos.spc.business.controller;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.yeejoin.amos.bank.service.IDynamicRingDataService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
......@@ -30,12 +30,12 @@ import io.swagger.annotations.ApiParam;
@Api(tags = "风险源管理")
public class SpcRiskSourceController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SpcRiskSourceController.class);
private static final Logger log = Logger.getLogger(SpcRiskSourceController.class);
@Autowired
private ISpcRiskSourceService riskSourceService;
/**
* 获取风险源类型
......@@ -144,8 +144,8 @@ public class SpcRiskSourceController extends BaseController {
return CommonResponseUtil.success(riskSourceService.getRiskSourceBoDetailById(id));
}
/**
* 查询风险源信息支持分页,条件查询
*
......
......@@ -6,8 +6,7 @@ import com.yeejoin.amos.spc.business.service.intfc.ISpcStatisticsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -19,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "统计相关")
public class SpcStatisticsController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(SpcStatisticsController.class);
private static final Logger logger = Logger.getLogger(SpcStatisticsController.class);
@Autowired
private ISpcStatisticsService iSpcStatisticsService;
......
......@@ -3,8 +3,7 @@ package com.yeejoin.amos.spc.business.controller;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -37,7 +36,7 @@ import io.swagger.annotations.ApiParam;
@Api(tags = "作业活动模块相关")
public class SpcTaskworkController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(SpcTaskworkController.class);
private static final Logger logger = Logger.getLogger(SpcTaskworkController.class);
@Autowired
private ISpcTaskworkService iSpcTaskworkService;
......
......@@ -10,8 +10,7 @@ import com.yeejoin.amos.spc.core.common.request.CommonRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.util.CollectionUtils;
......@@ -27,7 +26,7 @@ import java.util.Map;
@Api(tags="时间轴")
public class TimeLineController extends BaseController{
private static final Logger log = LoggerFactory.getLogger(TimeLineController.class);
private static final Logger log = Logger.getLogger(TimeLineController.class);
@Autowired
IContingencyInstance iContingencyInstance;
......
......@@ -41,7 +41,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
*
*
* <pre>
* 界面视图Controller
* </pre>
......@@ -62,21 +62,21 @@ public class View3DController extends BaseController {
@Autowired
private ISpcRiskSourceService riskSourceService;
@Autowired
private ISpcMajorHazardInstallationService iSpcMajorHazardInstallationService;
@Autowired
ISpcEquipmentService iEquipmentService;
@Autowired
private IDynamicRingDataService iDynamicRingDataService;
@Autowired
private IEquipmentService iequipmentService;
/**
*
*
* <pre>
* 初始化三维视图节点
* </pre>
......@@ -89,16 +89,16 @@ public class View3DController extends BaseController {
public CommonResponse initViewNode(
@ApiParam(value = "节点类型", required = false) @RequestParam(required = false) String type,
@ApiParam(value = "组织code", required = false) @RequestParam(required = false) String orgCode) {
if (StringUtil.isNotEmpty(type)) {
if (StringUtil.isNotEmpty(type) && StringUtil.isNotEmpty(orgCode)) {
//动环数据
String token = getToken();
String token = getToken();
if(type.equals("dynamicRingData")) {
ArrayList<Node3DVoResponse> query3dData = iDynamicRingDataService.query3dData(token);
ArrayList<Node3DVoResponse> query3dData = iDynamicRingDataService.query3dData(token,orgCode);
return CommonResponseUtil.success(query3dData);
}else if(type.equals("impEquipment")){//设备
return CommonResponseUtil.success(iequipmentService.queryEqui3dData(orgCode));
}
return CommonResponseUtil.success(view3DService.findViewDataByType(type, orgCode));
......@@ -109,7 +109,7 @@ public class View3DController extends BaseController {
/**
* 获取风险详情
*
*
* @param id
* @return
*/
......@@ -122,10 +122,10 @@ public class View3DController extends BaseController {
}
return CommonResponseUtil.failure();
}
/**
* 获取点详情
*
*
* @param id
* @return
*/
......@@ -142,7 +142,7 @@ public class View3DController extends BaseController {
/**
* 获取设备详情
*
*
* @param id
* @return
*/
......@@ -159,7 +159,7 @@ public class View3DController extends BaseController {
/**
* 获取隐患详情
*
*
* @param id
* @return
*/
......@@ -176,7 +176,7 @@ public class View3DController extends BaseController {
/**
* 根据类型查询资源信息
*
*
* @param type
* @param queryRequests
* @param commonPageable
......@@ -260,10 +260,10 @@ public class View3DController extends BaseController {
return CommonResponseUtil.success(view3DMapper.queryForVideomonitorinfo3d());
}
/**
* 巡点查询
*
*
* @param id
* @return
*/
......@@ -271,7 +271,7 @@ public class View3DController extends BaseController {
@ApiOperation(value = "巡点查询", notes = "巡点查询")
public CommonResponse getpointlist(
@ApiParam(value = "节点类型", required = false) @RequestParam(required = false) String floor,@RequestParam(required = false) String code) {
try {
return CommonResponseUtil.success(view3DMapper.getpointlist( floor, code));
......@@ -281,23 +281,23 @@ public class View3DController extends BaseController {
return CommonResponseUtil.failure();
}
}
@GetMapping(value = "/updatepoint", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "修改巡点点", notes = "修改巡点点")
public CommonResponse updatepoint(
@ApiParam(value = "节点类型", required = false) @RequestParam(required = false)String coordinates,@RequestParam(required = false)String id) {
try {
view3DMapper.updatepoint( coordinates, id);
return CommonResponseUtil.success();
} catch (Exception e) {
return CommonResponseUtil.failure();
}
}
}
......@@ -20,22 +20,22 @@ public interface EquipmentMapper extends BaseMapper {
Long countByMap(PageParam pageParam);
void insertEquipment(EquipmentVo vo);
//void updateEquipment(EquipmentVo vo);
//void updateEquipmentAttrs(EquipmentQualityVo vo);
void insertEquipmentAttrs( EquipmentQualityVo vo);
/**
* 更新指标关联表中指标的状态
* @param status
* @param id
*/
void updateEquipmentPointStatus(@Param("state")int state,@Param("equipmentsPointId") Long equipmentsPointId);
/**
* 根据设备Id和指标名称查询指标详情
* @param equipmentId
......@@ -43,14 +43,14 @@ public interface EquipmentMapper extends BaseMapper {
* @return
*/
EquipmentQualityVo queryEquipmentPoint(@Param("equipmentId") Long equipmentId,@Param("remark") String remark);
/**
* 判断关联关系表中该指标是否存在
* @param equipmentsPointId
* @return
*/
List<Long> judgeEquipmentExists(@Param("equipmentsPointId") Long equipmentsPointId);
/**
* 判断关联关系表中该指标是否存在
* @param equipmentsPointId
......@@ -64,11 +64,23 @@ public interface EquipmentMapper extends BaseMapper {
Long querySelfDeviceCount(
@Param("fname") String fname);
TopographyNode queryNodeBySourceId( @Param("sourceId")String sourceId);
void updateNodeState(TopographyNode node);
void updateNodeDetail(@Param("nodeid")String nodeid,@Param("nodeDetail")String nodeDetail);
void deleteOneHourNormal();
/**
* 装备同步的时候先删除f_fire_equipment表的所有信息
* @return
*/
void deleteAllEquipmentInfo();
/**
* 装备同步的时候先删除f_fire_equipment_point表装备参数信息
* @return
*/
void deleteAllEquipmentPoint();
}
......@@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Param;
import com.yeejoin.amos.bank.common.enums.PaymentEnum;
public interface InputItemMapper extends BaseMapper {
void deleteInputItemByMeasureContentId(@Param("measureContentId") String id);
List<HashMap<String, Object>> queryPaymentByCode(@Param("itemNo") String itemNo,@Param("name") String name);
......@@ -21,4 +21,9 @@ public interface InputItemMapper extends BaseMapper {
List<HashMap<String, Object>> getcountyc(@Param("code") String code);
List<HashMap<String, Object>> getcountnum(@Param("code")String code);
List<HashMap<String, Object>> getxuncount(@Param("code") String code);
/**
* 统计七天之前每天的告警数量
* @return
*/
List<Long> getSevenDayscount (@Param("alarmLevel") String alarmLevel);
}
package com.yeejoin.amos.spc.business.dao.mapper;
import org.apache.ibatis.annotations.Param;
import com.yeejoin.amos.bank.entity.planTaskReturn;
import com.yeejoin.amos.bank.entity.pointReturn;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface StatisticsMapper {
Map<String, Object> queryForRiseUp(@Param("startTime") String startTime, @Param("endTime") String endTime);
List<Map<String, Object>> riskSourceBroupByDepartment();
List<Map<String, Object>> latentDangerBroupByDepartment();
List<Map<String, Object>> latentDangerRateGroupByDepartment();
List<Map<String, Object>> listPatrolPlan(@Param("offset") Integer offset, @Param("limit") Integer limit, @Param("deptId") String deptId);
Long countPatrolPlan(@Param("deptId") String deptId);
List<Map<String, Object>> listByTaskNo(List<Long> taskNos);
HashMap<String, Object> queryRightTopChartDataByDepId(@Param("deptId")String deptId);
List<pointReturn> pointReturnlist(@Param("planTaskId")String planTaskId);
List<planTaskReturn> planTaskReturnliat(@Param("offset") Integer offset, @Param("limit") Integer limit,@Param("deptId")String deptId);
}
package com.yeejoin.amos.spc.business.dao.mapper;
import org.apache.ibatis.annotations.Param;
import com.yeejoin.amos.bank.entity.planTaskReturn;
import com.yeejoin.amos.bank.entity.pointReturn;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface StatisticsMapper {
Map<String, Object> queryForRiseUp(@Param("startTime") String startTime, @Param("endTime") String endTime);
List<Map<String, Object>> riskSourceBroupByDepartment();
List<Map<String, Object>> latentDangerBroupByDepartment();
List<Map<String, Object>> latentDangerRateGroupByDepartment();
List<Map<String, Object>> listPatrolPlan(@Param("offset") Integer offset, @Param("limit") Integer limit, @Param("deptId") String deptId);
Long countPatrolPlan(@Param("deptId") String deptId);
List<Map<String, Object>> listByTaskNo(List<Long> taskNos);
HashMap<String, Object> getporint(@Param("pointid")String pointid);
HashMap<String, Object> queryRightTopChartDataByDepId(@Param("deptId")String deptId);
HashMap<String, Object> getporintdate(@Param("pointid")String pointid);
List<pointReturn> pointReturnlist(@Param("planTaskId")String planTaskId);
List<planTaskReturn> planTaskReturnliat(@Param("offset") Integer offset, @Param("limit") Integer limit,@Param("deptId")String deptId);
}
//package com.yeejoin.amos.spc.business.remote;
//
//import com.alibaba.fastjson.JSONObject;
//import com.google.common.collect.Maps;
//import com.yeejoin.amos.spc.business.constants.FasConstant;
//import com.yeejoin.amos.spc.common.enums.JiaodaUriEnum;
//import com.yeejoin.amos.spc.core.util.HttpUtil;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//import org.springframework.util.StringUtils;
//
//import java.util.Map;
//
//@Service("remoteJiaodaService")
//public class RemoteJiaodaService {
//
// private final Logger logger = LoggerFactory.getLogger(RemoteJiaodaService.class);
//
// @Value("${params.jiaoda.address}")
// private String address;
//
// private String buildUrl(String address, JiaodaUriEnum jiaodaUriEnum, Map<String, String> map) {
// String uri = jiaodaUriEnum.getUri();
// String params = jiaodaUriEnum.getParams();
// if (!StringUtils.isEmpty(params) && map != null) {
// String[] paramsArr = params.split(",");
// for (String param : paramsArr) {
// uri = uri.replace("{" + param + "}", map.get(param));
// }
// }
// return address + uri;
// }
//
// public JSONObject wakeUpRiskFactorFlow(String processInstanceId, String token) {
// Map<String, String> map = Maps.newHashMap();
// map.put("operationType", processInstanceId);
// String url = buildUrl(address, JiaodaUriEnum.唤起设备设施风险评级流程, map);
// Map<String, String> headerMap = Maps.newHashMap();
// headerMap.put(FasConstant.TOKEN_KEY, token);
// String resultStr = HttpUtil.sendHttpPostWithHeader(url, headerMap);
// logger.info("\r\n请求路径=======================>" + url + "\r\n返回参数=======================>" + resultStr);
// return JSONObject.parseObject(resultStr);
// }
//
//}
//package com.yeejoin.amos.spc.business.remote;
//
//import java.util.Map;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//import org.springframework.util.StringUtils;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.google.common.collect.Maps;
//import com.yeejoin.amos.spc.business.constants.FasConstant;
//import com.yeejoin.amos.spc.common.enums.PatrolSynOperationTypeEnum;
//import com.yeejoin.amos.spc.common.enums.PatrolSynUriEnum;
//
//@Service("remotePatrolService")
//public class RemotePatrolService {
//
// private final Logger logger = LoggerFactory.getLogger(RemotePatrolService.class);
//
// @Value("${params.patrol.address}")
// private String address;
//
// private static final String success = "SUCCESS";
//
// private String buildUrl(String address, PatrolSynUriEnum patrolSynUriEnum, Map<String, String> map) {
// String uri = patrolSynUriEnum.getUri();
// String params = patrolSynUriEnum.getParams();
// if (!StringUtils.isEmpty(params) && map != null) {
// String[] paramsArr = params.split(",");
// for (String param : paramsArr) {
// uri = uri.replace("{" + param + "}", map.get(param));
// }
// }
// return address + uri;
// }
//
// private JSONObject handleResult(String resultStr) {
// if (resultStr == null) {
// return null;
// }
// JSONObject json = JSON.parseObject(resultStr);
// if (success.equals(json.getString("result"))) {
// return json;
// }
// return null;
// }
//
// public JSONObject synDataToPatrol(PatrolSynUriEnum patrolSynUriEnum, PatrolSynOperationTypeEnum operationType, String body, String token) {
// Map<String, String> map = Maps.newHashMap();
// map.put("operationType", operationType.getOperationType());
// String url = buildUrl(address, patrolSynUriEnum, map);
// Map<String, String> headerMap = Maps.newHashMap();
// headerMap.put(FasConstant.TOKEN_KEY, token);
// String resultStr = HttpUtil.sendHttpPostJsonWithHeader(url, body, headerMap);
// logger.info("\r\n请求路径=======================>" + url + "\r\n请求参数=======================>" + body + "\r\n返回参数=======================>" + resultStr);
// return handleResult(resultStr);
// }
//
// public JSONObject saveLatentDanger(PatrolSynUriEnum patrolSynUriEnum, String body, String token) {
// String url = buildUrl(address, patrolSynUriEnum, null);
// Map<String, String> headerMap = Maps.newHashMap();
// headerMap.put(FasConstant.TOKEN_KEY, token);
// String resultStr = HttpUtil.sendHttpPostJsonWithHeader(url, body, headerMap);
// logger.info("\r\n请求路径=======================>" + url + "\r\n请求参数=======================>" + body + "\r\n返回参数=======================>" + resultStr);
// return handleResult(resultStr);
// }
//
//}
//package com.yeejoin.amos.spc.business.remote;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import com.google.common.collect.Maps;
//import com.yeejoin.amos.spc.business.constants.FasConstant;
//import com.yeejoin.amos.spc.common.enums.WorkFlowUriEnum;
//import com.yeejoin.amos.spc.core.util.HttpUtil;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//import org.springframework.util.StringUtils;
//
//import java.util.Map;
//
//@Service("remoteWorkFlowService")
//public class RemoteWorkFlowService {
//
// private final Logger logger = LoggerFactory.getLogger(RemoteWorkFlowService.class);
//
// @Value("${params.work.flow.address}")
// private String address;
//
// private static final String success = "SUCCESS";
//
// private static final String appKey = "8b193f7cb22c842b5a56e866c2e20dbf";
//
// private String buildUrl(String address, WorkFlowUriEnum workFlowUriEnum, Map<String, String> map) {
// String uri = workFlowUriEnum.getUri();
// String params = workFlowUriEnum.getParams();
// if (!StringUtils.isEmpty(params) && map != null) {
// String[] paramsArr = params.split(",");
// for (String param : paramsArr) {
// uri = uri.replace("{" + param + "}", map.get(param));
// }
// }
// return address + uri;
// }
//
// private JSONObject handleResult(String resultStr) {
// if (resultStr == null) {
// return null;
// }
// JSONObject json = JSON.parseObject(resultStr);
// if (success.equals(json.getString("result"))) {
// return json;
// }
// return null;
// }
//
// public JSONObject start(JSONObject body, String token) {
// String url = buildUrl(address, WorkFlowUriEnum.启动流程, null);
// Map<String, String> headerMap = Maps.newHashMap();
// headerMap.put(FasConstant.TOKEN_KEY, token);
// String requestBody = body.toJSONString();
// String resultStr = HttpUtil.sendHttpPostJsonWithHeader(url, requestBody, headerMap);
// logger.info("\r\n请求路径=======================>" + url + "\r\n请求参数=======================>" + requestBody + "\r\n返回参数=======================>" + resultStr);
// return handleResult(resultStr);
// }
//
// public JSONObject startWithAppKey(JSONObject body) {
// Map<String, String> map = Maps.newHashMap();
// map.put("appKey", appKey);
// String url = buildUrl(address, WorkFlowUriEnum.启动免登录流程, map);
// String requestBody = body.toJSONString();
// String resultStr = HttpUtil.sendHttpPostJson(url, requestBody);
// logger.info("\r\n请求路径=======================>" + url + "\r\n请求参数=======================>" + requestBody + "\r\n返回参数=======================>" + resultStr);
// return handleResult(resultStr);
// }
//
//// public JSONObject excute(String taskId, String requestBody) {
//// Map<String, String> map = Maps.newHashMap();
//// map.put("taskId", taskId);
//// String url = buildUrl(address, WorkFlowUriEnum.执行流程, map);
//// String resultStr = HttpUtil.sendHttpPostJson(url, requestBody);
//// JSONObject json = handleResult(resultStr);
//// logger.info("\r\n请求路径=======================>" + url + "\r\n请求参数=======================>" + requestBody + "\r\n返回参数=======================>" + resultStr);
//// return json;
//// }
////
//// public JSONObject currentTask(String instanceId) {
//// Map<String, String> map = Maps.newHashMap();
//// map.put("instanceId", instanceId);
//// String url = buildUrl(address, WorkFlowUriEnum.当前节点, map);
//// String resultStr = HttpUtil.sendHttpGet(url);
//// JSONObject json = handleResult(resultStr);
//// logger.info("\r\n请求路径=======================>" + url + "\r\n返回参数=======================>" + resultStr);
//// if (json == null) {
//// return null;
//// }
//// JSONArray reviewContent = json.getJSONObject("dataList").getJSONArray("content");
//// if (reviewContent != null && reviewContent.size() > 0) {
//// return reviewContent.getJSONObject(0);
//// }
//// return null;
//// }
//
//}
......@@ -11,8 +11,7 @@ import com.yeejoin.amos.spc.business.service.model.Operate;
import com.yeejoin.amos.spc.business.service.model.OperateGroup;
import com.yeejoin.amos.spc.dao.entity.ContingencyOriginalData;
import com.yeejoin.amos.spc.dao.entity.ContingencyPlanInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -29,7 +28,7 @@ import java.util.Map;
@Service
public class ContingencyInstanceImpl extends GenericManagerImpl<ContingencyPlanInstance, String> implements IContingencyInstance {
private static final Logger log = LoggerFactory.getLogger(ContingencyInstanceImpl.class);
private static final Logger log = Logger.getLogger(ContingencyInstanceImpl.class);
IContingencyPlanInstanceRepository repository;
......
......@@ -8,8 +8,7 @@ import java.util.Set;
import java.util.UUID;
import org.assertj.core.util.Sets;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
......@@ -74,7 +73,7 @@ import com.yeejoin.amos.spc.dao.entity.SpcTaskworkMeasure;
@Service("iSpcRiskFactorService")
public class SpcRiskFactorServiceImpl implements ISpcRiskFactorService {
private final Logger log = LoggerFactory.getLogger(SpcRiskFactorServiceImpl.class);
private static final Logger log = Logger.getLogger(SpcRiskFactorServiceImpl.class);
@Autowired
private RemoteSecurityService remoteSecurityService;
......
......@@ -5,8 +5,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
......@@ -43,7 +42,7 @@ import com.yeejoin.amos.spc.core.util.StringUtil;
@Service
public class SpcRiskListServiceImpl implements ISpcRiskListService {
private final Logger log = LoggerFactory.getLogger(SpcRiskListServiceImpl.class);
private static final Logger log = Logger.getLogger(SpcRiskListServiceImpl.class);
@Autowired
private RiskSourceMapper riskSourceMapper;
......
......@@ -18,6 +18,12 @@
<artifactId>AmosBankService</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.yeejoin.amos</groupId>
<artifactId>AmosBankService</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<!-- maven打包时将lib提取到jar同目录,将配置文件提取到jar目录/config/下 -->
......
......@@ -30,9 +30,8 @@ import com.yeejoin.amos.bank.webSocket.ShiduAlarmWebSocketClient;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
*
* <pre>
* 服务启动类
* 服务启动类
* </pre>
*
* @author amos
......@@ -52,53 +51,46 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
// @EnableApolloConfig
@EnableJpaAuditing
@EnableScheduling
@MapperScan(basePackages = { "com.yeejoin.amos.spc.business.dao.mapper","com.yeejoin.amos.bank.dao.mapper" })
@ComponentScan({"org.typroject","com.yeejoin.amos","com.yeejoin.amos.bank"})
public class AmosBankStart
{
@MapperScan(basePackages = {"com.yeejoin.amos.spc.business.dao.mapper", "com.yeejoin.amos.bank.dao.mapper"})
@ComponentScan({"org.typroject", "com.yeejoin.amos", "com.yeejoin.amos.bank"})
public class AmosBankStart {
private static final Logger log = Logger.getLogger(AmosBankStart.class);
private static final Logger log = Logger.getLogger(AmosBankStart.class);
/**
* 启动amosop-server
*
* @param args
* @throws IOException
* @throws URISyntaxException
*/
public static void main(String[] args)
{
log.info("start xian bank Service..........");
try
{
SpringApplication application = new SpringApplication(AmosBankStart.class);
ConfigurableApplicationContext run = application.run(args);
//websocketClinet 设置application
AlarmWebSocketClient.setAllpicationContext(run);
MonitorAlarmWebSocketClient.setAllpicationContext(run);
ShiduAlarmWebSocketClient.setAllpicationContext(run);
InspectionWebSocketClient.setAllpicationContext(run);
FireDetectionWebSocketClient.setAllpicationContext(run);
Environment environment = run.getEnvironment();
log.info("SwaggerUI: http://localhost:"
+ environment.getProperty("server.port") + "/swagger-ui.html");
log.info("动环告警websocket监听");
MonitorAlarmWebSocketClient.synMonitorAlarmPoint();
log.info("湿度告警websocket监听");
ShiduAlarmWebSocketClient.synMonitorAlarmPoint();
log.info("设备告警websocket监听");
AlarmWebSocketClient.synAlarmPoint();
log.info("自动巡检websocket监听");
InspectionWebSocketClient.synInspectionAlarm();
log.info("火探websocket监听");
FireDetectionWebSocketClient.synFireDetection();
}
catch (Exception e)
{
System.out.println("error xian bank occur when run server! " + e);
}
}
/**
* 启动amosop-server
*
* @param args
* @throws IOException
* @throws URISyntaxException
*/
public static void main(String[] args) {
log.info("start xian bank Service..........");
try {
SpringApplication application = new SpringApplication(AmosBankStart.class);
ConfigurableApplicationContext run = application.run(args);
//websocketClinet 设置application
AlarmWebSocketClient.setAllpicationContext(run);
MonitorAlarmWebSocketClient.setAllpicationContext(run);
ShiduAlarmWebSocketClient.setAllpicationContext(run);
InspectionWebSocketClient.setAllpicationContext(run);
FireDetectionWebSocketClient.setAllpicationContext(run);
Environment environment = run.getEnvironment();
log.info("SwaggerUI: http://localhost:"
+ environment.getProperty("server.port") + "/swagger-ui.html");
log.info("动环告警websocket监听");
MonitorAlarmWebSocketClient.synMonitorAlarmPoint();
log.info("湿度告警websocket监听");
ShiduAlarmWebSocketClient.synMonitorAlarmPoint();
log.info("设备告警websocket监听");
AlarmWebSocketClient.synAlarmPoint();
log.info("自动巡检websocket监听");
InspectionWebSocketClient.synInspectionAlarm();
log.info("火探websocket监听");
FireDetectionWebSocketClient.synFireDetection();
} catch (Exception e) {
System.out.println("error xian bank occur when run server! " + e);
}
}
}
\ No newline at end of file
#\u7aef\u53e3
server.port = 7000
server.connection-timeout=20
#eureka
eureka.client.serviceUrl.defaultZone = http://172.16.10.72:10001/eureka/
eureka.client.register-with-eureka = true
......@@ -9,7 +10,7 @@ eureka.client.fetchRegistry = true
ribbon.eureka.enabled = true
#DB properties:
spring.datasource.url = jdbc:mysql://172.16.10.66:3306/amos_xian_bank? useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.url = jdbc:mysql://172.16.10.66:3306/amos_xian_bank?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
spring.datasource.username = root
spring.datasource.password = root_123
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
......@@ -93,4 +94,6 @@ param.remoteurl=http://localhost:8080
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.85:1883
emqx.password=0
\ No newline at end of file
emqx.password=0
gateway.fegin.name=AMOS-BANK-SERVER-GATEWAY-WJK
\ No newline at end of file
......@@ -17,7 +17,7 @@ eureka.instance.status-page-url=http://172.16.11.20:${server.port}/actuator/info
#DB properties:
spring.datasource.url = jdbc:mysql://172.16.10.66:3306/amos_xian_bank? useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.url = jdbc:mysql://172.16.10.66:3306/amos_xian_bank? useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
spring.datasource.username = root
spring.datasource.password = root_123
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
......@@ -93,7 +93,7 @@ spring.rabbitmq.connection-timeout=1000
spring.redis.jedis.pool.min-idle=0
spring.redis.jedis.pool.max-wait=-1
gateway.fegin.name=AMOS-BANK-SERVER-GATEWAY
param.remoteurl=http://localhost:8080
#tcp.host=172.16.3.42
#tcp.port=8888
......
......@@ -17,7 +17,7 @@ eureka.instance.status-page-url=http://172.16.10.99:${server.port}/actuator/info
#DB properties:
spring.datasource.url = jdbc:mysql://172.16.10.66:3306/amos_xian_bank? useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.url = jdbc:mysql://172.16.10.66:3306/amos_xian_bank? useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
spring.datasource.username = root
spring.datasource.password = root_123
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
......@@ -93,7 +93,7 @@ spring.rabbitmq.connection-timeout=1000
spring.redis.jedis.pool.min-idle=0
spring.redis.jedis.pool.max-wait=-1
gateway.fegin.name=AMOS-BANK-SERVER-GATEWAY
param.remoteurl=http://localhost:8080
#tcp.host=172.16.3.42
#tcp.port=8888
\ No newline at end of file
......@@ -61,6 +61,9 @@
<if test="floor3d != null">
and a.floor3d=#{floor3d}
</if>
<if test="orgCode != null">
and a.org_code LIKE concat('',#{orgCode},'%')
</if>
</select>
<select id="findPageList"
......
......@@ -29,11 +29,12 @@
(SELECT name from b_bank_info where name = #{city}) as sname,
(SELECT lng from b_bank_info where name = #{city}) as slng,
(SELECT lat from b_bank_info where name = #{city}) as slat,
IF(status=1,"异常","正常") as alarmState,
IF(max(Be.status)=1,"异常","正常") as alarmState,
`NAME` as ename,
img AS imgSrc,
lng AS elng,
lat AS elat from b_bank_info where name != #{city}
lat AS elat from b_bank_info Bi left join b_bank_equipment Be on Bi.id = Be.bank_id
where Bi.name != #{city} group by Bi.id
</select>
<select id="pamsAisleSummary" resultType="java.util.HashMap">
......
<?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.bank.dao.mapper.AlarmMapper">
<update id="updateAlarm">
update spc_alarm
<set>
<if test="currentState != null">
current_state = #{currentState},
</if>
<if test="orgCode != null">
org_code = #{orgCode},
</if>
<if test="updateDate != null">
update_date = #{updateDate},
</if>
<if test="clearDate != null">
clear_date = #{clearDate},
</if>
<if test="clearPerson != null">
clear_person = #{clearPerson},
</if>
<if test="continueDate != null">
continue_date = #{continueDate},
</if>
</set>
where id = #{id}
</update>
</mapper>
\ No newline at end of file
<?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.bank.dao.mapper.BankInfoMapper">
<sql id="bankInfoField" >
Bi.`id` id,
Bi.`img` img,
Bi.`lng` lng,
Bi.`lat` lat,
Bi.`name` name,
Bi.`an_name` aName,
Bi.`en_name` eName,
Bi.`is_center` isCenter,
Bi.`pams_position` pamsPosition,
</sql>
<select id="selectBankInfoList" resultType="com.yeejoin.amos.bank.dto.BankInfoDTO">
select
<include refid="bankInfoField"/>
GROUP_CONCAT(Be.source_id) as sourceIdStr,
GROUP_CONCAT(Be.source_name) as sourceNameStr,
max(Be.status) as `status`
from b_bank_info Bi left join b_bank_equipment Be on Bi.id = Be.bank_id group by Bi.id
</select>
<select id="findBySourceId" resultType="String">
select status from b_bank_equipment where 1=1 and source_id = #{sourceId}
</select>
<update id="updateBySourceId">
update b_bank_equipment
<set>
<if test="status!=null">
status=#{status}
</if>
</set>
where source_id = #{sourceId}
</update>
<select id="selectBankInfoBySourceId" resultType="java.util.HashMap">
select Bi.`name` as name, max(Be.`status`) as `status` from b_bank_info Bi left join b_bank_equipment Be on Bi.id = Be.bank_id
where Bi.id = (select bank_id from b_bank_equipment where source_id = #{sourceId})
</select>
</mapper>
\ No newline at end of file
......@@ -128,8 +128,8 @@
</if>
</where>
</select>
<insert id="insertEquipment"
parameterType="com.yeejoin.amos.bank.entity.EquipmentVo"
useGeneratedKeys="true" keyProperty="id">
......@@ -164,7 +164,7 @@
</if>
</trim>
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
<trim suffixOverrides=",">
<if test="id !=null">`id`=#{id},</if>
<if test="orgCode !=null">`org_code`=#{orgCode},</if>
......@@ -172,8 +172,8 @@
<if test="name !=null">name=#{name}</if>
</trim>
</insert>
<insert id="insertEquipmentAttrs"
parameterType="com.yeejoin.amos.bank.entity.EquipmentQualityVo"
useGeneratedKeys="true" keyProperty="id" >
......@@ -220,7 +220,7 @@
</if>
</trim>
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
<trim suffixOverrides=",">
<if test="id !=null">`id`=#{id},</if>
<if test="type !=null">`type`=#{type},</if>
......@@ -228,21 +228,21 @@
<if test="displayName !=null">`name`=#{displayName},</if>
<if test="code !=null">code=#{code},</if>
<if test="equipmentId !=null">fire_equipment_id=#{equipmentId}</if>
</trim>
</insert>
<update id="updateEquipmentPointStatus" >
UPDATE
r_risk_factor_equipment_index
UPDATE
r_risk_factor_equipment_index
set
state=#{state}
WHERE
WHERE
equipment_point_id=#{equipmentsPointId}
</update>
<select id = "queryEquipmentPoint" resultType="com.yeejoin.amos.bank.entity.EquipmentQualityVo">
SELECT
f.id as id,
......@@ -250,23 +250,23 @@
f.`code` as code,
f.fire_equipment_id as equipmentId,
f.remark as remark
FROM
f_fire_equipment_point f
f_fire_equipment_point f
WHERE
f.fire_equipment_id = #{equipmentId}
AND
f.fire_equipment_id = #{equipmentId}
AND
f.remark = #{remark}
</select>
<select id = "judgeEquipmentExists" resultType="java.lang.Long">
SELECT
f.risk_factor_id
FROM
r_risk_factor_equipment_index f
r_risk_factor_equipment_index f
WHERE equipment_point_id=#{equipmentsPointId}
</select>
<select id="querySelfDeviceCount" resultType="long">
SELECT
count( DISTINCT fe.id)
......@@ -276,10 +276,11 @@
<if test="fname != null" >
AND fe.`name` like concat('%',#{fname},'%')
</if>
</select>
<select id="querySelfDevice" resultType="com.yeejoin.amos.bank.entity.DeviceRecord">
SELECT
id,
......@@ -290,17 +291,17 @@
FROM
b_device_record efe
WHERE 1=1
ORDER BY update_date DESC
ORDER BY update_date DESC
<if test="fname != null">
AND efe.`name` like concat('%',#{fname},'%')
</if>
<if test="length > 0">
LIMIT ${start},${length} ;
</if>
</select>
<select id="queryNodeBySourceId" resultType="com.yeejoin.amos.bank.TopographyNode">
SELECT
*
......@@ -310,9 +311,9 @@
<if test="sourceId != null">
AND efe.`source_id`= #{sourceId}
</if>
</select>
<update id="updateNodeState" parameterType="com.yeejoin.amos.bank.TopographyNode">
UPDATE b_topography_node
<trim prefix="set" suffixOverrides=",">
......@@ -321,14 +322,39 @@
</trim>
WHERE source_id=#{sourceId}
</update >
<update id="updateNodeDetail" >
UPDATE b_topography_node_detail
<trim prefix="set" suffixOverrides=",">
<if test="nodeDetail != null">node_detail=#{nodeDetail},</if>
</trim>
WHERE nodeid=#{nodeid}
</update >
<delete id="deleteOneHourNormal">
DELETE
FROM
b_device_record
WHERE
id IN (
SELECT a.id from(
SELECT
`ID`
FROM
b_device_record record
WHERE
record.update_date <![CDATA[<=]]> CURRENT_TIMESTAMP - INTERVAL 60 MINUTE) a
)
</delete>
<delete id="deleteAllEquipmentInfo">
DELETE FROM f_fire_equipment
</delete>
<delete id="deleteAllEquipmentPoint">
DELETE FROM f_fire_equipment_point
</delete>
</mapper>
\ No newline at end of file
......@@ -9,9 +9,9 @@
WHERE
original_id = #{measureContentId}
</update>
<select id="queryPaymentByCode" parameterType="java.lang.String" resultType="java.util.HashMap">
<!-- select
<!-- select
SUM(IFNULL(I.input_value,0)) as score,I.point_classify_name as payName,#{name} as name
from p_check C
left join p_check_input I on C.id=I.check_id
......@@ -49,12 +49,12 @@
group by I.point_classify_name,M.name,M.item_no
order by M.item_no
</select>-->
<select id="queryPaymentByCodes" resultType="java.util.HashMap" parameterType="java.util.List">
select I.input_value as score,I.point_classify_name as payName,M.name,M.item_no
from p_check_input I
left join p_input_item M ON M.id = I.input_id
where
where
I.is_ok != 3
AND I.id in
( SELECT max(I.id) FROM
......@@ -77,29 +77,29 @@
group by I.point_classify_name,M.name,M.item_no
order by M.item_no
</select>
<delete id="deletePointAlarmByIds">
delete from p_alarm_point
delete from p_alarm_point
where id IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<select id="getcountnum" parameterType="java.lang.String" resultType="java.util.HashMap">
select COUNT(id) num
from r_risk_source
where is_region='FALSE'
from r_risk_source
where is_region='FALSE'
<if test="code != null and code != ''">
and r_risk_source.org_code LIKE concat( #{code}, "%")
</if>
</if>
</select>
<select id="getcountxd" parameterType="java.lang.String" resultType="java.util.HashMap">
select
select
CASE r_risk_level.`code`
WHEN 1 THEN
'一级风险'
......@@ -111,26 +111,26 @@
'四级风险'
WHEN 5 THEN
'五级风险'
END
END
name ,
r_risk_level.`code`,
a.num
a.num
from r_risk_level LEFT JOIN (select COUNT(r_risk_source.id) num,r_risk_level.`code`
from r_risk_source RIGHT JOIN r_risk_level on r_risk_source.risk_level_id=r_risk_level.id
where is_region='FALSE'
where is_region='FALSE'
<if test="code != null and code != ''">
and r_risk_source.org_code LIKE concat( #{code}, "%")
</if>
</if>
GROUP BY r_risk_level.id) a on a.code= r_risk_level.`code`
</select>
<select id="getcountyc" parameterType="java.lang.String" resultType="java.util.HashMap">
select
select
CASE r_risk_level.`code`
WHEN 1 THEN
'一级风险'
......@@ -142,31 +142,56 @@ from r_risk_level LEFT JOIN (select COUNT(r_risk_source.id) num,r_risk_leve
'四级风险'
WHEN 5 THEN
'五级风险'
END
END
name ,
r_risk_level.`code`,
a.num
a.num
from r_risk_level LEFT JOIN (select COUNT(r_risk_source.id) num, r_risk_level.`code`
from r_risk_source RIGHT JOIN r_risk_level on r_risk_source.risk_level_id=r_risk_level.id
where is_region='FALSE' and r_risk_source.flicker_frequency >0
where is_region='FALSE' and r_risk_source.flicker_frequency >0
<if test="code != null and code != ''">
and r_risk_source.org_code LIKE concat( #{code}, "%")
</if>
GROUP BY r_risk_level.id) a on a.code= r_risk_level.`code`
</select>
<select id="getxuncount" parameterType="java.lang.String" resultType="java.util.HashMap">
select status ,count(id) num from p_point where p_point.org_code LIKE concat( #{code}, "%") GROUP BY status
<select id="getxuncount" resultType="java.util.HashMap">
select status ,count(id) num from p_point where p_point.is_delete=0 and p_point.org_code LIKE concat( #{code}, "%") GROUP BY status
</select>
<select id="getSevenDayscount" parameterType="java.lang.String" resultType="java.lang.Long">
SELECT
ifnull( b.count, 0 ) AS count
FROM
(
SELECT
date_sub( curdate( ), INTERVAL 1 DAY ) AS click_date UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 2 DAY ) AS click_date UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 3 DAY ) AS click_date UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 4 DAY ) AS click_date UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 5 DAY ) AS click_date UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 6 DAY ) AS click_date UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 7 DAY ) AS click_date
) a
LEFT JOIN (
SELECT date( happen_date ) AS happen_date, count( * ) AS count FROM spc_alarm
WHERE alarm_level = #{alarmLevel} GROUP BY date( happen_date )
) b ON a.click_date = b.happen_date
ORDER BY a.click_date ASC
</select>
</mapper>
\ No newline at end of file
<?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.spc.business.dao.mapper.StatisticsMapper">
<select id="queryForRiseUp" resultType="java.util.Map">
select
d.countOfType0,
d.countOfSource,
CONCAT(ROUND(IFNULL(d.countOfType0/d.countOfSource,0)*100,2),'%') as type0Rate
from
(
select
count(distinct cl.risk_factors_id) as countOfType0,
(select count(1) from spc_risk_factors rs) as countOfSource
from
spc_risk_factors_level_log as cl
where
cl.type = 1
and
cl.create_date between '${startTime}' and '${endTime}'
) as d
</select>
<select id="riskSourceBroupByDepartment" resultType="java.util.Map">
select
count(b.code = '1' or null) as '1级',
count(b.code = '2' or null) as '2级',
count(b.code = '3' or null) as '3级',
count(b.code = '4' or null) as '4级',
a.belong_department_id as belongDepartmentId,
b.level,
b.code
from
spc_risk_source as a
left join
spc_risk_level as b on a.risk_level = b.id
where
a.risk_type = '04'
and
a.belong_department_id is not null
and
a.belong_department_id != ""
group by a.belong_department_id
</select>
<select id="latentDangerBroupByDepartment" resultType="java.util.Map">
select
count(c.danger_level = 1 or null) as '一般隐患',
count(c.danger_level = 2 or null) as '重大隐患',
a.belong_department_id as belongDepartmentId
from
spc_risk_source as a
left join
p_point as b on b.original_id = a.id
left join
(
select
a.*,b.point_id
from
p_latent_danger as a
inner join
p_latent_danger_patrol as b on a.id = b.latent_danger_id
where
a.danger_type in (2,3)
and a.danger_state in (2,3,4)
) as c on c.point_id = b.id
where
a.belong_department_id is not null
and
a.belong_department_id != ""
and
a.risk_type = '04'
group by a.belong_department_id
</select>
<select id="latentDangerRateGroupByDepartment" resultType="java.util.Map">
select
count(c.id) as dangerCount,
a.belong_department_id as belongDepartmentId
from
spc_risk_source as a
left join
p_point as b on b.original_id = a.id
left join
(
select
a.*,b.point_id
from
p_latent_danger as a
inner join
p_latent_danger_patrol as b on a.id = b.latent_danger_id
where
a.danger_type in (2,3)
and a.danger_state in (2,3,4)
and a.overtime_state = 1
) as c on c.point_id = b.id
where
a.belong_department_id is not null
and
a.belong_department_id != ""
and
a.risk_type = '04'
group by a.belong_department_id
</select>
<select id="listPatrolPlan" resultType="java.util.Map">
select
a.id as planTaskId,
a.user_id as userId,
b.name as planName,
b.dept_id as deptId,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 0) as noStartNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 1) as passNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 2) as noPassNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 3) as overTimeNum
from
p_plan_task as a
left join
p_plan as b on a.plan_id = b.id
<where>
<if test="true">
and a.begin_time &lt;= now()
</if>
<if test="true">
and a.end_time &gt;= now()
</if>
<if test="deptId != null and deptId != ''">
and find_in_set(#{deptId},b.dept_id)
</if>
</where>
group by b.id
<if test="offset != null and limit != null">
limit #{offset},#{limit}
</if>
</select>
<select id="countPatrolPlan" resultType="java.lang.Long">
select count(1) from (
select
a.id
from
p_plan_task as a
left join
p_plan as b on a.plan_id = b.id
<where>
<if test="true">
and a.begin_time &lt;= now()
</if>
<if test="true">
and a.end_time &gt;= now()
</if>
<if test="deptId != null and deptId != ''">
and find_in_set(#{deptId},b.dept_id)
</if>
</where>
group by b.id
) tmp
</select>
<select id="listByTaskNo" resultType="java.util.Map">
select
a.task_no as planTaskId,
a.point_id as pointId,
a.status as status,
b.name as pointName
from
p_plan_task_detail as a
left join
p_point as b on a.point_id = b.id
where
task_no in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="queryRightTopChartDataByDepId" resultType="java.util.HashMap">
<!-- select sum(tmp2.passNum) as passNum,sum(tmp2.nopassNum) as nopassNum,sum(tmp2.overTime) as overTime,dept_id as deptId
from
(select
if(tmp.status=1,1,0) as passNum,
if(tmp.status=2,1,0) as nopassNum,
if(tmp.status=3,1,0) as overTime,
tmp.dept_id
from (
select D.point_id,D.status,P.dept_id
from p_plan_task_detail D
left join p_plan_task T on D.task_no = T.id
left join p_plan P on P.id = T.plan_id
where D.id in (select max(id) from p_plan_task_detail group by point_id)
AND T.end_time &lt; NOW()
AND P.dept_id IS NOT NULL) tmp
where tmp.dept_id IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
) tmp2 group by tmp2.dept_id -->
<!-- select
sum(tmp2.passNum) as passNum,sum(tmp2.nopassNum) as nopassNum,sum(tmp2.overTime) as overTime,dept_id as deptId,tmp2.name,tmp2.beginTime,tmp2.endTime
from
(select
if(tmp.status=1,1,0) as passNum,
if(tmp.status=2,1,0) as nopassNum,
if(IFNULL(tmp.status,3)=3,1,0) as overTime,
tmp.dept_id,
tmp.name,
tmp.begin_time as beginTime,
tmp.end_time as endTime
from (
select pl.id,D.point_id,D.status,R.dept_id,R.name,pl.begin_time,pl.end_time
from P_plan_task pl
left join p_plan_task_detail D ON D.task_no = pl.id
left join p_route_point p on D.point_id = P.point_id
left join p_route R on R.id = P.route_id
left join P_plan_task T on T.id = D.task_no
left join p_plan N on N.id = pl.plan_id
where pl.Finish_Status in(2,3) AND R.dept_id = #{deptId}
AND N.status = 1
AND pl.end_time = CURRENT_DATE
order by pl.id DESC limit 1
) tmp
) tmp2 group by name,tmp2.beginTime,tmp2.endTime -->
select
<!-- SUBSTRING_INDEX(org_code, "-", -1)deptId,
--> MAX(CASE a.finish_status WHEN 0 THEN a.NUM ELSE 0 END ) noStartNum,
MAX(CASE a.finish_status WHEN 1 THEN a.NUM ELSE 0 END ) noPassNum,
MAX(CASE a.finish_status WHEN 2 THEN a.NUM ELSE 0 END ) passNum,
MAX(CASE a.finish_status WHEN 3 THEN a.NUM ELSE 0 END ) overTimeNum
from ( select
COUNT(*) NUM,
l.finish_status,
l.org_code
from p_plan_task as l where DATE_FORMAT(l.begin_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
and l.org_code like CONCAT(#{deptId},"%") GROUP BY l.finish_status) a
</select>
<resultMap id="planTaskReturn" type="com.yeejoin.amos.bank.entity.planTaskReturn">
<id column="planTaskId" property="planTaskId"/>
<result column="userId" property="userId"/>
<result column="planName" property="planName"/>
<result column="deptId" property="deptId"/>
<result column="noStartNum" property="noStartNum"/>
<result column="passNum" property="passNum"/>
<result column="noPassNum" property="noPassNum"/>
<result column="overTimeNum" property="overTimeNum"/>
<result column="beginTime" property="beginTime"/>
<result column="endTime" property="endTime"/>
</resultMap>
<resultMap id="pointReturn" type="com.yeejoin.amos.bank.entity.pointReturn">
<id property="taskNo" column="taskNo"></id>
<result property="isFinish" column="isFinish"/>
<result property="name" column="name"/>
<result property="id" column="id"/>
<result property="coordinates" column="coordinates"/>
</resultMap>
<select id="planTaskReturnliat" resultMap="planTaskReturn">
select
a.id as planTaskId,
a.user_id as userId,
CONCAT(a.id,"-",b.name) as planName,
b.dept_id as deptId,
a.begin_time beginTime,
a.end_time endTime,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 0) as noStartNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 1) as passNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 2) as noPassNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 3) as overTimeNum
from
(select l.* from p_plan_task as l where DATE_FORMAT(l.begin_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') and l.org_code like CONCAT(#{deptId},"%"))as a
left join
p_plan as b on a.plan_id = b.id
group by a.id
<if test="offset != null and limit != null">
limit #{offset},#{limit}
</if>
</select>
<select id="pointReturnlist" resultMap="pointReturn">
select
p_plan_task_detail.status isFinish ,
p_point.`name`,
p_point.id,
p_point.coordinates,
p_plan_task_detail.task_no taskNo
from p_plan_task_detail LEFT JOIN p_point on p_plan_task_detail.point_id =p_point.id
where p_plan_task_detail.task_no=#{planTaskId} ORDER BY p_plan_task_detail.id
</select>
<?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.spc.business.dao.mapper.StatisticsMapper">
<select id="queryForRiseUp" resultType="java.util.Map">
select
d.countOfType0,
d.countOfSource,
CONCAT(ROUND(IFNULL(d.countOfType0/d.countOfSource,0)*100,2),'%') as type0Rate
from
(
select
count(distinct cl.risk_factors_id) as countOfType0,
(select count(1) from spc_risk_factors rs) as countOfSource
from
spc_risk_factors_level_log as cl
where
cl.type = 1
and
cl.create_date between '${startTime}' and '${endTime}'
) as d
</select>
<select id="riskSourceBroupByDepartment" resultType="java.util.Map">
select
count(b.code = '1' or null) as '1级',
count(b.code = '2' or null) as '2级',
count(b.code = '3' or null) as '3级',
count(b.code = '4' or null) as '4级',
a.belong_department_id as belongDepartmentId,
b.level,
b.code
from
spc_risk_source as a
left join
spc_risk_level as b on a.risk_level = b.id
where
a.risk_type = '04'
and
a.belong_department_id is not null
and
a.belong_department_id != ""
group by a.belong_department_id
</select>
<select id="latentDangerBroupByDepartment" resultType="java.util.Map">
select
count(c.danger_level = 1 or null) as '一般隐患',
count(c.danger_level = 2 or null) as '重大隐患',
a.belong_department_id as belongDepartmentId
from
spc_risk_source as a
left join
p_point as b on b.original_id = a.id
left join
(
select
a.*,b.point_id
from
p_latent_danger as a
inner join
p_latent_danger_patrol as b on a.id = b.latent_danger_id
where
a.danger_type in (2,3)
and a.danger_state in (2,3,4)
) as c on c.point_id = b.id
where
a.belong_department_id is not null
and
a.belong_department_id != ""
and
a.risk_type = '04'
group by a.belong_department_id
</select>
<select id="latentDangerRateGroupByDepartment" resultType="java.util.Map">
select
count(c.id) as dangerCount,
a.belong_department_id as belongDepartmentId
from
spc_risk_source as a
left join
p_point as b on b.original_id = a.id
left join
(
select
a.*,b.point_id
from
p_latent_danger as a
inner join
p_latent_danger_patrol as b on a.id = b.latent_danger_id
where
a.danger_type in (2,3)
and a.danger_state in (2,3,4)
and a.overtime_state = 1
) as c on c.point_id = b.id
where
a.belong_department_id is not null
and
a.belong_department_id != ""
and
a.risk_type = '04'
group by a.belong_department_id
</select>
<select id="listPatrolPlan" resultType="java.util.Map">
select
a.id as planTaskId,
a.user_id as userId,
b.name as planName,
b.dept_id as deptId,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 0) as noStartNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 1) as passNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 2) as noPassNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 3) as overTimeNum
from
p_plan_task as a
left join
p_plan as b on a.plan_id = b.id
<where>
<if test="true">
and a.begin_time &lt;= now()
</if>
<if test="true">
and a.end_time &gt;= now()
</if>
<if test="deptId != null and deptId != ''">
and find_in_set(#{deptId},b.dept_id)
</if>
</where>
group by b.id
<if test="offset != null and limit != null">
limit #{offset},#{limit}
</if>
</select>
<select id="countPatrolPlan" resultType="java.lang.Long">
select count(1) from (
select
a.id
from
p_plan_task as a
left join
p_plan as b on a.plan_id = b.id
<where>
<if test="true">
and a.begin_time &lt;= now()
</if>
<if test="true">
and a.end_time &gt;= now()
</if>
<if test="deptId != null and deptId != ''">
and find_in_set(#{deptId},b.dept_id)
</if>
</where>
group by b.id
) tmp
</select>
<select id="listByTaskNo" resultType="java.util.Map">
select
a.task_no as planTaskId,
a.point_id as pointId,
a.status as status,
b.name as pointName
from
p_plan_task_detail as a
left join
p_point as b on a.point_id = b.id
where
task_no in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="queryRightTopChartDataByDepId" resultType="java.util.HashMap">
<!-- select sum(tmp2.passNum) as passNum,sum(tmp2.nopassNum) as nopassNum,sum(tmp2.overTime) as overTime,dept_id as deptId
from
(select
if(tmp.status=1,1,0) as passNum,
if(tmp.status=2,1,0) as nopassNum,
if(tmp.status=3,1,0) as overTime,
tmp.dept_id
from (
select D.point_id,D.status,P.dept_id
from p_plan_task_detail D
left join p_plan_task T on D.task_no = T.id
left join p_plan P on P.id = T.plan_id
where D.id in (select max(id) from p_plan_task_detail group by point_id)
AND T.end_time &lt; NOW()
AND P.dept_id IS NOT NULL) tmp
where tmp.dept_id IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
) tmp2 group by tmp2.dept_id -->
<!-- select
sum(tmp2.passNum) as passNum,sum(tmp2.nopassNum) as nopassNum,sum(tmp2.overTime) as overTime,dept_id as deptId,tmp2.name,tmp2.beginTime,tmp2.endTime
from
(select
if(tmp.status=1,1,0) as passNum,
if(tmp.status=2,1,0) as nopassNum,
if(IFNULL(tmp.status,3)=3,1,0) as overTime,
tmp.dept_id,
tmp.name,
tmp.begin_time as beginTime,
tmp.end_time as endTime
from (
select pl.id,D.point_id,D.status,R.dept_id,R.name,pl.begin_time,pl.end_time
from P_plan_task pl
left join p_plan_task_detail D ON D.task_no = pl.id
left join p_route_point p on D.point_id = P.point_id
left join p_route R on R.id = P.route_id
left join P_plan_task T on T.id = D.task_no
left join p_plan N on N.id = pl.plan_id
where pl.Finish_Status in(2,3) AND R.dept_id = #{deptId}
AND N.status = 1
AND pl.end_time = CURRENT_DATE
order by pl.id DESC limit 1
) tmp
) tmp2 group by name,tmp2.beginTime,tmp2.endTime -->
select
<!-- SUBSTRING_INDEX(org_code, "-", -1)deptId,
--> MAX(CASE a.finish_status WHEN 0 THEN a.NUM ELSE 0 END ) noStartNum,
MAX(CASE a.finish_status WHEN 1 THEN a.NUM ELSE 0 END ) noPassNum,
MAX(CASE a.finish_status WHEN 2 THEN a.NUM ELSE 0 END ) passNum,
MAX(CASE a.finish_status WHEN 3 THEN a.NUM ELSE 0 END ) overTimeNum
from ( select
COUNT(*) NUM,
l.finish_status,
l.org_code
from p_plan_task as l where DATE_FORMAT(l.begin_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
and l.org_code like CONCAT(#{deptId},"%") GROUP BY l.finish_status) a
</select>
<resultMap id="planTaskReturn" type="com.yeejoin.amos.bank.entity.planTaskReturn">
<id column="planTaskId" property="planTaskId"/>
<result column="userId" property="userId"/>
<result column="planName" property="planName"/>
<result column="deptId" property="deptId"/>
<result column="noStartNum" property="noStartNum"/>
<result column="passNum" property="passNum"/>
<result column="noPassNum" property="noPassNum"/>
<result column="overTimeNum" property="overTimeNum"/>
<result column="beginTime" property="beginTime"/>
<result column="endTime" property="endTime"/>
</resultMap>
<resultMap id="pointReturn" type="com.yeejoin.amos.bank.entity.pointReturn">
<id property="taskNo" column="taskNo"></id>
<result property="isFinish" column="isFinish"/>
<result property="name" column="name"/>
<result property="id" column="id"/>
<result property="coordinates" column="coordinates"/>
<result property="floor" column="floor"/>
</resultMap>
<select id="planTaskReturnliat" resultMap="planTaskReturn">
select
a.id as planTaskId,
a.user_id as userId,
CONCAT(a.id,"-",b.name) as planName,
b.dept_id as deptId,
a.begin_time beginTime,
a.end_time endTime,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 0) as noStartNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 1) as passNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 2) as noPassNum,
(select count(1) from p_plan_task_detail where task_no = a.id and status = 3) as overTimeNum
from
(select l.* from p_plan_task as l where DATE_FORMAT(l.begin_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') and l.org_code like CONCAT(#{deptId},"%"))as a
left join
p_plan as b on a.plan_id = b.id
group by a.id
<if test="offset != null and limit != null">
limit #{offset},#{limit}
</if>
</select>
<select id="pointReturnlist" resultMap="pointReturn">
select
p_plan_task_detail.status isFinish ,
p_point.`name`,
p_point.id,
p_point.floor,
p_point.coordinates,
p_plan_task_detail.task_no taskNo
from p_plan_task_detail LEFT JOIN p_point on p_plan_task_detail.point_id =p_point.id
where p_plan_task_detail.task_no=#{planTaskId} ORDER BY p_plan_task_detail.id
</select>
<select id="getporint" resultType="java.util.Map">
SELECT
p_alarm_point.`code` code ,
p_alarm_point.is_alarm status
from p_alarm_point where p_alarm_point.point_type=3 and p_alarm_point.is_alarm=1 and p_alarm_point.point_id=#{pointid}
</select>
<select id="getporintdate" resultType="java.util.Map">
SELECT
p_point.org_code code
from p_point WHERE p_point.id=#{pointid}
</select>
</mapper>
\ No newline at end of file
......@@ -520,19 +520,14 @@
</select>
<!-- 巡检点按楼层 查询 -->
<!-- 巡检点按楼层 查询 -->
<select id="getpointlist" resultType="map">
select * from p_point where p_point.floor=#{floor}
and p_point.org_code=#{code} and p_point.is_delete=0
and p_point.org_code like concat(#{code},'%') and p_point.is_delete=0
</select>
<!-- 修改巡检点 -->
<select id="updatepoint">
<!-- 修改巡检点 -->
<select id="updatepoint">
UPDATE p_point set p_point.coordinates =#{coordinates}
where p_point.id=#{id}
</select>
......
log4j.rootLogger=info, stdout, logfile
log4j.rootLogger=DEBUG, stdout, logfile
log4j.logger.com.yeejoin.amos.spc.business.dao.mapper=debug
log4j.logger.io.netty=info
......@@ -14,8 +14,8 @@ log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %t %-5p [%c{1}:%L] %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logs/safetyPreIndustry.log
log4j.appender.logfile.MaxFileSize=10240KB
log4j.appender.logfile.File=logs/ccpc.log
log4j.appender.logfile.MaxFileSize=1024KB
log4j.appender.logfile.MaxBackupIndex=30
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %t %-5p [%c{1}:%L] %m%n
......
......@@ -77,18 +77,14 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
......
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