diff --git a/src/main/java/com/xydl/cac/iec/IEDService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java similarity index 91% rename from src/main/java/com/xydl/cac/iec/IEDService.java rename to src/main/java/com/xydl/cac/iec/IEDCollectService.java index a7c0037..7493d59 100644 --- a/src/main/java/com/xydl/cac/iec/IEDService.java +++ b/src/main/java/com/xydl/cac/iec/IEDCollectService.java @@ -12,7 +12,7 @@ import org.springframework.util.CollectionUtils; import java.util.List; @Slf4j -public class IEDService { +public class IEDCollectService { IcdConfigTypeRepository _configRepository; IcdConfigTypeAttRepository _attRepository; IcdConfigTypeInstRepository _instRepository; @@ -22,9 +22,9 @@ public class IEDService { IcdIed ied; String xml; - public IEDService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository, - IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository, - DataService dataService, String xml, IcdIed ied) { + public IEDCollectService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository, + IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository, + DataService dataService, String xml, IcdIed ied) { _configRepository = configRepository; _attRepository = attRepository; _instRepository = instRepository; diff --git a/src/main/java/com/xydl/cac/task/AsyncTask.java b/src/main/java/com/xydl/cac/task/AsyncTask.java new file mode 100644 index 0000000..dca5cfa --- /dev/null +++ b/src/main/java/com/xydl/cac/task/AsyncTask.java @@ -0,0 +1,33 @@ +package com.xydl.cac.task; + +import com.xydl.cac.entity.IcdIed; +import com.xydl.cac.entity.Rptparamindex; +import com.xydl.cac.iec.IEDCollectService; +import com.xydl.cac.repository.*; +import com.xydl.cac.service.DataService; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class AsyncTask { + @Resource + IcdConfigTypeRepository configRepository; + @Resource + IcdConfigTypeAttRepository attRepository; + @Resource + IcdConfigTypeInstRepository instRepository; + @Resource + RptparamindexRepository rptparamindexRepository; + @Resource + DataService dataService; + + @Async + public void collectIed(String xml, IcdIed ied, List rptList) { + IEDCollectService iedService = new IEDCollectService(configRepository, attRepository, instRepository, + rptparamindexRepository, dataService, xml, ied); + iedService.collectAndSave(rptList); + } +} diff --git a/src/main/java/com/xydl/cac/task/Client61850Task.java b/src/main/java/com/xydl/cac/task/Client61850Task.java index 68893e1..4bde094 100644 --- a/src/main/java/com/xydl/cac/task/Client61850Task.java +++ b/src/main/java/com/xydl/cac/task/Client61850Task.java @@ -1,9 +1,7 @@ package com.xydl.cac.task; import com.xydl.cac.entity.*; -import com.xydl.cac.iec.IEDService; import com.xydl.cac.repository.*; -import com.xydl.cac.service.DataService; import com.xydl.cac.service.ModevTypeService; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; @@ -19,21 +17,15 @@ import java.util.List; @Slf4j public class Client61850Task { + @Resource + AsyncTask asyncTask; @Resource IcdFileRepository fileRepository; @Resource IcdIedRepository iedRepository; @Resource - IcdConfigTypeRepository configRepository; - @Resource - IcdConfigTypeAttRepository attRepository; - @Resource - IcdConfigTypeInstRepository instRepository; - @Resource RptparamindexRepository rptparamindexRepository; @Resource - DataService dataService; - @Resource ModevTypeService modevTypeService; @Resource NSensorRepository sensorRepository; @@ -89,16 +81,9 @@ public class Client61850Task { List iedList = iedRepository.findByIcdFileId(icdFile.getId()); if (!CollectionUtils.isEmpty(iedList)) { for (IcdIed ied : iedList) { - this.collectIed(icdFile.getXml(), ied, rptList); + asyncTask.collectIed(icdFile.getXml(), ied, rptList); } } } - private void collectIed(String xml, IcdIed ied, List rptList) { - IEDService iedService = new IEDService(configRepository, attRepository, instRepository, - rptparamindexRepository, dataService, xml, ied); - - iedService.collectAndSave(rptList); - } - }