Browse Source

根据系统设置输入卡件状态、输出卡件状态、MP状态、旁路状态、仪表状态0 1分别代表含义

LLL 11 months ago
parent
commit
ab69f38c8c

+ 27 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/base/entity/InterlockBase.java

@@ -69,4 +69,31 @@ public class InterlockBase implements Serializable {
 	/**所属部门*/
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;
+
+    /**输入卡件状态-正常*/
+    @Excel(name = "输入卡件状态-正常", width = 15)
+    @ApiModelProperty(value = "输入卡件状态-正常")
+    @Dict(dicCode = "input_status_normal")
+    private java.lang.String inputStatusNormal;
+    /**输出卡件状态-正常*/
+    @Excel(name = "输出卡件状态-正常", width = 15)
+    @ApiModelProperty(value = "输出卡件状态-正常")
+    @Dict(dicCode = "output_status_normal")
+    private java.lang.String outputStatusNormal;
+    /**MP状态-正常*/
+    @Excel(name = "MP状态-正常", width = 15)
+    @ApiModelProperty(value = "MP状态-正常")
+    @Dict(dicCode = "mp_status_normal")
+    private java.lang.String mpStatusNormal;
+    /**旁路状态-是*/
+    @Excel(name = "旁路状态-是", width = 15)
+    @ApiModelProperty(value = "旁路状态-是")
+    @Dict(dicCode = "bypass_yes")
+    private java.lang.String bypassYes;
+    /**仪表状态-正常*/
+    @Excel(name = "仪表状态-正常", width = 15)
+    @ApiModelProperty(value = "仪表状态-正常")
+    @Dict(dicCode = "instrument_status_normal")
+    private java.lang.String instrumentStatusNormal;
+
 }

+ 3 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/detail/dto/InterlockDetailAddDTO.java

