Commit f4909f78 LN

1053:客户端上传的消息保存到message表, 数量只统计报警消息数。增加国际化处理。

1 个父辈 0d9247e4
......@@ -127,5 +127,21 @@ public class DeviceMessageUtil {
}
public static void addMessage( String msgType, String name,String moudle, String msgCode, String msg, String[] msgParam) {
if(ObjectUtil.isEmpty(msgType)||ObjectUtil.isEmpty(msg)){
return;
}try {
String code = msgCode;
if (ObjectUtil.isNotEmpty(msgCode)) {
if (!msgCode.startsWith(MessageUtils.smfcore)) {
code = MessageUtils.smfcore + "." + msgCode;
}
}
Message message = Message.newMsg(msgType, name, "", moudle, code, msg, msgParam);
messageManager.save(message);
}catch (Exception ex){
log.error("addMessage ["+msgType+"]["+name+"]["+msg+"]出错:"+ex.toString());
}
}
}
package com.neotel.smfcore.custom.micron1053.bean;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.language.util.MessageUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.Locale;
@Data
@AllArgsConstructor
......@@ -15,4 +18,42 @@ public class EquipMsg implements Serializable {
private int status;
private String msg;
private Date time;
/**
* 消息类型,info,warning,error
*/
private String type;
/**
* 英文提示消息
*/
public String msgEn = "";
/**
* 消息字符串Code
*/
private String msgCode;
/**
* 参数
*/
private String[] msgParams;
public String getShowMsg(Locale locale) {
if (ObjectUtil.isEmpty(this.msg)) {
return "";
}
//从收到数据中查找
String lan = locale.toLanguageTag();
if (lan.equals(MessageUtils.EN_US) && ObjectUtil.isNotEmpty(getMsgEn())) {
return getMsgEn();
}
//提示信息国际化
if (ObjectUtil.isEmpty(getMsgCode())) {
return this.msg;
} else {
String code = this.msgCode;
if (!code.startsWith(MessageUtils.smfcore)) {
code = MessageUtils.smfcore + "." + this.msgCode;
}
String newMsg = MessageUtils.getText(code, msgParams, locale, getMsg());
return newMsg;
}
}
}
package com.neotel.smfcore.custom.micron1053.bean.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EquipMsgDto implements Serializable {
private String name;
private int status;
private String msg;
private Date time;
/**
* 消息类型,info,warning,error
*/
private String type;
}
......@@ -29,7 +29,7 @@ public class ML5StatusDto implements Serializable {
private int ng2Count=0;
@ApiModelProperty("消息列表")
private List<EquipMsg> msgList=null;
private List<EquipMsgDto> msgList=null;
@ApiModelProperty("需要的料架列表")
......
......@@ -21,5 +21,5 @@ public class MicronEquipStatusDto implements Serializable {
private Map<String,Integer> statusMap=new HashMap<>();
@ApiModelProperty("消息列表")
private List<EquipMsg> msgList=new ArrayList<>();
private List<EquipMsgDto> msgList=new ArrayList<>();
}
package com.neotel.smfcore.custom.micron1053.controller;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.micron1053.bean.EquipMsg;
import com.neotel.smfcore.custom.micron1053.bean.ML5NgReelInfo;
import com.neotel.smfcore.custom.micron1053.bean.MicronEquipStatus;
import com.neotel.smfcore.custom.micron1053.bean.dto.EquipMsgDto;
import com.neotel.smfcore.custom.micron1053.bean.dto.ML5ShelfDto;
import com.neotel.smfcore.custom.micron1053.bean.dto.ML5StatusDto;
import com.neotel.smfcore.custom.micron1053.util.MicronDataCache;
......@@ -31,7 +34,7 @@ public class MicronML5Controller {
@ApiOperation("ML5页面数据获取")
@GetMapping("/status")
@AnonymousAccess
public ML5StatusDto ml5Status( ) {
public ML5StatusDto ml5Status(HttpServletRequest servletRequest ) {
ML5StatusDto resultDto = new ML5StatusDto();
MicronEquipStatus mlL = MicronDataCache.getStatus("ML5-L");
MicronEquipStatus mlR = MicronDataCache.getStatus("ML5-R");
......@@ -51,7 +54,17 @@ public class MicronML5Controller {
msgs.addAll(mlR.getMsgList());
}
if (msgs.size() > 0) {
resultDto.setMsgList(msgs);
List<EquipMsgDto> msgDtos=new ArrayList<>();
for (EquipMsg msg :
msgs) {
//只显示报警
// if(ObjectUtil.isEmpty(msg.getType())|| msg.getType().equals(MessageType.ERROR)) {
EquipMsgDto dtoMsg = new EquipMsgDto(msg.getName(), msg.getStatus(), msg.getShowMsg(servletRequest.getLocale()), msg.getTime(), msg.getType());
msgDtos.add(dtoMsg);
// }
}
resultDto.setMsgList(msgDtos);
}
Map<String, ML5ShelfDto> needShelfs = new HashMap<>();
......
......@@ -8,6 +8,7 @@ import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.report.bean.ChartItem;
import com.neotel.smfcore.core.storage.bean.UsageItem;
import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
......@@ -54,18 +55,20 @@ public class MicronStatusController {
@GetMapping("/equipView")
@AnonymousAccess
public MicronEquipStatusDto view(HttpServletRequest servletRequest) {
MicronEquipStatusDto dto=new MicronEquipStatusDto();
MicronEquipStatusDto dto = new MicronEquipStatusDto();
dto.setMsgList(new ArrayList<>());
dto.setStatusMap(new HashMap<>());
// ML5,CI,R1,R2,R3
String[] names=new String[]{"ML5-L","ML5-R","CI","R1","R2","R3"};
for (String name :names
) {
MicronEquipStatus s=MicronDataCache.getStatus(name);
if(!s.timeOut()){
String newKey=s.getEquipName().replace("-","");
dto.getStatusMap().put(newKey,s.getStatus() );
List<EquipMsg> allMsgList = new ArrayList<>();
String[] names = new String[]{"ML5-L", "ML5-R", "CI", "R1", "R2", "R3"};
for (String name : names
) {
MicronEquipStatus s = MicronDataCache.getStatus(name);
if (!s.timeOut()) {
String newKey = s.getEquipName().replace("-", "");
dto.getStatusMap().put(newKey, s.getStatus());
// if(s.getMsgList()!=null&&s.getMsgList().size()>0) {
// dto.getMsgList().addAll(s.getMsgList());
// }
......@@ -73,23 +76,25 @@ public class MicronStatusController {
}
//所有设备的报警都加上
List<MicronEquipStatus> statuses = new ArrayList<>();
statuses.addAll(MicronDataCache.equipStatusMap.values());
for (MicronEquipStatus s :
statuses) {
if (!s.timeOut()) {
if(!dto.getStatusMap().containsKey(s.getEquipName())){
dto.getStatusMap().put(s.getEquipName(),s.getStatus());
}
if (s.getMsgList() != null && s.getMsgList().size() > 0) {
dto.getMsgList().addAll(s.getMsgList());
if (MicronDataCache.equipStatusMap != null && MicronDataCache.equipStatusMap.size() > 0) {
statuses.addAll(MicronDataCache.equipStatusMap.values());
for (MicronEquipStatus s :
statuses) {
if (!s.timeOut()) {
if (!dto.getStatusMap().containsKey(s.getEquipName())) {
dto.getStatusMap().put(s.getEquipName(), s.getStatus());
}
if (s.getMsgList() != null && s.getMsgList().size() > 0) {
allMsgList.addAll(s.getMsgList());
}
}
}
}
//料仓状态
List<String> boxList=new ArrayList<>();
for (int i=1;i<=8;i++
) {
boxList.add("M"+i);
List<String> boxList = new ArrayList<>();
for (int i = 1; i <= 8; i++
) {
boxList.add("M" + i);
}
// SBDH1, SBDH2, SBDH3, SBSH1, SBSH2
boxList.add("SBDH1");
......@@ -104,14 +109,23 @@ public class MicronStatusController {
for (String boxName :
boxList) {
//查找料仓
MicronEquipStatus s=getBoxEquip(boxName,servletRequest.getLocale());
dto.getStatusMap().put(s.getEquipName(),s.getStatus() );
if(s.getMsgList()!=null&&s.getMsgList().size()>0) {
dto.getMsgList().addAll(s.getMsgList());
MicronEquipStatus s = getBoxEquip(boxName, servletRequest.getLocale());
dto.getStatusMap().put(s.getEquipName(), s.getStatus());
if (s.getMsgList() != null && s.getMsgList().size() > 0) {
allMsgList.addAll(s.getMsgList());
}
}
return dto;
for (EquipMsg msg :
allMsgList) {
//只显示报警
// if(ObjectUtil.isEmpty(msg.getType())|| msg.getType().equals(MessageType.ERROR)) {
EquipMsgDto dtoMsg = new EquipMsgDto(msg.getName(), msg.getStatus(), msg.getShowMsg(servletRequest.getLocale()), msg.getTime(), msg.getType());
dto.getMsgList().add(dtoMsg);
// }
}
return dto;
}
private List<String> getCidsByBoxName(String boxName) {
......@@ -154,7 +168,7 @@ public class MicronStatusController {
}
String msg=s.getShowMsg(locale);
if (ObjectUtil.isNotEmpty(msg)) {
dto.getMsgList().add(new EquipMsg(s.getCid(), s.getStatus(), msg, new Date(s.getTime())));
dto.getMsgList().add(new EquipMsg(s.getCid(), s.getStatus(), msg, new Date(s.getTime()),"","","",new String[]{}));
}
}
}
......@@ -329,33 +343,44 @@ public class MicronStatusController {
@GetMapping("/alarmMsgCount")
@AnonymousAccess
public ResultBean alarmMsgCount(HttpServletRequest servletRequest) {
int count=0;
//先添加设备的
List<MicronEquipStatus> statuses = new ArrayList<>();
statuses.addAll(MicronDataCache.equipStatusMap.values());
for (MicronEquipStatus s :
statuses) {
if (!s.timeOut()) {
if (s.getMsgList() != null && s.getMsgList().size() > 0) {
count+=s.getMsgList().size();
int count = 0;
try {
//先添加设备的
List<MicronEquipStatus> statuses = new ArrayList<>();
if (MicronDataCache.equipStatusMap != null && MicronDataCache.equipStatusMap.size() > 0) {
statuses.addAll(MicronDataCache.equipStatusMap.values());
for (MicronEquipStatus s :
statuses) {
if (!s.timeOut()) {
if (s.getMsgList() != null && s.getMsgList().size() > 0) {
for (EquipMsg msg : s.getMsgList()){
//只累计报警消息
if(ObjectUtil.isEmpty(msg.getType())|| msg.getType().equals(MessageType.ERROR)) {
count += s.getMsgList().size();
}
}
}
}
}
}
}
//添加料仓的
List<Storage> storages = new ArrayList<>();
storages.addAll(dataCache.getAllStorage().values());
for (Storage storage :
storages) {
StatusBean statusBean = DevicesStatusUtil.getStatusBean(storage.getCid());
if (statusBean != null && (!statusBean.timeOut())) {
String msg = statusBean.getShowMsg(servletRequest.getLocale());
if (ObjectUtil.isNotEmpty(msg)) {
count+=1;
//添加料仓的
Map<String, Storage> allStorages = dataCache.getAllStorage();
if (allStorages != null && allStorages.size() > 0) {
for (Storage storage :
allStorages.values()) {
StatusBean statusBean = DevicesStatusUtil.getStatusBean(storage.getCid());
if (statusBean != null && (!statusBean.timeOut())) {
String msg = statusBean.getShowMsg(servletRequest.getLocale());
if (ObjectUtil.isNotEmpty(msg)) {
count += 1;
}
}
}
}
} catch (Exception ex) {
log.error("alarmMsgCount 出错:" + ex.toString());
}
return ResultBean.newOkResult(count);
......
package com.neotel.smfcore.custom.micron1053.util;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.micron1053.bean.EquipMsg;
import com.neotel.smfcore.custom.micron1053.bean.ML5NgReelInfo;
......@@ -23,16 +24,36 @@ public class MicronDataCache {
if (bean == null) {
return;
}
List<String> oldMsgs=new ArrayList<>();
MicronEquipStatus oldS=equipStatusMap.getOrDefault(bean.getEquipName(),new MicronEquipStatus());
if(oldS.getMsgList()!=null&&oldS.getMsgList().size()>0){
for (EquipMsg msg :
oldS.getMsgList()) {
oldMsgs.add(msg.getMsg());
}
}
List<EquipMsg> msgs=new ArrayList<>();
if(bean.getMsgList()!=null&&bean.getMsgList().size()>0){
for (EquipMsg msg :
bean.getMsgList()) {
if(ObjectUtil.isEmpty(msg.getMsg())){
continue;
}
if(ObjectUtil.isEmpty(msg.getName())){
msg.setName(bean.getEquipName());
}
if(msg.getTime()==null){
msg.setTime(new Date());
}
//判断是否需要保存到数据
if(!oldMsgs.contains(msg.getMsg())){
//保存数据
DeviceMessageUtil.addMessage(msg.getType(),bean.getEquipName(), msg.getName(),msg.getMsgCode(),msg.getMsg(),msg.getMsgParams());
}
msgs.add(msg);
}
bean.setMsgList(msgs);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!