Browse Source

feat: [试验管理] 稽查轨迹修改

master
memorylkf 18 hours ago
parent
commit
bf7f94c510
12 changed files with 220 additions and 60 deletions
  1. +5
    -0
      hxhq-common/hxhq-common-core/src/main/java/com/hxhq/common/core/annotation/Compare.java
  2. +0
    -1
      hxhq-common/hxhq-common-core/src/main/java/com/hxhq/common/core/domain/MpBaseEntity.java
  3. +3
    -3
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Study.java
  4. +32
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/StudyJcgj.java
  5. +24
    -1
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/common/SignForm.java
  6. +4
    -5
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudyJcgjService.java
  7. +6
    -3
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudySubjectUserService.java
  8. +10
    -5
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyJcgjServiceImpl.java
  9. +77
    -37
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyServiceImpl.java
  10. +8
    -2
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudySubjectServiceImpl.java
  11. +19
    -3
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudySubjectUserServiceImpl.java
  12. +32
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java

+ 5
- 0
hxhq-common/hxhq-common-core/src/main/java/com/hxhq/common/core/annotation/Compare.java View File

@ -25,5 +25,10 @@ public @interface Compare
*/
public String name() default "";
/**
* 列名称-英文.
*/
public String nameEn() default "";
}

+ 0
- 1
hxhq-common/hxhq-common-core/src/main/java/com/hxhq/common/core/domain/MpBaseEntity.java View File

@ -41,7 +41,6 @@ public class MpBaseEntity implements Serializable
private Date updateTime;
/** 备注 */
@Compare(name = "备注")
private String remark;
@TableField(value = "del_flag", fill = FieldFill.INSERT)

+ 3
- 3
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/Study.java View File

@ -20,11 +20,11 @@ public class Study extends MpBaseEntity
private Integer type;
/** 试验编号 */
@Compare(name = "试验编号")
@Compare(name = "试验编号",nameEn = "Number")
private String sn;
/** 试验名称 */
@Compare(name = "试验名称")
@Compare(name = "试验名称",nameEn = "Name")
private String name;
/** 负责人id */
@ -51,7 +51,7 @@ public class Study extends MpBaseEntity
/** 所属部门名称:非试验需要 */
private String deptName;
@Compare(name = "试验简述")
@Compare(name = "试验简述",nameEn = "Description")
private String remark;
public Integer getType() {

+ 32
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/StudyJcgj.java View File

@ -24,18 +24,27 @@ public class StudyJcgj extends MpBaseEntity
/** 稽查名称 */
private String jcmc;
/** 稽查名称-英文 */
private String jcmcEn;
/** 稽查名称颜色:1:蓝色;3:红色;5:绿色;7:橙色 */
private Integer jcmcys;
/** 稽查内容 */
private String jcnr;
/** 稽查内容-英文 */
private String jcnrEn;
/** 签名人id */
private Long qmrId;
/** 签名人名称 */
private String qmrMc;
/** 签名人名称-英文 */
private String qmrMcEn;
public void setStudyId(Long studyId)
{
@ -65,6 +74,14 @@ public class StudyJcgj extends MpBaseEntity
return jcmc;
}
public String getJcmcEn() {
return jcmcEn;
}
public void setJcmcEn(String jcmcEn) {
this.jcmcEn = jcmcEn;
}
public Integer getJcmcys() {
return jcmcys;
}
@ -83,6 +100,14 @@ public class StudyJcgj extends MpBaseEntity
return jcnr;
}
public String getJcnrEn() {
return jcnrEn;
}
public void setJcnrEn(String jcnrEn) {
this.jcnrEn = jcnrEn;
}
public void setQmrId(Long qmrId)
{
this.qmrId = qmrId;
@ -103,4 +128,11 @@ public class StudyJcgj extends MpBaseEntity
return qmrMc;
}
public String getQmrMcEn() {
return qmrMcEn;
}
public void setQmrMcEn(String qmrMcEn) {
this.qmrMcEn = qmrMcEn;
}
}