@@ -158,6 +158,7 @@ public class InterlockDetailAddDTO {
     private java.lang.String bypassTag;
     /**输入卡件状态*/
     @Excel(name = "输入卡件状态", width = 15)
+    @Dict(dicCode = "input_status")
     @ApiModelProperty(value = "输入卡件状态")
     private java.lang.String inputStatus;
     /**输入卡件状态-设备id*/
@@ -174,6 +175,7 @@ public class InterlockDetailAddDTO {
     private java.lang.String inputStatusTag;
     /**输出卡件状态*/
     @Excel(name = "输出卡件状态", width = 15)
+    @Dict(dicCode = "output_status")
     @ApiModelProperty(value = "输出卡件状态")
     private java.lang.String outputStatus;
     /**输出卡件状态-设备id*/
@@ -190,6 +192,7 @@ public class InterlockDetailAddDTO {
     private java.lang.String outputStatusTag;
     /**MP状态*/
     @Excel(name = "MP状态", width = 15)
+    @Dict(dicCode = "mp_status")
     @ApiModelProperty(value = "MP状态")
     private java.lang.String mpStatus;
     /**MP状态-设备id*/

+ 3 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/detail/entity/InterlockDetail.java

@@ -174,6 +174,7 @@ public class InterlockDetail implements Serializable {
     @ApiModelProperty(value = "旁路状态点位")
     private java.lang.String bypassTag;
     /**输入卡件状态*/
+    @Dict(dicCode = "input_status")
     @Excel(name = "输入卡件状态", width = 15)
     @ApiModelProperty(value = "输入卡件状态")
     private java.lang.String inputStatus;
@@ -190,6 +191,7 @@ public class InterlockDetail implements Serializable {
     @ApiModelProperty(value = "输入卡件状态点位")
     private java.lang.String inputStatusTag;
     /**输出卡件状态*/
+    @Dict(dicCode = "output_status")
     @Excel(name = "输出卡件状态", width = 15)
     @ApiModelProperty(value = "输出卡件状态")
     private java.lang.String outputStatus;
@@ -206,6 +208,7 @@ public class InterlockDetail implements Serializable {
     @ApiModelProperty(value = "输出卡件状态点位")
     private java.lang.String outputStatusTag;
     /**MP状态*/
+    @Dict(dicCode = "mp_status")
     @Excel(name = "MP状态", width = 15)
     @ApiModelProperty(value = "MP状态")
     private java.lang.String mpStatus;

+ 3 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/detail/vo/InterlockDetailQueryVO.java

@@ -62,14 +62,17 @@ public class InterlockDetailQueryVO {
     private java.lang.String bypass;
     /**输入卡件状态*/
     @Excel(name = "输入卡件状态", width = 15)
+    @Dict(dicCode = "input_status")
     @ApiModelProperty(value = "输入卡件状态")
     private java.lang.String inputStatus;
     /**输出卡件状态*/
     @Excel(name = "输出卡件状态", width = 15)
+    @Dict(dicCode = "output_status")
     @ApiModelProperty(value = "输出卡件状态")
     private java.lang.String outputStatus;
     /**MP状态*/
     @Excel(name = "MP状态", width = 15)
+    @Dict(dicCode = "mp_status")
     @ApiModelProperty(value = "MP状态")
     private java.lang.String mpStatus;
 

+ 51 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/summary/constants/InterlockAllStatus.java

@@ -0,0 +1,51 @@
+package org.jeecg.modules.summary.constants;
+
+/**
+ * 数据字典里对应的
+ * 输入卡件状态(正常)、输出卡件状态(正常)、MP状态(正常)、旁路状态(是)、仪表状态(正常)
+ * 与0、1的关系
+ *
+ * @author: nn
+ * @date: 2024年06月18日 14:42
+ */
+public class InterlockAllStatus {
+
+    // 输入卡件状态 0正常1非正常
+    public static final String INPUT_STATUS_NORMAL = "0"; // 输入卡件状态-正常
+    public static final String INPUT_STATUS_ABNORMAL = "1"; // 输入卡件状态-非正常
+
+    // 输出卡件状态 0正常1非正常
+    public static final String OUTPUT_STATUS_NORMAL = "0"; // 输出卡件状态-正常
+    public static final String OUTPUT_STATUS_ABNORMAL = "1"; // 输出卡件状态-正常
+
+    // MP状态 0正常1非正常
+    public static final String MP_STATUS_NORMAL = "0"; // MP状态-正常
+    public static final String MP_STATUS_ABNORMAL = "1"; // MP状态-正常
+
+    // 旁路状态 0否1是
+    public static final String BY_PASS_NO = "0"; // 旁路状态-否
+    public static final String BY_PASS_YES = "1"; // 旁路状态-是
+
+    // 仪表状态判断方式 0直接读取位号1高低限判断2突变超限判断
+    public static final String INSTRUMENT_STATUS_JUDGE0 = "0"; // 仪表状态判断方式-直接读取位号
+    public static final String INSTRUMENT_STATUS_JUDGE1 = "1"; // 仪表状态判断方式-高低限判断
+    public static final String INSTRUMENT_STATUS_JUDGE2 = "2"; // 仪表状态判断方式-突变超限判断
+
+    // 仪表状态 0正常1故障
+    public static final String INSTRUMENT_STATUS_NORMAL = "0"; // 仪表状态-正常
+    public static final String INSTRUMENT_STATUS_GZ = "1"; // 仪表状态-故障
+
+    // 控制系统状态 0正常1非正常
+    public static final String CONTROL_SYSTEM_STATUS_NORMAL = "0";  // 控制系统状态-正常
+    public static final String CONTROL_SYSTEM_STATUS_ABNORMAL = "1";  // 控制系统状态-非正常
+
+    // 是否旁路 0否1是
+    public static final String IF_BY_PASS_NO = "0"; // 是否旁路-否
+    public static final String IF_BY_PASS_YES = "1"; // 是否旁路-是
+
+    // 联锁状态 0未投用1投用
+    public static final String INTERLOCK_STATUS_WTY = "0"; // 联锁状态-未投用
+    public static final String INTERLOCK_STATUS_TY = "1"; // 联锁状态-投用
+
+
+}

+ 121 - 62
jeecg-module-interlock/src/main/java/org/jeecg/modules/summary/service/impl/InterlockSummaryServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.base.entity.InterlockBase;
 import org.jeecg.modules.base.mapper.InterlockBaseMapper;
 import org.jeecg.modules.base.service.IInterlockBaseService;
 import org.jeecg.modules.detail.convert.InterlockDetailConvert;
@@ -13,6 +14,7 @@ import org.jeecg.modules.detail.mapper.InterlockDetailMapper;
 import org.jeecg.modules.detail.vo.InterlockDetailEditQueryVO;
 import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
 import org.jeecg.modules.iotedgeCollectData.service.IIotedgeCollectDataService;
+import org.jeecg.modules.summary.constants.InterlockAllStatus;
 import org.jeecg.modules.summary.constants.InterlockConstants;
 import org.jeecg.modules.summary.convert.InterlockSummaryConvert;
 import org.jeecg.modules.summary.dto.InterlockAddDTO;
@@ -155,12 +157,12 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
         List<InterlockDetailAddDTO> interlockDetailAddDTOList = interlockAddDTO.getInterlockDetailAddDTOList();
 
-        String interlockStatus = "1";//	联锁状态 0未投用1投用
+        String interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_TY;//	联锁状态 0未投用1投用
         String loopHealthLevel = "";// 回路健康级别
 
-        String controlSystemStatus = "0";// 总体 控制系统状态 0正常1非正常
-        String instrumentStatus = "0";// 总体 仪表状态 0正常1故障
-        int i = 0;
+        String controlSystemStatus = InterlockAllStatus.CONTROL_SYSTEM_STATUS_NORMAL;// 总体 控制系统状态 0正常1非正常
+        String instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_NORMAL;// 总体 仪表状态 0正常1故障
+
 
         //删除该联锁的所有联锁详细信息的所有点位
         LambdaQueryWrapper<InterlockTag> queryWrapper3 = new LambdaQueryWrapper<>();
@@ -180,29 +182,52 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
         interlockTagService.save(createInterlockTag(interlockAddDTO.getDeviceId(),interlockAddDTO.getModuleName(), interlockAddDTO.getInterlockOutValueTag(), interlockAddDTO.getInterlockOutValue(), InterlockConstants.INTERLOCK_OUT_VALUE,summaryId,summaryId));
 
         for (InterlockDetailAddDTO dto : interlockDetailAddDTOList){
-            //TODO
-            dto.setThresholdTimeUnit("s");
 
+            // 将根据点位获得的各状态转化成对应的数据字典的状态(0 1)
+            InterlockBase base = interlockBaseService.getById(interlockAddDTO.getInterlockSystemId());
+            // 输入卡件状态
+            if( !InterlockAllStatus.INPUT_STATUS_NORMAL.equals(base.getInputStatusNormal()) ){
+                dto.setInputStatus(editStatus(dto.getInputStatus()));
+            }
+            // 输出卡件状态 outputStatus
+            if( !InterlockAllStatus.OUTPUT_STATUS_NORMAL.equals(base.getOutputStatusNormal()) ){
+                dto.setOutputStatus(editStatus(dto.getOutputStatus()));
+            }
+            // MP状态
+            if( !InterlockAllStatus.MP_STATUS_NORMAL.equals(base.getMpStatusNormal()) ){
+                dto.setMpStatus(editStatus(dto.getMpStatus()));
+            }
+
+
+            dto.setThresholdTimeUnit("s"); // TODO 暂定单位为秒
             dto.setSummaryid(summaryId);
 
+
+            if(dto.getIfBypass() != null && InterlockAllStatus.IF_BY_PASS_YES.equals(dto.getIfBypass())) {
+                // 旁路状态
+                if( !InterlockAllStatus.BY_PASS_YES.equals(base.getBypassYes()) ){
+                    dto.setBypass(editStatus(dto.getBypass()));
+                }
+            }
             //联锁状态  0未投用1投用; 旁路状态是多个的话,任何一个旁路是1(是),则联锁状态是0未投用。
-            if(dto.getBypass()!=null && "1".equals(dto.getBypass())) interlockStatus = "0";
+            if(dto.getBypass()!=null && InterlockAllStatus.BY_PASS_YES.equals(dto.getBypass())) interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_WTY;
 
             //仪表状态:0正常1故障
             if(dto.getInstrumentStatusJuge()!=null){
-                if("0".equals(dto.getInstrumentStatusJuge())){
+                if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge())){
                     //0直接读取位号
-                    dto.setInstrumentStatus(dto.getInstrumentStatusValue());
-
-                } else if("1".equals(dto.getInstrumentStatusJuge())){
+                    if( !InterlockAllStatus.INSTRUMENT_STATUS_NORMAL.equals(base.getInstrumentStatusNormal()) ){
+                        dto.setInstrumentStatus(editStatus(dto.getInstrumentStatusValue()));
+                    }
+                } else if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE1.equals(dto.getInstrumentStatusJuge())){
                     //1高低限判断
                     BigDecimal ysmnlValue = new BigDecimal(dto.getYsmnlValue());
                     BigDecimal lowerLimit = new BigDecimal(dto.getLowerLimit());
                     BigDecimal upperLimit = new BigDecimal(dto.getUpperLimit());
-                    if(ysmnlValue.compareTo(lowerLimit) >= 0 && ysmnlValue.compareTo(upperLimit) <= 0) dto.setInstrumentStatus("0");
-                    else dto.setInstrumentStatus("1");
+                    if(ysmnlValue.compareTo(lowerLimit) >= 0 && ysmnlValue.compareTo(upperLimit) <= 0) dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
+                    else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //故障
 
-                } else if("2".equals(dto.getInstrumentStatusJuge())){ //2突变超限判断
+                } else if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())){ //2突变超限判断
                     //通过判断原始模拟量位号突变(与iotedge_collect_data表的数据进行比较)超过某阈值得出值
                     // 去采集数据表中根据 设备id+模块名称+点位名称 查询设置的s之前的数据
                     String yz = dto.getThresholdValue();  // 阈值
@@ -230,19 +255,21 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
                         BigDecimal number = upperLimit.subtract(lowerLimit);
                         BigDecimal newYz = number.multiply(new BigDecimal(yz));
                         if ((num.divide(beginValue).compareTo(newYz)) > 0){
-                            dto.setInstrumentStatus("1"); //仪表状态(0正常1故障)
-                        }else dto.setInstrumentStatus("0");
+                            dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //仪表状态(0正常1故障)
+                        }else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
                     }
 
 
                 }
-                if(dto.getInstrumentStatus().equals("1")) instrumentStatus = "1";
+
+                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals(InterlockAllStatus.INSTRUMENT_STATUS_GZ)) instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_GZ;
             }
-            //控制系统状态 TODO
-            if("非正常".equals(dto.getMpStatus()) || "非正常".equals(dto.getMpStatus()) || "非正常".equals(dto.getMpStatus())) {
-                dto.setControlSystemStatus("1");
-                controlSystemStatus = "1";
-            } else dto.setControlSystemStatus("0");
+
+            //控制系统状态 ——  MP状态、输入卡件状态、输出卡件状态任何一个非正常则控制系统状态非正常。
+            if(InterlockAllStatus.MP_STATUS_ABNORMAL.equals(dto.getMpStatus()) || InterlockAllStatus.MP_STATUS_ABNORMAL.equals(dto.getInputStatus()) || InterlockAllStatus.OUTPUT_STATUS_ABNORMAL.equals(dto.getOutputStatus())) {
+                dto.setControlSystemStatus(InterlockAllStatus.CONTROL_SYSTEM_STATUS_ABNORMAL); // 非正常
+                controlSystemStatus = InterlockAllStatus.CONTROL_SYSTEM_STATUS_ABNORMAL;
+            } else dto.setControlSystemStatus(InterlockAllStatus.CONTROL_SYSTEM_STATUS_NORMAL); // 正常
 
             InterlockDetail detail = InterlockDetailConvert.INSTANCE.toEntity(dto, interlockAddDTO.getInterlockName(),formattedDateTime);
 
@@ -256,13 +283,8 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
             interlockTagService.saveBatch(toTagList(dto,detail.getId(),summaryId));
         }
 
