diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MaTypeConfigController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MaTypeConfigController.java index aff20f32..cae6122a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MaTypeConfigController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/MaTypeConfigController.java @@ -103,6 +103,66 @@ public class MaTypeConfigController extends BaseController { // ------------------- 开启数据处理 --------------------- + // 4.循环所有物资类型,重型数据集合保障只循环一次,减少性能损失 + for (MaTypeConfigVo typeConfigVo1 : list) { + + // 1.外层 先对比维修班组 + for (TypeRepair typeRepair : typeRepairList) { + // 2.判断当前维修配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id + if (typeRepair.getTypeId().equals(typeConfigVo1.getTypeId())) { + // 3.如果相等,把维修员信息设置到物资类型配置信息中 + typeConfigVo1.setRepairUserId(typeRepair.getUserId()); + typeConfigVo1.setRepairUserName(typeRepair.getUserName()); + break; + } + } + // 1.外层 再对比库管班组 + for (TypeKeeper typeKeeper : typeKeeperList) { + // 2.判断当前库管配置信息中的物资类型id是否等于当前物资类型配置信息中的物资类型id + if (typeKeeper.getTypeId().equals(typeConfigVo1.getTypeId())) { + // 3.如果相等,把库管员信息设置到物资类型配置信息中 + typeConfigVo1.setKeeperUserId(typeKeeper.getUserId()); + typeConfigVo1.setKeeperUserName(typeKeeper.getUserName()); + } + } + + + // 5.判断当前物资类型配置信息是否有子节点 + if (typeConfigVo1.getChildren() != null) { + // 6.有子节点,继续循环子节点,判断子节点是否有维修配置信息 + for (MaTypeConfigVo typeConfigVo2 : typeConfigVo1.getChildren()) { + // 7.有维修配置信息,把维修员信息设置到子节点中 + for (TypeRepair typeRepair : typeRepairList) { + if (typeRepair.getTypeId().equals(typeConfigVo2.getTypeId())) { + typeConfigVo2.setRepairUserId(typeRepair.getUserId()); + typeConfigVo2.setRepairUserName(typeRepair.getUserName()); + } + } + } + + // 8.有子节点,继续循环子节点, + for (MaTypeConfigVo typeConfigVo3 : typeConfigVo1.getChildren()) { + // 9.判断子节点是否有库管配置信息 + for (TypeKeeper typeKeeper : typeKeeperList) { + if (typeKeeper.getTypeId().equals(typeConfigVo3.getTypeId())) { + typeConfigVo3.setKeeperUserId(typeKeeper.getUserId()); + typeConfigVo3.setKeeperUserName(typeKeeper.getUserName()); + } + } + } + } + + + + } + + // TODO: 先暂时取消后续过滤流程 + if (true) { + return success(list); + } + + // -------------------- NEW ---------------------------- + // 4.1 先循环维修配置信息 for (TypeRepair typeRepair : typeRepairList) { // 4.循环维修配置信息,把维修员信息设置到物资类型配置信息中 @@ -151,6 +211,7 @@ public class MaTypeConfigController extends BaseController { } } + // ------------------- 数据过滤开始 --------------------- if (maTypeConfigDto == null || maTypeConfigDto.getUserId() == null || maTypeConfigDto.getUserId() == 0L) { // 如果参数无效,则返回原始列表 @@ -160,9 +221,11 @@ public class MaTypeConfigController extends BaseController { List filteredList = new ArrayList<>(); for (MaTypeConfigVo maTypeConfigVo : list) { - if (maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) || + if ( + maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) || maTypeConfigVo.getRepairUserId().equals(maTypeConfigDto.getUserId()) - ) { + ) + { filteredList.add(maTypeConfigVo); } } @@ -198,9 +261,9 @@ public class MaTypeConfigController extends BaseController { TreeSelect treeSelect03 = new TreeSelect(13L, "宏源库管一班", 2, 5L); // 3. 创建部门人员 - TreeSelect treeSelect001 = new TreeSelect(111L, "王小明", 3, 11L); - TreeSelect treeSelect002 = new TreeSelect(112L, "张小三", 3, 11L); - TreeSelect treeSelect003 = new TreeSelect(113L, "李四", 3, 12L); + TreeSelect treeSelect001 = new TreeSelect(117L, "袁泷", 3, 11L); + TreeSelect treeSelect002 = new TreeSelect(133L, "喵喵喵", 3, 11L); + TreeSelect treeSelect003 = new TreeSelect(129L, "村上春树", 3, 12L); // 4. 把子部门人员添加到子部门中 treeSelect01.setChildren(Arrays.asList(treeSelect001, treeSelect002));