|
@@ -22,12 +22,12 @@ import com.sckj.iron.vo.IronStepVO;
|
|
|
import com.sckj.l2.dto.TrendRequest;
|
|
|
import com.sckj.l2.entity.TL2Data;
|
|
|
import com.sckj.l2.service.impl.TL2DataServiceImpl;
|
|
|
+import com.sckj.l2.service.impl.TL2MaterialServiceImpl;
|
|
|
import com.sckj.opc.dataservice.HDServiceImpl;
|
|
|
import com.sckj.opc.dataservice.OPCDAServiceImpl;
|
|
|
import com.sckj.opc.entity.OPCData;
|
|
|
import com.sckj.opc.service.OPCDataServiceImpl;
|
|
|
import com.sckj.opc.service.THdTagServiceImpl;
|
|
|
-import com.sckj.opc.utils.CustomUtil;
|
|
|
import com.sckj.warn.entity.TAudio;
|
|
|
import com.sckj.warn.service.impl.TAudioServiceImpl;
|
|
|
import com.sckj.warn.service.impl.TExceptionLogServiceImpl;
|
|
@@ -126,6 +126,9 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
@Resource
|
|
|
TIronVisualScreenServiceImpl tIronVisualScreenService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ TL2MaterialServiceImpl tl2MaterialService;
|
|
|
+
|
|
|
//铁水成分
|
|
|
private static final String IRON_ELEMENT = "ironElement";
|
|
|
//铁水温度
|
|
@@ -344,38 +347,34 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
for (TIronParam mIronParam : mIronParams) {
|
|
|
if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_speed)) {
|
|
|
StandardConstans.STANDARD_SPEED = mIronParam.getParamValue();
|
|
|
+ mContext.setVariable(ExpressionConstants.stdSpeedMin, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[0]));
|
|
|
+ mContext.setVariable(ExpressionConstants.stdSpeedMax, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[1]));
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.pressure_diff_value)) {
|
|
|
StandardConstans.STANDARD_PRESSURE_DIFF = Double.parseDouble(mIronParam.getParamValue());
|
|
|
+ mContext.setVariable(ExpressionConstants.stdPressureDiff, StandardConstans.STANDARD_PRESSURE_DIFF);
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_time)) {
|
|
|
StandardConstans.STANDARD_IRON_TIME = mIronParam.getParamValue();
|
|
|
+ mContext.setVariable(ExpressionConstants.stdIronTimeMin, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[0]));
|
|
|
+ mContext.setVariable(ExpressionConstants.stdIronTimeMax, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[1]));
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.server_url)) {
|
|
|
SERVER_URL = mIronParam.getParamValue();
|
|
|
+ mContext.setVariable(ExpressionConstants.stdServerUrl, SERVER_URL);
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.ironwater_temp)) {
|
|
|
StandardConstans.STANDARD_TEMP = mIronParam.getParamValue();
|
|
|
+ mContext.setVariable(ExpressionConstants.stdTempMin, Double.parseDouble(StandardConstans.STANDARD_TEMP.split("-")[0]));
|
|
|
+ mContext.setVariable(ExpressionConstants.stdTempMax, Double.parseDouble(StandardConstans.STANDARD_TEMP.split("-")[1]));
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.open_hour)) {
|
|
|
StandardConstans.STANDARD_OPEN_HOUR = Integer.parseInt(mIronParam.getParamValue());
|
|
|
+ mContext.setVariable(ExpressionConstants.stdOpenHour, StandardConstans.STANDARD_OPEN_HOUR);
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_weight)) {
|
|
|
StandardConstans.STANDARD_IRON_WEIGHT = mIronParam.getParamValue();
|
|
|
+ mContext.setVariable(ExpressionConstants.stdIronWeightMin, Double.parseDouble(StandardConstans.STANDARD_IRON_WEIGHT.split("-")[0]));
|
|
|
+ mContext.setVariable(ExpressionConstants.stdIronWeightMax, Double.parseDouble(StandardConstans.STANDARD_IRON_WEIGHT.split("-")[1]));
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.open_machine_value)) {
|
|
|
StandardConstans.STANDARD_OPEN_MACHINE_LOCATION = Double.parseDouble(mIronParam.getParamValue());
|
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.mud_machine_value)) {
|
|
|
StandardConstans.STANDARD_MUD_MACHINE_PRESSURE = Double.parseDouble(mIronParam.getParamValue());
|
|
|
}
|
|
|
-// mContext.setVariable(ExpressionConstants.stdSpeed, STANDARD_SPEED.get());
|
|
|
- mContext.setVariable(ExpressionConstants.stdSpeedMin, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[0]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdSpeedMax, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[1]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdPressureDiff, StandardConstans.STANDARD_PRESSURE_DIFF);
|
|
|
-// mContext.setVariable(ExpressionConstants.stdIronTime, STANDARD_IRON_TIME.get());
|
|
|
- mContext.setVariable(ExpressionConstants.stdIronTimeMin, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[0]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdIronTimeMax, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[1]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdServerUrl, SERVER_URL);
|
|
|
-// mContext.setVariable(ExpressionConstants.stdTemp, STANDARD_TEMP_DIFF);
|
|
|
- mContext.setVariable(ExpressionConstants.stdTempMin, Double.parseDouble(StandardConstans.STANDARD_TEMP.split("-")[0]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdTempMax, Double.parseDouble(StandardConstans.STANDARD_TEMP.split("-")[1]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdOpenHour, StandardConstans.STANDARD_OPEN_HOUR);
|
|
|
-// mContext.setVariable(ExpressionConstants.stdIronWeight, STANDARD_IRON_WEIGHT);
|
|
|
- mContext.setVariable(ExpressionConstants.stdIronWeightMin, Double.parseDouble(StandardConstans.STANDARD_IRON_WEIGHT.split("-")[0]));
|
|
|
- mContext.setVariable(ExpressionConstants.stdIronWeightMax, Double.parseDouble(StandardConstans.STANDARD_IRON_WEIGHT.split("-")[1]));
|
|
|
}
|
|
|
log.info("STANDARD_SPEED: {},PRESSURE_DIFF_VALUE:{}", StandardConstans.STANDARD_SPEED, StandardConstans.STANDARD_PRESSURE_DIFF);
|
|
|
log.info("IRON_TIME: {},SERVER_URL:{}", StandardConstans.STANDARD_IRON_TIME, SERVER_URL);
|
|
@@ -484,10 +483,10 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (NODE.equalsIgnoreCase(stepDTO.getNodeType())) {
|
|
|
//处理子项
|
|
|
for (IronStepVO child : stepDTO.getChilds()) {
|
|
|
- if (StepConstans.STEP_GLYC.equals(child.getIdentifier())) {
|
|
|
+ if (StepConstans.STEP_GLSCQK.equals(child.getIdentifier())) {
|
|
|
for (IronStepVO grandChild : child.getChilds()) {
|
|
|
if (StepConstans.STEP_LS.equals(grandChild.getIdentifier())) {
|
|
|
- grandChild.setData(RedisUtils.getFixedLatestElement("materialSpeed"));
|
|
|
+ grandChild.setData(tl2MaterialService.getMaterialSpeedOneHourAgo());
|
|
|
}
|
|
|
}
|
|
|
} else if (StepConstans.STEP_TLC.equals(child.getIdentifier())) {
|
|
@@ -635,7 +634,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (count >= triggerCount1) {
|
|
|
PushData.send2Warn(WarnData.warnClose("铁水流速过快告警", closureAlarmUrl));
|
|
|
taskExecutor.submit(() -> {
|
|
|
- exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("7000").exceptionDesc(String.format("流速%s吨/分钟",mContext.lookupVariable(ExpressionConstants.rtIronSpeed))).build());
|
|
|
+ exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("7000").exceptionDesc(String.format("流速%s吨/分钟", mContext.lookupVariable(ExpressionConstants.rtIronSpeed))).build());
|
|
|
//推送预警列表
|
|
|
getExceptionList();
|
|
|
});
|
|
@@ -657,7 +656,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (count >= triggerCount2) {
|
|
|
PushData.send2Warn(WarnData.warnClose("铁水流速过慢告警", closureAlarmUrl));
|
|
|
taskExecutor.submit(() -> {
|
|
|
- exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("8000").exceptionDesc(String.format("流速%s吨/分钟",mContext.lookupVariable(ExpressionConstants.rtIronSpeed))).build());
|
|
|
+ exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("8000").exceptionDesc(String.format("流速%s吨/分钟", mContext.lookupVariable(ExpressionConstants.rtIronSpeed))).build());
|
|
|
//推送预警列表
|
|
|
getExceptionList();
|
|
|
});
|
|
@@ -679,7 +678,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (count >= triggerCount3) {
|
|
|
PushData.send2Warn(WarnData.warnClose("铁水流速过慢告警", closureAlarmUrl));
|
|
|
taskExecutor.submit(() -> {
|
|
|
- exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("8000").exceptionDesc(String.format("流速%s吨/分钟",mContext.lookupVariable(ExpressionConstants.rtIronSpeed))).build());
|
|
|
+ exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("8000").exceptionDesc(String.format("流速%s吨/分钟", mContext.lookupVariable(ExpressionConstants.rtIronSpeed))).build());
|
|
|
//推送预警列表
|
|
|
getExceptionList();
|
|
|
});
|
|
@@ -733,7 +732,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (!RangeUtils.isInRange(StandardConstans.STANDARD_IRON_TIME, getIronElapsedMinute())) {
|
|
|
PushData.send2Warn(WarnData.warnTappingTimeout("出铁时间过长告警", tappingTimeoutAlramUrl));
|
|
|
taskExecutor.submit(() -> {
|
|
|
- exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("3000").exceptionDesc("出铁时间过长告警").build());
|
|
|
+ exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("3000").exceptionDesc(String.format("出铁时间:%s分钟", getIronElapsedMinute())).build());
|
|
|
//推送预警列表
|
|
|
getExceptionList();
|
|
|
});
|
|
@@ -884,7 +883,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
tappingWarnCountMap.put(modelKey, count);
|
|
|
if (count >= triggerCount) {
|
|
|
PushData.send2Warn(WarnData.warnTapping("急需出铁告警", tappingAlramUrl));
|
|
|
- exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("10000").exceptionDesc("压差异常,当前压差:" + mContext.lookupVariable("yc")).build());
|
|
|
+ exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("10000").exceptionDesc(String.format("压差压差超过:%s,请降低送风流量,并操作出铁",String.valueOf(mContext.lookupVariable(ExpressionConstants.stdPressureDiff)))).build());
|
|
|
tappingWarnCountMap.put(modelKey, 0);
|
|
|
//推送预警列表
|
|
|
getExceptionList();
|
|
@@ -963,6 +962,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(opcData.getData());
|
|
|
realtimeData.setDesc("出铁状态");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(IRON_STATUS, realtimeData);
|
|
|
|
|
|
double currentVal = Double.parseDouble(opcData.getData().toString());
|
|
@@ -1010,11 +1010,13 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(1);
|
|
|
realtimeData.setDesc("摆动溜嘴的摆动方向");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(CHONGZ_STATUS, realtimeData);
|
|
|
} else {
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(0);
|
|
|
realtimeData.setDesc("摆动溜嘴的摆动方向");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(CHONGZ_STATUS, realtimeData);
|
|
|
}
|
|
|
} else {
|
|
@@ -1035,11 +1037,13 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(2);
|
|
|
realtimeData.setDesc("摆动溜嘴的摆动方向");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(CHONGZ_STATUS, realtimeData);
|
|
|
} else {
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(0);
|
|
|
realtimeData.setDesc("摆动溜嘴的摆动方向");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(CHONGZ_STATUS, realtimeData);
|
|
|
}
|
|
|
} else {
|
|
@@ -1068,34 +1072,40 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(isRising ? 1 : 0);
|
|
|
realtimeData.setDesc("出渣状态");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(CHUZ_STATUS, realtimeData);
|
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_SZB_STATUS(opcData.getServerType()))
|
|
|
|| opcData.getPointName().contains(SubscribeTagConstants.TAG_CZF_STATUS(opcData.getServerType()))
|
|
|
) {
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
- Boolean value = mParser.parseExpression("#szxt999 > 0 and #szb999 > 0").getValue(mContext, Boolean.class);
|
|
|
+ Boolean value = mParser.parseExpression("#subszb41 > 0 and #subczf41 > 0").getValue(mContext, Boolean.class);
|
|
|
realtimeData.setValue(Boolean.TRUE.equals(value) ? 1 : 0);
|
|
|
realtimeData.setDesc("冲渣状态");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(CHONGZ_STATUS, realtimeData);
|
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_KKJ_STATUS(opcData.getServerType()))) {
|
|
|
//开口机状态
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(Double.parseDouble(opcData.getData().toString()) >= StandardConstans.STANDARD_OPEN_MACHINE_LOCATION ? 1 : 0);
|
|
|
realtimeData.setDesc("开口机状态");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(KKJ_STATUS, realtimeData);
|
|
|
+ log.info("开口机信息:数据:{},标准:{}", opcData.getData(), StandardConstans.STANDARD_OPEN_MACHINE_LOCATION);
|
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_NPXZYY(opcData.getServerType()))) {
|
|
|
//泥炮堵口状态
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
realtimeData.setValue(Double.parseDouble(opcData.getData().toString()) >= StandardConstans.STANDARD_MUD_MACHINE_PRESSURE ? 1 : 0);
|
|
|
realtimeData.setDesc("泥炮堵口状态");
|
|
|
+ realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(NPDK_STATUS, realtimeData);
|
|
|
+ log.info("泥炮堵口信息:数据:{},标准:{}", opcData.getData(), StandardConstans.STANDARD_MUD_MACHINE_PRESSURE);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
TL2Data fixedLatestElement = null;
|
|
|
try {
|
|
|
- fixedLatestElement = (TL2Data) RedisUtils.getFixedLatestElement(IRON_ELEMENT);
|
|
|
+ fixedLatestElement = (TL2Data) RedisUtils.getFixedLatestElement("l2IronData");
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
}
|
|
@@ -1149,49 +1159,30 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
}
|
|
|
|
|
|
private synchronized void operate(OPCData mOPCData) {
|
|
|
- String pointName = mOPCData.getPointName();
|
|
|
- Object data = mOPCData.getData();
|
|
|
- for (IronStepVO stepDTO : mSteps) {
|
|
|
- if (NODE.equalsIgnoreCase(stepDTO.getNodeType())) {
|
|
|
- //处理子项
|
|
|
- for (IronStepVO child : stepDTO.getChilds()) {
|
|
|
- for (IronStepVO childchild : child.getChilds()) {
|
|
|
-
|
|
|
- //plc的point和step的point一致
|
|
|
- String newPointName = childchild.getPointName();
|
|
|
-
|
|
|
- if (ObjectUtils.isEmpty(newPointName)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- newPointName = CustomUtil.createNewPointName(newPointName, activeProfiles, mOPCData.getServerType());
|
|
|
- if (Objects.equals(newPointName, pointName)) {
|
|
|
- //3.创建变量上下文,设置变量
|
|
|
- childchild.setData(data);
|
|
|
- }
|
|
|
- }
|
|
|
- String newPointName = child.getPointName();
|
|
|
- if (ObjectUtils.isEmpty(newPointName)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- newPointName = CustomUtil.createNewPointName(newPointName, activeProfiles, mOPCData.getServerType());
|
|
|
- if (Objects.equals(newPointName, pointName)) {
|
|
|
- child.setData(data);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
setStepResult(mSteps);
|
|
|
-
|
|
|
-
|
|
|
PushData.send2Operation(mSteps, ironLoading1.get());
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private String stepLogId;
|
|
|
|
|
|
//计算每步结果为0(不通过)或者为1(通过)
|
|
|
private synchronized void setStepResult(List<IronStepVO> mSteps) {
|
|
|
+ // 原有逻辑
|
|
|
+ boolean foundFalsePass = false;
|
|
|
+ //发现第一个pass是false,后续都为false,包括父项、子项、孙子项
|
|
|
+ for (IronStepVO stepDTO : mSteps) {
|
|
|
+ for (IronStepVO child : stepDTO.getChilds()) {
|
|
|
+ for (IronStepVO grandchild : child.getChilds()) {
|
|
|
+ //孙子项 验证是否通过
|
|
|
+ foundFalsePass = isFoundFalsePass(grandchild, foundFalsePass);
|
|
|
+ }
|
|
|
+ //子项 验证是否通过
|
|
|
+ foundFalsePass = isFoundFalsePass(child, foundFalsePass);
|
|
|
+ }
|
|
|
+ //父项 验证是否通过
|
|
|
+ foundFalsePass = isFoundFalsePass(stepDTO, foundFalsePass);
|
|
|
+ }
|
|
|
+
|
|
|
// 检查ironLoading1是否从1变为0
|
|
|
if (lastIronLoading1 == 1 && ironLoading1.get() == 0) {
|
|
|
setAllStepPassResult(mSteps, 0);
|
|
@@ -1202,28 +1193,13 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (mSteps != null && !mSteps.isEmpty()) {
|
|
|
lastStep = mSteps.get(mSteps.size() - 1);
|
|
|
}
|
|
|
- // 1. 如果最后一个步骤为lqctcz且passResult为1,并且ironLoading1为1,则所有步骤passResult都保持为1
|
|
|
+ // 1. 如果最后一个步骤为 lnct 且passResult为1,并且ironLoading1为1,则所有步骤passResult都保持为1
|
|
|
if (lastStep != null && StepConstans.STEP_LNCT.equals(lastStep.getIdentifier()) && lastStep.getPassResult() == 1 && ironLoading1.get() == 1) {
|
|
|
setAllStepPassResult(mSteps, 1);
|
|
|
lastIronLoading1 = ironLoading1.get();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // 原有逻辑
|
|
|
- boolean foundFalsePass = false;
|
|
|
- //发现第一个pass是false,后续都为false,包括父项、子项、孙子项
|
|
|
- for (IronStepVO stepDTO : mSteps) {
|
|
|
- for (IronStepVO child : stepDTO.getChilds()) {
|
|
|
- for (IronStepVO grandchild : child.getChilds()) {
|
|
|
- //孙子项 验证是否通过
|
|
|
- foundFalsePass = isFoundFalsePass(grandchild, foundFalsePass);
|
|
|
- }
|
|
|
- //子项 验证是否通过
|
|
|
- foundFalsePass = isFoundFalsePass(child, foundFalsePass);
|
|
|
- }
|
|
|
- //父项 验证是否通过
|
|
|
- foundFalsePass = isFoundFalsePass(stepDTO, foundFalsePass);
|
|
|
- }
|
|
|
// 最后更新lastIronLoading1
|
|
|
lastIronLoading1 = ironLoading1.get();
|
|
|
}
|
|
@@ -1282,6 +1258,16 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
* @param stepVO
|
|
|
*/
|
|
|
private void validateStepPass(IronStepVO stepVO) {
|
|
|
+ String dataExpression = stepVO.getDataExpression();
|
|
|
+ if (ObjectUtils.isNotEmpty(dataExpression)) {
|
|
|
+ try {
|
|
|
+ Object value = mParser.parseExpression(dataExpression).getValue(mContext, Object.class);
|
|
|
+ stepVO.setData(value);
|
|
|
+ } catch (Exception e) {
|
|
|
+ //log.info("{}执行失败", dataExpression);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//根据唯一名称设置环境变量
|
|
|
mContext.setVariable(stepVO.getIdentifier(), stepVO.getData());
|
|
|
String flowName = "";
|
|
@@ -1301,12 +1287,11 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
//非流程必须项,直接放行
|
|
|
if ("0".equals(stepVO.getRequired())) {
|
|
|
stepVO.setPassResult(1);
|
|
|
- return;
|
|
|
}
|
|
|
|
|
|
+ boolean result = true;
|
|
|
//通过条件不为空执行表达式
|
|
|
if (ObjectUtils.isNotEmpty(stepVO.getStepCondition())) {
|
|
|
- boolean result = false;
|
|
|
try {
|
|
|
result = mParser.parseExpression(stepVO.getStepCondition()).getValue(mContext, Boolean.class);
|
|
|
} catch (Exception e) {
|
|
@@ -1315,6 +1300,22 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
stepVO.setPassResult(result ? 1 : 0);
|
|
|
}
|
|
|
|
|
|
+ if ("yc".equals(stepVO.getIdentifier())) {
|
|
|
+ Map<String, Object> extraInfo = new HashMap<>();
|
|
|
+ if (result) {
|
|
|
+ extraInfo.put("colorFlag", "0");
|
|
|
+ } else {
|
|
|
+ extraInfo.put("colorFlag", "-1");
|
|
|
+ }
|
|
|
+ stepVO.setExtraInfo(extraInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //非流程必须项,直接放行
|
|
|
+ if ("0".equals(stepVO.getRequired())) {
|
|
|
+ stepVO.setPassResult(1);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/***
|
|
@@ -1391,9 +1392,10 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
realtimeData.setValue(child.getPassResult());
|
|
|
realtimeData.setDesc("鱼雷罐车到位状态");
|
|
|
mRealtimeStatus.put(YLGC_STATUS, realtimeData);
|
|
|
+ PushData.send2RealtimeStatus(mRealtimeStatus);
|
|
|
}
|
|
|
|
|
|
- PushData.send2RealtimeStatus(mRealtimeStatus);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|