Browse Source

fix:[资源库管理]bug

master
15881625488@163.com 2 days ago
parent
commit
a47774c27c
4 changed files with 119 additions and 14 deletions
  1. +13
    -2
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/PublicController.java
  2. +9
    -6
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java
  3. +9
    -6
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java
  4. +88
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java

+ 13
- 2
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/PublicController.java View File

@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.*; import com.hxhq.business.domain.*;
import com.hxhq.business.dto.study.StudyListDto; import com.hxhq.business.dto.study.StudyListDto;
import com.hxhq.business.dto.zcg.ZcgDto;
import com.hxhq.business.enums.study.StudyStatusEnum; import com.hxhq.business.enums.study.StudyStatusEnum;
import com.hxhq.business.form.study.StudyFormPreSearchForm; import com.hxhq.business.form.study.StudyFormPreSearchForm;
import com.hxhq.business.form.study.StudySearchForm; import com.hxhq.business.form.study.StudySearchForm;
import com.hxhq.business.form.zcg.ZcgSearchForm;
import com.hxhq.business.service.*; import com.hxhq.business.service.*;
import com.hxhq.common.core.exception.ServiceException; import com.hxhq.common.core.exception.ServiceException;
import com.hxhq.common.core.web.controller.BaseController; import com.hxhq.common.core.web.controller.BaseController;
@ -38,12 +40,12 @@ public class PublicController extends BaseController
private IStudyService studyService; private IStudyService studyService;
@Autowired @Autowired
private IStudyFormPreService studyFormPreService; private IStudyFormPreService studyFormPreService;
@Autowired @Autowired
private IRoomService roomService; private IRoomService roomService;
@Autowired @Autowired
private IAnimalSpeciesService animalSpeciesService; private IAnimalSpeciesService animalSpeciesService;
@Autowired
private IZcgService zcgService;
/** /**
* 试验区域-饲养间列表 * 试验区域-饲养间列表
@ -127,4 +129,13 @@ public class PublicController extends BaseController
} }
return AjaxResult.success(studyFormPreService.queryList(form)); return AjaxResult.success(studyFormPreService.queryList(form));
} }
/**
* 查询暂存柜列表
*/
@GetMapping("/zcgList")
public AjaxResult zcgList(ZcgSearchForm form)
{
return AjaxResult.success(zcgService.queryList(form));
}
} }

+ 9
- 6
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java View File

