diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOperateLog.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOperateLog.java index 27ae65eb..9e3f187d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOperateLog.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOperateLog.java @@ -2,6 +2,8 @@ package com.ruoyi.sip.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.Getter; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -13,6 +15,8 @@ import com.ruoyi.common.core.domain.BaseEntity; * @author ruoyi * @date 2025-05-29 */ + +@Data public class ProjectOperateLog extends BaseEntity { private static final long serialVersionUID = 1L; @@ -36,65 +40,19 @@ public class ProjectOperateLog extends BaseEntity /** 项目id */ @Excel(name = "项目id") private Long projectId; + //记录类型 0:简略信息 1:详细信息 + private String logType; - public void setId(Long id) - { - this.id = id; - } + @Getter + public enum LogTypeEnum { + BRIEF("0", "简略信息"), + DETAIL("1", "详细信息"); + private final String value; + private final String desc; + LogTypeEnum(String value,String desc){ + this.value = value; + this.desc = desc; + } - public Long getId() - { - return id; - } - - public void setOperateLog(String operateLog) - { - this.operateLog = operateLog; - } - - public String getOperateLog() - { - return operateLog; - } - - public void setOperateUser(String operateUser) - { - this.operateUser = operateUser; - } - - public String getOperateUser() - { - return operateUser; - } - - public void setOperateTime(Date operateTime) - { - this.operateTime = operateTime; - } - - public Date getOperateTime() - { - return operateTime; - } - - public void setProjectId(Long projectId) - { - this.projectId = projectId; - } - - public Long getProjectId() - { - return projectId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("operateLog", getOperateLog()) - .append("operateUser", getOperateUser()) - .append("operateTime", getOperateTime()) - .append("projectId", getProjectId()) - .toString(); } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java index 5a700af8..a8c2c012 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.sip.domain.*; import com.ruoyi.sip.mapper.ProjectInfoMapper; import com.ruoyi.sip.service.*; @@ -69,6 +70,12 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { projectInfo.setProjectWorkProgressList(projectWorkProgresses); //查询操作日志信息 List projectOperateLogs = operateLogService.selectProjectOperateLogListByProjectId(projectInfo.getId()); + projectOperateLogs=projectOperateLogs.stream().filter(item->{ + if (ShiroUtils.getSysUser().isAdmin()) { + return ProjectOperateLog.LogTypeEnum.DETAIL.getValue().equals(item.getLogType()); + } + return ProjectOperateLog.LogTypeEnum.BRIEF.getValue().equals(item.getLogType()); + }).collect(Collectors.toList()); projectInfo.setProjectOperateLogList(projectOperateLogs); return projectInfo; } @@ -193,6 +200,9 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { private void recordOperationLogs(ProjectInfo projectInfo, ProjectInfo oldProjectInfo) { StringBuilder logContent = new StringBuilder(); + //简略信息变更 + StringBuilder logSimpleContent = new StringBuilder(); + int logSimpleIndex = 1; int logIndex = 1; // 比较项目信息字段差异 logIndex = compareField(logContent, logIndex, "项目名称", oldProjectInfo.getProjectName(), projectInfo.getProjectName()); @@ -221,7 +231,10 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { logIndex = compareField(logContent, logIndex, "竞争对手", oldProjectInfo.getCompetitor(), projectInfo.getCompetitor()); logIndex = compareField(logContent, logIndex, "关键技术问题", oldProjectInfo.getKeyProblem(), projectInfo.getKeyProblem()); logIndex = compareField(logContent, logIndex, "项目简述", oldProjectInfo.getProjectDesc(), projectInfo.getProjectDesc()); - + if (logIndex > 1) { + logSimpleIndex = logIndex; + logSimpleContent.append("1.配置信息发生变更\n"); + } // 配置信息变更 List oldHardwareList = oldProjectInfo.getHardwareProjectProductInfoList(); List oldSoftwareList = oldProjectInfo.getSoftwareProjectProductInfoList(); @@ -231,11 +244,12 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { // 比较硬件产品信息 logIndex = compareProductInfoList(logContent, logIndex, "硬件产品", oldHardwareList, newHardwareList); - + if (logSimpleIndex != logIndex) { + logSimpleContent.append(StringUtils.isNotEmpty(logSimpleContent)?"1.":"2.").append("产品信息发生变更"); + } // 比较软件产品信息 logIndex = compareProductInfoList(logContent, logIndex, "软件产品", oldSoftwareList, newSoftwareList); - // 插入操作日志 if (logContent.length() > 0) { ProjectOperateLog operateLog = new ProjectOperateLog(); @@ -243,6 +257,17 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { operateLog.setOperateLog(logContent.toString()); operateLog.setOperateTime(DateUtils.getNowDate()); operateLog.setOperateUser(ShiroUtils.getUserId().toString()); + operateLog.setLogType(ProjectOperateLog.LogTypeEnum.DETAIL.getValue()); + operateLogService.insertProjectOperateLog(operateLog); + //记录type + } + if (logSimpleContent.length() > 0){ + ProjectOperateLog operateLog = new ProjectOperateLog(); + operateLog.setProjectId(projectInfo.getId()); + operateLog.setOperateLog(logSimpleContent.toString()); + operateLog.setOperateTime(DateUtils.getNowDate()); + operateLog.setOperateUser(ShiroUtils.getUserId().toString()); + operateLog.setLogType(ProjectOperateLog.LogTypeEnum.BRIEF.getValue()); operateLogService.insertProjectOperateLog(operateLog); } } diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOperateLogMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOperateLogMapper.xml index f9e5fbd3..b66cffa3 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOperateLogMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOperateLogMapper.xml @@ -10,10 +10,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, operate_log, operate_user, operate_time, project_id from project_operate_log + select id, operate_log, operate_user, operate_time, project_id,log_type from project_operate_log