lxw
2023-04-19 78fe857e99a742a3ed7e49a6c5f30f7b7d2fcf32
语言国际化
7个文件已修改
355 ■■■■ 已修改文件
src/main/java/com/whyc/controller/ServerController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/AlarmDaoFactory.java 191 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattalarmDataService.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/MessageUtils.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/BattAlarmDataSocket.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/i18n/message_en_US.properties 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/i18n/message_zh_CN.properties 37 ●●●●● 补丁 | 查看 | 原始文档 | 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