From cbbe62aef44d32bb2864936b952279b87abf9986 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Thu, 5 Feb 2026 09:55:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NuConfigSuppliersApplyController.java | 5 ++ .../INuConfigSuppliersApplyService.java | 2 + .../NuConfigSuppliersApplyServiceImpl.java | 83 +++++++++++++++++++ 3 files changed, 90 insertions(+) diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/controller/NuConfigSuppliersApplyController.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/controller/NuConfigSuppliersApplyController.java index 10898238..57421a31 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/controller/NuConfigSuppliersApplyController.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/controller/NuConfigSuppliersApplyController.java @@ -222,6 +222,11 @@ public class NuConfigSuppliersApplyController extends JeecgController>> getModifyInfo(@RequestBody NuConfigSuppliersApply suppliersApply) { return Result.OK(nuConfigSuppliersApplyService.getModifyInfo(suppliersApply)); } + @ApiOperation(value = "供应商变更历史比对信息", notes = "供应商变更历史比对信息") + @PostMapping(value = "/getModifyHistoryInfo") + public Result>> getModifyHistoryInfo(@RequestBody NuConfigSuppliersApply suppliersApply) { + return Result.OK(nuConfigSuppliersApplyService.getModifyHistoryInfo(suppliersApply)); + } /** * 变更审核 diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/INuConfigSuppliersApplyService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/INuConfigSuppliersApplyService.java index 8ff29750..24e3f228 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/INuConfigSuppliersApplyService.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/INuConfigSuppliersApplyService.java @@ -22,4 +22,6 @@ public interface INuConfigSuppliersApplyService extends IService listPage(Page page, QueryWrapper queryWrapper); + + List> getModifyHistoryInfo(NuConfigSuppliersApply suppliersApply); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/impl/NuConfigSuppliersApplyServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/impl/NuConfigSuppliersApplyServiceImpl.java index 05d67523..6eaca411 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/impl/NuConfigSuppliersApplyServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/configSuppliersApply/service/impl/NuConfigSuppliersApplyServiceImpl.java @@ -152,4 +152,87 @@ public class NuConfigSuppliersApplyServiceImpl extends ServiceImpl listPage(Page page, QueryWrapper queryWrapper) { return baseMapper.listPage(page, queryWrapper); } + + @Override + public List> getModifyHistoryInfo(NuConfigSuppliersApply suppliersApply) { + // 1. 查询变更后数据 + NuConfigSuppliersApply modifyData = baseMapper.selectById(suppliersApply.getId()); + + // 2. 查询当前使用中数据 + QueryWrapper usingQW = new QueryWrapper<>(); + usingQW.eq("suppliers_id", modifyData.getSuppliersId()); + usingQW.eq("apply_status", "2"); + usingQW.lt("create_time", modifyData.getCreateTime()); + usingQW.last("limit 1"); + NuConfigSuppliersApply usingData = baseMapper.selectOne(usingQW); + if(usingData == null || usingData.getId() == null){ + usingData = modifyData; + } + + // 3. 准备结果列表 + List> result = new ArrayList<>(); + + // 4. 获取 ConfigSuppliersInfo 所有字段(用于遍历) + Field[] infoFields = NuConfigSuppliersApply.class.getDeclaredFields(); + + // 5. 遍历每个字段,从两个对象中分别取值比较 + for (Field usingField : infoFields) { + try { + String fieldName = usingField.getName(); + + // 跳过序列化ID 和 @TableField(exist = false) 的字段 + if ("serialVersionUID".equals(fieldName)) { + continue; + } + TableField tableField = usingField.getAnnotation(TableField.class); + if (tableField != null && !tableField.exist()) { + continue; + } + + // 设置可访问 + usingField.setAccessible(true); + + // 获取 ElderInfo 中对应的字段(必须同名) + Field modifyField = null; + try { + modifyField = NuConfigSuppliersApply.class.getDeclaredField(fieldName); + modifyField.setAccessible(true); + } catch (NoSuchFieldException e) { + // 如果员工信息表中没有这个字段,跳过 + continue; + } + + // 获取两个对象中该字段的值 + Object modifyValue = modifyField.get(modifyData); + Object usingValue = usingField.get(usingData); + + // 处理日期类型 + if (usingField.getType() == Date.class) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + modifyValue = modifyValue != null ? sdf.format((Date) modifyValue) : null; + usingValue = usingValue != null ? sdf.format((Date) usingValue) : null; + } + + if(StringUtils.equals(fieldName,"suppliersNature")){ + usingValue = usingValue != null ? dictUtils.translateDictValue("suppliers_nature", usingValue.toString()) : null; + modifyValue = modifyValue != null ? dictUtils.translateDictValue("suppliers_nature", modifyValue.toString()) : null; + } + // 创建结果项 + Map fieldMap = new HashMap<>(); + fieldMap.put("id", IdUtil.simpleUUID()); + fieldMap.put("d1", fieldName); // 字段名 + fieldMap.put("d2", usingValue); // 原始值 + fieldMap.put("d3", modifyValue); // 修改值 + fieldMap.put("d4", Objects.equals(usingValue, modifyValue) ? "相同" : "不同"); // 比较结果 + + result.add(fieldMap); + + } catch (IllegalAccessException e) { + // 忽略访问失败或字段不存在的情况 + continue; + } + } + + return result; + } }