Browse Source

联锁新增-改系统各状态自定义部分;当前值为联锁条件点位的值

LLL 11 months ago
parent
commit
e8ef8d1fe2

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

@@ -10,42 +10,42 @@ package org.jeecg.modules.summary.constants;
  */
 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非正常
+//    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 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"; // 联锁状态-投用
+//    // 联锁状态 0未投用1投用
+//    public static final String INTERLOCK_STATUS_WTY = "0"; // 联锁状态-未投用
+//    public static final String INTERLOCK_STATUS_TY = "1"; // 联锁状态-投用
 
 
 }

+ 4 - 6
jeecg-module-interlock/src/main/java/org/jeecg/modules/summary/constants/InterlockConstants.java

@@ -7,14 +7,12 @@ package org.jeecg.modules.summary.constants;
  * @date: 2024年05月31日 9:28
  */
 public class InterlockConstants {
-    public static final String INTERLOCK_CONDITION = "9";//联锁条件值
-    public static final String INSTRUMENT_STATUS = "7";//仪表状态
-    public static final String ORIGINAL_ANALOG_VALUE = "";//原始模拟量
-    public static final String INTERLOCK_OUT_VALUE = "3";//联锁输出值
-    public static final String CURRENT_VALUE = "1";//当前值
+    public static final String INTERLOCK_CONDITION = "1";//联锁条件(当前值)
     public static final String BYPASS_STATUS = "2";//旁路状态
+    public static final String INTERLOCK_OUT_VALUE = "3";//联锁输出值
     public static final String INPUT_CARD_STATUS = "4";//输入卡件状态
     public static final String OUTPUT_CARD_STATUS = "5";//输出卡件状态
     public static final String MP_STATUS = "6";//MP状态
-    public static final String INSTRUMENT_STATUS_VALUE = "8";//仪表状态
+    public static final String INSTRUMENT_STATUS = "7";//仪表状态
+    public static final String ORIGINAL_ANALOG_VALUE = "8";//原始模拟量
 }

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

@@ -157,11 +157,26 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
         List<InterlockDetailAddDTO> interlockDetailAddDTOList = interlockAddDTO.getInterlockDetailAddDTOList();
 
-        String interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_TY;//	联锁状态 0未投用1投用
-        String loopHealthLevel = "";// 回路健康级别
+        // 系统设置的各状态
+        InterlockBase base = interlockBaseService.getById(interlockAddDTO.getInterlockSystemId());
+        // 控制系统状态(输入卡件状态、输出卡件状态、MP状态)
+        String controlSystemStatusNormal = base.getControlSystemStatusNormal(); // 正常
+        String controlSystemStatusAbnormal = editStatus(base.getControlSystemStatusNormal()); // 非正常
+        // 旁路状态
+        String bypassYes = base.getBypassYes(); // 是
+        // 仪表状态
+        String instrumentStatusNormal = base.getInstrumentStatusNormal(); // 正常
+        String instrumentStatusAbnormal = editStatus(base.getInstrumentStatusNormal()); // 正常
+        // 联锁状态
+        String interlockStatusTy = base.getInterlockStatusTy(); // 投用
+        String interlockStatusWty = editStatus(base.getInterlockStatusTy()); // 未投用
+
+
+        String interlockStatus = interlockStatusTy;;//	先设置为 联锁状态-投用
+        String loopHealthLevel = "A";// 回路健康级别
 
-        String controlSystemStatus = InterlockAllStatus.CONTROL_SYSTEM_STATUS_NORMAL;// 总体 控制系统状态 0正常1非正常
-        String instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_NORMAL;// 总体 仪表状态 0正常1故障
+        String controlSystemStatus = controlSystemStatusNormal;// 总体 先设置为 控制系统状态-正常
+        String instrumentStatus = instrumentStatusNormal;// 总体 先设置为 仪表状态-正常
 
 
         //删除该联锁的所有联锁详细信息的所有点位