-        if("0".equals(instrumentStatus)) i++; //0未投用1投用用哪个算正常状态  先按0未投用不正常算 TODO
-        if("1".equals(interlockStatus)) i++;
-        if("1".equals(controlSystemStatus)) i++;
-        if(i==0)  loopHealthLevel="A";
-        else if(i==1) loopHealthLevel="B";
-        else if(i==2) loopHealthLevel="C";
-        else if(i==3) loopHealthLevel="D";
+        //回路健康等级
+        loopHealthLevel = getLHL(instrumentStatus, interlockStatus, controlSystemStatus);
 
         InterlockSummary interlockSummary = InterlockSummaryConvert.INSTANCE.toInterlockSummary1(interlockAddDTO,interlockStatus,loopHealthLevel);
         //修改联锁总表数据
@@ -284,12 +306,11 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
         List<InterlockDetailAddDTO> interlockDetailAddDTOList = interlockAddDTO.getInterlockDetailAddDTOList();
 
-        String interlockStatus = "1";//	联锁状态 0未投用1投用
+        String interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_TY;//	联锁状态 0未投用1投用
         String loopHealthLevel = "";// 回路健康级别
 
-        String controlSystemStatus = "0";// 总体 控制系统状态 0正常1非正常
-        String instrumentStatus = "0";// 总体 仪表状态 0正常1故障
-        int i = 0;
+        String controlSystemStatus = InterlockAllStatus.CONTROL_SYSTEM_STATUS_NORMAL;// 总体 控制系统状态 0正常1非正常
+        String instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_NORMAL;// 总体 仪表状态 0正常1故障
 
         //新增——联锁总表数据
         InterlockSummary interlockSummary = InterlockSummaryConvert.INSTANCE.toInterlockSummary(interlockAddDTO,interlockStatus,loopHealthLevel);