+ 24
- 1
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/form/common/SignForm.java View File

@ -9,10 +9,13 @@ public class SignForm {
*/
private String qmyy;
/**
* 签名意义-英文
*/
private String qmyyEn;
/**
* 原因/备注
*/
private String remark;
/**
* 签名人id
*/
@ -22,6 +25,10 @@ public class SignForm {
*/
private String qmrMc;
/**
* 签名人名称-英文
*/
private String qmrMcEn;
/**
* 签名密码
*/
private String qmrmm;
@ -44,6 +51,14 @@ public class SignForm {
this.qmyy = qmyy;
}
public String getQmyyEn() {
return qmyyEn;
}
public void setQmyyEn(String qmyyEn) {
this.qmyyEn = qmyyEn;
}
public String getRemark() {
return remark;
}
@ -68,6 +83,14 @@ public class SignForm {
this.qmrMc = qmrMc;
}
public String getQmrMcEn() {
return qmrMcEn;
}
public void setQmrMcEn(String qmrMcEn) {
this.qmrMcEn = qmrMcEn;
}
public String getQmrmm() {
return qmrmm;
}

+ 4
- 5
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudyJcgjService.java View File

@ -5,6 +5,7 @@ import com.hxhq.business.domain.StudyJcgj;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.enums.zykgl.JcgjlxEnum;
import com.hxhq.business.enums.zykgl.JcmcysEnum;
import com.hxhq.business.form.common.SignForm;
/**
* 试验-稽查轨迹Service接口
@ -27,12 +28,10 @@ public interface IStudyJcgjService extends IService
* @param studyId
* @param jcgjlx
* @param jcmcys
* @param jcmc
* @param jcnr
* @param qmrId
* @param qmrMc
* @param remark
* @param jcnrEn
* @param signForm
*/
void saveInfo(Long studyId, JcgjlxEnum jcgjlx, JcmcysEnum jcmcys,String jcmc,String jcnr,Long qmrId,String qmrMc,String remark);
void saveInfo(Long studyId, JcgjlxEnum jcgjlx, JcmcysEnum jcmcys, String jcnr,String jcnrEn, SignForm signForm);
}

+ 6
- 3
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudySubjectUserService.java View File

@ -1,8 +1,11 @@
package com.hxhq.business.service;
import java.util.List;
import com.hxhq.business.domain.Study;
import com.hxhq.business.domain.StudySubjectUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.business.form.study.StudySubjectUserSaveForm;
/**
@ -28,10 +31,10 @@ public interface IStudySubjectUserService extends IService
/**
* 根据studySubjectId进下删除
* @param studyId
* @param study
* @param studySubjectId
* @param signRemark
* @param sign
*/
void deleteByStudySubjectId(Long studyId, Long studySubjectId,String signRemark);
void deleteByStudySubjectId(Study study, Long studySubjectId, SignForm sign);
}

+ 10
- 5
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyJcgjServiceImpl.java View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.MjyJcgj;
import com.hxhq.business.enums.zykgl.JcgjlxEnum;
import com.hxhq.business.enums.zykgl.JcmcysEnum;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.common.core.exception.ServiceException;
import com.hxhq.common.core.utils.DateUtils;
import com.hxhq.common.core.utils.StringUtils;
@ -50,17 +51,21 @@ public class StudyJcgjServiceImpl extends ServiceImpl
}
@Override
public void saveInfo(Long studyId, JcgjlxEnum jcgjlx, JcmcysEnum jcmcys, String jcmc, String jcnr, Long qmrId, String qmrMc,String remark) {
public void saveInfo(Long studyId, JcgjlxEnum jcgjlx, JcmcysEnum jcmcys, String jcnr,String jcnrEn, SignForm signForm) {
StudyJcgj info = new StudyJcgj();
info.setStudyId(studyId);
info.setJcgjlx(jcgjlx.getValue());
info.setJcmcys(jcmcys.getValue());
info.setJcmc(jcmc);
info.setJcnr(jcnr);
info.setQmrId(qmrId);
info.setQmrMc(qmrMc);
info.setRemark(remark);
info.setJcnrEn(jcnrEn);
info.setJcmc(signForm.getQmyy());
info.setJcmcEn(signForm.getQmyyEn());
info.setQmrId(signForm.getQmrId());
info.setQmrMc(signForm.getQmrMc());
info.setQmrMcEn(signForm.getQmrMcEn());
info.setRemark(signForm.getRemark());
save(info);
}
}

