Jelajahi Sumber

定时任务

Gaokun Wang 4 bulan lalu
induk
melakukan
7f07b456fe

+ 2 - 2
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AlgorithmController.java

@@ -146,11 +146,11 @@ public class AlgorithmController {
      * @return org.eco.common.core.core.domain.CommonResult<java.lang.String> 结果
      **/
     @PostMapping("/execute/express")
-    public CommonResult<String> executeExpress(@RequestBody ExpressBo expressBo) throws Exception {
+    public CommonResult<Object> executeExpress(@RequestBody ExpressBo expressBo) throws Exception {
         String express = expressBo.getExpression();
         Map<String, Object> variables = expressBo.getVariables();
         // 执行表达式求值
         Object result = formulaService.evaluateExpression(express, variables);
-        return CommonResult.success(result.toString(), "");
+        return CommonResult.success(result);
     }
 }

+ 9 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/controller/FaultStatisticsController.java

@@ -58,6 +58,14 @@ public class FaultStatisticsController extends BaseController {
         return CommonResult.success(faultStatisticsService.exclusionListPage(faultStatisticsBo));
     }
 
+    /**
+     * 查询故障统计列表
+     */
+    @GetMapping("/exclusionListAll")
+    public CommonResult<List<FaultStatisticsVo>> exclusionListAll(FaultStatisticsBo faultStatisticsBo) {
+        return CommonResult.success(faultStatisticsService.exclusionList(faultStatisticsBo));
+    }
+
     /**
      * 查询故障统计列表
      */
@@ -72,7 +80,7 @@ public class FaultStatisticsController extends BaseController {
      */
     @SaCheckPermission("als:faultStatistics:list")
     @GetMapping("/statistics")
-    public CommonResult<List<FaultStatisticsVo>> Statistics(FaultStatisticsBo faultStatisticsBo) {
+    public CommonResult<List<FaultStatisticsVo>> statistics(FaultStatisticsBo faultStatisticsBo) {
         return CommonResult.success(faultStatisticsService.Statistics(faultStatisticsBo));
     }
 

+ 0 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/controller/KGraphTaskController.java

@@ -66,7 +66,6 @@ public class KGraphTaskController extends BaseController {
     /**
      * 运行知识图谱任务
      */
-    @RepeatSubmit()
     @PostMapping("/pro")
     public CommonResult<Void> proTask(@RequestBody KGraphTaskBo kGraphTaskBo) {
         if (StrUtil.isBlank(kGraphTaskBo.getTaskType())) {

+ 3 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/controller/WarningController.java

@@ -3,6 +3,7 @@ package org.eco.als.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
@@ -170,6 +171,7 @@ public class WarningController extends BaseController {
         SysOssVo ossVo = sysOssService.getById(dataImportVo.getOssId());
         // 数据库资源地址
         String path = StringUtils.substringAfter(ossVo.getFileName(), Constants.RESOURCE_PREFIX);
-        return CommonResult.success(String.valueOf(CsvUtils.getPlaybackByHeaders(path, Arrays.asList(columnData.split(",")), null)), "");
+        JSONObject res = CsvUtils.getPlaybackByHeaders(path, Arrays.asList(columnData.split(",")), null);
+        return CommonResult.success(ObjectUtil.isEmpty(res) ? null : String.valueOf(res), "");
     }
 }

+ 0 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/JudgeFaultLogicBo.java

@@ -44,7 +44,6 @@ public class JudgeFaultLogicBo extends BaseEntity{
     /**
      * 模型
      */
-    @NotBlank(message = "模型不能为空")
     private String pattern;
 
     /**

+ 7 - 8
als-modules/agile-assurance/src/main/java/org/eco/als/service/IFaultStatisticsService.java

@@ -1,16 +1,13 @@
 package org.eco.als.service;
 
-import java.util.List;
-
-import org.eco.als.domain.vo.FaultStatisticsWbVo;
-import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.als.domain.FaultStatistics;
-import org.eco.als.domain.vo.FaultStatisticsVo;
 import org.eco.als.domain.bo.FaultStatisticsBo;
-import org.eco.common.orm.core.service.IBaseService;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.web.multipart.MultipartFile;
+import org.eco.als.domain.vo.FaultStatisticsVo;
+import org.eco.als.domain.vo.FaultStatisticsWbVo;
 import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.IBaseService;
+
+import java.util.List;
 
 /**
  * 故障统计Service接口
@@ -71,6 +68,8 @@ public interface IFaultStatisticsService extends IBaseService<FaultStatistics> {
      */
     PageResult<FaultStatisticsVo> exclusionListPage(FaultStatisticsBo faultStatisticsBo);
 
+    List<FaultStatisticsVo> exclusionList(FaultStatisticsBo faultStatisticsBo);
+
     /**
      * 新增故障统计
      *

+ 10 - 6
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/AlgorithmService.java

@@ -1,5 +1,6 @@
 package org.eco.als.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -77,6 +78,7 @@ public class AlgorithmService implements IAlgorithmService {
         try {
             String result = HttpUtils.postJson(modelVo.getUrl(), map);
             JSONObject jsonObject = JSONUtil.parseObj(result);
+            log.info("返回值:{}", jsonObject);
             String data = jsonObject.getStr("data");
             String status = jsonObject.getStr("status");
             String msg = jsonObject.getStr("msg");
@@ -214,11 +216,11 @@ public class AlgorithmService implements IAlgorithmService {
         modelBo.setPartId(algorithmBo.getPartId());
         modelBo.setType("5");
         List<ModelVo> list = modelService.selectList(modelBo);
-        // 模型相关信息
-        ModelVo modelVo = list.getFirst();
-        if (ObjectUtil.isNull(modelVo)) {
+        if (CollUtil.isEmpty(list)) {
             throw new BusinessException("模型信息为空,请检查!");
         }
+        // 模型相关信息
+        ModelVo modelVo = list.getFirst();
         algorithmBo.setColumnData(modelVo.getColumnData().split(","));
         SysOssVo sysOssVo = getSysOssVo(algorithmBo);
         if (sysOssVo == null) {
@@ -266,11 +268,10 @@ public class AlgorithmService implements IAlgorithmService {
         modelBo.setPartId(algorithmBo.getPartId());
         modelBo.setType("6");
         List<ModelVo> list = modelService.selectList(modelBo);
-        ModelVo modelVo = list.getFirst();
-        if (ObjectUtil.isNull(modelVo)) {
+        if (CollUtil.isEmpty(list)) {
             throw new BusinessException("模型信息为空,请检查!");
         }
-
+        ModelVo modelVo = list.getFirst();
         List<String> urls = new ArrayList<>();
         for (Long ossId : algorithmBo.getOssIds()) {
             SysOssVo sysOss = ossService.getById(ossId);
@@ -314,6 +315,9 @@ public class AlgorithmService implements IAlgorithmService {
         String tempPathCsv = EcoConfig.getTempPath() + "/" + CsvUtils.getName(FileUtils.getNameNotSuffix(sysOss.getOriginalName()));
 
         JSONArray jsonArray = CsvUtils.getCsvDataByHeaders(path, Arrays.asList(algorithmBo.getColumnData()), null);
+        if (CollUtil.isEmpty(jsonArray)) {
+            throw new BusinessException("获取参数列为空。");
+        }
         File file = CsvUtils.jsonToFileCsvByJsonArray(jsonArray, tempPathCsv);
 
         if (ObjectUtil.isNotNull(file)) {

+ 32 - 6
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/DataImportServiceImpl.java

@@ -112,7 +112,22 @@ public class DataImportServiceImpl extends BaseServiceImpl<DataImportMapper, Dat
      */
     @Override
     public List<DataImportVo> selectList(DataImportBo dataImportBo) {
-        QueryWrapper queryWrapper = buildQueryWrapper(dataImportBo);
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(DATA_IMPORT.OSS_ID.eq
+            (dataImportBo.getOssId()));
+        queryWrapper.and(DATA_IMPORT.SOURCE.eq
+            (dataImportBo.getSource()));
+        queryWrapper.and(DATA_IMPORT.SORTIE_NO.eq
+            (dataImportBo.getSortieNo()));
+        if (StringUtils.isNotBlank(dataImportBo.getAircraftId())) {
+            queryWrapper.and(DATA_IMPORT.AIRCRAFT_ID.in
+                (dataImportBo.getAircraftId().split(",")));
+        }
+        queryWrapper.and(DATA_IMPORT.FLIGHT_DATE.eq
+            (dataImportBo.getFlightDate()));
+        queryWrapper.and(DATA_IMPORT.STATUS.eq
+            (dataImportBo.getStatus()));
+        queryWrapper.orderBy(DATA_IMPORT.CREATE_TIME.asc());
         return this.listAs(queryWrapper, DataImportVo.class);
     }
 
@@ -137,13 +152,23 @@ public class DataImportServiceImpl extends BaseServiceImpl<DataImportMapper, Dat
      */
     @Override
     public boolean insert(DataImportBo dataImportBo) {
-        excelToFileCsv(dataImportBo);
+        fileToFileCsv(dataImportBo);
         DataImport dataImport = MapstructUtils.convert(dataImportBo, DataImport.class);
-        return this.save(dataImport);//使用全局配置的雪花算法主键生成器生成ID值
+        //使用全局配置的雪花算法主键生成器生成ID值
+        return this.save(dataImport);
     }
 
-    private void excelToFileCsv(DataImportBo dataImportBo) {
+    private void fileToFileCsv(DataImportBo dataImportBo) {
         SysOssVo ossVo = ossService.getById(dataImportBo.getOssId());
+
+        if (StrUtil.equals(".txt", ossVo.getFileSuffix())) {
+            String path = StringUtils.substringAfter(ossVo.getFileName(), Constants.RESOURCE_PREFIX);
+            String pathCsv = EcoConfig.getTempPath() + "/" + CsvUtils.getName(FileUtils.getNameNotSuffix(ossVo.getOriginalName()));
+            File file = CsvUtils.txtToFileCsv(EcoConfig.getProfile() + path, pathCsv);
+            ossVo = ossService.upload(file);
+            FileUtil.del(pathCsv);
+            dataImportBo.setOssId(ossVo.getOssId());
+        }
         if (!StrUtil.equals(".csv", ossVo.getFileSuffix())) {
             String path = StringUtils.substringAfter(ossVo.getFileName(), Constants.RESOURCE_PREFIX);
             String pathCsv = EcoConfig.getTempPath() + "/" + CsvUtils.getName(FileUtils.getNameNotSuffix(ossVo.getOriginalName()));
@@ -163,7 +188,8 @@ public class DataImportServiceImpl extends BaseServiceImpl<DataImportMapper, Dat
     @Override
     public boolean insertWithPk(DataImportBo dataImportBo) {
         DataImport dataImport = MapstructUtils.convert(dataImportBo, DataImport.class);
-        return dataImportMapper.insertWithPk(dataImport) > 0;//前台传来主键值
+        //前台传来主键值
+        return dataImportMapper.insertWithPk(dataImport) > 0;
     }
 
     /**
@@ -176,7 +202,7 @@ public class DataImportServiceImpl extends BaseServiceImpl<DataImportMapper, Dat
     public boolean update(DataImportBo dataImportBo) {
         DataImportVo dataImportVo = this.selectById(dataImportBo.getId());
         if (!ObjectUtil.equals(dataImportVo.getOssId(), dataImportBo.getOssId())) {
-            excelToFileCsv(dataImportBo);
+            fileToFileCsv(dataImportBo);
         }
         DataImport dataImport = MapstructUtils.convert(dataImportBo, DataImport.class);
         if (ObjectUtil.isNotNull(dataImport) && ObjectUtil.isNotNull(dataImport.getId())) {

+ 21 - 11
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FaultStatisticsServiceImpl.java

@@ -68,16 +68,18 @@ public class FaultStatisticsServiceImpl extends BaseServiceImpl<FaultStatisticsM
                 faultStatisticsBo.getEndStatisticsDate());
         }
         if (faultStatisticsBo.getDistinctField() != null) {
-            if (faultStatisticsBo.getDistinctField().equals("groups")) {
-                queryWrapper.select("DISTINCT groups"); // 指定去重字段
-            } else if (faultStatisticsBo.getDistinctField().equals("major")) {
-                queryWrapper.select("DISTINCT major");
-            } else if (faultStatisticsBo.getDistinctField().equals("aircraft_model")) {
-                queryWrapper.select("DISTINCT aircraft_model");
-            } else if (faultStatisticsBo.getDistinctField().equals("aircraft_num")) {
-                queryWrapper.select("DISTINCT aircraft_num");
-            } else if (faultStatisticsBo.getDistinctField().equals("faulty_parts_name")) {
-                queryWrapper.select("DISTINCT faulty_parts_name");
+            switch (faultStatisticsBo.getDistinctField()) {
+                // 指定去重字段
+                case "groups" -> queryWrapper.select("DISTINCT groups").where("groups is not null");
+                case "major" -> queryWrapper.select("DISTINCT major").where("major is not null");
+                case "aircraft_model" -> {
+                    queryWrapper.select("DISTINCT aircraft_model").where("aircraft_model is not null");
+                }
+                case "aircraft_num" -> {
+                }
+                case "faulty_parts_name" -> {
+                    queryWrapper.select("DISTINCT faulty_parts_name").where("faulty_parts_name is not null");
+                }
             }
         }
 
@@ -206,11 +208,19 @@ public class FaultStatisticsServiceImpl extends BaseServiceImpl<FaultStatisticsM
     @Override
     public PageResult<FaultStatisticsVo> exclusionListPage(FaultStatisticsBo faultStatisticsBo) {
         QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
-        queryWrapper.and("EXCLUSION_TIME = ''");
+        queryWrapper.and(FAULT_STATISTICS.EXCLUSION_PEOPLE_NUM.isNull());
+//        queryWrapper.and("EXCLUSION_TIME = ''");
         Page<FaultStatisticsVo> page = this.pageAs(PageQuery.build(), queryWrapper, FaultStatisticsVo.class);
         return PageResult.build(page);
     }
 
+    @Override
+    public List<FaultStatisticsVo> exclusionList(FaultStatisticsBo faultStatisticsBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(FAULT_STATISTICS.EXCLUSION_PEOPLE_NUM.isNull());
+        return this.listAs(queryWrapper, FaultStatisticsVo.class);
+    }
+
     /**
      * 新增故障统计
      *

+ 13 - 3
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/FormulaService.java

@@ -1,6 +1,5 @@
 package org.eco.als.service.impl;
 
-import cn.hutool.core.collection.CollUtil;
 import com.ql.util.express.DefaultContext;
 import com.ql.util.express.ExpressRunner;
 import org.eco.als.service.IFormulaService;
@@ -19,8 +18,19 @@ public class FormulaService implements IFormulaService {
     @Override
     public Object evaluateExpression(String expression, Map<String, Object> variablesMap) throws Exception {
         DefaultContext<String, Object> context = new DefaultContext<>();
-        Map<String, Object> variables = CollUtil.isEmpty(variablesMap) ? buildVariableContext(expression) : variablesMap;
-        context.putAll(variables);
+//        Map<String, Object> variables = CollUtil.isEmpty(variablesMap) ? buildVariableContext(expression) : variablesMap;
+//        context.putAll(variables);
+        // 设置用户参数
+        context.put("age", 21);
+        context.put("monthlyIncome", 8000);
+        context.put("collateralValue", 600000);
+        context.put("creditScore", 680);
+        context.put("hasGuarantor", true);
+
+        expression =
+            "age >= 25 " +
+                "&& (monthlyIncome >= 10000 || collateralValue >= 500000) " +
+                "&& (creditScore >= 700 || hasGuarantor == true)";
         return runner.execute(expression, context, null, true, false);
     }
 

+ 33 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/task/FaultTask.java

@@ -0,0 +1,33 @@
+package org.eco.als.task;
+
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.als.service.IFaultStatisticsService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * 故障定时任务
+ *
+ * @author wgk
+ * @date 2025-2-18
+ */
+@Slf4j
+@Component
+@EnableAsync
+@EnableScheduling
+public class FaultTask {
+    @Resource
+    private IFaultStatisticsService faultStatisticsService;
+
+    @Async("TaskExecutor")
+    @Scheduled(cron = "0 */30 * * * *")
+    public void faultStatisticsTask() {
+        log.info("获取ZK故障信息定时任务=========开始");
+        faultStatisticsService.getExtraStatistics();
+        log.info("获取ZK故障信息定时任务=========结束");
+    }
+}

+ 36 - 2
als-modules/agile-assurance/src/main/java/org/eco/als/utils/CsvUtils.java

@@ -16,6 +16,7 @@ import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.eco.common.core.config.EcoConfig;
+import org.eco.common.core.exception.BusinessException;
 import org.eco.common.core.utils.DateUtils;
 import org.eco.common.core.utils.StringUtils;
 import org.eco.common.core.utils.uuid.Seq;
@@ -104,7 +105,7 @@ public class CsvUtils {
             // 将JSON数组写入CSV文件
             return FileUtil.writeLines(jsonArrayToCsv(jsonArray), csvFilePath, CharsetUtil.CHARSET_UTF_8);
         } catch (Exception e) {
-            log.error("json转csv文件错误:{}", e.getMessage());
+            log.error("jsonToFileCsvByJsonArray: json转csv文件错误:{}", e.getMessage());
         }
         return null;
     }
@@ -183,18 +184,21 @@ public class CsvUtils {
      * @return 参数名称列表
      */
     public static JSONArray getCsvDataByHeaders(String csvFilePath, List<String> headerNames, Integer step) {
+        log.info("参数列:{}", headerNames);
         List<CsvRow> rows = getCsvRowList(EcoConfig.getProfile() + csvFilePath);
         // 获取CSV表头,即第一行数据
         List<String> headers = rows.get(0).getRawList();
+        log.info("CSV表头:{}", headers.toString());
         List<Integer> indexList = new ArrayList<>();
         headerNames.forEach(name -> {
             int index = headers.indexOf(name);
             if (index != -1) {
+                log.info("匹配到的表头:{},索引为:{}", name, index);
                 indexList.add(index);
             }
         });
         if (CollectionUtil.isEmpty(indexList)) {
-            return null;
+            throw new BusinessException("参数列匹配为空!");
         }
         // 去除第一行,保留后续数据
         List<CsvRow> dataLines = rows.subList(1, rows.size());
@@ -212,17 +216,21 @@ public class CsvUtils {
         if (step != null) {
             jsonArray = reduceFrameRate(jsonArray, 10, step);
         }
+        log.info("处理后数据:{}", jsonArray.size());
         return jsonArray;
     }
 
     public static JSONObject getPlaybackByHeaders(String csvFilePath, List<String> headerNames, Integer step) {
+        log.info("getPlaybackByHeaders 参数列:{}", headerNames);
         List<CsvRow> rows = getCsvRowList(EcoConfig.getProfile() + csvFilePath);
         // 获取CSV表头,即第一行数据
         List<String> headers = rows.get(0).getRawList();
+        log.info("getPlaybackByHeaders CSV表头:{}", headers.toString());
         List<Integer> indexList = new ArrayList<>();
         headerNames.forEach(name -> {
             int index = headers.indexOf(name);
             if (index != -1) {
+                log.info("匹配到的表头:{},索引为:{}", name, index);
                 indexList.add(index);
             }
         });
@@ -295,6 +303,32 @@ public class CsvUtils {
         return jsonToFileCsv(json, csvFilePath);
     }
 
+    /**
+     * json转csv文件
+     *
+     * @param filePath    path
+     * @param csvFilePath path
+     */
+    public static File txtToFileCsv(String filePath, String csvFilePath) {
+        List<String> lines = FileUtil.readLines(filePath, CharsetUtil.CHARSET_UTF_8);
+//        // 读取Excel文件,获取ExcelReader
+//        ExcelReader reader = ExcelUtil.getReader(filePath);
+//        // 通过ExcelReader将Excel文件读取为List<Map>
+//        List<Map<String, Object>> readAll = reader.readAll();
+//        String json = JSONUtil.toJsonStr(readAll);
+        return txtToFileCsvByJsonArray(lines, csvFilePath);
+    }
+
+    public static File txtToFileCsvByJsonArray(List<String> lines, String csvFilePath) {
+        try {
+            // 将JSON数组写入CSV文件
+            return FileUtil.writeLines(lines, csvFilePath, CharsetUtil.CHARSET_UTF_8);
+        } catch (Exception e) {
+            log.error("txtToFileCsvByJsonArray: txt转csv文件错误:{}", e.getMessage());
+        }
+        return null;
+    }
+
     /**
      * json转csv文件
      *

+ 4 - 4
als-start/src/main/resources/application-prod.yml

@@ -30,7 +30,7 @@ mybatis-flex:
   # sql审计
   audit_enable: true
   # sql打印
-  sql_print: true
+  sql_print: false
   datasource:
     # 数据源-1
     ds1:
@@ -163,14 +163,14 @@ sms:
       sdk-app-id: 您的sdkAppId
 
 easy-es:
-  address: 127.0.0.1:9007
+  address: 127.0.0.1:9200
   banner: false # 默认为true 打印banner 若您不期望打印banner,可配置为false
-  username: #es用户名,若无则删去此行配置
+  username: elk #es用户名,若无则删去此行配置
   password: #es密码,若无则删去此行配置
 ## 知识图谱
 kgqa:
   ask-url: http://192.168.2.120:7074/kgqa/ask # kgqa问答接口
-  clause-url: http://192.168.2.120.89:7070/kgqa/split_sentence # kgqa分句接口
+  clause-url: http://192.168.2.120:7070/kgqa/split_sentence # kgqa分句接口
   extract-url: http://192.168.2.120:7071/kgqa/extract # kgqa抽取接口
   storage-url: http://192.168.2.120:7072/kgqa/storage # kgqa存储接口
 ## 空军航空装备维修保障支持系统

+ 4 - 2
als-start/src/main/resources/application.yml

@@ -9,9 +9,11 @@ eco:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/eco/uploadPath,Linux配置 /home/eco/uploadPath)
-  profile: D:/als/uploadPath
+#  profile: D:/als/uploadPath
+  profile: /home/als/uploadPath
   # 文件路径 示例( Windows配置D:/als/tempPath,Linux配置 /home/als/tempPath)
-  tempPath: D:/als/tempPath
+#  tempPath: D:/als/tempPath
+  tempPath: /home/als/tempPath
   # 获取ip地址开关
   addressEnabled: false
 

+ 1 - 1
pom.xml

@@ -93,7 +93,7 @@
             <id>prod</id>
             <properties>
                 <profiles.active>prod</profiles.active>
-                <logging.level>warn</logging.level>
+                <logging.level>info</logging.level>
             </properties>
         </profile>
     </profiles>