@@ -301,29 +322,53 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
         interlockTagService.save(createInterlockTag(interlockAddDTO.getDeviceId(),interlockAddDTO.getModuleName(), interlockAddDTO.getInterlockOutValueTag(), interlockAddDTO.getInterlockOutValue(), InterlockConstants.INTERLOCK_OUT_VALUE,summaryId,summaryId));
 
         for (InterlockDetailAddDTO dto : interlockDetailAddDTOList){
-            //TODO
-            dto.setThresholdTimeUnit("s");
 
+            // 将根据点位获得的各状态转化成对应的数据字典的状态(0 1)
+            InterlockBase base = interlockBaseService.getById(interlockAddDTO.getInterlockSystemId());
+            // 输入卡件状态
+            if( !InterlockAllStatus.INPUT_STATUS_NORMAL.equals(base.getInputStatusNormal()) ){
+                dto.setInputStatus(editStatus(dto.getInputStatus()));
+            }
+            // 输出卡件状态 outputStatus
+            if( !InterlockAllStatus.OUTPUT_STATUS_NORMAL.equals(base.getOutputStatusNormal()) ){
+                dto.setOutputStatus(editStatus(dto.getOutputStatus()));
+            }
+            // MP状态
+            if( !InterlockAllStatus.MP_STATUS_NORMAL.equals(base.getMpStatusNormal()) ){
+                dto.setMpStatus(editStatus(dto.getMpStatus()));
+            }
+
+
+            dto.setThresholdTimeUnit("s"); // TODO 暂定单位为秒
             dto.setSummaryid(summaryId);
 
+
+            if(dto.getIfBypass() != null && InterlockAllStatus.IF_BY_PASS_YES.equals(dto.getIfBypass())) {
+                // 旁路状态
+                if( !InterlockAllStatus.BY_PASS_YES.equals(base.getBypassYes()) ){
+                    dto.setBypass(editStatus(dto.getBypass()));
+                }
+            }
             //联锁状态  0未投用1投用; 旁路状态是多个的话,任何一个旁路是1(是),则联锁状态是0未投用。
-            if(dto.getBypass()!=null && "1".equals(dto.getBypass())) interlockStatus = "0";
+            if(dto.getBypass()!=null && InterlockAllStatus.BY_PASS_YES.equals(dto.getBypass())) interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_WTY;
 
             //仪表状态:0正常1故障
             if(dto.getInstrumentStatusJuge()!=null){
-                if("0".equals(dto.getInstrumentStatusJuge())){
-                    //0直接读取位号
-                    dto.setInstrumentStatus(dto.getInstrumentStatusValue());
 
-                } else if("1".equals(dto.getInstrumentStatusJuge())){
+                if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge())){
+                    //0直接读取位号
+                    if( !InterlockAllStatus.INSTRUMENT_STATUS_NORMAL.equals(base.getInstrumentStatusNormal()) ){
+                        dto.setInstrumentStatus(editStatus(dto.getInstrumentStatusValue()));
+                    }
+                } else if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE1.equals(dto.getInstrumentStatusJuge())){
                     //1高低限判断
                     BigDecimal ysmnlValue = new BigDecimal(dto.getYsmnlValue());
                     BigDecimal lowerLimit = new BigDecimal(dto.getLowerLimit());
                     BigDecimal upperLimit = new BigDecimal(dto.getUpperLimit());
-                    if(ysmnlValue.compareTo(lowerLimit) >= 0 && ysmnlValue.compareTo(upperLimit) <= 0) dto.setInstrumentStatus("0");
-                    else dto.setInstrumentStatus("1");
+                    if(ysmnlValue.compareTo(lowerLimit) >= 0 && ysmnlValue.compareTo(upperLimit) <= 0) dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
+                    else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //故障
 
-                } else if("2".equals(dto.getInstrumentStatusJuge())){ //2突变超限判断
+                } else if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())){ //2突变超限判断
                     //通过判断原始模拟量位号突变(与iotedge_collect_data表的数据进行比较)超过某阈值得出值
                     // 去采集数据表中根据 设备id+模块名称+点位名称 查询设置的s之前的数据
                     String yz = dto.getThresholdValue();  // 阈值
@@ -351,19 +396,19 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
                         BigDecimal number = upperLimit.subtract(lowerLimit);
                         BigDecimal newYz = number.multiply(new BigDecimal(yz));
                         if ((num.divide(beginValue).compareTo(newYz)) > 0){
-                            dto.setInstrumentStatus("1"); //仪表状态(0正常1故障)
-                        }else dto.setInstrumentStatus("0");
+                            dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //仪表状态(0正常1故障)
+                        }else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
                     }