@ -685,7 +685,6 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
} }
QueryWrapper<Gyzj> queryWrapper = Wrappers.query(); QueryWrapper<Gyzj> queryWrapper = Wrappers.query();
queryWrapper.in("id", form.getIds()); queryWrapper.in("id", form.getIds());
queryWrapper.isNull("zcg_id");
List<Gyzj> gyzjList = this.list(queryWrapper); List<Gyzj> gyzjList = this.list(queryWrapper);
List<GyzjJcgj> gyzjJcgjList = new ArrayList<>(); List<GyzjJcgj> gyzjJcgjList = new ArrayList<>();
if (gyzjList.size() <= 0) { if (gyzjList.size() <= 0) {
@ -726,6 +725,10 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
} else { } else {
zcg.setGlyj(zcg.getGlyj() + "," + glyj); zcg.setGlyj(zcg.getGlyj() + "," + glyj);
} }
zcg.setLqr1Id(lqr1.getUserId());
zcg.setLqr1Mc(lqr1.getNickName());
zcg.setLqr2Id(lqr2.getUserId());
zcg.setLqr2Mc(lqr2.getNickName());
zcg.setZt(zcgJyztEnum.jyz.getValue()); zcg.setZt(zcgJyztEnum.jyz.getValue());
zcgService.updateById(zcg); zcgService.updateById(zcg);
this.saveOrUpdateBatch(gyzjList); this.saveOrUpdateBatch(gyzjList);
@ -744,7 +747,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
public void ff(FfForm form) { public void ff(FfForm form) {
SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id());
SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id());
SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id());
SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser();
SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id());
//验证领取人1密码 //验证领取人1密码
checkPassword(lqr1,form.getLqr1mm()); checkPassword(lqr1,form.getLqr1mm());
@ -819,7 +822,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
public void plff(PlffForm form) { public void plff(PlffForm form) {
SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id());
SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id());
SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id());
SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser();
SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id());
//验证领取人1密码 //验证领取人1密码
checkPassword(lqr1,form.getLqr1mm()); checkPassword(lqr1,form.getLqr1mm());
@ -933,7 +936,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
} }
List<GyzjJcgj> gyzjJcgjList = new ArrayList<>(); List<GyzjJcgj> gyzjJcgjList = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(gyzjOld, form);
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(gyzjOld, form);
if (fieldChanges.size() == 0) { if (fieldChanges.size() == 0) {
throw new ServiceException("你没有修改任何内容"); throw new ServiceException("你没有修改任何内容");
} }
@ -1054,7 +1057,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
if (!(gyzjOld.getZjzt().equals(ZjztEnum.rk.getValue()) || gyzjOld.getZjzt().equals(ZjztEnum.yff.getValue()))) { if (!(gyzjOld.getZjzt().equals(ZjztEnum.rk.getValue()) || gyzjOld.getZjzt().equals(ZjztEnum.yff.getValue()))) {
throw new ServiceException("给药制剂【" + gyzjOld.getMc() + "】不是入库或已发放状态,不能修改库存"); throw new ServiceException("给药制剂【" + gyzjOld.getMc() + "】不是入库或已发放状态,不能修改库存");
} }
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(gyzjOld, form);
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(gyzjOld, form);
if (fieldChanges.size() == 0) { if (fieldChanges.size() == 0) {
throw new ServiceException("你没有修改任何内容"); throw new ServiceException("你没有修改任何内容");
} }
@ -1143,7 +1146,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG
if (form.getQmyy().equals(ShXgkcEnum.ty.getValue())) { if (form.getQmyy().equals(ShXgkcEnum.ty.getValue())) {
gyzjTzService.saveTz(gyzjOld.getId(), "", "", gyzjTzService.saveTz(gyzjOld.getId(), "", "",
"", "", SecurityUtils.getUserId(), SecurityUtils.getNickName(), "", "", SecurityUtils.getUserId(), SecurityUtils.getNickName(),
"修改库存", form.getKc(), form.getKcdw(), gyzjOld.getKcbjbz());
"修改库存", gyzjOld.getKc(), gyzjOld.getKcdw(), gyzjOld.getKcbjbz());
} }
//endregion //endregion

+ 9
- 6
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java View File

@ -693,7 +693,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
} }
QueryWrapper<Mjy> queryWrapper = Wrappers.query(); QueryWrapper<Mjy> queryWrapper = Wrappers.query();
queryWrapper.in("id", form.getIds()); queryWrapper.in("id", form.getIds());
queryWrapper.isNull("zcg_id");
List<Mjy> mjyList = this.list(queryWrapper); List<Mjy> mjyList = this.list(queryWrapper);
List<MjyJcgj> mjyJcgjList = new ArrayList<>(); List<MjyJcgj> mjyJcgjList = new ArrayList<>();
if (mjyList.size() <= 0) { if (mjyList.size() <= 0) {
@ -734,6 +733,10 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
} else { } else {
zcg.setGlyj(zcg.getGlyj() + "," + glyj); zcg.setGlyj(zcg.getGlyj() + "," + glyj);
} }
zcg.setLqr1Id(lqr1.getUserId());
zcg.setLqr1Mc(lqr1.getNickName());
zcg.setLqr2Id(lqr2.getUserId());
zcg.setLqr2Mc(lqr2.getNickName());
zcg.setZt(zcgJyztEnum.jyz.getValue()); zcg.setZt(zcgJyztEnum.jyz.getValue());
zcgService.updateById(zcg); zcgService.updateById(zcg);
this.saveOrUpdateBatch(mjyList); this.saveOrUpdateBatch(mjyList);
@ -752,7 +755,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
public void ff( FfForm form) { public void ff( FfForm form) {
SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id());
SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id());
SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id());
SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser();
SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id());
//验证领取人1密码 //验证领取人1密码
checkPassword(lqr1,form.getLqr1mm()); checkPassword(lqr1,form.getLqr1mm());
@ -830,7 +833,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
public void plff( PlffForm form) { public void plff( PlffForm form) {
SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id());
SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id());
SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id());
SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser();
SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id());
//验证领取人1密码 //验证领取人1密码
checkPassword(lqr1,form.getLqr1mm()); checkPassword(lqr1,form.getLqr1mm());
@ -944,7 +947,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
} }
List<MjyJcgj> mjyJcgjList = new ArrayList<>(); List<MjyJcgj> mjyJcgjList = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form);
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(mjyOld, form);
if (fieldChanges.size() == 0) { if (fieldChanges.size() == 0) {
throw new ServiceException("你没有修改任何内容"); throw new ServiceException("你没有修改任何内容");
} }
@ -1065,7 +1068,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) { if (!(mjyOld.getZjzt().equals(ZjztEnum.rk.getValue()) || mjyOld.getZjzt().equals(ZjztEnum.yff.getValue()))) {
throw new ServiceException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能修改库存"); throw new ServiceException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能修改库存");
} }
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form);
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(mjyOld, form);
if (fieldChanges.size() == 0) { if (fieldChanges.size() == 0) {
throw new ServiceException("你没有修改任何内容"); throw new ServiceException("你没有修改任何内容");
} }
@ -1154,7 +1157,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS
if (form.getQmyy().equals(ShXgkcEnum.ty.getValue())) { if (form.getQmyy().equals(ShXgkcEnum.ty.getValue())) {
mjyTzService.saveTz(mjyOld.getId(), "", "", mjyTzService.saveTz(mjyOld.getId(), "", "",
"", "", SecurityUtils.getUserId(), SecurityUtils.getNickName(), "", "", SecurityUtils.getUserId(), SecurityUtils.getNickName(),
"修改库存", form.getKc(), form.getKcdw(), mjyOld.getKcbjbz());
"修改库存", mjyOld.getKc(), mjyOld.getKcdw(), mjyOld.getKcbjbz());
} }
//endregion //endregion

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

