|
@@ -11,15 +11,10 @@ import com.example.opc_da.dao.MessageNoticeDao;
|
|
|
import com.example.opc_da.dynamicSchedule.CronTaskRegister;
|
|
|
import com.example.opc_da.util.OpcDaUtil;
|
|
|
import com.example.opc_da.util.RedisUtil;
|
|
|
-import org.openscada.opc.dcom.da.OPCSERVERSTATE;
|
|
|
-import org.openscada.opc.dcom.da.OPCSERVERSTATUS;
|
|
|
-import org.openscada.opc.lib.da.Group;
|
|
|
-import org.openscada.opc.lib.da.ItemState;
|
|
|
-import org.openscada.opc.lib.da.Server;
|
|
|
+import org.openscada.opc.lib.da.*;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
-import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
import static com.example.opc_da.util.OpcDaUtil.getVal;
|
|
|
|
|
@@ -85,258 +80,248 @@ public class OpcDaExceedTask extends TimerTask {
|
|
|
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- Server server = OpcDaUtil.createServer(dataSource);
|
|
|
Integer id = itemGroup.getId();
|
|
|
+ Integer dataSourceId = dataSource.getId();
|
|
|
Integer eventMode = itemGroup.getEventMode();
|
|
|
Double modeValue = itemGroup.getModeValue();
|
|
|
- Integer dataSourceId = dataSource.getId();
|
|
|
+ Server server = OpcDaUtil.createServer(dataSource);
|
|
|
String driverItem = OpcDaUtil.getDriverItem(itemList);
|
|
|
- try {
|
|
|
- AtomicReference<Long> index = new AtomicReference<>(0L);
|
|
|
- server.connect();
|
|
|
- server.addStateListener(connected -> {
|
|
|
- if (!connected) {
|
|
|
+ Long index = 0L;
|
|
|
+ AutoReconnectController autoReconnectController = new AutoReconnectController(server);
|
|
|
+ autoReconnectController.addListener(new AutoReconnectListener() {
|
|
|
+ private int trueCount = 0;
|
|
|
+ private int flaseCount = 0;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void stateChanged(AutoReconnectState state) {
|
|
|
+ if (state.equals(AutoReconnectState.CONNECTED)) {
|
|
|
+ if (trueCount != 0) {
|
|
|
+ messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
+ itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务重新连接成功",
|
|
|
+ "服务重新连接成功",
|
|
|
+ ConstantStr.NO_READ));
|
|
|
+ itemGroupDao.stopItemGroupById(id, ConstantStr.START_UP);
|
|
|
+ }
|
|
|
+ trueCount++;
|
|
|
+ }
|
|
|
+ if (state.equals(AutoReconnectState.DISCONNECTED)) {
|
|
|
Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
if (Blank.isEmpty(flage)) {
|
|
|
flage = false;
|
|
|
}
|
|
|
if (flage) {
|
|
|
- messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
- itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务断开",
|
|
|
- "服务断开,马上进行重新连接",
|
|
|
- ConstantStr.NO_READ));
|
|
|
- itemGroupDao.stopItemGroupById(id, ConstantStr.EXCEPT_STOP_UP);
|
|
|
- Timer listenerTimer = new Timer();
|
|
|
- listenerTimer.schedule(new TimerTask() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- try {
|
|
|
- server.connect();
|
|
|
- if (Blank.isNotEmpty(server.getServerState()) && server.getServerState().getServerState() == OPCSERVERSTATE.OPC_STATUS_RUNNING) {
|
|
|
- messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
- itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务重新连接成功",
|
|
|
- "服务重新连接成功",
|
|
|
- ConstantStr.NO_READ));
|
|
|
- itemGroupDao.stopItemGroupById(id, ConstantStr.START_UP);
|
|
|
- listenerTimer.cancel();
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
-// redisUtil.set(ConstantStr.ITEM_GROUP + id, false);
|
|
|
-// String message = OpcDaUtil.genException(e.getMessage());
|
|
|
-// messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
-// itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务重新连接失败",
|
|
|
-// message,
|
|
|
-// ConstantStr.NO_READ));
|
|
|
-// listenerTimer.cancel();
|
|
|
- }
|
|
|
- }
|
|
|
- }, 60000);
|
|
|
+ if (flaseCount != 0) {
|
|
|
+ messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
+ itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务断开",
|
|
|
+ "服务断开,马上进行重新连接",
|
|
|
+ ConstantStr.NO_READ));
|
|
|
+ itemGroupDao.stopItemGroupById(id, ConstantStr.EXCEPT_STOP_UP);
|
|
|
+ }
|
|
|
}
|
|
|
- }else{
|
|
|
- try {
|
|
|
+ flaseCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ server.connect();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+
|
|
|
+ } finally {
|
|
|
+ autoReconnectController.connect();
|
|
|
+ }
|
|
|
+
|
|
|
+ while (true) {
|
|
|
+ try {
|
|
|
+ Thread.sleep(1000);
|
|
|
+ try {
|
|
|
+ if (Blank.isNotEmpty(server.getServerState())) {
|
|
|
Group group = server.addGroup();
|
|
|
Map<String, org.openscada.opc.lib.da.Item> itemResult = group.addItems(items);
|
|
|
Set itemSet = new HashSet(itemResult.values());
|
|
|
org.openscada.opc.lib.da.Item[] itemArr = new org.openscada.opc.lib.da.Item[itemSet.size()];
|
|
|
itemSet.toArray(itemArr);
|
|
|
- while (true) {
|
|
|
- Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
- if (Blank.isEmpty(flage)) {
|
|
|
- flage = false;
|
|
|
- }
|
|
|
- if (!flage) {
|
|
|
- //执行组装数据库的数据,以及生成驱动报表
|
|
|
- opcAsyncTask.packageEventTable(itemList, dataSourceId, index.get() - 1L);
|
|
|
|
|
|
- redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- redisUtil.del(ConstantStr.ITEM_GROUP + id);
|
|
|
- timer.cancel();
|
|
|
- break;
|
|
|
+ Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
+ if (Blank.isEmpty(flage)) {
|
|
|
+ flage = false;
|
|
|
+ }
|
|
|
+ if (!flage) {
|
|
|
+ //执行组装数据库的数据,以及生成驱动报表
|
|
|
+ opcAsyncTask.packageEventTable(itemList, dataSourceId, index);
|
|
|
+ redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
+ if (Blank.isNotEmpty(server)) {
|
|
|
+ server.dispose();
|
|
|
}
|
|
|
- if (System.currentTimeMillis() >= endTime) {
|
|
|
- //执行组装数据库的数据,以及生成驱动报表
|
|
|
- opcAsyncTask.packageEventTable(itemList, dataSourceId, index.get() - 1L);
|
|
|
-
|
|
|
- redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- timer.cancel();
|
|
|
- break;
|
|
|
+ cronTaskRegister.removeCronTask(cronId);
|
|
|
+ redisUtil.del(ConstantStr.ITEM_GROUP + id);
|
|
|
+ timer.cancel();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (System.currentTimeMillis() >= endTime) {
|
|
|
+ //执行组装数据库的数据,以及生成驱动报表
|
|
|
+ opcAsyncTask.packageEventTable(itemList, dataSourceId, index);
|
|
|
+ redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
+ if (Blank.isNotEmpty(server)) {
|
|
|
+ server.dispose();
|
|
|
}
|
|
|
- try {
|
|
|
- Thread.sleep(1000);
|
|
|
- OPCSERVERSTATUS serverState = server.getServerState();
|
|
|
- if (Blank.isEmpty(serverState)){
|
|
|
- break;
|
|
|
+ timer.cancel();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ Map<org.openscada.opc.lib.da.Item, ItemState> resultMap = group.read(true, itemArr);
|
|
|
+ index++;
|
|
|
+
|
|
|
+ List<CursorRawData> cursorRawDataList = new ArrayList<>();
|
|
|
+ for (org.openscada.opc.lib.da.Item key : resultMap.keySet()) {
|
|
|
+ String keyId = key.getId();
|
|
|
+ ItemState itemMap = resultMap.get(key);
|
|
|
+ Map<String, Object> val = getVal(itemMap.getValue());
|
|
|
+ String javaType = val.get("javaType").toString();
|
|
|
+ Object value = val.get("value");
|
|
|
+ Date time = itemMap.getTimestamp().getTime();
|
|
|
+ String currentYmdh = DateUtil.dateChangeStr(time, timeFormat);
|
|
|
+ String currentYmdhmss = DateUtil.dateChangeStrYmdhmss(time);
|
|
|
+ DataModel dm = map.get(keyId);
|
|
|
+ if (keyId.equals(driverItem) && (index % 20 == 0)) {
|
|
|
+ opcAsyncTask.packageEventTable(itemList, dataSourceId, index - 1L);
|
|
|
}
|
|
|
- Map<org.openscada.opc.lib.da.Item, ItemState> resultMap = group.read(true, itemArr);
|
|
|
- index.getAndSet(index.get() + 1);
|
|
|
- List<CursorRawData> cursorRawDataList = new ArrayList<>();
|
|
|
- for (org.openscada.opc.lib.da.Item key : resultMap.keySet()) {
|
|
|
- String keyId = key.getId();
|
|
|
- ItemState itemMap = resultMap.get(key);
|
|
|
- Map<String, Object> val = getVal(itemMap.getValue());
|
|
|
- String javaType = val.get("javaType").toString();
|
|
|
- Object value = val.get("value");
|
|
|
- Date time = itemMap.getTimestamp().getTime();
|
|
|
- String currentYmdh = DateUtil.dateChangeStr(time, timeFormat);
|
|
|
- String currentYmdhmss = DateUtil.dateChangeStrYmdhmss(time);
|
|
|
- DataModel dm = map.get(keyId);
|
|
|
- if (keyId.equals(driverItem) && (index.get() % 20 == 0)) {
|
|
|
- opcAsyncTask.packageEventTable(itemList, dataSourceId, index.get() - 1L);
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(dm) && dm.getModelType().equals(ConstantStr.VALUE_REPLACE)) {
|
|
|
- String valStr = value.toString();
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, valStr, DataModel.valueReplace(dm, valStr),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
+ if (Blank.isNotEmpty(dm) && dm.getModelType().equals(ConstantStr.VALUE_REPLACE)) {
|
|
|
+ String valStr = value.toString();
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, valStr, DataModel.valueReplace(dm, valStr),
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
+ } else {
|
|
|
+ if (javaType.toLowerCase().equals("boolean")) {
|
|
|
+ String varStr = value.toString();
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, varStr, varStr,
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
cursorRawDataList.add(cursorRawData);
|
|
|
} else {
|
|
|
- if (javaType.toLowerCase().equals("boolean")) {
|
|
|
- String varStr = value.toString();
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, varStr,varStr,
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- } else {
|
|
|
- try {
|
|
|
- BigDecimal bigDecimal = JSON.parseObject(value.toString(), BigDecimal.class);
|
|
|
- BigDecimal dmData = Blank.isNotEmpty(dm) ? MathUtil.quadricOperation(dm, bigDecimal) : bigDecimal;
|
|
|
- if (keyId.equals(driverItem)) {
|
|
|
- BigDecimal bigDecimal1 = new BigDecimal(modeValue);
|
|
|
- if (eventMode == ConstantStr.EVENT_MODEL_EXCEED) {
|
|
|
+ try {
|
|
|
+ BigDecimal bigDecimal = JSON.parseObject(value.toString(), BigDecimal.class);
|
|
|
+ BigDecimal dmData = Blank.isNotEmpty(dm) ? MathUtil.quadricOperation(dm, bigDecimal) : bigDecimal;
|
|
|
+ if (keyId.equals(driverItem)) {
|
|
|
+ BigDecimal bigDecimal1 = new BigDecimal(modeValue);
|
|
|
+ if (eventMode == ConstantStr.EVENT_MODEL_EXCEED) {
|
|
|
+ if (dmData.compareTo(bigDecimal1) == 1) {
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
+ } else {
|
|
|
+ cursorRawDataList = new ArrayList<>();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else if (eventMode == ConstantStr.EVENT_MODEL_LOWER) {
|
|
|
+ if (dmData.compareTo(bigDecimal1) == -1) {
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
+ } else {
|
|
|
+ cursorRawDataList = new ArrayList<>();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else if (eventMode == ConstantStr.EVENT_MODEL_EQUAL) {
|
|
|
+ if (dmData.compareTo(bigDecimal1) == 0) {
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
+ } else {
|
|
|
+ cursorRawDataList = new ArrayList<>();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else if (eventMode == ConstantStr.EVENT_TRENDS_EXCEED) {
|
|
|
+ if (((BigDecimal) redisUtil.get(ConstantStr.VALUE + id + keyId)).compareTo(bigDecimal1) != 1) {
|
|
|
if (dmData.compareTo(bigDecimal1) == 1) {
|
|
|
CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
cursorRawDataList.add(cursorRawData);
|
|
|
} else {
|
|
|
cursorRawDataList = new ArrayList<>();
|
|
|
break;
|
|
|
}
|
|
|
- } else if (eventMode == ConstantStr.EVENT_MODEL_LOWER) {
|
|
|
+ } else {
|
|
|
+ cursorRawDataList = new ArrayList<>();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ redisUtil.set(ConstantStr.VALUE + id + keyId, dmData, ConstantStr.TWO_HOUR);
|
|
|
+ } else if (eventMode == ConstantStr.EVENT_TRENDS_LOWER) {
|
|
|
+ if (((BigDecimal) redisUtil.get(ConstantStr.VALUE + id + keyId)).compareTo(bigDecimal1) != -1) {
|
|
|
if (dmData.compareTo(bigDecimal1) == -1) {
|
|
|
CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- } else {
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- break;
|
|
|
- }
|
|
|
- } else if (eventMode == ConstantStr.EVENT_MODEL_EQUAL) {
|
|
|
- if (dmData.compareTo(bigDecimal1) == 0) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
cursorRawDataList.add(cursorRawData);
|
|
|
} else {
|
|
|
cursorRawDataList = new ArrayList<>();
|
|
|
break;
|
|
|
}
|
|
|
- } else if (eventMode == ConstantStr.EVENT_TRENDS_EXCEED) {
|
|
|
- if (((BigDecimal) redisUtil.get(ConstantStr.VALUE + id + keyId)).compareTo(bigDecimal1) != 1) {
|
|
|
- if (dmData.compareTo(bigDecimal1) == 1) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- } else {
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- break;
|
|
|
- }
|
|
|
- } else {
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- break;
|
|
|
- }
|
|
|
- redisUtil.set(ConstantStr.VALUE + id + keyId, dmData, ConstantStr.TWO_HOUR);
|
|
|
- } else if (eventMode == ConstantStr.EVENT_TRENDS_LOWER) {
|
|
|
- if (((BigDecimal) redisUtil.get(ConstantStr.VALUE + id + keyId)).compareTo(bigDecimal1) != -1) {
|
|
|
- if (dmData.compareTo(bigDecimal1) == -1) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.IS_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- } else {
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- break;
|
|
|
- }
|
|
|
- } else {
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- break;
|
|
|
- }
|
|
|
- redisUtil.set(ConstantStr.VALUE + id + keyId, dmData, ConstantStr.TWO_HOUR);
|
|
|
+ } else {
|
|
|
+ cursorRawDataList = new ArrayList<>();
|
|
|
+ break;
|
|
|
}
|
|
|
- } else {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- if (Blank.isNotEmpty(value)) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, JSON.toJSONString(value), JSON.toJSONString(value),
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- } else {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, "null", "null",
|
|
|
- currentYmdhmss, index.get(), currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
+ redisUtil.set(ConstantStr.VALUE + id + keyId, dmData, ConstantStr.TWO_HOUR);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ if (Blank.isNotEmpty(value)) {
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, JSON.toJSONString(value), JSON.toJSONString(value),
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
+ } else {
|
|
|
+ CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, "null", "null",
|
|
|
+ currentYmdhmss, index, currentYmdh, ConstantStr.NOT_RECORD, new Date());
|
|
|
+ cursorRawDataList.add(cursorRawData);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (Blank.isNotEmpty(cursorRawDataList)) {
|
|
|
- opcAsyncTask.addCursorRawDataList(cursorRawDataList);
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
- if (Blank.isEmpty(flage)) {
|
|
|
- flage = false;
|
|
|
- }
|
|
|
- if (!flage) {
|
|
|
- //执行组装数据库的数据,以及生成驱动报表
|
|
|
- opcAsyncTask.packageEventTable(itemList, dataSourceId, index.get());
|
|
|
- redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- timer.cancel();
|
|
|
+ }
|
|
|
+ if (Blank.isNotEmpty(cursorRawDataList)) {
|
|
|
+ opcAsyncTask.addCursorRawDataList(cursorRawDataList);
|
|
|
+ cursorRawDataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
+ if (Blank.isEmpty(flage)) {
|
|
|
+ flage = false;
|
|
|
+ }
|
|
|
+ if (!flage) {
|
|
|
+ //执行组装数据库的数据,以及生成驱动报表
|
|
|
+ opcAsyncTask.packageEventTable(itemList, dataSourceId, index);
|
|
|
+ redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
+ if (Blank.isNotEmpty(server)) {
|
|
|
+ server.dispose();
|
|
|
}
|
|
|
+ itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
+ cronTaskRegister.removeCronTask(cronId);
|
|
|
+ timer.cancel();
|
|
|
}
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
- if (Blank.isEmpty(flage)) {
|
|
|
- flage = false;
|
|
|
- }
|
|
|
- if (!flage) {
|
|
|
- //执行组装数据库的数据,以及生成驱动报表
|
|
|
- opcAsyncTask.packageEventTable(itemList, dataSourceId, index.get() - 1L);
|
|
|
- redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- timer.cancel();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
+ if (Blank.isEmpty(flage)) {
|
|
|
+ flage = false;
|
|
|
+ }
|
|
|
+ if (!flage) {
|
|
|
+ //执行组装数据库的数据,以及生成驱动报表
|
|
|
+ opcAsyncTask.packageEventTable(itemList, dataSourceId, index);
|
|
|
+ redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
|
|
|
+ if (Blank.isNotEmpty(server)) {
|
|
|
+ server.dispose();
|
|
|
}
|
|
|
+ itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
+ cronTaskRegister.removeCronTask(cronId);
|
|
|
+ timer.cancel();
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
- } catch (Exception e) {
|
|
|
- String message = OpcDaUtil.genException(e.getMessage());
|
|
|
- messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
- itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "运行失败",
|
|
|
- message,
|
|
|
- ConstantStr.NO_READ));
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- server.dispose();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- timer.cancel();
|
|
|
}
|
|
|
}
|
|
|
}
|