-
-
                 }
-                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals("1")) instrumentStatus = "1";
+
+                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals(InterlockAllStatus.INSTRUMENT_STATUS_GZ)) instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_GZ;
             }
-            //控制系统状态 TODO
-            if("非正常".equals(dto.getMpStatus()) || "非正常".equals(dto.getMpStatus()) || "非正常".equals(dto.getMpStatus())) {
-                dto.setControlSystemStatus("1");
-                controlSystemStatus = "1";
-            } else dto.setControlSystemStatus("0");
+
+            //控制系统状态 ——  MP状态、输入卡件状态、输出卡件状态任何一个非正常则控制系统状态非正常。
+            if(InterlockAllStatus.MP_STATUS_ABNORMAL.equals(dto.getMpStatus()) || InterlockAllStatus.MP_STATUS_ABNORMAL.equals(dto.getInputStatus()) || InterlockAllStatus.OUTPUT_STATUS_ABNORMAL.equals(dto.getOutputStatus())) {
+                dto.setControlSystemStatus(InterlockAllStatus.CONTROL_SYSTEM_STATUS_ABNORMAL); // 非正常
+                controlSystemStatus = InterlockAllStatus.CONTROL_SYSTEM_STATUS_ABNORMAL;
+            } else dto.setControlSystemStatus(InterlockAllStatus.CONTROL_SYSTEM_STATUS_NORMAL); // 正常
 
             InterlockDetail detail = InterlockDetailConvert.INSTANCE.toEntity(dto,interlockAddDTO.getInterlockName(), formattedDateTime);
             //新增联锁详细信息表数据