@ -108,6 +108,94 @@ public class ObjectCompareUtil {
} }
/** /**
* 对比两个对象的差异
*
* @param oldObj 原始对象
* @param newObj 新对象
* @return 字段变化列表
*/
public static List<FieldChange> compareObjectsNotNULL(Object oldObj, Object newObj) {
List<FieldChange> changes = new ArrayList<>();
// if (oldObj == null || newObj == null) {
// return changes;
// }
// 获取所有字段
Field[] fields = oldObj.getClass().getDeclaredFields();
for (Field field : fields) {
try {
field.setAccessible(true);
// 如果没有excel注解跳过字段
if (StringUtils.isBlank(getFieldLabel(field))) {
continue;
}
String name = field.getName();
Object oldValue = field.get(oldObj);
String oldValueStr = "";
String newValueStr = "";
String date="java.util.Date";
if(oldValue == null) {
oldValueStr = "";
} else {
if (field.getType().getName().equals(date)) {
JsonFormat annotation = field.getAnnotation(JsonFormat.class);
if(annotation != null && StringUtils.isNotEmpty(annotation.pattern())) {
oldValueStr = autoConvert(oldValue, annotation.pattern());
} else {
oldValueStr = autoConvert(oldValue, "yyyy-MM-dd HH:mm:ss");
}
} else {
oldValueStr = oldValue.toString();
}
}
try {
Object newValue = JSONObject.parseObject(JSONObject.toJSONString(newObj)).get(name);
if(newValue == null) {
newValueStr = "";
} else {
if (field.getType().getName().equals(date)) {
JsonFormat annotation = field.getAnnotation(JsonFormat.class);
if(annotation != null && StringUtils.isNotEmpty(annotation.pattern())) {
newValueStr = autoConvert(newValue, annotation.pattern());
} else {
newValueStr = autoConvert(newValue, "yyyy-MM-dd HH:mm:ss");
}
} else {
newValueStr = newValue.toString();
}
}
if (StringUtils.isNoneBlank(oldValueStr) && StringUtils.isNoneBlank(newValueStr)) {
// 对比字段值
if (!Objects.equals(oldValue, newValue)) {
FieldChange change = new FieldChange();
change.setFieldName(field.getName());
change.setFieldLabel(getFieldLabel(field));
change.setOldValue(oldValueStr);
change.setNewValue(newValueStr);
change.setFieldType(field.getType().getSimpleName());
changes.add(change);
}
}
} catch (Exception ex) {
// 忽略没有的字段
}
} catch (IllegalAccessException e) {
// 忽略无法访问的字段
}
}
return changes;
}
/**
* 自动识别时间戳类型并转换 * 自动识别时间戳类型并转换
* *
* @param timestamp 时间戳支持Long, Integer, String * @param timestamp 时间戳支持Long, Integer, String

Loading…
Cancel
Save