物资配置管理--优化循环逻辑

This commit is contained in:
syruan 2024-10-16 19:57:57 +08:00
parent cdcba68d85
commit 0d779b47e6
1 changed files with 68 additions and 5 deletions

View File

@ -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 先循环维修配置信息 // 4.1 先循环维修配置信息
for (TypeRepair typeRepair : typeRepairList) { for (TypeRepair typeRepair : typeRepairList) {
// 4.循环维修配置信息把维修员信息设置到物资类型配置信息中 // 4.循环维修配置信息把维修员信息设置到物资类型配置信息中
@ -151,6 +211,7 @@ public class MaTypeConfigController extends BaseController {
} }
} }
// ------------------- 数据过滤开始 --------------------- // ------------------- 数据过滤开始 ---------------------
if (maTypeConfigDto == null || maTypeConfigDto.getUserId() == null || maTypeConfigDto.getUserId() == 0L) { if (maTypeConfigDto == null || maTypeConfigDto.getUserId() == null || maTypeConfigDto.getUserId() == 0L) {
// 如果参数无效则返回原始列表 // 如果参数无效则返回原始列表
@ -160,9 +221,11 @@ public class MaTypeConfigController extends BaseController {
List<MaTypeConfigVo> filteredList = new ArrayList<>(); List<MaTypeConfigVo> filteredList = new ArrayList<>();
for (MaTypeConfigVo maTypeConfigVo : list) { for (MaTypeConfigVo maTypeConfigVo : list) {
if (maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) || if (
maTypeConfigVo.getKeeperUserId().equals(maTypeConfigDto.getUserId()) ||
maTypeConfigVo.getRepairUserId().equals(maTypeConfigDto.getUserId()) maTypeConfigVo.getRepairUserId().equals(maTypeConfigDto.getUserId())
) { )
{
filteredList.add(maTypeConfigVo); filteredList.add(maTypeConfigVo);
} }
} }
@ -198,9 +261,9 @@ public class MaTypeConfigController extends BaseController {
TreeSelect treeSelect03 = new TreeSelect(13L, "宏源库管一班", 2, 5L); TreeSelect treeSelect03 = new TreeSelect(13L, "宏源库管一班", 2, 5L);
// 3. 创建部门人员 // 3. 创建部门人员
TreeSelect treeSelect001 = new TreeSelect(111L, "王小明", 3, 11L); TreeSelect treeSelect001 = new TreeSelect(117L, "袁泷", 3, 11L);
TreeSelect treeSelect002 = new TreeSelect(112L, "张小三", 3, 11L); TreeSelect treeSelect002 = new TreeSelect(133L, "喵喵喵", 3, 11L);
TreeSelect treeSelect003 = new TreeSelect(113L, "李四", 3, 12L); TreeSelect treeSelect003 = new TreeSelect(129L, "村上春树", 3, 12L);
// 4. 把子部门人员添加到子部门中 // 4. 把子部门人员添加到子部门中
treeSelect01.setChildren(Arrays.asList(treeSelect001, treeSelect002)); treeSelect01.setChildren(Arrays.asList(treeSelect001, treeSelect002));