@@ -183,49 +198,25 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
         for (InterlockDetailAddDTO dto : interlockDetailAddDTOList){
 
-            // 将根据点位获得的各状态转化成对应的数据字典的状态(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 && InterlockAllStatus.BY_PASS_YES.equals(dto.getBypass())) interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_WTY;
+            //联锁状态; 旁路状态是多个的话,任何一个旁路状态为“是”,则联锁状态是“未投用(摘除)”,旁路状态都为“否”,则联锁状态是“投用”。
+            if(dto.getBypass()!=null && bypassYes.equals(dto.getBypass())) interlockStatus = interlockStatusWty;
 
-            //仪表状态:0正常1故障
+            //仪表状态
             if(dto.getInstrumentStatusJuge()!=null){
                 if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge())){
                     //0直接读取位号
-                    if( !InterlockAllStatus.INSTRUMENT_STATUS_NORMAL.equals(base.getInstrumentStatusNormal()) ){
-                        dto.setInstrumentStatus(editStatus(dto.getInstrumentStatusValue()));
-                    }
+                    dto.setInstrumentStatus(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(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
-                    else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //故障
+                    if(ysmnlValue.compareTo(lowerLimit) >= 0 && ysmnlValue.compareTo(upperLimit) <= 0) dto.setInstrumentStatus(instrumentStatusNormal); // 正常
+                    else dto.setInstrumentStatus(instrumentStatusAbnormal); // 故障
 
                 } else if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())){ //2突变超限判断
                     //通过判断原始模拟量位号突变(与iotedge_collect_data表的数据进行比较)超过某阈值得出值
@@ -255,23 +246,23 @@ 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(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //仪表状态(0正常1故障)
-                        }else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
+                            dto.setInstrumentStatus(instrumentStatusAbnormal); // 故障
+                        }else dto.setInstrumentStatus(instrumentStatusNormal); // 正常
                     }
 
 
                 }
 
-                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals(InterlockAllStatus.INSTRUMENT_STATUS_GZ)) instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_GZ;
+                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals(instrumentStatusAbnormal)) instrumentStatus = instrumentStatusAbnormal;
             }
 
             //控制系统状态 ——  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); // 正常
+            if(controlSystemStatusAbnormal.equals(dto.getMpStatus()) || controlSystemStatusAbnormal.equals(dto.getInputStatus()) || controlSystemStatusAbnormal.equals(dto.getOutputStatus())) {
+                dto.setControlSystemStatus(controlSystemStatusAbnormal); // 非正常
+                controlSystemStatus = controlSystemStatusAbnormal;
+            } else dto.setControlSystemStatus(controlSystemStatusNormal); // 正常
 
-            InterlockDetail detail = InterlockDetailConvert.INSTANCE.toEntity(dto, interlockAddDTO.getInterlockName(),formattedDateTime);
+            InterlockDetail detail = InterlockDetailConvert.INSTANCE.toEntity(dto, interlockAddDTO.getInterlockName(),formattedDateTime, interlockAddDTO.getInterlockSystemId());
 
             //新增联锁详细信息表数据
             interlockDetailMapper.insert(detail);
@@ -284,7 +275,7 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
         }
 
         //回路健康等级
-        loopHealthLevel = getLHL(instrumentStatus, interlockStatus, controlSystemStatus);
+        loopHealthLevel = getLHL(instrumentStatus, instrumentStatusAbnormal,interlockStatus, interlockStatusWty, controlSystemStatus, controlSystemStatusAbnormal);
 
         InterlockSummary interlockSummary = InterlockSummaryConvert.INSTANCE.toInterlockSummary1(interlockAddDTO,interlockStatus,loopHealthLevel);
         //修改联锁总表数据
@@ -306,11 +297,26 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
         List<InterlockDetailAddDTO> interlockDetailAddDTOList = interlockAddDTO.getInterlockDetailAddDTOList();
 