@@ -376,13 +421,9 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
             interlockTagService.saveBatch(toTagList(dto,detail.getId(),summaryId));
         }
 
-        if("0".equals(instrumentStatus)) i++; //0未投用1投用用哪个算正常状态  先按0未投用不正常算//TODO
-        if("1".equals(interlockStatus)) i++;
-        if("1".equals(controlSystemStatus)) i++;
-        if(i==0)  loopHealthLevel="A";
-        else if(i==1) loopHealthLevel="B";
-        else if(i==2) loopHealthLevel="C";
-        else if(i==3) loopHealthLevel="D";
+        //回路健康等级
+        loopHealthLevel = getLHL(instrumentStatus, interlockStatus, controlSystemStatus);
+
 
         interlockSummary = InterlockSummaryConvert.INSTANCE.toInterlockSummary2(interlockSummary,interlockStatus,loopHealthLevel);
         //修改联锁总表数据
@@ -397,12 +438,12 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
         //联锁条件
         interlockTagList.add(createInterlockTag(dto.getInterlockConditionDeviceId(), dto.getInterlockConditionModuleName(), dto.getInterlockConditionTag(), dto.getInterlockCondition(), InterlockConstants.INTERLOCK_CONDITION,interlockConditionId,interlockSummaryId));
         //仪表状态、仪表状态值 0直接读取位号
