|
@@ -1,452 +0,0 @@
|
|
|
-package com.example.opc_da.task;
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.example.opc_common.entity.*;
|
|
|
-import com.example.opc_common.util.Blank;
|
|
|
-import com.example.opc_common.util.ConstantStr;
|
|
|
-import com.example.opc_common.util.DateUtil;
|
|
|
-import com.example.opc_common.util.MathUtil;
|
|
|
-import com.example.opc_da.dao.ItemGroupDao;
|
|
|
-import com.example.opc_da.dao.MessageNoticeDao;
|
|
|
-import com.example.opc_da.util.OpcDaUtil;
|
|
|
-import com.example.opc_da.util.RedisUtil;
|
|
|
-import org.jinterop.dcom.common.JIException;
|
|
|
-import org.openscada.opc.lib.da.*;
|
|
|
-
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
-
|
|
|
-import static com.example.opc_da.util.OpcDaUtil.getVal;
|
|
|
-
|
|
|
-public class OpcDaExceedTask1 extends TimerTask {
|
|
|
-
|
|
|
- private final RedisUtil redisUtil;
|
|
|
-
|
|
|
- private final OpcAsyncTask opcAsyncTask;
|
|
|
-
|
|
|
- private final String cronId;
|
|
|
-
|
|
|
- private final CronTaskRegister cronTaskRegister;
|
|
|
-
|
|
|
- private final ItemGroupDao itemGroupDao;
|
|
|
-
|
|
|
- private final MessageNoticeDao messageNoticeDao;
|
|
|
-
|
|
|
- private final Timer timer;
|
|
|
-
|
|
|
- private final ItemGroup itemGroup;
|
|
|
-
|
|
|
- private final DataSource dataSource;
|
|
|
-
|
|
|
- private final Map<String, DataModel> map;
|
|
|
-
|
|
|
- private final List<com.example.opc_common.entity.Item> itemList;
|
|
|
-
|
|
|
- private final String[] items;
|
|
|
-
|
|
|
- private final String timeFormat;
|
|
|
-
|
|
|
- private final List<TableTemplate> tableTemplates;
|
|
|
-
|
|
|
- private final Map<Integer, ReportTable> reportTableMap;
|
|
|
-
|
|
|
- private final Long endTime;
|
|
|
-
|
|
|
- public OpcDaExceedTask1(RedisUtil redisUtil,
|
|
|
- OpcAsyncTask opcAsyncTask,
|
|
|
- String cronId,
|
|
|
- CronTaskRegister cronTaskRegister,
|
|
|
- ItemGroupDao itemGroupDao,
|
|
|
- MessageNoticeDao messageNoticeDao,
|
|
|
- Timer timer,
|
|
|
- ItemGroup itemGroup,
|
|
|
- DataSource dataSource,
|
|
|
- Map<String, DataModel> map,
|
|
|
- List<com.example.opc_common.entity.Item> itemList,
|
|
|
- String[] items,
|
|
|
- String timeFormat,
|
|
|
- List<TableTemplate> tableTemplates,
|
|
|
- Map<Integer, ReportTable> reportTableMap,
|
|
|
- Long endTime) {
|
|
|
- this.redisUtil = redisUtil;
|
|
|
- this.opcAsyncTask = opcAsyncTask;
|
|
|
- this.cronId = cronId;
|
|
|
- this.cronTaskRegister = cronTaskRegister;
|
|
|
- this.itemGroupDao = itemGroupDao;
|
|
|
- this.messageNoticeDao = messageNoticeDao;
|
|
|
- this.timer = timer;
|
|
|
- this.itemGroup = itemGroup;
|
|
|
- this.dataSource = dataSource;
|
|
|
- this.map = map;
|
|
|
- this.itemList = itemList;
|
|
|
- this.items = items;
|
|
|
- this.timeFormat = timeFormat;
|
|
|
- this.tableTemplates = tableTemplates;
|
|
|
- this.reportTableMap = reportTableMap;
|
|
|
- this.endTime = endTime;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- Integer id = itemGroup.getId();
|
|
|
- Integer dataSourceId = dataSource.getId();
|
|
|
- Integer eventMode = itemGroup.getEventMode();
|
|
|
- Double modeValue = itemGroup.getModeValue();
|
|
|
- Server server = OpcDaUtil.createServer(dataSource);
|
|
|
- String driverItem = OpcDaUtil.getDriverItem(itemList);
|
|
|
- Long index = 0L;
|
|
|
- AutoReconnectController autoReconnectController = new AutoReconnectController(server);
|
|
|
- AutoReconnectListener listener = new AutoReconnectListener() {
|
|
|
- private int trueCount = 0;
|
|
|
- private int flaseCount = 0;
|
|
|
-
|
|
|
- @Override
|
|
|
- public void stateChanged(AutoReconnectState state) {
|
|
|
- if (state.equals(AutoReconnectState.CONNECTED)) {
|
|
|
- redisUtil.set(ConstantStr.ITEM_GROUP + ConstantStr.CONNECT_STATE + id, true);
|
|
|
- if (trueCount != 0) {
|
|
|
- messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
- itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务重新连接成功",
|
|
|
- "服务重新连接成功",
|
|
|
- ConstantStr.NO_READ));
|
|
|
- //通过传入的数据组id,将同一数据源的所有数据组,都设置为一样的状态
|
|
|
- opcAsyncTask.changeSameDataSourceState(id, ConstantStr.START_UP);
|
|
|
-// 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) {
|
|
|
- if (flaseCount != 0) {
|
|
|
- //通过redis控制不要一直添加报警消息
|
|
|
- Boolean connectFlage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + ConstantStr.CONNECT_STATE + id);
|
|
|
- if (Blank.isEmpty(connectFlage)) {
|
|
|
- connectFlage = false;
|
|
|
- }
|
|
|
- if (connectFlage) {
|
|
|
- messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
|
|
|
- itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "服务断开",
|
|
|
- "服务断开,马上进行重新连接",
|
|
|
- ConstantStr.NO_READ));
|
|
|
- redisUtil.set(ConstantStr.ITEM_GROUP + ConstantStr.CONNECT_STATE + id, false);
|
|
|
- }
|
|
|
- //通过传入的数据组id,将同一数据源的所有数据组,都设置为一样的状态
|
|
|
- opcAsyncTask.changeSameDataSourceState(id, ConstantStr.EXCEPT_STOP_UP);
|
|
|
-// itemGroupDao.stopItemGroupById(id, ConstantStr.EXCEPT_STOP_UP);
|
|
|
- }
|
|
|
- }
|
|
|
- flaseCount++;
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
- autoReconnectController.addListener(listener);
|
|
|
- try {
|
|
|
- server.connect();
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
-
|
|
|
- } finally {
|
|
|
- autoReconnectController.connect();
|
|
|
- }
|
|
|
- Group group = null;
|
|
|
- org.openscada.opc.lib.da.Item[] itemArr = null;
|
|
|
- try {
|
|
|
- while (true) {
|
|
|
- if (Blank.isNotEmpty(server.getServerState())) {
|
|
|
- group = server.addGroup();
|
|
|
- Map<String, org.openscada.opc.lib.da.Item> itemResult = group.addItems(items);
|
|
|
- Set itemSet = new HashSet(itemResult.values());
|
|
|
- itemArr = new org.openscada.opc.lib.da.Item[itemSet.size()];
|
|
|
- itemSet.toArray(itemArr);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
- if (Blank.isEmpty(flage)) {
|
|
|
- flage = false;
|
|
|
- }
|
|
|
- if (!flage) {
|
|
|
- if (Blank.isNotEmpty(group) && Blank.isNotEmpty(server)) {
|
|
|
- try {
|
|
|
- server.removeGroup(group, true);
|
|
|
- } catch (JIException ex) {
|
|
|
- System.err.println("删除组失败");
|
|
|
- ex.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(autoReconnectController)) {
|
|
|
- autoReconnectController.removeListener(listener);
|
|
|
- autoReconnectController.disconnect();
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- timer.cancel();
|
|
|
- }
|
|
|
- }
|
|
|
- while (true) {
|
|
|
- try {
|
|
|
- Thread.sleep(1000);
|
|
|
-// try {
|
|
|
- if (Blank.isNotEmpty(server.getServerState()) && Blank.isNotEmpty(group)) {
|
|
|
-
|
|
|
- Boolean flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
- if (Blank.isEmpty(flage)) {
|
|
|
- flage = false;
|
|
|
- }
|
|
|
- if (!flage) {
|
|
|
- if (Blank.isNotEmpty(autoReconnectController)) {
|
|
|
- autoReconnectController.removeListener(listener);
|
|
|
- autoReconnectController.disconnect();
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- try {
|
|
|
- server.removeGroup(group, true);
|
|
|
- } catch (JIException ex) {
|
|
|
- System.err.println("删除组失败");
|
|
|
- ex.printStackTrace();
|
|
|
- }
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- redisUtil.del(ConstantStr.ITEM_GROUP + id);
|
|
|
- timer.cancel();
|
|
|
- break;
|
|
|
- }
|
|
|
- if (System.currentTimeMillis() >= endTime) {
|
|
|
- if (Blank.isNotEmpty(autoReconnectController)) {
|
|
|
- autoReconnectController.removeListener(listener);
|
|
|
- autoReconnectController.disconnect();
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- try {
|
|
|
- server.removeGroup(group, true);
|
|
|
- } catch (JIException ex) {
|
|
|
- System.err.println("删除组失败");
|
|
|
- ex.printStackTrace();
|
|
|
- }
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- 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 (Blank.isNotEmpty(dm) && dm.getModelType().equals(ConstantStr.VALUE_REPLACE)) {
|
|
|
- String valueStr = value.toString();
|
|
|
- String dataValue = DataModel.valueReplace(dm, valueStr);
|
|
|
- if (keyId.equals(driverItem)) {
|
|
|
- try {
|
|
|
- BigDecimal dmData = new BigDecimal(dataValue);
|
|
|
- BigDecimal bigDecimal1 = new BigDecimal(modeValue);
|
|
|
- if (eventMode == ConstantStr.EVENT_MODEL_EXCEED) {
|
|
|
- if (dmData.compareTo(bigDecimal1) == 1) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, valueStr, dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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, valueStr, dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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, valueStr, dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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, valueStr, dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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, valueStr, dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, valueStr, dataValue,
|
|
|
- currentYmdhmss, index, currentYmdh, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- }
|
|
|
- } else {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, valueStr, dataValue,
|
|
|
- currentYmdhmss, index, currentYmdh, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (javaType.toLowerCase().equals("boolean")) {
|
|
|
- String valueStr = value.toString();
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, valueStr, valueStr,
|
|
|
- currentYmdhmss, index, currentYmdh, 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) {
|
|
|
- if (dmData.compareTo(bigDecimal1) == 1) {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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, 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, 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, currentYmdh, 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, currentYmdh, 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 {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, bigDecimal.toString(), dmData.toString(),
|
|
|
- currentYmdhmss, index, currentYmdh, 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, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- } else {
|
|
|
- CursorRawData cursorRawData = new CursorRawData(id, dataSourceId, keyId, javaType, "null", "null",
|
|
|
- currentYmdhmss, index, currentYmdh, new Date());
|
|
|
- cursorRawDataList.add(cursorRawData);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(cursorRawDataList)) {
|
|
|
- opcAsyncTask.packageEventTable(cursorRawDataList, tableTemplates, reportTableMap);
|
|
|
- cursorRawDataList = new ArrayList<>();
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- flage = (Boolean) redisUtil.get(ConstantStr.ITEM_GROUP + id);
|
|
|
- if (Blank.isEmpty(flage)) {
|
|
|
- flage = false;
|
|
|
- }
|
|
|
- if (!flage) {
|
|
|
- if (Blank.isNotEmpty(autoReconnectController)) {
|
|
|
- autoReconnectController.removeListener(listener);
|
|
|
- autoReconnectController.disconnect();
|
|
|
- }
|
|
|
- if (Blank.isNotEmpty(server)) {
|
|
|
- try {
|
|
|
- server.removeGroup(group, true);
|
|
|
- } catch (JIException ex) {
|
|
|
- System.err.println("删除组失败");
|
|
|
- ex.printStackTrace();
|
|
|
- }
|
|
|
- server.dispose();
|
|
|
- }
|
|
|
- itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
|
|
|
- cronTaskRegister.removeCronTask(cronId);
|
|
|
- timer.cancel();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|