-        String interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_TY;//	联锁状态 0未投用1投用
+        // 系统设置的各状态
+        InterlockBase base = interlockBaseService.getById(interlockAddDTO.getInterlockSystemId());
+        // 控制系统状态(输入卡件状态、输出卡件状态、MP状态)
+        String controlSystemStatusNormal = base.getControlSystemStatusNormal(); // 正常
+        String controlSystemStatusAbnormal = editStatus(base.getControlSystemStatusNormal()); // 非正常
+        // 旁路状态
+        String bypassYes = base.getBypassYes(); // 是
+        // 仪表状态
+        String instrumentStatusNormal = base.getInstrumentStatusNormal(); // 正常
+        String instrumentStatusAbnormal = editStatus(base.getInstrumentStatusNormal()); // 正常
+        // 联锁状态
+        String interlockStatusTy = base.getInterlockStatusTy(); // 投用
+        String interlockStatusWty = editStatus(base.getInterlockStatusTy()); // 未投用
+
+
+        String interlockStatus = interlockStatusTy;;//	先设置为 联锁状态-投用
         String loopHealthLevel = "";// 回路健康级别
 
-        String controlSystemStatus = InterlockAllStatus.CONTROL_SYSTEM_STATUS_NORMAL;// 总体 控制系统状态 0正常1非正常
-        String instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_NORMAL;// 总体 仪表状态 0正常1故障
+        String controlSystemStatus = controlSystemStatusNormal;// 总体 先设置为 控制系统状态-正常
+        String instrumentStatus = instrumentStatusNormal;// 总体 先设置为 仪表状态-正常
 
         //新增——联锁总表数据
         InterlockSummary interlockSummary = InterlockSummaryConvert.INSTANCE.toInterlockSummary(interlockAddDTO,interlockStatus,loopHealthLevel);
@@ -323,50 +329,26 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
         for (InterlockDetailAddDTO dto : interlockDetailAddDTOList){
 
-            // 将根据点位获得的各状态转化成对应的数据字典的状态(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 && InterlockAllStatus.BY_PASS_YES.equals(dto.getBypass())) interlockStatus = InterlockAllStatus.INTERLOCK_STATUS_WTY;
+            //联锁状态; 旁路状态是多个的话,任何一个旁路状态为“是”,则联锁状态是“未投用(摘除)”,旁路状态都为“否”,则联锁状态是“投用”。
+            if(dto.getBypass()!=null && bypassYes.equals(dto.getBypass())) interlockStatus = interlockStatusWty;
 
-            //仪表状态:0正常1故障
+            //仪表状态
             if(dto.getInstrumentStatusJuge()!=null){
 
                 if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge())){
                     //0直接读取位号
-                    if( !InterlockAllStatus.INSTRUMENT_STATUS_NORMAL.equals(base.getInstrumentStatusNormal()) ){
-                        dto.setInstrumentStatus(editStatus(dto.getInstrumentStatusValue()));
-                    }
+                    dto.setInstrumentStatus(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(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
-                    else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //故障
+                    if(ysmnlValue.compareTo(lowerLimit) >= 0 && ysmnlValue.compareTo(upperLimit) <= 0) dto.setInstrumentStatus(instrumentStatusNormal); // 正常
+                    else dto.setInstrumentStatus(instrumentStatusAbnormal); // 故障
 
                 } else if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())){ //2突变超限判断
                     //通过判断原始模拟量位号突变(与iotedge_collect_data表的数据进行比较)超过某阈值得出值
@@ -396,21 +378,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(InterlockAllStatus.INSTRUMENT_STATUS_GZ); //仪表状态(0正常1故障)
-                        }else dto.setInstrumentStatus(InterlockAllStatus.INSTRUMENT_STATUS_NORMAL); //正常
+                            dto.setInstrumentStatus(instrumentStatusAbnormal); // 故障
+                        }else dto.setInstrumentStatus(instrumentStatusNormal); // 正常
                     }
                 }
 
