Commit a2f36f92 authored by xinglei's avatar xinglei

修改关联设备为一对多

parent e179730f
...@@ -14,12 +14,4 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -14,12 +14,4 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Repository @Repository
public interface BankInfoDao extends IBaseRepository<BankInfo, Long> { 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.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;
}
}
...@@ -17,7 +17,7 @@ public enum CommTopic { ...@@ -17,7 +17,7 @@ public enum CommTopic {
* 通道告警模拟 * 通道告警模拟
*/ */
AISLE_DEVICE("bank/aisle/alarm"), AISLE_DEVICE("bank/aisle/alarm"),
/** /**
* 自建系统ping * 自建系统ping
*/ */
......
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.bank.dao.BankInfoDao; import com.yeejoin.amos.bank.dao.BankInfoDao;
import com.yeejoin.amos.bank.dao.mapper.BankInfoMapper;
import com.yeejoin.amos.bank.entity.BankInfo; import com.yeejoin.amos.bank.entity.BankInfo;
import com.yeejoin.amos.bank.webSocket.AmosWsClient; import com.yeejoin.amos.bank.webSocket.AmosWsClient;
import com.yeejoin.amos.bank.webSocket.WebsocketParam; import com.yeejoin.amos.bank.webSocket.WebsocketParam;
...@@ -18,6 +19,8 @@ import org.springframework.util.ObjectUtils; ...@@ -18,6 +19,8 @@ import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper; import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener; import org.typroject.tyboot.component.emq.EmqxListener;
import java.util.Map;
@Component @Component
public class EquipmentListener extends EmqxListener implements InitializingBean { public class EquipmentListener extends EmqxListener implements InitializingBean {
...@@ -27,7 +30,7 @@ public class EquipmentListener extends EmqxListener implements InitializingBean ...@@ -27,7 +30,7 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
private EmqKeeper emqKeeper; private EmqKeeper emqKeeper;
@Autowired @Autowired
private BankInfoDao bankInfoDao; private BankInfoMapper bankInfoMapper;
@Autowired @Autowired
private AmosWsClient client; private AmosWsClient client;
...@@ -57,15 +60,18 @@ public class EquipmentListener extends EmqxListener implements InitializingBean ...@@ -57,15 +60,18 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
private void blueprintMsgtransfer(MqttMessage mqttMessage) { private void blueprintMsgtransfer(MqttMessage mqttMessage) {
try { try {
String jsonStr = new String(mqttMessage.getPayload()); String jsonStr = new String(mqttMessage.getPayload());
logger.error(">>>>>>>>>>>>>>>>>jsonStr", jsonStr); logger.info(">>>>>>>>>>>>>>>>>jsonStr", jsonStr);
JSONObject parseObject = JSON.parseObject(jsonStr); JSONArray jsonArray = JSON.parseObject(jsonStr).getJSONArray("metricDatas");
Long eqpId = parseObject.getLong("eqpId");
JSONArray jsonArray = parseObject.getJSONArray("metricDatas");
if (ObjectUtils.isEmpty(jsonArray)) { if (ObjectUtils.isEmpty(jsonArray)) {
return; return;
} }
// JSONArray eqpConfig = parseObject.getJSONArray("eqpConfigMap");
// JSONObject eqpConfigValue = JSONObject.parseObject(eqpConfig.getString(0));
// String sourceName = eqpConfigValue.getString("valueStr");
jsonArray.forEach(e -> { jsonArray.forEach(e -> {
JSONObject object = (JSONObject) e; JSONObject object = (JSONObject) e;
Long eqpId = object.getLong("eqpId");
String string = object.getString("metricJson"); String string = object.getString("metricJson");
if (!StringUtil.isNotEmpty(string)) { if (!StringUtil.isNotEmpty(string)) {
return; return;
...@@ -74,10 +80,13 @@ public class EquipmentListener extends EmqxListener implements InitializingBean ...@@ -74,10 +80,13 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
JSONObject metricJson = JSONObject.parseObject(string); JSONObject metricJson = JSONObject.parseObject(string);
String communication = metricJson.get("communication").toString(); String communication = metricJson.get("communication").toString();
int status = communication.equals("正常") ? 0 : 1; int status = communication.equals("正常") ? 0 : 1;
BankInfo bankInfo = bankInfoDao.findBySourceId(eqpId); int sourceIdStatus = bankInfoMapper.findBySourceId(eqpId);
if (status != bankInfo.getStatus()) { if (status != sourceIdStatus) {
bankInfoDao.updateBySourceId(status, eqpId); bankInfoMapper.updateBySourceId(status, eqpId);
pushAisleAlarm();
Map<String, Object> resultMap = bankInfoMapper.selectBankInfoBySourceId(eqpId);
resultMap.put("eqpId", eqpId);
pushAisleAlarm(resultMap);
logger.info("=======aisle状态有变化====="); logger.info("=======aisle状态有变化=====");
} }
}); });
...@@ -91,8 +100,8 @@ public class EquipmentListener extends EmqxListener implements InitializingBean ...@@ -91,8 +100,8 @@ public class EquipmentListener extends EmqxListener implements InitializingBean
/** /**
* 发送通道刷新标识 * 发送通道刷新标识
*/ */
public void pushAisleAlarm() { public void pushAisleAlarm(Map<String, Object> result) {
WebsocketParam param = new WebsocketParam("aisleAlarm", "aisleRefresh"); WebsocketParam param = new WebsocketParam("aisleAlarm", JSON.toJSONString(result));
client.sendMessage(param); client.sendMessage(param);
} }
} }
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();
int 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);
}
...@@ -4,7 +4,9 @@ package com.yeejoin.amos.bank.service.impl; ...@@ -4,7 +4,9 @@ package com.yeejoin.amos.bank.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.bank.dao.BankInfoDao; import com.yeejoin.amos.bank.dao.BankInfoDao;
import com.yeejoin.amos.bank.dao.mapper.AutoInspectionMapper; 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.dao.repository.IAutoInspectionRepository;
import com.yeejoin.amos.bank.dto.BankInfoDTO;
import com.yeejoin.amos.bank.entity.AutoInspection; import com.yeejoin.amos.bank.entity.AutoInspection;
import com.yeejoin.amos.bank.entity.BankInfo; import com.yeejoin.amos.bank.entity.BankInfo;
import com.yeejoin.amos.bank.service.IAutoInspectionService; import com.yeejoin.amos.bank.service.IAutoInspectionService;
...@@ -30,7 +32,7 @@ public class AutoInspectionServiceImpl extends GenericManagerImpl<AutoInspection ...@@ -30,7 +32,7 @@ public class AutoInspectionServiceImpl extends GenericManagerImpl<AutoInspection
private AutoInspectionMapper autoInspectionMapper; private AutoInspectionMapper autoInspectionMapper;
@Autowired @Autowired
private BankInfoDao bankInfoDao; private BankInfoMapper bankInfoMapper;
@Override @Override
public List<AutoInspection> findAbnormalByMonitorItemNameAndHost(String monitorItemName, String monitorHostMachine) { public List<AutoInspection> findAbnormalByMonitorItemNameAndHost(String monitorItemName, String monitorHostMachine) {
...@@ -148,9 +150,9 @@ public class AutoInspectionServiceImpl extends GenericManagerImpl<AutoInspection ...@@ -148,9 +150,9 @@ public class AutoInspectionServiceImpl extends GenericManagerImpl<AutoInspection
public Map<String, Object> bankInfoList() { public Map<String, Object> bankInfoList() {
Map<String, Object> map = new HashMap(); Map<String, Object> map = new HashMap();
List<BankInfo> bankInfoList = bankInfoDao.findAll(); List<BankInfoDTO> bankInfoList = bankInfoMapper.selectBankInfoList();
List<BankInfo> centerList = bankInfoList.stream().filter(x -> x.getIsCenter() == 1).distinct().collect(Collectors.toList()); List<BankInfoDTO> 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> unCenterList = bankInfoList.stream().filter(x -> x.getIsCenter() == 0).distinct().collect(Collectors.toList());
map.put("centerList",centerList); map.put("centerList",centerList);
map.put("unCenterList",unCenterList); map.put("unCenterList",unCenterList);
......
...@@ -75,7 +75,6 @@ public class AlarmController extends BaseController { ...@@ -75,7 +75,6 @@ public class AlarmController extends BaseController {
// } // }
//获取当前登录人公司orgcode //获取当前登录人公司orgcode
ReginParams reginParams =getSelectedOrgInfo(); ReginParams reginParams =getSelectedOrgInfo();
String code=reginParams.getCompany().getOrgCode(); String code=reginParams.getCompany().getOrgCode();
......
...@@ -8,6 +8,7 @@ import java.util.stream.Collectors; ...@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolationException; import javax.validation.ConstraintViolationException;
import com.yeejoin.amos.spc.exception.YeeException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.TransactionSystemException; import org.springframework.transaction.TransactionSystemException;
...@@ -148,9 +149,8 @@ public class BaseController { ...@@ -148,9 +149,8 @@ public class BaseController {
return result; return result;
} catch (InnerInvokException e) { } catch (InnerInvokException e) {
System.err.println("get user info fail"); System.err.println("get user info fail");
throw new YeeException(e.getMessage());
} }
return null;
} }
protected String getUserId() { protected String getUserId() {
......
...@@ -29,11 +29,12 @@ ...@@ -29,11 +29,12 @@
(SELECT name from b_bank_info where name = #{city}) as sname, (SELECT name from b_bank_info where name = #{city}) as sname,
(SELECT lng from b_bank_info where name = #{city}) as slng, (SELECT lng from b_bank_info where name = #{city}) as slng,
(SELECT lat from b_bank_info where name = #{city}) as slat, (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, `NAME` as ename,
img AS imgSrc, img AS imgSrc,
lng AS elng, 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>
<select id="pamsAisleSummary" resultType="java.util.HashMap"> <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.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="int">
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
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