src/main/java/com/whyc/controller/ServerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/AlarmDaoFactory.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattalarmDataService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/MessageUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/webSocket/BattAlarmDataSocket.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/i18n/message_en_US.properties | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/i18n/message_zh_CN.properties | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/ServerController.java
@@ -27,6 +27,7 @@ @GetMapping("lang") public Response setlang(@RequestParam String lang) { ActionUtil.getSession().setAttribute("lang", lang); return new Response().set(1, true, "设置系统语言"); String as = (String) ActionUtil.getSession().getAttribute("lang"); return new Response().set(1, true, as); } } src/main/java/com/whyc/dto/AlarmDaoFactory.java
@@ -1,25 +1,25 @@ package com.whyc.dto; public class AlarmDaoFactory { public static final int Alarm_All =0; //--全部 public static final int Alarm_vol_Online =119001; //--在线电压 public static final int Alarm_vol_Group =119002; //--组端电压 public static final int Alarm_curr_Charge =119003; //--充电电流 public static final int Alarm_curr_Discharge =119004;//--放电电流 public static final int Alarm_vol_Monomer =119005; //--单体电压 public static final int Alarm_tmp_Monomer =119006; //--单体温度 public static final int Alarm_res_Monomer =119007; //--单体内阻 public static final int Alarm_res_Conn =119008; //--连接条阻抗 public static final int Alarm_All = 0; //--全部 public static final int Alarm_vol_Online = 119001; //--在线电压 public static final int Alarm_vol_Group = 119002; //--组端电压 public static final int Alarm_curr_Charge = 119003; //--充电电流 public static final int Alarm_curr_Discharge = 119004;//--放电电流 public static final int Alarm_vol_Monomer = 119005; //--单体电压 public static final int Alarm_tmp_Monomer = 119006; //--单体温度 public static final int Alarm_res_Monomer = 119007; //--单体内阻 public static final int Alarm_res_Conn = 119008; //--连接条阻抗 public final static int ALM_TYPE_DisChargeMonVol_ID = 119009; //--放电过程中落后单体告警 public static final int Alarm_CapAlarm =119010; //--容量告警告警 public static final int Alarm_CapChange =119011; //--容量更换告警 public static final int Alarm_CapAlarm = 119010; //--容量告警告警 public static final int Alarm_CapChange = 119011; //--容量更换告警 public final static int ALM_TYPE_MONLYVOL_ID = 119012; //漏液电压告警 public final static int ALM_TYPE_MONREALCAP_ID = 119013; //单体预估容量告警 public final static int ALM_SIGNAL_ID_Null = 0; public final static int ALM_SIGNAL_ID_OnlineVolHigh = 1; public final static int ALM_SIGNAL_ID_OnlineVolLow = 2; @@ -182,7 +182,7 @@ public static final int smoke_CommErr2 = 110135; public static final int smoke_CommErr3 = 110136; public static String getAlarmName(int type) /*public static String getAlarmName(int type) { String Alarm_name = "未知"; switch(type) //告警名称 @@ -214,23 +214,160 @@ } return Alarm_name; }*/ public static String getAlarmName(int type) { String Alarm_name = "NONE"; switch (type) //告警名称 { case 1: Alarm_name = "HighOnlineVoltage"; break; case 2: Alarm_name = "LowOnlineVoltage"; break; case 3: Alarm_name = "HighGroupVoltage"; break; case 4: Alarm_name = "LowGroupVoltage"; break; case 5: Alarm_name = "HighChargingCurrent"; break; case 6: Alarm_name = "LowChargingCurrent"; break; case 7: Alarm_name = "HighDischargCurrent"; break; case 8: Alarm_name = "LowDischargCurrent"; break; case 9: Alarm_name = "HighIndividualVoltage"; break; case 10: Alarm_name = "LowIndividualVoltage"; break; case 11: Alarm_name = "HighMonomerTemperature"; break; case 12: Alarm_name = "LowMonomerTemperature"; break; case 13: Alarm_name = "HighIndividualResistance"; break; case 14: Alarm_name = "LowIndividualResistance"; break; case 15: Alarm_name = "HighConnectionBarImpedance"; break; case 16: Alarm_name = "LowConnectionBarImpedance"; break; case 17: Alarm_name = "HighDischargeUnitVoltage"; break; case 18: Alarm_name = "LowDischargeUnitVoltage"; break; case 19: Alarm_name = "LowCapacityAlarmCapacity"; break; case 20: Alarm_name = "HighCapacityAlarmCapacity"; break; case 21: Alarm_name = "LowCapacityReplaceCapacity"; break; case 22: Alarm_name = "HighCapacityReplaceCapacity"; break; case 23: Alarm_name = "BatteryPositiveElectrodeLeakage"; break; case 24: Alarm_name = "BatteryNegativeElectrodeLeakage"; break; } return Alarm_name; } public static String getAlarmType(int type){ /*public static String getAlarmType(int type) { String Alarm_Type = "未知"; switch (type) { case 1: Alarm_Type="一级告警";break; case 2: Alarm_Type="二级告警";break; case 3: Alarm_Type="三级告警";break; case 4: Alarm_Type="四级告警";break; case 5: Alarm_Type="五级告警";break; case 6: Alarm_Type="六级告警";break; case 7: Alarm_Type="七级告警";break; case 8: Alarm_Type="八级告警";break; case 9: Alarm_Type="九级告警";break; case 10: Alarm_Type="十级告警";break; case 1: Alarm_Type = "一级告警"; break; case 2: Alarm_Type = "二级告警"; break; case 3: Alarm_Type = "三级告警"; break; case 4: Alarm_Type = "四级告警"; break; case 5: Alarm_Type = "五级告警"; break; case 6: Alarm_Type = "六级告警"; break; case 7: Alarm_Type = "七级告警"; break; case 8: Alarm_Type = "八级告警"; break; case 9: Alarm_Type = "九级告警"; break; case 10: Alarm_Type = "十级告警"; break; } return Alarm_Type; }*/ public static String getAlarmType(int type) { String Alarm_Type = "NONE"; switch (type) { case 1: Alarm_Type = "level1Alarm"; break; case 2: Alarm_Type = "level2Alarm"; break; case 3: Alarm_Type = "level3Alarm"; break; case 4: Alarm_Type = "level4Alarm"; break; case 5: Alarm_Type = "level5Alarm"; break; case 6: Alarm_Type = "level6Alarm"; break; case 7: Alarm_Type = "level7Alarm"; break; case 8: Alarm_Type = "level8Alarm"; break; case 9: Alarm_Type = "level9Alarm"; break; case 10: Alarm_Type = "level10Alarm"; break; } return Alarm_Type; } src/main/java/com/whyc/service/BattalarmDataService.java
@@ -19,6 +19,7 @@ import com.whyc.mapper.PwrdevAlarmMapper; import com.whyc.pojo.*; import com.whyc.util.ActionUtil; import com.whyc.util.MessageUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,34 +78,35 @@ public Response serchByCondition(AlarmPar par) { //分页信息 PageHelper.startPage(par.getPage().getPageCurr(), par.getPage().getPageSize()); UserInf uinf= ActionUtil.getUser(); UserInf uinf = ActionUtil.getUser(); par.setUId(uinf.getUId().intValue()); List<AlarmRes> list=mapper.serchByCondition(par); for (AlarmRes a:list) { List<BattalarmData> l=a.getAdatas(); for (BattalarmData adata:l) { List<AlarmRes> list = mapper.serchByCondition(par); for (AlarmRes a : list) { List<BattalarmData> l = a.getAdatas(); for (BattalarmData adata : l) { adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId())); adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel())); } } PageInfo<AlarmRes> pinfo=new PageInfo<AlarmRes>(list); return new Response().set(1,pinfo); PageInfo<AlarmRes> pinfo = new PageInfo<AlarmRes>(list); return new Response().set(1, pinfo); } //电池告警实时查询-websocket使用 @Transactional public Response serchByConditionOfWebSocket(AlarmPar par) { public Response serchByConditionOfWebSocket(AlarmPar par, String lang) { //分页信息 PageHelper.startPage(par.getPage().getPageCurr(), par.getPage().getPageSize()); List<AlarmRes> list=mapper.serchByCondition(par); for (AlarmRes a:list) { List<BattalarmData> l=a.getAdatas(); for (BattalarmData adata:l) { adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId())); adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel())); List<AlarmRes> list = mapper.serchByCondition(par); for (AlarmRes a : list) { List<BattalarmData> l = a.getAdatas(); for (BattalarmData adata : l) { adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang)); adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang)); } } PageInfo<AlarmRes> pinfo=new PageInfo<AlarmRes>(list); return new Response().set(1,pinfo); PageInfo<AlarmRes> pinfo = new PageInfo<AlarmRes>(list); return new Response().set(1, pinfo); } src/main/java/com/whyc/util/MessageUtils.java
@@ -1,20 +1,13 @@ package com.whyc.util; import com.whyc.config.I18nLocaleResolver; import lombok.var; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.servlet.http.HttpSession; import java.nio.charset.StandardCharsets; import java.util.Locale; import java.util.Objects; @Component public class MessageUtils { @@ -77,11 +70,13 @@ * @return 国际化后内容信息 */ public static String getMessageSocket(String code, String lang) { Locale locale; if((lang.equals("zh"))){ locale = Locale.SIMPLIFIED_CHINESE; }else{ //不是中文,则采用en_US locale = Locale.US; Locale locale = Locale.SIMPLIFIED_CHINESE; if (lang != null) { if ((lang.equals("zh"))) { locale = Locale.SIMPLIFIED_CHINESE; } else { //不是中文,则采用en_US locale = Locale.US; } } return getMessage(code, null, code, locale); } src/main/java/com/whyc/webSocket/BattAlarmDataSocket.java
@@ -1,5 +1,6 @@ package com.whyc.webSocket; import com.whyc.config.WebSocketConfig; import com.whyc.dto.Response; import com.whyc.dto.paramter.AlarmPar; import com.whyc.service.BattalarmDataService; @@ -7,53 +8,62 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.servlet.http.HttpSession; import javax.websocket.*; import javax.websocket.server.ServerEndpoint; import java.util.HashMap; import java.util.Map; @Component @ServerEndpoint(value = "/battAlarmData",encoders = WebSocketEncoder.class) @ServerEndpoint(value = "/battAlarmData", encoders = WebSocketEncoder.class, configurator = WebSocketConfig.class) public class BattAlarmDataSocket { private volatile Thread thread; private static final int executeTime = 10000; private volatile boolean runFlag=true; private volatile boolean runFlag = true; private volatile Map<String,Thread> threadMap = new HashMap<>(); private volatile Map<String, Thread> threadMap = new HashMap<>(); private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); private volatile Map<Long, Boolean> threadFlagMap = new HashMap<>(); private static BattalarmDataService service; private Session session; private HttpSession httpSession; private String lang; @Autowired public void setService(BattalarmDataService service){ public void setService(BattalarmDataService service) { BattAlarmDataSocket.service = service; } @OnOpen public void onOpen(Session session){ this.session=session; public void onOpen(Session session, EndpointConfig config) { this.session = session; this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); this.lang = (String) this.httpSession.getAttribute("lang"); } @OnMessage public synchronized void onMessage(Session session, String message){ public synchronized void onMessage(Session session, String message) { AlarmPar alarmPar = ActionUtil.getGson().fromJson(message, AlarmPar.class); thread = new Thread("Thread_battAlarmData") { @Override public void run() { while (runFlag&&!isInterrupted()) { while (runFlag && !isInterrupted()) { Thread thread = currentThread(); threadFlagMap.put(thread.getId(),true); threadFlagMap.put(thread.getId(), true); try { Map<String, Response> res = new HashMap<>(); //查询已确认信息 alarmPar.setAlmIsConfirmed(1); Response confirmedAlarms = service.serchByConditionOfWebSocket(alarmPar); Response confirmedAlarms = service.serchByConditionOfWebSocket(alarmPar, lang); res.put("confirmedAlarms", confirmedAlarms); alarmPar.setAlmIsConfirmed(0); Response unconfirmedAlarms = service.serchByConditionOfWebSocket(alarmPar); Response unconfirmedAlarms = service.serchByConditionOfWebSocket(alarmPar, lang); res.put("unconfirmedAlarms", unconfirmedAlarms); //查询分级告警的个数 Response levelRes = service.serchByLevel(alarmPar.getUId()); src/main/resources/i18n/message_en_US.properties
@@ -1 +1,36 @@ test=this is a i18n test case test=this is a i18n test case NONE=NONE level1Alarm=Level 1 Alarm level2Alarm=Level 2 Alarm level3Alarm=Level 3 Alarm level4Alarm=Level 4 Alarm level5Alarm=Level 5 Alarm level6Alarm=Level 6 Alarm level7Alarm=Level 7 Alarm level8Alarm=Level 8 Alarm level9Alarm=Level 9 Alarm level10Alarm=Level 10 Alarm HighOnlineVoltage=High Online Voltage LowOnlineVoltage=Low Online Voltage HighGroupVoltage=High Group Voltage LowGroupVoltage=Low Group Voltage HighChargingCurrent=High Charging Current LowChargingCurrent=Low Charging Current HighDischargCurrent=High Discharg Current LowDischargCurrent=Low Discharg Current HighIndividualVoltage=High Individual Voltage LowIndividualVoltage=Low Individual Voltage HighMonomerTemperature=High Monomer Temperature LowMonomerTemperature=Low Monomer Temperature HighIndividualResistance=High Individual Resistance LowIndividualResistance=Low Individual Resistance HighConnectionBarImpedance=High Connection Bar Impedance LowConnectionBarImpedance=Low Connection Bar Impedance HighDischargeUnitVoltage=High Discharge Unit Voltage LowDischargeUnitVoltage=Low Discharge Unit Voltage LowCapacityAlarmCapacity=Low Capacity Alarm Capacity HighCapacityAlarmCapacity=High Capacity Alarm Capacity LowCapacityReplaceCapacity=Low Capacity Replace Capacity HighCapacityReplaceCapacity=High Capacity Replace Capacity BatteryPositiveElectrodeLeakage=Battery Positive Electrode Leakage BatteryNegativeElectrodeLeakage=Battery Negative Electrode Leakage src/main/resources/i18n/message_zh_CN.properties
@@ -1 +1,36 @@ test=这是一个i18n测试 test=\u8FD9\u662F\u4E00\u4E2Ai18n\u6D4B\u8BD5 NONE=\u672A\u77E5 level1Alarm=\u4E00\u7EA7\u544A\u8B66 level2Alarm=\u4E8C\u7EA7\u544A\u8B66 level3Alarm=\u4E09\u7EA7\u544A\u8B66 level4Alarm=\u56DB\u7EA7\u544A\u8B66 level5Alarm=\u4E94\u7EA7\u544A\u8B66 level6Alarm=\u516D\u7EA7\u544A\u8B66 level7Alarm=\u4E03\u7EA7\u544A\u8B66 level8Alarm=\u516B\u7EA7\u544A\u8B66 level9Alarm=\u4E5D\u7EA7\u544A\u8B66 level10Alarm=\u5341\u7EA7\u544A\u8B66 HighOnlineVoltage=\u5728\u7EBF\u7535\u538B\u9AD8 LowOnlineVoltage=\u5728\u7EBF\u7535\u538B\u4F4E HighGroupVoltage=\u7EC4\u7AEF\u7535\u538B\u9AD8 LowGroupVoltage=\u7EC4\u7AEF\u7535\u538B\u4F4E HighChargingCurrent=\u5145\u7535\u7535\u6D41\u5927 LowChargingCurrent=\u5145\u7535\u7535\u6D41\u4F4E HighDischargCurrent=\u653E\u7535\u7535\u6D41\u5927 LowDischargCurrent=\u653E\u7535\u7535\u6D41\u4F4E HighIndividualVoltage=\u5355\u4F53\u7535\u538B\u9AD8 LowIndividualVoltage=\u5355\u4F53\u7535\u538B\u4F4E HighMonomerTemperature=\u5355\u4F53\u6E29\u5EA6\u9AD8 LowMonomerTemperature=\u5355\u4F53\u6E29\u5EA6\u4F4E HighIndividualResistance=\u5355\u4F53\u5185\u963B\u9AD8 LowIndividualResistance=\u5355\u4F53\u5185\u963B\u4F4E HighConnectionBarImpedance=\u8FDE\u63A5\u6761\u963B\u6297\u9AD8 LowConnectionBarImpedance=\u8FDE\u63A5\u6761\u963B\u6297\u4F4E HighDischargeUnitVoltage=\u653E\u7535\u5355\u4F53\u7535\u538B\u9AD8 LowDischargeUnitVoltage=\u653E\u7535\u5355\u4F53\u7535\u538B\u4F4E LowCapacityAlarmCapacity=\u5BB9\u91CF\u544A\u8B66\u5BB9\u91CF\u4F4E HighCapacityAlarmCapacity=\u5BB9\u91CF\u544A\u8B66\u5BB9\u91CF\u9AD8 LowCapacityReplaceCapacity=\u5BB9\u91CF\u66F4\u6362\u5BB9\u91CF\u4F4E HighCapacityReplaceCapacity=\u5BB9\u91CF\u66F4\u6362\u5BB9\u91CF\u9AD8 BatteryPositiveElectrodeLeakage=\u7535\u6C60\u6B63\u6781\u6F0F\u6DB2 BatteryNegativeElectrodeLeakage=\u7535\u6C60\u8D1F\u6781\u6F0F\u6DB2