-                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals(InterlockAllStatus.INSTRUMENT_STATUS_GZ)) instrumentStatus = InterlockAllStatus.INSTRUMENT_STATUS_GZ;
+                if(dto.getInstrumentStatus()!=null && dto.getInstrumentStatus().equals(instrumentStatusAbnormal)) instrumentStatus = instrumentStatusAbnormal;
             }
 
             //控制系统状态 ——  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); // 正常
+            if(controlSystemStatusAbnormal.equals(dto.getMpStatus()) || controlSystemStatusAbnormal.equals(dto.getInputStatus()) || controlSystemStatusAbnormal.equals(dto.getOutputStatus())) {
+                dto.setControlSystemStatus(controlSystemStatusAbnormal); // 非正常
+                controlSystemStatus = controlSystemStatusAbnormal;
+            } else dto.setControlSystemStatus(controlSystemStatusNormal); // 正常
 
-            InterlockDetail detail = InterlockDetailConvert.INSTANCE.toEntity(dto,interlockAddDTO.getInterlockName(), formattedDateTime);
+            InterlockDetail detail = InterlockDetailConvert.INSTANCE.toEntity(dto, interlockAddDTO.getInterlockName(), formattedDateTime, interlockAddDTO.getInterlockSystemId());
             //新增联锁详细信息表数据
             interlockDetailMapper.insert(detail);
             //新增联锁详细信息表临时表数据
@@ -422,7 +404,7 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
         }
 
         //回路健康等级
-        loopHealthLevel = getLHL(instrumentStatus, interlockStatus, controlSystemStatus);
+        loopHealthLevel = getLHL(instrumentStatus, instrumentStatusAbnormal,interlockStatus, interlockStatusWty, controlSystemStatus, controlSystemStatusAbnormal);
 
 
         interlockSummary = InterlockSummaryConvert.INSTANCE.toInterlockSummary2(interlockSummary,interlockStatus,loopHealthLevel);
