Browse Source

feat: [操作日志] 字典日志

master
memorylkf 2 months ago
parent
commit
c044291243
7 changed files with 138 additions and 2 deletions
  1. +20
    -1
      hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictData.java
  2. +8
    -0
      hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java
  3. +1
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/ISystemLogService.java
  4. +2
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/mapper/SysUserMapper.java
  5. +1
    -1
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysUserService.java
  6. +52
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java
  7. +54
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java

+ 20
- 1
hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictData.java View File

@ -2,6 +2,8 @@ package com.hxhq.system.api.domain;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import com.hxhq.common.core.annotation.Compare;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hxhq.common.core.annotation.Excel;
@ -24,14 +26,17 @@ public class SysDictData extends BaseEntity
/** 字典排序 */
@Excel(name = "字典排序", cellType = ColumnType.NUMERIC)
@Compare(name = "排序",nameEn = "Sort")
private Long dictSort;
/** 字典标签 */
@Excel(name = "字典标签")
@Compare(name = "标签",nameEn = "Label")
private String dictLabel;
/** 字典键值 */
@Excel(name = "字典键值")
@Compare(name = "键值",nameEn = "Value")
private String dictValue;
/** 字典类型 */
@ -52,6 +57,10 @@ public class SysDictData extends BaseEntity
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/** 备注 */
@Compare(name = "备注",nameEn = "Comment")
private String remark;
public Long getDictCode()
{
return dictCode;
@ -153,7 +162,17 @@ public class SysDictData extends BaseEntity
{
this.status = status;
}
@Override
public String getRemark() {
return remark;
}
@Override
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 8
- 0
hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java View File

@ -3,6 +3,8 @@ package com.hxhq.system.api.domain;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import com.hxhq.common.core.annotation.Compare;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hxhq.common.core.annotation.Excel;
@ -24,16 +26,22 @@ public class SysDictType extends BaseEntity
/** 字典名称 */
@Excel(name = "字典名称")
@Compare(name = "名称",nameEn = "Name")
private String dictName;
/** 字典类型 */
@Excel(name = "字典类型")
@Compare(name = "类型",nameEn = "Type")
private String dictType;
/** 状态(0正常 1停用) */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/** 备注 */
@Compare(name = "备注",nameEn = "Comment")
private String remark;
public Long getDictId()
{
return dictId;

+ 1
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/ISystemLogService.java View File

@ -36,6 +36,7 @@ public interface ISystemLogService extends IService
/**
* 试验稽查轨迹-批量
* @param study
* @param jcgjList
*/
void saveStudyBatch(Study study,List<StudyJcgj> jcgjList);

+ 2
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/mapper/SysUserMapper.java View File

@ -178,6 +178,8 @@ public interface SysUserMapper
* 获取新增试验方法需要通知的用户ID
* @param studyId
* @param studySubjectId
* @param deptId
* @param createUserId
* @return
*/
List<Long> selectStudyMethodUserIdExcludeCreate(@Param("studyId") Long studyId, @Param("studySubjectId") Long studySubjectId,@Param("deptId") Long deptId,@Param("createUserId") Long createUserId);

+ 1
- 1
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysUserService.java View File

@ -128,7 +128,7 @@ public interface ISysUserService
/**
* 修改用户信息
*
* @param user 用户信息
* @param form 用户信息
* @return 结果
*/
public int updateUser(UserSaveForm form);

+ 52
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java View File

@ -3,6 +3,11 @@ package com.hxhq.system.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.hxhq.business.domain.SystemLog;
import com.hxhq.business.service.ISystemLogService;
import com.hxhq.business.utils.ObjectCompareUtil;
import com.hxhq.common.security.utils.SecurityUtils;
import com.hxhq.system.api.domain.SysDictType;
import com.hxhq.system.mapper.SysDictDataMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -21,6 +26,9 @@ public class SysDictDataServiceImpl implements ISysDictDataService
@Autowired
private SysDictDataMapper dictDataMapper;
@Autowired
private ISystemLogService systemLogService;
/**
* 根据条件分页查询字典数据
*
@ -84,6 +92,8 @@ public class SysDictDataServiceImpl implements ISysDictDataService
dictDataMapper.deleteDictDataById(dictCode);
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
systemLogService.saveInfo(data.getDictLabel(),null,"删除字典数据","Remove Term Book Data",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
}
}
@ -102,6 +112,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
systemLogService.saveInfo(data.getDictLabel(),null,"新增字典数据","Create Term Book Data",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
return row;
}
@ -114,12 +125,53 @@ public class SysDictDataServiceImpl implements ISysDictDataService
@Override
public int updateDictData(SysDictData data)
{
SysDictData oldDict = dictDataMapper.selectDictDataById(data.getDictCode());
int row = dictDataMapper.updateDictData(data);
if (row > 0)
{
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
List<SystemLog> logList = getModifyLogList(data,oldDict);
if(logList.size()>0){
systemLogService.saveBatch(logList);
}
return row;
}
/**
* 获取修改日志
* @param info
* @param old
* @return
*/
private List<SystemLog> getModifyLogList(SysDictData info, SysDictData old){
List<SystemLog> list = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, info);
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
SystemLog log = getLogInfo(old);
log.setJcnr(fieldChange.toString());
log.setJcnrEn(fieldChange.toEnString());
list.add(log);
}
return list;
}
/**
* 获取日志基础信息
* @return
*/
private SystemLog getLogInfo(SysDictData sysDictData){
SystemLog log = new SystemLog();
log.setName(sysDictData.getDictLabel());
log.setNameEn(sysDictData.getDictLabel());
log.setJcmc("编辑字典数据");
log.setJcmcEn("Edit Term Book Data");
log.setQmrId(SecurityUtils.getUserId());
log.setQmrMc(SecurityUtils.getNickName());
log.setQmrMcEn(SecurityUtils.getUsername());
return log;
}
}