+ 77
- 37
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyServiceImpl.java View File

@ -196,68 +196,96 @@ public class StudyServiceImpl extends ServiceImpl implements
save(study);
if(study.getStatus().equals(StudyStatusEnum.cg.getValue())){
Map<String, String> formData = new LinkedHashMap<>();
Map<String, String> formDataEn = new LinkedHashMap<>();
formData.put("暂存人", SecurityUtils.getNickName());
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"暂存实验", JctUtil.formatStr(formData),null,null,null);
formDataEn.put("Save User", SecurityUtils.getUsername());
sign.setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"暂存":study.getType().equals(StudyTypeEnum.fsy.getValue())?"暂存":study.getType().equals(StudyTypeEnum.mjy.getValue())?"暂存":"");
sign.setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Save":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Save":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Save":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,JctUtil.formatStr(formData),JctUtil.formatStr(formDataEn),sign);
}else{
checkPassword(sign);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"创建实验", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"创建实验":study.getType().equals(StudyTypeEnum.fsy.getValue())?"创建非实验":study.getType().equals(StudyTypeEnum.mjy.getValue())?"创建麻精药文件夹":"");
sign.setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Create Study":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Create":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Create":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
}else{
//修改
Study old = getById(study.getId());
if(!old.getStatus().equals(StudyStatusEnum.cg.getValue()) && study.getStatus().equals(StudyStatusEnum.cg.getValue())){
if(!old.getStatus().equals(StudyStatusEnum.cg.getValue())){
throw new ServiceException("当前状态不允许暂存");
}
if(!old.getStatus().equals(StudyStatusEnum.cg.getValue()) && !old.getStatus().equals(StudyStatusEnum.syz.getValue())){
throw new ServiceException("当前状态不允许修改");
}
checkPermit(old);
//修改字段的稽查轨迹
List<StudyJcgj> jcgjList = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, study);
if (fieldChanges.size() > 0) {
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
StudyJcgj jcgj = new StudyJcgj();
jcgj.setStudyId(study.getId());
jcgj.setJcgjlx(JcgjlxEnum.bj.getValue());
jcgj.setJcmc("修改试验");
jcgj.setJcmcys(JcmcysEnum.orange.getValue());
jcgj.setJcnr(fieldChange.toString());
if(study.getStatus().equals(StudyStatusEnum.syz.getValue())){
jcgj.setQmrId(SecurityUtils.getUserId());
jcgj.setQmrMc(SecurityUtils.getNickName());
jcgj.setRemark(sign.getRemark());
}
jcgjList.add(jcgj);
}
}
//获取修改的稽查轨迹
List<StudyJcgj> jcgjList = getChangeJcgj(old,study,sign);
studyJcgjService.saveBatch(jcgjList);
//修改试验负责人的稽查轨迹
if(!old.getLeaderName().equals(study.getLeaderName())){
Map<String, String> formData = new LinkedHashMap<>();
Map<String, String> formDataEn = new LinkedHashMap<>();
formData.put("新增人员", study.getLeaderName());
formDataEn.put("Add User", study.getLeaderName());
formData.put("删除人员", old.getLeaderName());
formDataEn.put("Remove User", old.getLeaderName());
sign.setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.fsy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.mjy.getValue())?"人员变更":"");
sign.setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Change of Person":"");
if(study.getStatus().equals(StudyStatusEnum.cg.getValue())){
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), null,null,null);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,JctUtil.formatStr(formData), JctUtil.formatStr(formDataEn), sign);
}else{
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,JctUtil.formatStr(formData),JctUtil.formatStr(formDataEn), sign);
}
}
if(study.getStatus().equals(StudyStatusEnum.cg.getValue())){
Map<String, String> formData = new LinkedHashMap<>();
Map<String, String> formDataEn = new LinkedHashMap<>();
formData.put("暂存人", SecurityUtils.getNickName());
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"暂存实验", JctUtil.formatStr(formData),null,null,null);
formDataEn.put("Save User", SecurityUtils.getUsername());
sign.setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"暂存":study.getType().equals(StudyTypeEnum.fsy.getValue())?"暂存":study.getType().equals(StudyTypeEnum.mjy.getValue())?"暂存":"");
sign.setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Save":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Save":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Save":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,JctUtil.formatStr(formDataEn),JctUtil.formatStr(formDataEn),sign);
}else {
checkPassword(sign);
if(old.getStatus().equals(StudyStatusEnum.cg.getValue())){
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"创建实验", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"创建实验":study.getType().equals(StudyTypeEnum.fsy.getValue())?"创建非实验":study.getType().equals(StudyTypeEnum.mjy.getValue())?"创建麻精药文件夹":"");
sign.setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Create Study":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Create":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Create":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
}
updateById(study);
}
}
/**
* 获取修改的稽查轨迹
* @param old
* @param study
* @param sign
* @return
*/
private List<StudyJcgj> getChangeJcgj(Study old,Study study,SignForm sign){
List<StudyJcgj> jcgjList = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, study);
if (fieldChanges.size() > 0) {
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
StudyJcgj jcgj = new StudyJcgj();
jcgj.setStudyId(study.getId());
jcgj.setJcgjlx(JcgjlxEnum.bj.getValue());
jcgj.setJcmc("修改试验");
jcgj.setJcmcEn("Change of Information");
jcgj.setJcmcys(JcmcysEnum.orange.getValue());
jcgj.setJcnr(fieldChange.toString());
jcgj.setJcnrEn(fieldChange.toEnString());
if(study.getStatus().equals(StudyStatusEnum.syz.getValue())){
jcgj.setQmrId(SecurityUtils.getUserId());
jcgj.setQmrMc(SecurityUtils.getNickName());
jcgj.setQmrMcEn(SecurityUtils.getUsername());
jcgj.setRemark(sign.getRemark());
}
jcgjList.add(jcgj);
}
}
return jcgjList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(StudySaveForm form) {
@ -273,7 +301,9 @@ public class StudyServiceImpl extends ServiceImpl implements
}
checkPermit(info);
checkPassword(sign);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.red,"删除实验", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(info.getType().equals(StudyTypeEnum.sy.getValue())?"删除试验":info.getType().equals(StudyTypeEnum.fsy.getValue())?"删除非试验":info.getType().equals(StudyTypeEnum.mjy.getValue())?"删除麻精药文件夹":"");
sign.setQmyyEn(info.getType().equals(StudyTypeEnum.sy.getValue())?"Remove Study":info.getType().equals(StudyTypeEnum.fsy.getValue())?"Remove":info.getType().equals(StudyTypeEnum.mjy.getValue())?"Remove":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.red,null,null,sign);
removeById(study.getId());
}
@ -301,7 +331,9 @@ public class StudyServiceImpl extends ServiceImpl implements
checkPassword(sign);
info.setStatus(StudyStatusEnum.ysd.getValue());
updateById(info);
studyJcgjService.saveInfo(info.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"锁定实验", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(info.getType().equals(StudyTypeEnum.sy.getValue())?"锁定试验":info.getType().equals(StudyTypeEnum.fsy.getValue())?"锁定非试验":info.getType().equals(StudyTypeEnum.mjy.getValue())?"锁定麻精药文件夹":"");
sign.setQmyyEn(info.getType().equals(StudyTypeEnum.sy.getValue())?"Lock Study":info.getType().equals(StudyTypeEnum.fsy.getValue())?"Lock Record":info.getType().equals(StudyTypeEnum.mjy.getValue())?"Lock Record":"");
studyJcgjService.saveInfo(info.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
@Override
@ -321,7 +353,9 @@ public class StudyServiceImpl extends ServiceImpl implements
checkPassword(sign);
info.setStatus(StudyStatusEnum.syz.getValue());
updateById(info);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"解锁实验", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(info.getType().equals(StudyTypeEnum.sy.getValue())?"解锁试验":info.getType().equals(StudyTypeEnum.fsy.getValue())?"解锁非试验":info.getType().equals(StudyTypeEnum.mjy.getValue())?"解锁麻精药文件夹":"");
sign.setQmyyEn(info.getType().equals(StudyTypeEnum.sy.getValue())?"Unlock Study":info.getType().equals(StudyTypeEnum.fsy.getValue())?"Unlock Record":info.getType().equals(StudyTypeEnum.mjy.getValue())?"Unlock Record":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
@Override
@ -341,7 +375,9 @@ public class StudyServiceImpl extends ServiceImpl implements
checkPassword(sign);
info.setStatus(StudyStatusEnum.dgd.getValue());
updateById(info);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"申请归档", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(info.getType().equals(StudyTypeEnum.sy.getValue())?"申请归档":info.getType().equals(StudyTypeEnum.fsy.getValue())?"申请归档":info.getType().equals(StudyTypeEnum.mjy.getValue())?"申请归档":"");
sign.setQmyyEn(info.getType().equals(StudyTypeEnum.sy.getValue())?"Apply for Archiving":info.getType().equals(StudyTypeEnum.fsy.getValue())?"Apply for Archiving":info.getType().equals(StudyTypeEnum.mjy.getValue())?"Apply for Archiving":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
@Override
@ -361,7 +397,9 @@ public class StudyServiceImpl extends ServiceImpl implements
checkPassword(sign);
info.setStatus(StudyStatusEnum.djd.getValue());
updateById(info);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"申请解档", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(info.getType().equals(StudyTypeEnum.sy.getValue())?"申请解档":info.getType().equals(StudyTypeEnum.fsy.getValue())?"申请解档":info.getType().equals(StudyTypeEnum.mjy.getValue())?"申请解档":"");
sign.setQmyyEn(info.getType().equals(StudyTypeEnum.sy.getValue())?"Apply for De-archiving":info.getType().equals(StudyTypeEnum.fsy.getValue())?"Apply for De-archiving":info.getType().equals(StudyTypeEnum.mjy.getValue())?"Apply for De-archiving":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
@Override
@ -383,7 +421,9 @@ public class StudyServiceImpl extends ServiceImpl implements
info.setBorrowStartDate(sign.getStartDate());
info.setBorrowEndDate(sign.getEndDate());
updateById(info);
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,"申请借阅", null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
sign.setQmyy(info.getType().equals(StudyTypeEnum.sy.getValue())?"申请借阅":info.getType().equals(StudyTypeEnum.fsy.getValue())?"申请借阅":info.getType().equals(StudyTypeEnum.mjy.getValue())?"申请借阅":"");
sign.setQmyyEn(info.getType().equals(StudyTypeEnum.sy.getValue())?"Apply for Check-out":info.getType().equals(StudyTypeEnum.fsy.getValue())?"Apply for Check-out":info.getType().equals(StudyTypeEnum.mjy.getValue())?"Apply for Check-out":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.lc, JcmcysEnum.blue,null,null,sign);
}
@Override

+ 8
- 2
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudySubjectServiceImpl.java View File

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.Study;
import com.hxhq.business.domain.StudySubjectUser;
import com.hxhq.business.dto.study.StudyListDto;
import com.hxhq.business.enums.study.StudyTypeEnum;
import com.hxhq.business.enums.zykgl.JcgjlxEnum;
import com.hxhq.business.enums.zykgl.JcmcysEnum;
import com.hxhq.business.form.study.StudySubjectSaveForm;
@ -161,7 +162,7 @@ public class StudySubjectServiceImpl extends ServiceImpl
removeBatchByIds(deleteList);
for(StudySubject del : deleteList){
studySubjectUserService.deleteByStudySubjectId(study.getId(),del.getId(),form.getSign().getRemark());
studySubjectUserService.deleteByStudySubjectId(study,del.getId(),form.getSign());
}
}
@ -173,13 +174,18 @@ public class StudySubjectServiceImpl extends ServiceImpl
}
if(deleteNameList.size()>0 || addNameList.size()>0){
Map<String, String> formData = new LinkedHashMap<>();
Map<String, String> formDataEn = new LinkedHashMap<>();
if(addNameList.size()>0){
formData.put("新增人员", String.join(",",addNameList));
formDataEn.put("Add User", String.join(",",addNameList));
}
if(deleteNameList.size()>0){
formData.put("删除人员", String.join(",",deleteNameList));
formDataEn.put("Remove User", String.join(",",deleteNameList));
}
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), SecurityUtils.getUserId(),SecurityUtils.getNickName(),form.getSign().getRemark());
form.getSign().setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.fsy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.mjy.getValue())?"人员变更":"");
form.getSign().setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Change of Person":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,JctUtil.formatStr(formData),JctUtil.formatStr(formDataEn),form.getSign());
}
}

