diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/PublicController.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/PublicController.java index 3551d0f..3195f87 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/PublicController.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/PublicController.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hxhq.business.domain.*; 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.form.study.StudyFormPreSearchForm; import com.hxhq.business.form.study.StudySearchForm; +import com.hxhq.business.form.zcg.ZcgSearchForm; import com.hxhq.business.service.*; import com.hxhq.common.core.exception.ServiceException; import com.hxhq.common.core.web.controller.BaseController; @@ -38,12 +40,12 @@ public class PublicController extends BaseController private IStudyService studyService; @Autowired private IStudyFormPreService studyFormPreService; - @Autowired private IRoomService roomService; - @Autowired private IAnimalSpeciesService animalSpeciesService; + @Autowired + private IZcgService zcgService; /** * 试验区域-饲养间列表 @@ -127,4 +129,13 @@ public class PublicController extends BaseController } return AjaxResult.success(studyFormPreService.queryList(form)); } + + /** + * 查询暂存柜列表 + */ + @GetMapping("/zcgList") + public AjaxResult zcgList(ZcgSearchForm form) + { + return AjaxResult.success(zcgService.queryList(form)); + } } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java index b45601f..b7375a1 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjServiceImpl.java @@ -685,7 +685,6 @@ public class GyzjServiceImpl extends ServiceImpl implements IG } QueryWrapper queryWrapper = Wrappers.query(); queryWrapper.in("id", form.getIds()); - queryWrapper.isNull("zcg_id"); List gyzjList = this.list(queryWrapper); List gyzjJcgjList = new ArrayList<>(); if (gyzjList.size() <= 0) { @@ -726,6 +725,10 @@ public class GyzjServiceImpl extends ServiceImpl implements IG } else { 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()); zcgService.updateById(zcg); this.saveOrUpdateBatch(gyzjList); @@ -744,7 +747,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG public void ff(FfForm form) { SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); - SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id()); + SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser(); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); //验证领取人1密码 checkPassword(lqr1,form.getLqr1mm()); @@ -819,7 +822,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG public void plff(PlffForm form) { SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); - SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id()); + SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser(); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); //验证领取人1密码 checkPassword(lqr1,form.getLqr1mm()); @@ -933,7 +936,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG } List gyzjJcgjList = new ArrayList<>(); - List fieldChanges = ObjectCompareUtil.compareObjects(gyzjOld, form); + List fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(gyzjOld, form); if (fieldChanges.size() == 0) { 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()))) { throw new ServiceException("给药制剂【" + gyzjOld.getMc() + "】不是入库或已发放状态,不能修改库存"); } - List fieldChanges = ObjectCompareUtil.compareObjects(gyzjOld, form); + List fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(gyzjOld, form); if (fieldChanges.size() == 0) { throw new ServiceException("你没有修改任何内容"); } @@ -1143,7 +1146,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG if (form.getQmyy().equals(ShXgkcEnum.ty.getValue())) { gyzjTzService.saveTz(gyzjOld.getId(), "", "", "", "", SecurityUtils.getUserId(), SecurityUtils.getNickName(), - "修改库存", form.getKc(), form.getKcdw(), gyzjOld.getKcbjbz()); + "修改库存", gyzjOld.getKc(), gyzjOld.getKcdw(), gyzjOld.getKcbjbz()); } //endregion diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java index 8cddfe3..115dcb8 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyServiceImpl.java @@ -693,7 +693,6 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS } QueryWrapper queryWrapper = Wrappers.query(); queryWrapper.in("id", form.getIds()); - queryWrapper.isNull("zcg_id"); List mjyList = this.list(queryWrapper); List mjyJcgjList = new ArrayList<>(); if (mjyList.size() <= 0) { @@ -734,6 +733,10 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS } else { 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()); zcgService.updateById(zcg); this.saveOrUpdateBatch(mjyList); @@ -752,7 +755,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS public void ff( FfForm form) { SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); - SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id()); + SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser(); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); //验证领取人1密码 checkPassword(lqr1,form.getLqr1mm()); @@ -830,7 +833,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS public void plff( PlffForm form) { SysUser lqr1 = sysUserService.selectUserById(form.getLqr1Id()); SysUser lqr2 = sysUserService.selectUserById(form.getLqr2Id()); - SysUser ffr1 = sysUserService.selectUserById(form.getFfr1Id()); + SysUser ffr1 = SecurityUtils.getLoginUser().getSysUser(); SysUser ffr2 = sysUserService.selectUserById(form.getFfr2Id()); //验证领取人1密码 checkPassword(lqr1,form.getLqr1mm()); @@ -944,7 +947,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS } List mjyJcgjList = new ArrayList<>(); - List fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form); + List fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(mjyOld, form); if (fieldChanges.size() == 0) { 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()))) { throw new ServiceException("麻精药【" + mjyOld.getMc() + "】不是入库或已发放状态,不能修改库存"); } - List fieldChanges = ObjectCompareUtil.compareObjects(mjyOld, form); + List fieldChanges = ObjectCompareUtil.compareObjectsNotNULL(mjyOld, form); if (fieldChanges.size() == 0) { throw new ServiceException("你没有修改任何内容"); } @@ -1154,7 +1157,7 @@ public class MjyServiceImpl extends ServiceImpl implements IMjyS if (form.getQmyy().equals(ShXgkcEnum.ty.getValue())) { mjyTzService.saveTz(mjyOld.getId(), "", "", "", "", SecurityUtils.getUserId(), SecurityUtils.getNickName(), - "修改库存", form.getKc(), form.getKcdw(), mjyOld.getKcbjbz()); + "修改库存", mjyOld.getKc(), mjyOld.getKcdw(), mjyOld.getKcbjbz()); } //endregion diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java index ffc55f8..11252cf 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java @@ -108,6 +108,94 @@ public class ObjectCompareUtil { } /** + * 对比两个对象的差异 + * + * @param oldObj 原始对象 + * @param newObj 新对象 + * @return 字段变化列表 + */ + public static List compareObjectsNotNULL(Object oldObj, Object newObj) { + List 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)