From ed022c8f581d1386a3804a84e936b512b57184c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E4=BF=8A=E6=9D=B0?= <9463626+zhou-junjiezjj@user.noreply.gitee.com> Date: Thu, 4 Jan 2024 17:27:00 +0800 Subject: [PATCH] =?UTF-8?q?add=20Lucene=E6=97=A5=E5=BF=97=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/nladmin-system/pom.xml | 55 +++++---- .../nl/acs/agv/rest/MagicAgvController.java | 6 +- .../agv/server/impl/MagicAgvServiceImpl.java | 11 +- .../agv/server/impl/NDCAgvServiceImpl.java | 11 +- .../server/impl/XianGongAgvServiceImpl.java | 11 +- .../main/java/org/nl/acs/auto/AcsInit.java | 7 +- .../agv/ndcone/AgvNdcOneDeviceDriver.java | 2 +- .../StandardOrdinarySiteDeviceDriver.java | 2 +- .../ConveyorBarcodeDeviceDriver.java | 5 + .../acs/ext/wms/service/AcsToWmsService.java | 2 + .../wms/service/impl/AcsToWmsServiceImpl.java | 7 ++ .../java/org/nl/acs/opc/DeviceManageDto.java | 1 - .../rest/ProduceshiftorderController.java | 5 +- .../org/nl/acs/task/rest/TaskController.java | 14 +++ .../task/service/impl/TaskServiceImpl.java | 31 +++-- .../nl/modules/common/utils/StringUtils.java | 16 +-- .../nl/modules/logging/aspect/LogAspect.java | 8 -- .../logging/service/impl/LogServiceImpl.java | 5 +- .../service/impl/StageServiceImpl.java | 1 - .../lucene/common/AsyncLuceneAppender.java | 43 +++++++ .../modules/lucene/common/LuceneAppender.java | 21 ++-- .../lucene/common/LuceneIndexWriter.java | 65 ----------- .../nl/modules/lucene/common/Searcher.java | 76 +++++-------- .../impl/LuceneExecuteLogServiceImpl.java | 1 - .../src/main/resources/log/AcsToWms.xml | 17 ++- .../src/main/resources/log/AutoCreateInst.xml | 17 ++- .../resources/log/LnshRGVDeviceDriver.xml | 17 ++- .../src/main/resources/log/Lucene.xml | 41 ------- .../main/resources/log/NDCAgvServiceImpl.xml | 16 +-- .../log/NDCSocketConnectionAutoRun.xml | 17 ++- .../src/main/resources/log/WmsToAcs.xml | 17 ++- .../src/main/resources/logback-spring.xml | 106 +++--------------- .../src/views/monitor/lucene/index.vue | 1 + 33 files changed, 259 insertions(+), 396 deletions(-) create mode 100644 acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/AsyncLuceneAppender.java delete mode 100644 acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java delete mode 100644 acs/nladmin-system/src/main/resources/log/Lucene.xml diff --git a/acs/nladmin-system/pom.xml b/acs/nladmin-system/pom.xml index 2095112..fe40fdb 100644 --- a/acs/nladmin-system/pom.xml +++ b/acs/nladmin-system/pom.xml @@ -66,6 +66,12 @@ org.openscada.utgard org.openscada.opc.lib 1.5.0 + + + org.bouncycastle + bcprov-jdk15on + + com.squareup.okhttp3 @@ -132,10 +138,10 @@ - - org.springframework.boot - spring-boot-starter-websocket - + + org.springframework.boot + spring-boot-starter-websocket + @@ -161,16 +167,16 @@ - - ch.ethz.ganymed - ganymed-ssh2 - build210 - - - com.jcraft - jsch - 0.1.55 - + + ch.ethz.ganymed + ganymed-ssh2 + build210 + + + com.jcraft + jsch + 0.1.55 + @@ -180,11 +186,6 @@ - - com.github.loki4j - loki-logback-appender-jdk8 - 1.3.2 - org.apache.httpcomponents httpclient @@ -382,19 +383,13 @@ - - nl.basjes.parse.useragent - yauaa - 5.23 - - - - eu.bitwalker - UserAgentUtils - 1.21 - + + com.yomahub + tlog-all-spring-boot-starter + 1.5.0 + org.apache.lucene lucene-core diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/rest/MagicAgvController.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/rest/MagicAgvController.java index 4badde5..4cd6420 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/rest/MagicAgvController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/rest/MagicAgvController.java @@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.agv.server.MagicAgvService; import org.nl.modules.logging.annotation.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; @@ -19,7 +21,9 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/api/magic") @Slf4j public class MagicAgvController { - private final MagicAgvService magicAgvService; + @Autowired + @Lazy + private MagicAgvService magicAgvService; @PostMapping("/agvack/{device}") @Log("AGV请求离开") diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java index d074229..084bafa 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java @@ -27,6 +27,8 @@ import org.nl.acs.opc.DeviceType; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.service.ParamService; import org.nl.modules.wql.util.SpringContextHolder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.Arrays; @@ -38,9 +40,12 @@ import java.util.Map; @Service @RequiredArgsConstructor public class MagicAgvServiceImpl implements MagicAgvService { - private final DeviceAppService deviceAppService; - private final ParamService paramService; - private final AcsToWmsService acsToWmsService; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private ParamService paramService; + @Autowired + private AcsToWmsService acsToWmsService; Map AGVDeviceStatus = new HashMap(); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index a3a4fef..2e0b756 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -26,6 +26,7 @@ import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -36,10 +37,12 @@ import java.util.Map; @Service @RequiredArgsConstructor public class NDCAgvServiceImpl implements NDCAgvService { - - private final DeviceAppService deviceAppService; - private final ParamService acsConfigService; - private final AcsToWmsService acsToWmsService; + @Autowired + DeviceAppService deviceAppService; + @Autowired + ParamService acsConfigService; + @Autowired + AcsToWmsService acsToWmsService; private final DeviceExecuteLogService logServer; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java index b4832e6..bbb2c18 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java @@ -21,6 +21,7 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceType; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.service.ParamService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; @@ -32,9 +33,13 @@ import java.util.Map; @Service @RequiredArgsConstructor public class XianGongAgvServiceImpl implements XianGongAgvService { - private final DeviceAppService deviceAppService; - private final ParamService paramService; - private final AcsToWmsService acsToWmsService; + @Autowired + DeviceAppService deviceAppService; + @Autowired + ParamService paramService; + @Autowired + AcsToWmsService acsToWmsService; + Map AGVDeviceStatus = new HashMap(); @LokiLog(type = LokiLogType.AGV) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/auto/AcsInit.java b/acs/nladmin-system/src/main/java/org/nl/acs/auto/AcsInit.java index d6525ff..1f7bce4 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/auto/AcsInit.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/auto/AcsInit.java @@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.auto.initial.ApplicationAutoInitialExecuter; import org.nl.acs.auto.initial.WebAutoInitialExecuter; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; @@ -17,8 +18,10 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor @Order(50) public class AcsInit implements ApplicationRunner { - private final ApplicationAutoInitialExecuter applicationAutoInitialExecuter; - private final WebAutoInitialExecuter webAutoInitialExecuter; + @Autowired + private ApplicationAutoInitialExecuter applicationAutoInitialExecuter; + @Autowired + private WebAutoInitialExecuter webAutoInitialExecuter; @Override public void run(ApplicationArguments args) throws Exception { //随线程启动 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index dbfb72f..ea194e2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -62,7 +62,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic ParamService paramService = SpringContextHolder.getBean(ParamServiceImpl.class); InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); TaskService taskService=SpringContextHolder.getBean(TaskServiceImpl.class); - AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class); NDCAgvService NDCAgvService = SpringContextHolder.getBean(NDCAgvService.class); DeviceExecuteLogService logService = SpringContextHolder.getBean(DeviceExecuteLogService.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index af3f895..8489fcc 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -49,7 +49,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class); - AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class); DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java index fc35a8d..4324131 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java @@ -118,6 +118,11 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme int barcode; int last_barcode; + @Override + public int hashCode() { + return super.hashCode(); + } + @Override public Device getDevice() { return this.device; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index c8a151a..43a0bc5 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -184,4 +184,6 @@ public interface AcsToWmsService { HttpResponse feedbackVehicleType(JSONObject param); HttpResponse mark(JSONObject param); + + void syncDemo(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index e531fee..f2afd20 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -32,6 +32,7 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.Map; @@ -1085,4 +1086,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { MDC.remove(log_file_type); } } + @Override + @Async + public void syncDemo() { + log.info("线程编号"+Thread.currentThread().getName()); + log.error("线程编号"+Thread.currentThread().getName()); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageDto.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageDto.java index bbcd560..c8e13da 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageDto.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageDto.java @@ -1,7 +1,6 @@ package org.nl.acs.opc; import cn.hutool.core.util.ObjectUtil; -import eu.bitwalker.useragentutils.DeviceType; import lombok.Data; import java.util.*; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/order/rest/ProduceshiftorderController.java b/acs/nladmin-system/src/main/java/org/nl/acs/order/rest/ProduceshiftorderController.java index e745214..6cbcedb 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/order/rest/ProduceshiftorderController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/order/rest/ProduceshiftorderController.java @@ -4,6 +4,7 @@ package org.nl.acs.order.rest; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.modules.logging.annotation.Log; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; @@ -26,8 +27,8 @@ import lombok.extern.slf4j.Slf4j; @RequestMapping("/api/produceshiftorder") @Slf4j public class ProduceshiftorderController { - - private final ProduceshiftorderService produceshiftorderService; + @Autowired + ProduceshiftorderService produceshiftorderService; @GetMapping @Log("查询工单信息") diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java index 19bed2a..9529f60 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java @@ -158,4 +158,18 @@ public class TaskController { String s = acsToWmsService.applyTaskToWms(device_code, container_code, height, weight); return new ResponseEntity<>(s, HttpStatus.CREATED); } + + @PostMapping("/Threadid") + //@PreAuthorize("@el.check('task:add')") + public ResponseEntity Threadid() { + log.info("线程编号"+Thread.currentThread().getName()); + log.error("线程编号"+Thread.currentThread().getName()); + Thread thread = new Thread(() -> { + log.info("线程编号"+Thread.currentThread().getName()); + log.error("线程编号"+Thread.currentThread().getName()); + }); + thread.start(); + acsToWmsService.syncDemo(); + return new ResponseEntity<>(HttpStatus.CREATED); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 49c9062..f582d80 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -27,7 +28,9 @@ import org.nl.acs.device_driver.lamp_three_color.LampThreecolorDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_fold_disc_site.LnshFoldDiscSiteDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_station.LnshStationDeviceDriver; import org.nl.acs.device_driver.standard_emptypallet_site.StandardEmptyPalletSiteDeviceDriver; +import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; import org.nl.acs.ext.wms.data.AcsToWmsData.feedBackTaskStatus.FeedBackTaskStatusRequest; +import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; @@ -40,10 +43,12 @@ import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.acs.task.service.dto.TaskFeedbackDto; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.service.ParamService; +import org.nl.modules.system.service.impl.ParamServiceImpl; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; @@ -51,6 +56,7 @@ import org.nl.modules.wql.exception.WDKException; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -73,25 +79,26 @@ import java.util.regex.Pattern; public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { List tasks = new ArrayList(); - - private final DeviceAppService deviceAppService; - - private final RouteLineService routelineserver; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private RouteLineService routelineserver; @Autowired private AcsToWmsService acstowmsService; @Autowired + @Lazy private TaskFeedbackService taskFeedbackService; + @Autowired + private ParamService acsConfigService; - private final ParamService acsConfigService; - - - private final RouteLineService routeLineService; - - private final DeviceAssignedService deviceAssignedService; + @Autowired + private RouteLineService routeLineService; + @Autowired + private DeviceAssignedService deviceAssignedService; @Autowired private InstructionService instructionService; - - private final StorageCellService storageCellService; + @Autowired + StorageCellService storageCellService; @Override public void autoInitial() throws Exception { diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java b/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java index 269c7f5..d9e80c2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java @@ -21,8 +21,6 @@ import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; import net.dreamlu.mica.ip2region.core.IpInfo; -import nl.basjes.parse.useragent.UserAgent; -import nl.basjes.parse.useragent.UserAgentAnalyzer; import org.nl.modules.common.config.ElAdminProperties; import org.nl.modules.wql.util.SpringContextHolder; @@ -50,13 +48,6 @@ public class StringUtils { private final static Ip2regionSearcher IP_SEARCHER = SpringContextHolder.getBean(Ip2regionSearcher.class); - private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer - .newBuilder() - .hideMatcherLoadStats() - .withCache(10000) - .withField(UserAgent.AGENT_NAME_VERSION) - .build(); - /** * 驼峰命名法工具 * @@ -182,11 +173,11 @@ public class StringUtils { */ public static String getCityInfo(String ip) { if (ElAdminProperties.ipLocal) { - // return getLocalCityInfo(ip); + // return getLocalCityInfo(ip); return "局域网"; } else { return "局域网"; - // return getHttpCityInfo(ip); + // return getHttpCityInfo(ip); } } @@ -212,8 +203,7 @@ public class StringUtils { } public static String getBrowser(HttpServletRequest request) { - UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent")); - return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue(); + return "default"; } /** diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index e372c73..122f61f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -75,14 +75,6 @@ public class LogAspect { */ @Around("logPointcut()") public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - // 方法路径 - String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; - String params=getParameter(method, joinPoint.getArgs()); -// log.info("请求方法:{}",methodName); -// log.info("请求方法参数:{}",params); - Object result; currentTime.set(System.currentTimeMillis()); result = joinPoint.proceed(); diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java index caaffdd..957b802 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java @@ -35,6 +35,7 @@ import org.nl.modules.logging.service.mapstruct.LogErrorMapper; import org.nl.modules.logging.service.mapstruct.LogSmallMapper; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; @@ -81,13 +82,11 @@ public class LogServiceImpl implements LogService { } @Override - @Transactional(rollbackFor = Exception.class) + @Async public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log logDto) { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); org.nl.modules.logging.annotation.Log aopLog = method.getAnnotation(org.nl.modules.logging.annotation.Log.class); - // 方法路径 String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java index 31c7793..69b5181 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java @@ -3,7 +3,6 @@ package org.nl.modules.logicflow.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/AsyncLuceneAppender.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/AsyncLuceneAppender.java new file mode 100644 index 0000000..d4f3935 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/AsyncLuceneAppender.java @@ -0,0 +1,43 @@ +package org.nl.modules.lucene.common; +/** + * @author ldjun + * @version 1.0 + * @date 2023年08月24日 13:00 + * @desc desc + */ + +import ch.qos.logback.classic.spi.ILoggingEvent; +import cn.hutool.core.util.IdUtil; +import com.yomahub.tlog.core.context.AspectLogContext; +import com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.MDC; + +import java.util.Map; + +public class AsyncLuceneAppender extends AspectLogbackAsyncAppender { + + + @Override + protected void append(ILoggingEvent event) { + String traceId = AspectLogContext.getLogValue(); + if (StringUtils.isEmpty(traceId)){ + traceId = IdUtil.nanoId()+"@"; + AspectLogContext.putLogValue(traceId); + }else { + if (!traceId.contains("@")){ + AspectLogContext.putLogValue(traceId+"@"); + } + } + if (StringUtils.isNotEmpty(traceId)){ + MDC.put("traceId",traceId); + Map mdcPropertyMap = event.getMDCPropertyMap(); + if (mdcPropertyMap.getClass().getName().contains("SynchronizedMap")){ + mdcPropertyMap.put("traceId",traceId); + } + MDC.clear(); + } + super.append(event); + } + +} diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneAppender.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneAppender.java index 56dd6ca..c3cb0d3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneAppender.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneAppender.java @@ -59,21 +59,19 @@ public class LuceneAppender extends AppenderBase { protected void append(ILoggingEvent event) { String message = event.getFormattedMessage(); try { - LuceneLogDto luceneLogDto = JSONObject.parseObject(message, LuceneLogDto.class); - -// LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), -// String.valueOf(itemDto.getHis_item_value()), String.valueOf(itemDto.getItem_value())); -// luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); - //IndexWriter indexWriter = LuceneIndexWriter.getIndexWriter(); - //创建一个Document对象 + String[] split = message.split("@"); + LuceneLogDto luceneLogDto = JSONObject.parseObject(split[1], LuceneLogDto.class); Document document = new Document(); try { - //记录索引开始时间 - long startTime = System.currentTimeMillis(); //向document对象中添加域。 + Map mdcPropertyMap = event.getMDCPropertyMap(); + String traceId = mdcPropertyMap.get("traceId"); + System.out.println("---追踪号---"+traceId); + if (ObjectUtil.isNotEmpty(traceId)) { + document.add(new StringField("trace_id", traceId, Field.Store.YES)); + } if (ObjectUtil.isNotEmpty(luceneLogDto.getDevice_code())) { document.add(new StringField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); -// document.add(new TextField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); } if (ObjectUtil.isNotEmpty(luceneLogDto.getContent())) { document.add(new StringField("fieldContent", luceneLogDto.getContent(), Field.Store.YES)); @@ -93,9 +91,6 @@ public class LuceneAppender extends AppenderBase { document.add(new StringField("logType", luceneLogDto.getLogType(), Field.Store.YES)); document.add(new StringField("logTime", DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"), Field.Store.YES)); document.add(new NumericDocValuesField("logTime",System.currentTimeMillis()));//排序 - //记录索引结束时间 - long endTime = System.currentTimeMillis(); - // log.info("建立索引共耗时{}毫秒", endTime - startTime); try { indexWriter.addDocument(document); diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java deleted file mode 100644 index c37e2f5..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.nl.modules.lucene.common; - -import cn.hutool.core.date.DateUtil; -import org.apache.lucene.index.CorruptIndexException; -import org.apache.lucene.index.IndexWriter; -import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.FSDirectory; -import org.nl.modules.lucene.config.UrlConfig; -import org.wltea.analyzer.lucene.IKAnalyzer; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class LuceneIndexWriter { -// private static IndexWriter indexWriter; -// -// static { -// try { -// Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath()); -// IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); -// indexWriter = new IndexWriter(directory, config); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/ -// Runtime.getRuntime().addShutdownHook(new Thread(){ -// @Override -// public void run() { -// try { -// closeIndexWriter(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// }); -// } -// /**在线程结束时,自动关闭IndexWriter*/ -// public static IndexWriter getIndexWriter() { -// return indexWriter; -// } -// /**关闭IndexWriter -// * @throws IOException -// * @throws CorruptIndexException */ -// public static void closeIndexWriter() throws Exception { -// if(indexWriter != null) { -// indexWriter.close(); -// } -// } -// -// public static void main(String[] args) throws IOException { -// indexWriter.deleteAll(); -// } -// - public static String getDate(String timeString) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 - Date date = sdf.parse(timeString); - timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 - return timeString; - } - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java index 9cd0af2..4a37c3a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java @@ -18,10 +18,9 @@ import org.apache.lucene.util.BytesRef; import org.wltea.analyzer.lucene.IKAnalyzer; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; /** * lucene查询器 @@ -33,41 +32,27 @@ public class Searcher { //获取要查询的路径,也就是索引所在的位置 Directory dir = FSDirectory.open(Paths.get(indexDir)); IndexReader reader = DirectoryReader.open(dir); - //构建IndexSearcher IndexSearcher searcher = new IndexSearcher(reader); - //标准分词器,会自动去掉空格啊,is a the等单词 - Analyzer analyzer = new IKAnalyzer(true); -// Analyzer analyzer = new StandardAnalyzer(); -// Analyzer analyzer = new IKAnalyzer(false); - //查询解析器 -// QueryParser queryParser = new QueryParser("fieldContent", analyzer); - - //记录索引开始时间 - long startTime = System.currentTimeMillis(); // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数: int pageSize = Integer.parseInt(whereJson.get("size").toString());// 每页条数 int pageNum = Integer.parseInt(whereJson.get("page").toString());// 当前页码 - int start = pageNum * pageSize;// 当前页的起始条数 - int end = start + pageSize;// 当前页的结束条数(不能包含) - // 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序 - Sort sort = new Sort(new SortField("logTime", SortField.Type.LONG,true)); - TopDocs docs = null; BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); //时间范围查询 String startDate = (String) whereJson.get("begin_time"); String endDate = (String) whereJson.get("end_time"); - Calendar calendar=Calendar.getInstance(); - calendar.set(1970, 0, 1); + if (startDate == null){ + Calendar calendar=Calendar.getInstance(); + calendar.set(1970, 0, 1); startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); }else{ - startDate = LuceneIndexWriter.getDate(startDate); + startDate = getDate(startDate); } if (endDate == null){ endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); } else { - endDate = LuceneIndexWriter.getDate(endDate); + endDate = getDate(endDate); } TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST); @@ -95,21 +80,19 @@ public class Searcher { WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*")); booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); } - docs = searcher.search(booleanQueryBuilder.build(), end,sort); - //记录索引时间 - long endTime = System.currentTimeMillis(); - log.info("匹配{}共耗时{}毫秒",booleanQueryBuilder.build(),(endTime-startTime)); - log.info("查询到{}条日志文件", docs.totalHits.value); - List list = new ArrayList<>(); - ScoreDoc[] scoreDocs = docs.scoreDocs; - if (end > docs.totalHits.value) end = (int) docs.totalHits.value; - JSONArray array = new JSONArray(); - for (int i = start; i < end; i++) { - ScoreDoc scoreDoc = scoreDocs[i]; + TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("logTime", SortField.Type.LONG,true)), 20000, 0); + searcher.search(booleanQueryBuilder.build(), collector); + TopDocs topDocs = collector.topDocs(pageNum*pageSize, pageSize); + int totalSize = collector.getTotalHits(); + ScoreDoc[] scoreDocs = topDocs.scoreDocs; + + List list = new ArrayList<>(); + for (ScoreDoc scoreDoc : scoreDocs) { Document doc = reader.document(scoreDoc.doc); JSONObject object = new JSONObject(); object.put("content",doc.get("fieldContent")); +// object.put("trace_id",doc.get("trace_id")); object.put("device_code",doc.get("device_code")); object.put("logTime",doc.get("logTime")); object.put("method",doc.get("method")); @@ -117,28 +100,21 @@ public class Searcher { object.put("requestparam",doc.get("requestparam")); object.put("responseparam",doc.get("responseparam")); if(doc.get("fieldContent") != null) { - array.add(object); + list.add(object); } } - for(Object logDto:array){ - log.info(logDto.toString()); - } reader.close(); + dir.close(); JSONObject jo = new JSONObject(); - jo.put("content", array); - jo.put("totalElements", docs.totalHits.value); + jo.put("content", list); + jo.put("totalElements", totalSize); return jo; } - public static void main(String[] args) { - String indexDir = "D:\\lucene\\index"; - //查询这个字符串 - String q = "07.832"; - Map whereJson = null; - try { - search(indexDir, q,whereJson); - } catch (Exception e) { - e.printStackTrace(); - } + public static String getDate(String timeString) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 + Date date = sdf.parse(timeString); + timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 + return timeString; } } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java index 70619e6..3357671 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java @@ -12,7 +12,6 @@ import org.apache.lucene.document.Field; import org.apache.lucene.document.StringField; import org.apache.lucene.document.TextField; import org.apache.lucene.index.IndexWriter; -import org.nl.modules.lucene.common.LuceneIndexWriter; import org.nl.modules.lucene.enums.LogTypeEnum; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; diff --git a/acs/nladmin-system/src/main/resources/log/AcsToWms.xml b/acs/nladmin-system/src/main/resources/log/AcsToWms.xml index df3efa3..e3182fb 100644 --- a/acs/nladmin-system/src/main/resources/log/AcsToWms.xml +++ b/acs/nladmin-system/src/main/resources/log/AcsToWms.xml @@ -10,7 +10,7 @@ 15 - 200MB + 100MB 2GB @@ -19,15 +19,14 @@ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${log.charset} - - - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/src/main/resources/log/AutoCreateInst.xml b/acs/nladmin-system/src/main/resources/log/AutoCreateInst.xml index 1ac8de4..46daf98 100644 --- a/acs/nladmin-system/src/main/resources/log/AutoCreateInst.xml +++ b/acs/nladmin-system/src/main/resources/log/AutoCreateInst.xml @@ -10,7 +10,7 @@ 15 - 200MB + 100MB 2GB @@ -21,13 +21,12 @@ - - - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/src/main/resources/log/LnshRGVDeviceDriver.xml b/acs/nladmin-system/src/main/resources/log/LnshRGVDeviceDriver.xml index 6920f4f..436236e 100644 --- a/acs/nladmin-system/src/main/resources/log/LnshRGVDeviceDriver.xml +++ b/acs/nladmin-system/src/main/resources/log/LnshRGVDeviceDriver.xml @@ -10,7 +10,7 @@ 15 - 200MB + 100MB 2GB @@ -21,13 +21,12 @@ - - - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/src/main/resources/log/Lucene.xml b/acs/nladmin-system/src/main/resources/log/Lucene.xml deleted file mode 100644 index f00bdbd..0000000 --- a/acs/nladmin-system/src/main/resources/log/Lucene.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - ${LOG_HOME}/lucene/${DEVICECODE}/%d{yyyy-MM-dd}.%i.log - - 15 - - 200MB - - 2GB - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - ${log.charset} - - - - - - - - - 512 - - - - - - - - - diff --git a/acs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml b/acs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml index a10d776..402e64a 100644 --- a/acs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml +++ b/acs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml @@ -10,7 +10,7 @@ 15 - 200MB + 100MB 2GB @@ -22,12 +22,12 @@ - - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml b/acs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml index 53bcb88..4b8a81a 100644 --- a/acs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml +++ b/acs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml @@ -10,7 +10,7 @@ 15 - 200MB + 100MB 2GB @@ -21,13 +21,12 @@ - - - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/src/main/resources/log/WmsToAcs.xml b/acs/nladmin-system/src/main/resources/log/WmsToAcs.xml index e5d9847..393d6dc 100644 --- a/acs/nladmin-system/src/main/resources/log/WmsToAcs.xml +++ b/acs/nladmin-system/src/main/resources/log/WmsToAcs.xml @@ -10,7 +10,7 @@ 15 - 200MB + 100MB 2GB @@ -21,13 +21,12 @@ - - - - - - + + + + 512 + + + diff --git a/acs/nladmin-system/src/main/resources/logback-spring.xml b/acs/nladmin-system/src/main/resources/logback-spring.xml index df3d92d..ee5f412 100644 --- a/acs/nladmin-system/src/main/resources/logback-spring.xml +++ b/acs/nladmin-system/src/main/resources/logback-spring.xml @@ -21,14 +21,13 @@ https://juejin.cn/post/6844903775631572999 - - - - - - - - + + + + + + + @@ -45,7 +44,7 @@ https://juejin.cn/post/6844903775631572999 15 - 200MB + 100MB 20GB @@ -70,65 +69,12 @@ https://juejin.cn/post/6844903775631572999 - - 1000 - - ${LOKI_URL}/push - - - - - ${log.pattern} - - true - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,54 +84,38 @@ https://juejin.cn/post/6844903775631572999 - - - + - + - - - + - - + - - - + - - + - - + - - + - - + - - - - - diff --git a/acs/nladmin-ui/src/views/monitor/lucene/index.vue b/acs/nladmin-ui/src/views/monitor/lucene/index.vue index 36be01e..83386ea 100644 --- a/acs/nladmin-ui/src/views/monitor/lucene/index.vue +++ b/acs/nladmin-ui/src/views/monitor/lucene/index.vue @@ -16,6 +16,7 @@ +