+ 19
- 3
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudySubjectUserServiceImpl.java View File

@ -10,8 +10,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.Study;
import com.hxhq.business.domain.StudySubject;
import com.hxhq.business.enums.study.StudyTypeEnum;
import com.hxhq.business.enums.zykgl.JcgjlxEnum;
import com.hxhq.business.enums.zykgl.JcmcysEnum;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.business.form.study.StudySubjectUserSaveForm;
import com.hxhq.business.service.IStudyJcgjService;
import com.hxhq.business.service.IStudyService;
@ -57,6 +59,10 @@ public class StudySubjectUserServiceImpl extends ServiceImpl
if(studySubject==null){
throw new ServiceException("试验学科不存在");
}
Study study = studyService.getById(studySubject.getStudyId());
if(studySubject==null){
throw new ServiceException("试验不存在");
}
studyService.checkPassword(form.getSign());
//传入的成员信息
List<StudySubjectUser> itemList = form.getSubjectUserList();
@ -106,18 +112,23 @@ public class StudySubjectUserServiceImpl extends ServiceImpl
if(deleteNameList.size()>0 || addNameList.size()>0){
Map<String, String> formData = new LinkedHashMap<>();
Map<String, String> formDataEn = new LinkedHashMap<>();
if(addNameList.size()>0){
formData.put("新增人员", String.join(",",addNameList));
formDataEn.put("Add User", String.join(",",addNameList));
}
if(deleteNameList.size()>0){
formData.put("删除人员", String.join(",",deleteNameList));
formDataEn.put("Remove User", String.join(",",deleteNameList));
}
studyJcgjService.saveInfo(studySubject.getStudyId(), JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), SecurityUtils.getUserId(),SecurityUtils.getNickName(),form.getSign().getRemark());
form.getSign().setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.fsy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.mjy.getValue())?"人员变更":"");
form.getSign().setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Change of Person":"");
studyJcgjService.saveInfo(studySubject.getStudyId(), JcgjlxEnum.ry, JcmcysEnum.blue,JctUtil.formatStr(formData),JctUtil.formatStr(formDataEn),form.getSign());
}
}
@Override
public void deleteByStudySubjectId(Long studyId, Long studySubjectId,String signRemark) {
public void deleteByStudySubjectId(Study study, Long studySubjectId, SignForm sign) {
QueryWrapper<StudySubjectUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("study_subject_id",studySubjectId);
List<StudySubjectUser> userList = list(queryWrapper);
@ -125,8 +136,13 @@ public class StudySubjectUserServiceImpl extends ServiceImpl
List<String> deleteNameList = userList.stream().map(o->o.getUserName()).collect(Collectors.toList());
if(deleteNameList.size()>0){
Map<String, String> formData = new LinkedHashMap<>();
Map<String, String> formDataEn = new LinkedHashMap<>();
formData.put("删除人员", String.join(",",deleteNameList));
studyJcgjService.saveInfo(studyId, JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), SecurityUtils.getUserId(),SecurityUtils.getNickName(),signRemark);
formDataEn.put("Remove User", String.join(",",deleteNameList));
sign.setQmyy(study.getType().equals(StudyTypeEnum.sy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.fsy.getValue())?"人员变更":study.getType().equals(StudyTypeEnum.mjy.getValue())?"人员变更":"");
sign.setQmyyEn(study.getType().equals(StudyTypeEnum.sy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.fsy.getValue())?"Change of Person":study.getType().equals(StudyTypeEnum.mjy.getValue())?"Change of Person":"");
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,JctUtil.formatStr(formData),JctUtil.formatStr(formDataEn),sign);
}
}
remove(queryWrapper);

