diff --git a/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictData.java b/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictData.java index 7d0b822..151e9d2 100644 --- a/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictData.java +++ b/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictData.java @@ -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) diff --git a/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java b/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java index 7fa4774..addf2fd 100644 --- a/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java +++ b/hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java @@ -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; diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/ISystemLogService.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/ISystemLogService.java index a891a43..9dc14ad 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/ISystemLogService.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/ISystemLogService.java @@ -36,6 +36,7 @@ public interface ISystemLogService extends IService /** * 试验稽查轨迹-批量 + * @param study * @param jcgjList */ void saveStudyBatch(Study study,List jcgjList); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/mapper/SysUserMapper.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/mapper/SysUserMapper.java index a4c8fde..805c614 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/mapper/SysUserMapper.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/mapper/SysUserMapper.java @@ -178,6 +178,8 @@ public interface SysUserMapper * 获取新增试验方法需要通知的用户ID * @param studyId * @param studySubjectId + * @param deptId + * @param createUserId * @return */ List selectStudyMethodUserIdExcludeCreate(@Param("studyId") Long studyId, @Param("studySubjectId") Long studySubjectId,@Param("deptId") Long deptId,@Param("createUserId") Long createUserId); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysUserService.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysUserService.java index 4587b34..48c5f92 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysUserService.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysUserService.java @@ -128,7 +128,7 @@ public interface ISysUserService /** * 修改用户信息 * - * @param user 用户信息 + * @param form 用户信息 * @return 结果 */ public int updateUser(UserSaveForm form); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java index 3ce0c57..b13e264 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java @@ -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 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 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 dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); DictUtils.setDictCache(data.getDictType(), dictDatas); } + + List logList = getModifyLogList(data,oldDict); + if(logList.size()>0){ + systemLogService.saveBatch(logList); + } return row; } + + /** + * 获取修改日志 + * @param info + * @param old + * @return + */ + private List getModifyLogList(SysDictData info, SysDictData old){ + List list = new ArrayList<>(); + + List 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; + } } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java index c94e029..e68115d 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java @@ -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 dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); DictUtils.setDictCache(dict.getDictType(), dictDatas); } + + List 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 getModifyLogList(SysDictType info, SysDictType old){ + List list = new ArrayList<>(); + + List 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; + } }