@@ -435,38 +417,42 @@ public class InterlockSummaryServiceImpl extends ServiceImpl<InterlockSummaryMap
 
     private List<InterlockTag> toTagList(InterlockDetailAddDTO dto,String interlockConditionId,String interlockSummaryId){
         List<InterlockTag> interlockTagList = new ArrayList<>();
-        //联锁条件
+        //联锁条件(当前值)
         interlockTagList.add(createInterlockTag(dto.getInterlockConditionDeviceId(), dto.getInterlockConditionModuleName(), dto.getInterlockConditionTag(), dto.getInterlockCondition(), InterlockConstants.INTERLOCK_CONDITION,interlockConditionId,interlockSummaryId));
-        //仪表状态、仪表状态值 0直接读取位号
-        if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge())){
+        //仪表状态 0直接读取位号
+        if(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE0.equals(dto.getInstrumentStatusJuge()) && dto.getInstrumentStatusTag() != null){
             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(InterlockAllStatus.INSTRUMENT_STATUS_JUDGE1.equals(dto.getInstrumentStatusJuge()) || InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())){
+        if((InterlockAllStatus.INSTRUMENT_STATUS_JUDGE1.equals(dto.getInstrumentStatusJuge()) || InterlockAllStatus.INSTRUMENT_STATUS_JUDGE2.equals(dto.getInstrumentStatusJuge())) && dto.getYsmnlTag() != null){
             interlockTagList.add(createInterlockTag(dto.getYsmnlDeviceId(),dto.getYsmnlModuleName(),dto.getYsmnlTag(),dto.getYsmnlValue(),InterlockConstants.ORIGINAL_ANALOG_VALUE,interlockConditionId,interlockSummaryId));
         }
-        //当前值
-        interlockTagList.add(createInterlockTag(dto.getCurrentValueDeviceId(),dto.getCurrentValueModuleName(),dto.getCurrentValueTag(),dto.getCurrentValue(),InterlockConstants.CURRENT_VALUE,interlockConditionId,interlockSummaryId));
         //旁路状态
-        //TODO
-        interlockTagList.add(createInterlockTag(dto.getBypassDeviceId(),dto.getBypassModuleName(),dto.getBypassTag(),dto.getBypass(),InterlockConstants.BYPASS_STATUS,interlockConditionId,interlockSummaryId));
+        if(dto.getIfBypass().equals(InterlockAllStatus.IF_BY_PASS_YES) && dto.getBypassTag()!=null){
+            interlockTagList.add(createInterlockTag(dto.getBypassDeviceId(),dto.getBypassModuleName(),dto.getBypassTag(),dto.getBypass(),InterlockConstants.BYPASS_STATUS,interlockConditionId,interlockSummaryId));
+        }
         //输入卡件状态
-        interlockTagList.add(createInterlockTag(dto.getInputStatusDeviceId(),dto.getInputStatusModuleName(),dto.getInputStatusTag(),dto.getInputStatus(),InterlockConstants.INPUT_CARD_STATUS,interlockConditionId,interlockSummaryId));
+        if(dto.getInputStatusTag()!=null){
+            interlockTagList.add(createInterlockTag(dto.getInputStatusDeviceId(),dto.getInputStatusModuleName(),dto.getInputStatusTag(),dto.getInputStatus(),InterlockConstants.INPUT_CARD_STATUS,interlockConditionId,interlockSummaryId));
+        }
         //输出卡件状态
-        interlockTagList.add(createInterlockTag(dto.getOutputStatusDeviceId(),dto.getOutputStatusModuleName(),dto.getOutputStatusTag(),dto.getOutputStatus(),InterlockConstants.OUTPUT_CARD_STATUS,interlockConditionId,interlockSummaryId));
+        if(dto.getOutputStatusTag()!=null){
+            interlockTagList.add(createInterlockTag(dto.getOutputStatusDeviceId(),dto.getOutputStatusModuleName(),dto.getOutputStatusTag(),dto.getOutputStatus(),InterlockConstants.OUTPUT_CARD_STATUS,interlockConditionId,interlockSummaryId));
+        }
         //MP状态
-        interlockTagList.add(createInterlockTag(dto.getMpStatusDeviceId(),dto.getMpStatusModuleName(),dto.getMpStatusTag(),dto.getMpStatus(),InterlockConstants.MP_STATUS,interlockConditionId,interlockSummaryId));
+        if(dto.getMpStatusTag()!=null){
+            interlockTagList.add(createInterlockTag(dto.getMpStatusDeviceId(),dto.getMpStatusModuleName(),dto.getMpStatusTag(),dto.getMpStatus(),InterlockConstants.MP_STATUS,interlockConditionId,interlockSummaryId));
+        }
 
         return interlockTagList;
     }
 
 
-    private String getLHL(String instrumentStatus, String interlockStatus, String controlSystemStatus){
+    private String getLHL(String instrumentStatus, String instrumentStatusAbnormal, String interlockStatus, String interlockStatusWty, String controlSystemStatus, String controlSystemStatusAbnormal){
         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(instrumentStatusAbnormal.equals(instrumentStatus)) i++; // 仪表状态-故障
+        if(interlockStatusWty.equals(interlockStatus)) i++; // TODO 联锁状态 未投用、投用 哪个算不正常状态 先按0未投用不正常算
+        if(controlSystemStatusAbnormal.equals(controlSystemStatus)) i++; // 控制系统状态-非正常
         if(i==0)  return "A";
         else if(i==1) return "B";
         else if(i==2) return "C";

+ 4 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/temp/entity/InterlockDetailTemp.java

@@ -248,4 +248,8 @@ public class InterlockDetailTemp implements Serializable {
     @Excel(name = "点位当前时间", width = 15)
     @ApiModelProperty(value = "点位当前时间")
     private java.lang.String tagTime;
+    /**系统id*/
+    @Excel(name = "系统id", width = 15)
+    @ApiModelProperty(value = "系统id")
+    private java.lang.String interlockSystemId;
 }