+ 54
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java View File

@ -1,11 +1,18 @@
package com.hxhq.system.service.impl;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import com.hxhq.business.domain.SystemLog;
import com.hxhq.business.service.ISystemLogService;
import com.hxhq.business.utils.ObjectCompareUtil;
import com.hxhq.common.security.utils.SecurityUtils;
import com.hxhq.system.api.domain.SysRole;
import com.hxhq.system.domain.SysMenu;
import com.hxhq.system.mapper.SysDictDataMapper;
import com.hxhq.system.mapper.SysDictTypeMapper;
import org.springframework.beans.factory.annotation.Autowired;
@ -33,6 +40,9 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
@Autowired
private SysDictDataMapper dictDataMapper;
@Autowired
private ISystemLogService systemLogService;
/**
* 项目启动时初始化字典到缓存
*/
@ -129,6 +139,9 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
}
dictTypeMapper.deleteDictTypeById(dictId);
DictUtils.removeDictCache(dictType.getDictType());
systemLogService.saveInfo(dictType.getDictName(),null,"删除字典","Remove Term Book",null,null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
}
}
@ -180,6 +193,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
{
DictUtils.setDictCache(dict.getDictType(), null);
}
systemLogService.saveInfo(dict.getDictName(),null,"新增字典","Create Term Book",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
return row;
}
@ -201,6 +215,11 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType());
DictUtils.setDictCache(dict.getDictType(), dictDatas);
}
List<SystemLog> logList = getModifyLogList(dict,oldDict);
if(logList.size()>0){
systemLogService.saveBatch(logList);
}
return row;
}
@ -221,4 +240,39 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
}
return UserConstants.UNIQUE;
}
/**
* 获取修改日志
* @param info
* @param old
* @return
*/
private List<SystemLog> getModifyLogList(SysDictType info, SysDictType old){
List<SystemLog> list = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, info);
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
SystemLog log = getLogInfo(old);
log.setJcnr(fieldChange.toString());
log.setJcnrEn(fieldChange.toEnString());
list.add(log);
}
return list;
}
/**
* 获取日志基础信息
* @return
*/
private SystemLog getLogInfo(SysDictType sysDictType){
SystemLog log = new SystemLog();
log.setName(sysDictType.getDictName());
log.setNameEn(sysDictType.getDictName());
log.setJcmc("编辑字典");
log.setJcmcEn("Edit Term Book");
log.setQmrId(SecurityUtils.getUserId());
log.setQmrMc(SecurityUtils.getNickName());
log.setQmrMcEn(SecurityUtils.getUsername());
return log;
}
}

Loading…
Cancel
Save