|
@@ -37,6 +37,7 @@ import com.sckj.warn.validate.TExceptionLogCreateValidate;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.lang3.math.NumberUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.expression.Expression;
|
|
@@ -49,6 +50,7 @@ import javax.annotation.PostConstruct;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
@@ -407,13 +409,14 @@ public class DeviceEventListener extends EventListener { //
|
|
|
@Subscribe
|
|
|
public void onMessageEvent(OPCData opcData) {
|
|
|
Object obj = opcData.getData();
|
|
|
- if (obj.toString().contains(".")) {
|
|
|
+ if (NumberUtils.isCreatable(obj.toString())) {
|
|
|
String s = obj.toString().split("\\.")[0];
|
|
|
// double value = ((Number) obj).doubleValue();
|
|
|
//String formattedValue = String.format("%.2f", value);
|
|
|
- opcData.setData(Double.parseDouble(s));
|
|
|
+ opcData.setData(Integer.parseInt(s));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//异步保存OPC数据
|
|
|
taskExecutor.submit(() -> {
|
|
|
opcDataService.save(opcData);
|
|
@@ -894,15 +897,17 @@ public class DeviceEventListener extends EventListener { //
|
|
|
realtimeData.setDesc("出铁状态");
|
|
|
mRealtimeStatus.put(IRON_STATUS, realtimeData);
|
|
|
|
|
|
- ironLoading1.set(Double.parseDouble(opcData.getData().toString()));
|
|
|
- mContext.setVariable(ExpressionConstants.rtIron01State, ironLoading1.get());
|
|
|
+ double currentVal = Double.parseDouble(opcData.getData().toString());
|
|
|
|
|
|
- if (ironLoading1.get() > 0) {
|
|
|
+ if (ironLoading1.get() <= 0 && currentVal > 0) {
|
|
|
taphole1Start();
|
|
|
- } else {
|
|
|
+ } else if (ironLoading1.get() > 0 && currentVal <= 0) {
|
|
|
taphole1End();
|
|
|
}
|
|
|
|
|
|
+ ironLoading1.set(Double.parseDouble(opcData.getData().toString()));
|
|
|
+ mContext.setVariable(ExpressionConstants.rtIron01State, ironLoading1.get());
|
|
|
+
|
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_TAPHOLE2_STATUS(opcData.getServerType()))) {
|
|
|
ironLoading2.set(Double.parseDouble(opcData.getData().toString()));
|
|
|
mContext.setVariable(ExpressionConstants.rtIron02State, ironLoading2.get());
|
|
@@ -953,12 +958,12 @@ public class DeviceEventListener extends EventListener { //
|
|
|
String elementS = fixedLatestElement.getElementS();
|
|
|
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
- realtimeData.setValue(new BigDecimal(elementSi).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
|
|
|
+ realtimeData.setValue(new BigDecimal(elementSi).multiply(new BigDecimal(100)).setScale(0, RoundingMode.DOWN).toPlainString());
|
|
|
realtimeData.setUnit("%");
|
|
|
realtimeData.setDesc("硅");
|
|
|
|
|
|
RealtimeData realtimeData2 = new RealtimeData();
|
|
|
- realtimeData2.setValue(new BigDecimal(elementS).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
|
|
|
+ realtimeData2.setValue(new BigDecimal(elementS).multiply(new BigDecimal(100)).setScale(0, RoundingMode.DOWN).toPlainString());
|
|
|
realtimeData2.setUnit("%");
|
|
|
realtimeData2.setDesc("硫");
|
|
|
|
|
@@ -1275,6 +1280,7 @@ public class DeviceEventListener extends EventListener { //
|
|
|
}
|
|
|
setStepResult(mSteps);
|
|
|
PushData.send2Operation(mSteps, ironLoading1.get());
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|