From 3e3165bed88207fb20c97e630c07bdc326d262f5 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Sat, 7 Dec 2024 14:02:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventRelevantAnalysisController.java | 11 ++++++++++- .../impl/CarryCapacityServiceImpl.java | 18 +++++++++--------- .../common/pojo/constant/PatternRegex.java | 7 ++++++- .../com/njcn/web/constant/ValidMessage.java | 1 + .../controller/ExportModelController.java | 7 +++++++ .../controller/report/QualifiedReport.java | 10 ++++++++++ 6 files changed, 43 insertions(+), 11 deletions(-) diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java index 6caccee99..242ae071d 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java @@ -6,6 +6,7 @@ import com.njcn.advance.pojo.po.PqsRelevanceLog; import com.njcn.advance.service.EventRelevantAnalysisService; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; @@ -14,17 +15,20 @@ import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.PubUtils; import com.njcn.event.pojo.po.RmpEventDetailAssPO; import com.njcn.event.pojo.vo.AdvanceEventDetailVO; +import com.njcn.web.constant.ValidMessage; import com.njcn.web.controller.BaseController; import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; import java.util.Map; +import java.util.regex.Pattern; /** * pqs @@ -33,11 +37,11 @@ import java.util.Map; * @author cdf * @date 2023/6/30 */ +@Slf4j @RestController @RequestMapping("process") @Api(tags = "暂降事件关联分析") @RequiredArgsConstructor -@Slf4j public class EventRelevantAnalysisController extends BaseController { private final EventRelevantAnalysisService eventRelevantAnalysisService; @@ -78,6 +82,11 @@ public class EventRelevantAnalysisController extends BaseController { @ApiOperation("事件波形分析主列表") public HttpResult> queryEventsAssPage(@RequestBody BaseParam baseParam){ String methodDescribe = getMethodDescribe("queryEventsAssPage"); + String searchValue = baseParam.getSearchValue(); + Pattern pattern = Pattern.compile(PatternRegex.SPECIAL_REGEX); + if(pattern.matcher(searchValue).find()){ + throw new BusinessException(ValidMessage.SPECIAL_REGEX); + } Page page = eventRelevantAnalysisService.queryEventsAssPage(baseParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); } diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java index e00a06f59..0496dd785 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/carrycapacity/impl/CarryCapacityServiceImpl.java @@ -101,7 +101,7 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { //前2周的数据 List dataHarmPowerP2List; List dataHarmPowerQ2List; - List dataHarmPowerU2List ; + List dataHarmPowerU2List; CarryCapacityDataVO carryCapacityDataVO = new CarryCapacityDataVO(); String lineId = queryParam.getLineId(); @@ -512,7 +512,7 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { carryCapacitydResultVO.setILevel(iLevel); //统计安全,3级预警,2级预警1级预警个数 List list = Stream.of(utLevel, pftLevel, btLevel, iLevel).collect(Collectors.toList()); - int safeCount, warnCount3 , warnCount2 , warnCount1 ; + int safeCount, warnCount3, warnCount2, warnCount1; safeCount = (int) list.stream() .filter(temp -> temp == 1) .count(); @@ -711,7 +711,6 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { } - @Override public CarryCapacityDResultVO carryCapacityEvaluate(CarryCapacityEvaluateParam calParam) { CarryCapacityDResultVO vo = new CarryCapacityDResultVO(); @@ -918,21 +917,22 @@ public class CarryCapacityServiceImpl implements CarryCapacityService { public static ExcelDataDTO parsingFile(LocalDate startDate, LocalDate endDate, InputStream is) { // DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - List dataHarmPowerpList ; - List dataHarmPowerqList ; - List dataiList ; + List dataHarmPowerpList; + List dataHarmPowerqList; + List dataiList; //前2周的时间 LocalDate startDate2 = startDate.plusWeeks(-1); LocalDate endDate2 = endDate.plusWeeks(-1); //前一周的数据 - List dataHarmPowerP2List ; - List dataHarmPowerQ2List ; - List dataHarmPowerU2List ; + List dataHarmPowerP2List; + List dataHarmPowerQ2List; + List dataHarmPowerU2List; try { List objects = EasyExcelUtil.syncReadModel(is, CarryCapcityDataEexcel.class, 0, 3); + objects = objects.stream().filter(temp -> Objects.nonNull(temp.getTime())).collect(Collectors.toList()); List iEexcelList = new ArrayList<>(); List vEexcelList = new ArrayList<>(); List pEexcelList = new ArrayList<>(); diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/PatternRegex.java b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/PatternRegex.java index a8540d904..8e92e4821 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/PatternRegex.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/PatternRegex.java @@ -169,6 +169,11 @@ public interface PatternRegex { */ String TF_NAME_REGEX = "^[0-9a-zA-Z\\u0391-\\uFFE5]{1,16}$"; + /** + * 特殊字符正则 + */ + String SPECIAL_REGEX = "[<>%'%;()&+/-\\\\_|@*?#$!,.]|html"; + /** * 字典类型名称 */ @@ -177,7 +182,7 @@ public interface PatternRegex { /** * 描述32 */ - String DES32_REGEX = "^.{0,32}$"; + String DES32_REGEX = "^.{0,10}$"; /** * 描述64 diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java b/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java index e3441e3ac..874d1fb06 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/constant/ValidMessage.java @@ -68,6 +68,7 @@ public interface ValidMessage { String DEVICE_VERSION_NOT_BLANK = "装置版本json文件不能为空,请检查deviceVersionFile参数"; String SEARCH_DATA_ERROR = "搜索值过长,请检查搜索参数"; + String SPECIAL_REGEX = "搜索值包含特殊字符"; String DATA_TOO_LONG = "参数过长,请检查参数"; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java index 2f220d830..dc2d83202 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; +import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; @@ -33,6 +34,7 @@ import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.Theme; +import com.njcn.web.constant.ValidMessage; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -48,6 +50,7 @@ import java.io.*; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -116,6 +119,10 @@ public class ExportModelController extends BaseController { @RequestParam(value = "isUrl",required = false) Boolean isUrl, @RequestPart(value ="file",required = false) MultipartFile file) throws IOException { String methodDescribe = getMethodDescribe("exportWorld"); + Pattern pattern = Pattern.compile(PatternRegex.SPECIAL_REGEX); + if(pattern.matcher(reportNumber).find() || pattern.matcher(crmName).find()){ + throw new BusinessException(ValidMessage.SPECIAL_REGEX); + } //获取监测点信息 String bdname; Integer pttype; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/QualifiedReport.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/QualifiedReport.java index 5a62cc05d..b59a3db03 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/QualifiedReport.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/QualifiedReport.java @@ -3,13 +3,16 @@ package com.njcn.harmonic.controller.report; import cn.hutool.core.date.TimeInterval; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.harmonic.pojo.dto.FpyReportDTO; import com.njcn.harmonic.pojo.param.QualifiedReportParam; import com.njcn.harmonic.service.majornetwork.QualifiedReportService; +import com.njcn.web.constant.ValidMessage; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -22,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.regex.Pattern; + /** * pqs @@ -49,6 +54,11 @@ public class QualifiedReport extends BaseController { @ApiImplicitParam(name = "qualifiedReportParam", value = "合格率报告参数", required = true) public HttpResult> pageTable(@RequestBody @Validated QualifiedReportParam qualifiedReportParam) { TimeInterval timeInterval = new TimeInterval(); + String searchValue = qualifiedReportParam.getSearchValue(); + Pattern pattern = Pattern.compile(PatternRegex.SPECIAL_REGEX); + if(pattern.matcher(searchValue).find()){ + throw new BusinessException(ValidMessage.SPECIAL_REGEX); + } String methodDescribe = getMethodDescribe("pageTable"); Page result = qualifiedReportService.pageTable(qualifiedReportParam); log.info("合格率报告执行时长:"+timeInterval.interval());