+ 32
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java View File

@ -88,6 +88,7 @@ public class ObjectCompareUtil {
FieldChange change = new FieldChange();
change.setFieldName(field.getName());
change.setFieldLabel(getFieldLabel(field));
change.setFieldLabelEn(getFieldLabelEn(field));
change.setOldValue(oldValueStr);
change.setNewValue(newValueStr);
change.setFieldType(field.getType().getSimpleName());
@ -175,6 +176,7 @@ public class ObjectCompareUtil {
FieldChange change = new FieldChange();
change.setFieldName(field.getName());
change.setFieldLabel(getFieldLabel(field));
change.setFieldLabelEn(getFieldLabelEn(field));
change.setOldValue(oldValueStr);
change.setNewValue(newValueStr);
change.setFieldType(field.getType().getSimpleName());
@ -262,11 +264,25 @@ public class ObjectCompareUtil {
}
/**
* 获取字段的中文描述如果有@Compare注解
*/
private static String getFieldLabelEn(Field field) {
// 若依的@Excel注解可以获取name属性
if (field.isAnnotationPresent(com.hxhq.common.core.annotation.Compare.class)) {
com.hxhq.common.core.annotation.Compare excel = field.getAnnotation(com.hxhq.common.core.annotation.Compare.class);
return excel.nameEn();
}
return null;
}
/**
* 字段变化实体类
*/
public static class FieldChange {
private String fieldName; // 字段名
private String fieldLabel; // 字段描述
private String fieldLabelEn; // 字段描述-英文
private String oldValue; // 旧值
private String newValue; // 新值
private String fieldType; // 字段类型
@ -288,6 +304,14 @@ public class ObjectCompareUtil {
this.fieldLabel = fieldLabel;
}
public String getFieldLabelEn() {
return fieldLabelEn;
}
public void setFieldLabelEn(String fieldLabelEn) {
this.fieldLabelEn = fieldLabelEn;
}
public Object getOldValue() {
return oldValue;
}
@ -320,6 +344,14 @@ public class ObjectCompareUtil {
map.put("新值", newValue);
return JctUtil.formatStr(map);
}
public String toEnString(){
Map<String, String> map = new LinkedHashMap<>();
map.put("Field Name", fieldLabelEn);
map.put("Old Value", oldValue);
map.put("New Value", newValue);
return JctUtil.formatStr(map);
}
}
}

Loading…
Cancel
Save