From ffd0ddf3d5a4e7efe0f4b29396d46d63f069e72a Mon Sep 17 00:00:00 2001 From: linrf Date: Wed, 19 Jul 2023 15:59:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95=20tcp=E9=87=87=E9=9B=86?= =?UTF-8?q?=E5=99=A8=E6=96=87=E4=BB=B6=E5=91=BD=E4=BB=A4=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/common/process/TcpProcessor.java | 62 +++++++++++++++++++ .../serializer/StringToDateConverter.java | 3 - .../dao/ISchCollectorVersionFileDao.java | 1 + .../impl/SchCollectorVersionFileDaoImpl.java | 26 +++++--- .../ISchCollectorVersionFileService.java | 3 + .../service/impl/SchCollectorServiceImpl.java | 3 + .../SchCollectorVersionFileServiceImpl.java | 5 ++ .../SchCollectorVersionApi.java | 8 ++- .../TcpSchCollectorVersionContentVO.java | 33 ++++++++++ 9 files changed, 131 insertions(+), 13 deletions(-) create mode 100644 collector-scheduling-management/src/main/java/com/docus/server/common/process/TcpProcessor.java create mode 100644 docus-client-interface/src/main/java/com/docus/server/vo/scheduling.management/schcollectorversion/TcpSchCollectorVersionContentVO.java diff --git a/collector-scheduling-management/src/main/java/com/docus/server/common/process/TcpProcessor.java b/collector-scheduling-management/src/main/java/com/docus/server/common/process/TcpProcessor.java new file mode 100644 index 0000000..49831e6 --- /dev/null +++ b/collector-scheduling-management/src/main/java/com/docus/server/common/process/TcpProcessor.java @@ -0,0 +1,62 @@ +package com.docus.server.common.process; + +import com.docus.core.util.json.JSON; +import com.docus.log.context.TrackContext; +import com.docus.log.processor.AbstractProcessor; +import com.docus.server.common.MsgConstants; +import com.docus.server.dto.scheduling.management.schcollector.UpdateSchCollectorDTO; +import com.docus.server.dto.scheduling.management.schterminator.CommMsgDTO; +import com.docus.server.entity.scheduling.management.SchCollectorVersionFile; +import com.docus.server.service.ICommMsgService; +import com.docus.server.service.ISchCollectorVersionFileService; +import com.docus.server.service.ISchCollectorVersionService; +import com.docus.server.vo.scheduling.management.schcollectorversion.SchCollectorVersionVO; +import com.docus.server.vo.scheduling.management.schcollectorversion.TcpSchCollectorVersionContentVO; +import com.google.common.collect.Lists; + +import javax.annotation.Resource; +import java.util.List; + +/** + * tcp 管理 + */ +public class TcpProcessor extends AbstractProcessor { + @Resource + private ICommMsgService iCommMsgService; + @Resource + private ISchCollectorVersionFileService iSchCollectorVersionFileService; + @Resource + private ISchCollectorVersionService iSchCollectorVersionService; + + @Override + protected Object doProcess(TrackContext context) { + return logProcess(context); + } + + private boolean logProcess(TrackContext context) { + boolean error = context.isError(); + if (!error) { + UpdateSchCollectorDTO updateSchCollectorDTO = (UpdateSchCollectorDTO) context.getArgs()[0]; + Long collectorId = updateSchCollectorDTO.getCollectorId(); + Long collectorVersionId = updateSchCollectorDTO.getCollectorVersionId(); + + SchCollectorVersionFile schCollectorVersionFile = iSchCollectorVersionFileService.findByCollectorIdAndVersionId(collectorId, collectorVersionId); + SchCollectorVersionVO schCollectorVersionVO = iSchCollectorVersionService.findById(String.valueOf(collectorVersionId)); + + TcpSchCollectorVersionContentVO tcpSchCollectorVersionContentVO = new TcpSchCollectorVersionContentVO(); + tcpSchCollectorVersionContentVO.setCollectorId(collectorId); + tcpSchCollectorVersionContentVO.setFilePath(schCollectorVersionFile.getFilePath()); + tcpSchCollectorVersionContentVO.setCollectorVersion(schCollectorVersionVO.getCollectVersion()); + + List tcpSchCollectorVersionContentVOList = Lists.newArrayList(tcpSchCollectorVersionContentVO); + + CommMsgDTO commMsgDTO = CommMsgDTO.builder() + .content(JSON.toJSON(tcpSchCollectorVersionContentVOList)) + .messageType(MsgConstants.UPDATE_COLLECTOR_FILE) + .build(); + + iCommMsgService.clientsCommand(commMsgDTO); + } + return error; + } +} diff --git a/collector-scheduling-management/src/main/java/com/docus/server/common/serializer/StringToDateConverter.java b/collector-scheduling-management/src/main/java/com/docus/server/common/serializer/StringToDateConverter.java index f143733..4663077 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/common/serializer/StringToDateConverter.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/common/serializer/StringToDateConverter.java @@ -11,9 +11,6 @@ import java.util.List; /** * 全局handler前日期统一处理 - * - * @author zhanghang - * @date 2018/1/11 */ @Component public class StringToDateConverter implements Converter { diff --git a/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/ISchCollectorVersionFileDao.java b/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/ISchCollectorVersionFileDao.java index b48359c..7ad13d0 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/ISchCollectorVersionFileDao.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/ISchCollectorVersionFileDao.java @@ -54,4 +54,5 @@ public interface ISchCollectorVersionFileDao extends IBaseDao search(SearchDTO searchDTO); + SchCollectorVersionFile findByVersionIdAndCollectorId(Long collectorId, Long collectorVersionId); } diff --git a/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/impl/SchCollectorVersionFileDaoImpl.java b/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/impl/SchCollectorVersionFileDaoImpl.java index 37cb4a9..35bdb84 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/impl/SchCollectorVersionFileDaoImpl.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/infrastructure/dao/impl/SchCollectorVersionFileDaoImpl.java @@ -2,10 +2,12 @@ package com.docus.server.infrastructure.dao.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.docus.core.util.Func; import com.docus.infrastructure.core.db.dao.impl.BaseDaoImpl; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; import com.docus.server.entity.scheduling.management.SchCollectorVersionFile; +import com.docus.server.enums.CancelEnum; import com.docus.server.infrastructure.dao.ISchCollectorVersionFileDao; import com.docus.server.infrastructure.mapper.SchCollectorVersionFileMapper; import com.github.pagehelper.PageHelper; @@ -86,19 +88,25 @@ public class SchCollectorVersionFileDaoImpl extends BaseDaoImpl sub.like(SchCollectorVersionFile::getxx1, searchDTO.getKeyword()) - // оr(). like(SchCollectorVersionFile::getXX2, searchDTO.getKeyword())) - //); - //} + //默认createTime倒序排序 query.orderByDesc(SchCollectorVersionFile::getCreateTime); List list = super.find(query); return new PageResult<>(list); } + @Override + public SchCollectorVersionFile findByVersionIdAndCollectorId(Long collectorId, Long collectorVersionId) { + LambdaQueryWrapper query = Wrappers.lambdaQuery(); + if (Func.isNotEmpty(collectorId)) { + query.eq(SchCollectorVersionFile::getCollectorId, collectorId); + } + if (Func.isNotEmpty(collectorVersionId)) { + query.eq(SchCollectorVersionFile::getCollectorVersionId, collectorVersionId); + } + query.ne(SchCollectorVersionFile::getState, CancelEnum.CANCEL); + + return super.findOne(query); + } + } diff --git a/collector-scheduling-management/src/main/java/com/docus/server/service/ISchCollectorVersionFileService.java b/collector-scheduling-management/src/main/java/com/docus/server/service/ISchCollectorVersionFileService.java index 364f6eb..92ad266 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/service/ISchCollectorVersionFileService.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/service/ISchCollectorVersionFileService.java @@ -5,6 +5,7 @@ import com.docus.infrastructure.web.response.PageResult; import com.docus.server.dto.scheduling.management.schcollectorversionfile.AddSchCollectorVersionFileDTO; import com.docus.server.dto.scheduling.management.schcollectorversionfile.DeleteSchCollectorVersionFileDTO; import com.docus.server.dto.scheduling.management.schcollectorversionfile.EditSchCollectorVersionFileDTO; +import com.docus.server.entity.scheduling.management.SchCollectorVersionFile; import com.docus.server.vo.scheduling.management.schcollectorversionfile.SchCollectorVersionFileVO; import org.springframework.web.multipart.MultipartFile; @@ -59,4 +60,6 @@ public interface ISchCollectorVersionFileService { * 新增版本和版本文件 */ void addVersionAndFile(AddSchCollectorVersionFileDTO addSchCollectorVersionFileDTO, MultipartFile[] multipartFiles) throws Exception; + + SchCollectorVersionFile findByCollectorIdAndVersionId(Long collectorId, Long collectorVersionId); } diff --git a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorServiceImpl.java b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorServiceImpl.java index 4177dc7..e068fd4 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorServiceImpl.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorServiceImpl.java @@ -8,6 +8,8 @@ import com.docus.infrastructure.web.exception.ApiException; import com.docus.infrastructure.web.exception.ExceptionCode; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; +import com.docus.log.annotation.TrackGroup; +import com.docus.server.common.process.TcpProcessor; import com.docus.server.convert.SchCollectorConvert; import com.docus.server.dto.scheduling.management.schcollector.AddSchCollectorDTO; import com.docus.server.dto.scheduling.management.schcollector.DeleteSchCollectorDTO; @@ -84,6 +86,7 @@ public class SchCollectorServiceImpl implements ISchCollectorService { * * @return 成功或失败 */ + @TrackGroup(group = "SchCollectorServiceImpl", processor = TcpProcessor.class) @Transactional(rollbackFor = Exception.class) @Override public boolean updateVersion(UpdateSchCollectorDTO updateDTO) { diff --git a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorVersionFileServiceImpl.java b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorVersionFileServiceImpl.java index 07dd2de..c6599fd 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorVersionFileServiceImpl.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchCollectorVersionFileServiceImpl.java @@ -93,6 +93,11 @@ public class SchCollectorVersionFileServiceImpl implements ISchCollectorVersionF iSchCollectorVersionFileDao.saveBatch(schCollectorVersionFiles, 500); } + @Override + public SchCollectorVersionFile findByCollectorIdAndVersionId(Long collectorId, Long collectorVersionId) { + return iSchCollectorVersionFileDao.findByVersionIdAndCollectorId(collectorId, collectorVersionId); + } + /** * 新增 * diff --git a/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorVersionApi.java b/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorVersionApi.java index 515b454..a3587f2 100644 --- a/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorVersionApi.java +++ b/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorVersionApi.java @@ -9,7 +9,13 @@ import com.docus.server.vo.scheduling.management.schcollectorversion.SchCollecto import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; /** diff --git a/docus-client-interface/src/main/java/com/docus/server/vo/scheduling.management/schcollectorversion/TcpSchCollectorVersionContentVO.java b/docus-client-interface/src/main/java/com/docus/server/vo/scheduling.management/schcollectorversion/TcpSchCollectorVersionContentVO.java new file mode 100644 index 0000000..c490d48 --- /dev/null +++ b/docus-client-interface/src/main/java/com/docus/server/vo/scheduling.management/schcollectorversion/TcpSchCollectorVersionContentVO.java @@ -0,0 +1,33 @@ +package com.docus.server.vo.scheduling.management.schcollectorversion; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 采集器配置 VO + * + * @author AutoGenerator + * @since 2023-07-15 + */ +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +@ApiModel(value = "TcpSchCollectorVersionContentVO", description = "下发采集器文件") +public class TcpSchCollectorVersionContentVO implements Serializable { + + @ApiModelProperty(value = "采集器Id") + private Long collectorId; + + @ApiModelProperty(value = "选中当前采集器版本文件路径") + private String filePath; + + @ApiModelProperty(value = "选中当前采集器版本") + private String collectorVersion; +}