From 7ac01b0f5e667e3e3c4ecc51735465413425f85e Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Mon, 14 Apr 2025 19:12:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detection/handler/SocketDevResponseService.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java index a05ef1cf..bd9c57eb 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java @@ -776,12 +776,9 @@ public class SocketDevResponseService { if (successComm.size() == FormalTestManager.monitorIdListComm.size()) { successComm.clear(); failComm.clear(); - if (CollUtil.isEmpty(dataTypeList)) { - dataTypeList = pqScriptDtlsService.getScriptToIcdCheckInfo(param); - } - if (CollUtil.isEmpty(icdTypeList)) { - icdTypeList = FormalTestManager.devList.stream().map(PreDetection::getIcdType).distinct().collect(Collectors.toList()); - } + + dataTypeList = pqScriptDtlsService.getScriptToIcdCheckInfo(param); + icdTypeList = FormalTestManager.devList.stream().map(PreDetection::getIcdType).distinct().collect(Collectors.toList()); socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); socketMsg.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue()); From 55bf90d0afd00d4d165006e33e9cf887ff506e44 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Tue, 15 Apr 2025 10:14:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AF=BC=E5=87=BAcsv?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=81=E6=8A=A5=E5=91=8A=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4=E5=80=92=E5=BA=8F=E6=8E=92?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PqReportServiceImpl.java | 1 + .../script/controller/PqScriptController.java | 13 ++--- .../script/service/IPqScriptService.java | 4 +- .../service/impl/PqScriptServiceImpl.java | 5 +- .../system/log/pojo/po/SysLogAudit.java | 13 ++++- .../service/impl/SysLogAuditServiceImpl.java | 49 ++++++------------- .../njcn/gather/system/log/util/CSVUtil.java | 44 ++++++++--------- 7 files changed, 56 insertions(+), 73 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java b/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java index 4661229d..7ecc9e6e 100644 --- a/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/report/service/impl/PqReportServiceImpl.java @@ -149,6 +149,7 @@ public class PqReportServiceImpl extends ServiceImpl i wrapper.like(StrUtil.isNotBlank(queryParam.getName()), "name", queryParam.getName()) .eq(StrUtil.isNotBlank(queryParam.getVersion()), "version", queryParam.getVersion()) .eq("state", DataStateEnum.ENABLE.getCode()); + wrapper.orderByDesc("Update_Time"); Page page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), wrapper); List pqReportVOList = page1.getRecords().stream().map(pqReport -> { diff --git a/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java b/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java index 8850b8ff..9175138f 100644 --- a/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java +++ b/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java @@ -4,12 +4,9 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; -import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.LogUtil; -import com.njcn.gather.detection.pojo.param.DevPhaseSequenceParam; -import com.njcn.gather.detection.pojo.param.PreDetectionParam; import com.njcn.gather.script.pojo.param.PqScriptDtlsParam; import com.njcn.gather.script.pojo.param.PqScriptIssueParam; import com.njcn.gather.script.pojo.param.PqScriptParam; @@ -62,15 +59,11 @@ public class PqScriptController extends BaseController { @PostMapping("/add") @ApiOperation("新增检测脚本") @ApiImplicitParam(name = "pqDevParam", value = "检测脚本", required = true) - public HttpResult add(@RequestBody @Validated PqScriptParam param) { + public HttpResult add(@RequestBody @Validated PqScriptParam param) { String methodDescribe = getMethodDescribe("add"); LogUtil.njcnDebug(log, "{},新增数据为:{}", methodDescribe, param); - Boolean result = pqScriptService.addPqScript(param); - if (result) { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); - } else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); - } + String id = pqScriptService.addPqScript(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe); } @OperateInfo(operateType = OperateType.UPDATE) diff --git a/detection/src/main/java/com/njcn/gather/script/service/IPqScriptService.java b/detection/src/main/java/com/njcn/gather/script/service/IPqScriptService.java index dfe39dcf..c113b917 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/IPqScriptService.java +++ b/detection/src/main/java/com/njcn/gather/script/service/IPqScriptService.java @@ -34,9 +34,9 @@ public interface IPqScriptService extends IService { * 新增检测脚本 * * @param param 检测脚本 - * @return 成功返回true, 失败返回false + * @return 成功返回ScriptId, 失败返回null */ - Boolean addPqScript(PqScriptParam param); + String addPqScript(PqScriptParam param); /** * 删除检测脚本 diff --git a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java index 0d76d7aa..3a97496e 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java @@ -61,13 +61,14 @@ public class PqScriptServiceImpl extends ServiceImpl i @Override @Transactional - public Boolean addPqScript(PqScriptParam param) { + public String addPqScript(PqScriptParam param) { this.checkRepeat(param, false); PqScript pqScript = new PqScript(); BeanUtils.copyProperties(param, pqScript); pqScript.setStandardTime(LocalDate.of(Integer.parseInt(param.getStandardTime()), 1, 1)); pqScript.setState(DataStateEnum.ENABLE.getCode()); - return this.save(pqScript); + this.save(pqScript); + return pqScript.getId(); } @Override diff --git a/system/src/main/java/com/njcn/gather/system/log/pojo/po/SysLogAudit.java b/system/src/main/java/com/njcn/gather/system/log/pojo/po/SysLogAudit.java index 02367376..42aa64c8 100644 --- a/system/src/main/java/com/njcn/gather/system/log/pojo/po/SysLogAudit.java +++ b/system/src/main/java/com/njcn/gather/system/log/pojo/po/SysLogAudit.java @@ -1,5 +1,6 @@ package com.njcn.gather.system.log.pojo.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @@ -11,7 +12,6 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import lombok.Data; import java.io.Serializable; -import java.math.BigInteger; import java.time.LocalDateTime; /** @@ -30,61 +30,72 @@ public class SysLogAudit implements Serializable { /** * 登录名 */ + @Excel(name = "登录名") private String loginName; /** * 用户名 */ + @Excel(name = "用户名") private String userName; /** * IP */ + @Excel(name = "IP", width = 20) private String ip; /** * 操作内容 */ + @Excel(name = "操作内容", width = 80) private String operate; /** * 操作类型 (比如:查询、新增、删除、下载等等) */ + @Excel(name = "操作类型") private String operateType; /** * 事件结果 0失败 1成功 */ + @Excel(name = "事件结果", replace = {"失败_0", "成功_1"}) private String result; /** * 失败原因 */ + @Excel(name = "失败原因") private String reason; /** * 事件类型 */ + @Excel(name = "事件类型", replace = {"业务事件_0", "系统事件_1"}) private Integer type; /** * 事件严重度(0.普通 1.中等 2.严重) */ + @Excel(name = "事件严重度", replace = {"普通_0", "中等_1", "严重_2"}) private Integer level; /** * 告警标志(0:未告警;1:已告警),默认未告警 */ + @Excel(name = "告警标志", replace = {"未告警_0", "已告警_1"}) private Integer warn; /** * 日志发生事件 */ + @Excel(name = "日志发生事件", width = 30, exportFormat = "yyyy-MM-dd HH:mm:ss") @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonDeserialize(using = LocalDateTimeDeserializer.class) diff --git a/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java b/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java index ec963d9e..30f44749 100644 --- a/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java +++ b/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.gather.system.log.service.impl; +import cn.afterturn.easypoi.csv.entity.CsvExportParams; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -9,10 +10,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; -import com.njcn.common.utils.PubUtils; import com.njcn.db.mybatisplus.constant.UserConstant; import com.njcn.gather.system.log.mapper.SysLogAuditMapper; -import com.njcn.gather.system.log.pojo.enums.LogLevelEnum; import com.njcn.gather.system.log.pojo.param.SysLogParam; import com.njcn.gather.system.log.pojo.po.SysLogAudit; import com.njcn.gather.system.log.service.ISysLogAuditService; @@ -27,9 +26,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieSer; import org.springframework.core.MethodParameter; -import org.springframework.http.server.ServerHttpRequest; import org.springframework.stereotype.Service; import org.springframework.web.bind.MethodArgumentNotValidException; @@ -38,9 +35,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.Method; import java.net.URLEncoder; -import java.text.SimpleDateFormat; import java.time.LocalDateTime; -import java.util.*; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -67,32 +64,15 @@ public class SysLogAuditServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); -// if (ObjectUtil.isNotNull(param)) { -// queryWrapper -// .eq(StrUtil.isNotBlank(param.getOperateType()), "sys_log_audit.Operate_Type", param.getOperateType()) -// .eq(StrUtil.isNotBlank(param.getCreateBy()), "sys_log_audit.Create_By", param.getCreateBy()) -// .between(StrUtil.isAllNotBlank(param.getSearchBeginTime(), param.getSearchEndTime()), "sys_log_audit.Create_Time", param.getSearchBeginTime(), param.getSearchEndTime()); -// } -// queryWrapper.orderByDesc("sys_log_audit.Create_Time"); -// List list = this.list(queryWrapper); -// List> data = list.stream().map(item -> { -// Map map = new HashMap<>(); -// map.put("operateType", item.getOperateType()); -// map.put("ip", item.getIp()); -// map.put("result", item.getResult()); -// map.put("remark", item.getRemark()); -// map.put("level", LogLevelEnum.getEnum(item.getLevel()).getMsg()); -// map.put("warn", item.getWarn() == 0 ? "未告警" : "告警"); -// map.put("createBy", item.getCreateBy()); -// //将 createTime 转换为 yyyy-MM-dd HH:mm:ss 格式 -// map.put("createTime", item.getCreateTime() == null ? "" : item.getCreateTime().toString().replace("T", " ")); -// return map; -// }).collect(Collectors.toList()); -// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); -// CSVUtil.export("日志数据" + sdf.format(new Date()) + ".csv", titles, keys, data); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (ObjectUtil.isNotNull(param)) { + queryWrapper.like(StrUtil.isNotBlank(param.getUserName()), "sys_log_audit.User_name", param.getUserName()) + .between(StrUtil.isAllNotBlank(param.getSearchBeginTime(), param.getSearchEndTime()), "sys_log_audit.Log_time", param.getSearchBeginTime(), param.getSearchEndTime()); + } + queryWrapper.orderByDesc("sys_log_audit.Log_time"); + List list = this.list(queryWrapper); + CsvExportParams params = new CsvExportParams(); + CSVUtil.exportCsv("日志数据.csv", params, SysLogAudit.class, list); } /** @@ -158,9 +138,9 @@ public class SysLogAuditServiceImpl extends ServiceImpl pojoClass, Collection dataSet) { + HttpServletResponse response = HttpServletUtil.getResponse(); + ServletOutputStream os = null; + try { + os = response.getOutputStream(); + fileName = URLEncoder.encode(fileName, "UTF-8"); + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); + response.setContentType("application/octet-stream;charset=UTF-8"); + + CsvExportUtil.exportCsv(params, pojoClass, dataSet, os); + os.flush(); + os.close(); + } catch (Exception e) { + log.error(">>> 导出数据异常:{}", e.getMessage()); + } + } }