Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package com.sdm.common.log.aspect;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.log.annotation.SysLog;
|
||||
import com.sdm.common.log.dto.SysLogDTO;
|
||||
@@ -72,9 +73,9 @@ public class SysLogAspect {
|
||||
Long endTime = System.currentTimeMillis();
|
||||
logVo.setTime(endTime - startTime);
|
||||
logVo.setTenantId(ThreadLocalContext.getTenantId());
|
||||
log.info("[SysLogAspect] logVo:{}", JSON.toJSONString(logVo));
|
||||
SpringContextHolder.publishEvent(new SysLogEvent(logVo));
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.sdm.common.log.event;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.fasterxml.jackson.annotation.JsonFilter;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.ser.FilterProvider;
|
||||
@@ -89,6 +90,7 @@ public class SysLogListener implements InitializingBean {
|
||||
}
|
||||
|
||||
source.setBody(null);
|
||||
log.info("[SysLogListener] saveLog params:{}", JSON.toJSONString(source));
|
||||
sysLogFeignClient.saveLog(source);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.sdm.common.log.utils;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.URLUtil;
|
||||
@@ -28,6 +29,7 @@ import com.sdm.common.log.dto.SysLogDTO;
|
||||
import com.sdm.common.utils.DateUtils;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.expression.EvaluationContext;
|
||||
@@ -38,6 +40,7 @@ import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -47,6 +50,7 @@ import java.util.Objects;
|
||||
* @author L.cm
|
||||
*/
|
||||
@UtilityClass
|
||||
@Slf4j
|
||||
public class SysLogUtils {
|
||||
|
||||
public SysLogDTO getSysLog() {
|
||||
@@ -59,13 +63,30 @@ public class SysLogUtils {
|
||||
sysLog.setRemoteAddr(JakartaServletUtil.getClientIP(request));
|
||||
sysLog.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT));
|
||||
sysLog.setCreateBy(ObjectUtils.isNotEmpty(ThreadLocalContext.getUserName()) ? ThreadLocalContext.getUserName() : "anonymousUser");
|
||||
// 获取服务名称
|
||||
sysLog.setServiceId("simulation-" + SpringUtil.getProperty("spring.application.name"));
|
||||
try {
|
||||
// 获取服务名称
|
||||
sysLog.setServiceId("simulation-" + SpringUtil.getProperty("spring.application.name"));
|
||||
|
||||
// get 参数脱敏
|
||||
SysLogProperties logProperties = SpringUtil.getBean(SysLogProperties.class);
|
||||
Map<String, String[]> paramsMap = MapUtil.removeAny(request.getParameterMap(), ArrayUtil.toArray(logProperties.getExcludeFields(), String.class));
|
||||
sysLog.setParams(HttpUtil.toParams(paramsMap));
|
||||
// get 参数脱敏 - 创建副本而不是修改原Map
|
||||
SysLogProperties logProperties = SpringUtil.getBean(SysLogProperties.class);
|
||||
Map<String, String[]> originalParams = request.getParameterMap();
|
||||
if (!originalParams.isEmpty()) {
|
||||
// 创建可修改的副本
|
||||
Map<String, String[]> filteredParams = new HashMap<>(originalParams);
|
||||
// 移除需要排除的字段
|
||||
if (logProperties != null && CollectionUtil.isNotEmpty(logProperties.getExcludeFields())) {
|
||||
String[] excludeFields = ArrayUtil.toArray(logProperties.getExcludeFields(), String.class);
|
||||
for (String field : excludeFields) {
|
||||
filteredParams.remove(field);
|
||||
}
|
||||
}
|
||||
sysLog.setParams(HttpUtil.toParams(filteredParams));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 如果发生异常,记录简化信息
|
||||
log.warn("记录请求参数时发生异常: {}", e.getMessage());
|
||||
sysLog.setParams("parameter count: " + request.getParameterMap().size());
|
||||
}
|
||||
return sysLog;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.sdm.data.service.impl.dataFileHandle;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.sdm.common.entity.constants.NumberConstants;
|
||||
import com.sdm.common.entity.enums.ApproveFileDataTypeEnum;
|
||||
import com.sdm.common.entity.enums.ApproveTypeEnum;
|
||||
import com.sdm.data.model.entity.*;
|
||||
import com.sdm.data.service.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -25,6 +26,7 @@ public class UploadApproveStrategy implements ApproveStrategy {
|
||||
IFileUserPermissionService fileUserPermissionService = context.getFileUserPermissionService();
|
||||
IFileStorageService fileStorageService = context.getFileStorageService();
|
||||
IFileSimulationMappingService fileSimulationMappingService = context.getFileSimulationMappingService();
|
||||
ISimulationParameterLibraryCategoryObjectService paramObjectService = context.getParamObjectService();
|
||||
|
||||
// 审批通过
|
||||
if (NumberConstants.TWO == status) {
|
||||
@@ -50,6 +52,11 @@ public class UploadApproveStrategy implements ApproveStrategy {
|
||||
fileMetadataExtensionService.remove(new LambdaQueryWrapper<FileMetadataExtension>().in(FileMetadataExtension::getTFilemetaId, removeIds));
|
||||
fileUserPermissionService.remove(new LambdaQueryWrapper<FileUserPermission>().in(FileUserPermission::getTFilemetaId, removeIds));
|
||||
fileSimulationMappingService.remove(new LambdaQueryWrapper<FileSimulationMapping>().in(FileSimulationMapping::getFileId, removeIds));
|
||||
|
||||
// 如果是参数库审批 删除参数库对象 记录操作日志
|
||||
if (ApproveTypeEnum.PARAM_APPROVE.getCode() == context.getApproveType()) {
|
||||
paramObjectService.remove(new LambdaQueryWrapper<SimulationParameterLibraryCategoryObject>().in(SimulationParameterLibraryCategoryObject::getFileId, removeIds));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -35,10 +35,7 @@ import com.sdm.common.feign.impl.system.ApproveFeignClientImpl;
|
||||
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
|
||||
import com.sdm.common.utils.PageUtils;
|
||||
import com.sdm.common.utils.RandomUtil;
|
||||
import com.sdm.project.common.KeyResultTypeEnum;
|
||||
import com.sdm.project.common.MemberTypeEnum;
|
||||
import com.sdm.project.common.RunPerformanceStatusEnum;
|
||||
import com.sdm.project.common.TaskExeStatusEnum;
|
||||
import com.sdm.project.common.*;
|
||||
import com.sdm.project.dao.SimulationProjectMapper;
|
||||
import com.sdm.project.dao.SimulationRunMapper;
|
||||
import com.sdm.project.model.bo.ApprovalDeliverableContentsModel;
|
||||
@@ -1202,7 +1199,10 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
// 启动流程实例 多次执行会生成多个流程实例id,更新算例run表、同时更新flowable流程参数的流程实例id
|
||||
SdmResponse<ProcessInstanceResp> sdmResponse = flowableFeignClient.startByProcessDefinitionId(simulationRun.getProcessDefinitionId(), Collections.emptyMap());
|
||||
if (sdmResponse.getData() != null) {
|
||||
this.lambdaUpdate().set(SimulationRun::getFlowInstanceId, sdmResponse.getData().getProcessInstanceId()).eq(SimulationRun::getUuid, req.getRunId()).update();
|
||||
this.lambdaUpdate()
|
||||
.set(SimulationRun::getFlowInstanceId, sdmResponse.getData().getProcessInstanceId())
|
||||
.set(SimulationRun::getStatus, RunStatusEnum.RUNNING.getCode())
|
||||
.eq(SimulationRun::getUuid, req.getRunId()).update();
|
||||
flowableFeignClient.updateNodeParamProcessInstanceId(simulationRun.getProcessDefinitionId(), sdmResponse.getData().getProcessInstanceId());
|
||||
} else {
|
||||
return SdmResponse.failed("流程实例启动失败");
|
||||
|
||||
Reference in New Issue
Block a user