-        if("0".equals(dto.getInstrumentStatusJuge())){
+        if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge())){
             interlockTagList.add(createInterlockTag(dto.getInstrumentStatusDeviceId(), dto.getInstrumentStatusModuleName(), dto.getInstrumentStatusTag(), dto.getInstrumentStatus(), InterlockConstants.INSTRUMENT_STATUS,interlockConditionId,interlockSummaryId));
             interlockTagList.add(createInterlockTag(dto.getInstrumentStatusDeviceId(), dto.getInstrumentStatusModuleName(), dto.getInstrumentStatusTag(), dto.getInstrumentStatus(), InterlockConstants.INSTRUMENT_STATUS_VALUE,interlockConditionId,interlockSummaryId));
         }
         //原始模拟量
-        if("1".equals(dto.getInstrumentStatusJuge()) || "2".equals(dto.getInstrumentStatusJuge())){
+        if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE1.equals(dto.getInstrumentStatusJuge()) || InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())){
             interlockTagList.add(createInterlockTag(dto.getYsmnlDeviceId(),dto.getYsmnlModuleName(),dto.getYsmnlTag(),dto.getYsmnlValue(),InterlockConstants.ORIGINAL_ANALOG_VALUE,interlockConditionId,interlockSummaryId));
         }
         //当前值
@@ -421,9 +462,27 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
     }
 
 
+    private String getLHL(String instrumentStatus, String interlockStatus, String controlSystemStatus){
+        int i = 0;
+        if(InterlockAllStatus.INSTRUMENT_STATUS_GZ.equals(instrumentStatus)) i++; // 仪表状态 0正常1故障
+        if(InterlockAllStatus.INTERLOCK_STATUS_WTY.equals(interlockStatus)) i++; // TODO 联锁状态 0未投用1投用 哪个算不正常状态 先按0未投用不正常算
+        if(InterlockAllStatus.CONTROL_SYSTEM_STATUS_ABNORMAL.equals(controlSystemStatus)) i++; // 控制系统状态 0正常1非正常
+        if(i==0)  return "A";
+        else if(i==1) return "B";
+        else if(i==2) return "C";
+        else return "D";
+    }
 
     private InterlockTag createInterlockTag(String deviceId, String moduleName, String tag, String value, String type,String interlockConditionId,String interlockSummaryId) {
         return new InterlockTag(deviceId, moduleName, tag, value, type,interlockConditionId,interlockSummaryId);
     }
 
+    /**
+     * 改状态
+     */
+    private String editStatus(String status){
+        if("0".equals(status)) return "1";
+        else return "0";
+    }
+
 }