前置日志优化

This commit is contained in:
xy
2026-01-08 20:16:45 +08:00
parent 4882151ccd
commit cccc73f211
8 changed files with 317 additions and 94 deletions

View File

@@ -596,7 +596,6 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
return device;
}
@Override
public List<CsLedgerVO> getztProjectTree() {
List<CsLedgerVO> engineeringList;
@@ -604,72 +603,260 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
/*获取用户工程,设备信息过滤*/
List<String> roleengineer = roleEngineerDevService.getRoleengineer();
List<String> device = roleEngineerDevService.getDevice();
List<String> zhiLianDevice = new ArrayList<>();
List<String> cldDevice = new ArrayList<>();
if (CollectionUtil.isNotEmpty(device)) {
List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectBatchIds(device);
DictTreeVO vo1 = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData();
Optional.ofNullable(vo1)
.map(DictTreeVO::getId)
.ifPresent(id -> csEquipmentDeliveryPOS.stream()
.filter(item -> Objects.equals(item.getDevType(), id))
.map(CsEquipmentDeliveryPO::getId)
.forEach(cldDevice::add)
);
DictTreeVO vo2 = dictTreeFeignClient.queryByCode(DicDataEnum.CONNECT_DEV.getCode()).getData();
Optional.ofNullable(vo2)
.map(DictTreeVO::getId)
.ifPresent(id -> csEquipmentDeliveryPOS.stream()
.filter(item -> Objects.equals(item.getDevType(), id))
.map(CsEquipmentDeliveryPO::getId)
.forEach(zhiLianDevice::add)
);
}
engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
List<CsLedgerVO> deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")).
peek(
temp -> {
CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId());
temp.setComFlag(po.getRunStatus());
temp.setNDId(po.getNdid());
temp.setType("device");
}
).
sorted(Comparator.comparing(CsLedgerVO::getSort))
.collect(Collectors.toList());
checkDevSetData(deviceList);
projectList.forEach(pro -> pro.setChildren(getChildren(pro, deviceList)));
engineeringList.forEach(eng -> eng.setChildren(getChildren(eng, projectList)));
Map<String, CsEquipmentDeliveryPO> poMap = allList.stream()
.filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0"))
.map(CsLedgerVO::getId)
.distinct()
.collect(Collectors.toMap(
Function.identity(),
csEquipmentDeliveryMapper::selectById
));
//获取便携式项目数
//获取治理设备
List<CsLedgerVO> deviceList = allList.stream()
.filter(item -> zhiLianDevice.contains(item.getId()) && !Objects.equals(item.getPid(), "0"))
.peek(item -> {
CsEquipmentDeliveryPO po = poMap.get(item.getId());
item.setComFlag(po.getRunStatus());
item.setNDId(po.getNdid());
item.setType("device");
item.setProcess(po.getProcess());
})
.filter(item -> Objects.equals(poMap.get(item.getId()).getUsageStatus(), 1))
.sorted(Comparator.comparing(CsLedgerVO::getSort))
.collect(Collectors.toList());
List<CsLedgerVO> engineeringList1 = new ArrayList<>();
List<CsLedgerVO> projectList1 = new ArrayList<>();
checkDevSetData(deviceList);
List<String> dev = deviceList.stream().map(CsLedgerVO::getId).collect(Collectors.toList());
List<CsLedgerVO> ledger1 = getProAndEngineer(dev);
if (CollectionUtil.isNotEmpty(ledger1)) {
engineeringList1 = ledger1.stream().filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList1 = ledger1.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList1.forEach(pro -> pro.setChildren(getChildren(pro, deviceList)));
List<CsLedgerVO> finalProjectList = projectList1;
engineeringList1.forEach(eng -> eng.setChildren(getChildren(eng, finalProjectList)));
}
//获取云前置设备
List<CsLedgerVO> cldDevList = allList.stream()
.filter(item -> cldDevice.contains(item.getId()) && !Objects.equals(item.getPid(), "0"))
.peek(item -> {
CsEquipmentDeliveryPO po = poMap.get(item.getId());
item.setComFlag(po.getRunStatus());
item.setNDId(po.getNdid());
item.setType("device");
item.setProcess(po.getProcess());
})
.filter(item -> Objects.equals(poMap.get(item.getId()).getUsageStatus(), 1))
.sorted(Comparator.comparing(CsLedgerVO::getSort))
.collect(Collectors.toList());
checkDevSetData(cldDevList);
List<CsLedgerVO> engineeringList2 = new ArrayList<>();
List<CsLedgerVO> projectList2 = new ArrayList<>();
List<String> dev2 = cldDevList.stream().map(CsLedgerVO::getId).collect(Collectors.toList());
List<CsLedgerVO> ledger2 = getProAndEngineer(dev2);
if (CollectionUtil.isNotEmpty(ledger2)) {
engineeringList2 = ledger2.stream().filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList2 = ledger2.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList2.forEach(pro -> pro.setChildren(getChildren(pro, cldDevList)));
List<CsLedgerVO> finalProjectList = projectList2;
engineeringList2.forEach(eng -> eng.setChildren(getChildren(eng, finalProjectList)));
}
//获取便携式设备树
CsLedgerVO portable = new CsLedgerVO();
portable.setLevel(0);
portable.setName(DataParam.PORTABLE_SYSTEM);
portable.setName(DataParam.portableDev);
portable.setPid("0");
portable.setId(IdUtil.simpleUUID());
CsLedgerVO project = new CsLedgerVO();
project.setLevel(1);
project.setName(DataParam.WIRELESS_PROJECT);
project.setPid("0");
project.setId(DataParam.WIRELESS_PROJECT_ID);
List<CsLedgerVO> portables = allList.stream().filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0")).collect(Collectors.toList());
checkDevSetData(portables);
for (CsLedgerVO c : portables) {
c.setPid(project.getId());
CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(c.getId());
c.setComFlag(po.getRunStatus());
c.setNDId(po.getNdid());
c.setType("device");
List<CsLedgerVO> ledger;
String role = RequestUtil.getUserRole();
List<String> roles = JSONArray.parseArray(role, String.class);
if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode()) || roles.contains(AppRoleEnum.REGULAR_USER.getCode())){
ledger = allList.stream()
.filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0"))
.collect(Collectors.toList());
} else {
LambdaQueryWrapper<CsDeviceUserPO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId, RequestUtil.getUserIndex());
List<CsDeviceUserPO> list1 = csDeviceUserPOMapper.selectList(queryWrapper);
List<String> result = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list1)) {
result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList());
}
//针对未启用的装置判断
List<String> finalResult = result;
ledger = allList.stream()
.filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0") && finalResult.contains(item.getId()))
.collect(Collectors.toList());
}
project.setChildren(portables);
List<CsLedgerVO> wxProjectList = new ArrayList<>();
wxProjectList.add(project);
portable.setChildren(wxProjectList);
Map<String, CsEquipmentDeliveryPO> poMap2 = ledger.stream()
.collect(Collectors.toMap(
CsLedgerVO::getId,
csEquipmentDeliveryMapper::selectById,
(existing, replacement) -> existing
));
List<CsLedgerVO> portables = ledger.stream()
.peek(c -> {
CsEquipmentDeliveryPO po = poMap2.get(c.getId());
c.setPid(portable.getId());
c.setComFlag(po.getRunStatus());
c.setNDId(po.getNdid());
c.setType("device");
c.setName(po.getName());
c.setSort(po.getSort());
})
.filter(c -> poMap2.get(c.getId()).getUsageStatus() == 1)
.collect(Collectors.toList());
portables = portables.stream().sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
portable.setChildren(portables);
CsLedgerVO government = new CsLedgerVO();
government.setLevel(0);
government.setName(DataParam.GOVERNANCE_SYSTEM);
government.setName(DataParam.governmentDev);
government.setPid("0");
government.setId(IdUtil.simpleUUID());
government.setChildren(engineeringList);
List<CsLedgerVO> tree = new ArrayList<>();
government.setChildren(engineeringList1);
//获取云前置设备树
CsLedgerVO cld = new CsLedgerVO();
cld.setLevel(0);
cld.setName(DataParam.cldDev);
cld.setPid("0");
cld.setId(IdUtil.simpleUUID());
cld.setChildren(engineeringList2);
List<CsLedgerVO> tree = new ArrayList<>();
if (CollUtil.isNotEmpty(portables)) {
tree.add(portable);
CsLedgerVO vo1 = new CsLedgerVO();
vo1.setLevel(0);
vo1.setName(DataParam.PORTABLE_SYSTEM);
vo1.setPid("0");
vo1.setId(IdUtil.simpleUUID());
CsLedgerVO vo2 = new CsLedgerVO();
vo2.setLevel(1);
vo2.setName(DataParam.WIRELESS_PROJECT);
vo2.setPid("0");
vo2.setId(DataParam.WIRELESS_PROJECT_ID);
vo2.setChildren(portables);
vo1.setChildren(Collections.singletonList(vo2));
tree.add(vo1);
}
if (CollUtil.isNotEmpty(deviceList)) {
tree.add(government);
}
if (CollUtil.isNotEmpty(cldDevList)) {
tree.add(cld);
}
return tree;
}
// @Override
// public List<CsLedgerVO> getztProjectTree() {
// List<CsLedgerVO> engineeringList;
// List<CsLedgerVO> allList = this.baseMapper.getAll();
// /*获取用户工程,设备信息过滤*/
// List<String> roleengineer = roleEngineerDevService.getRoleengineer();
// List<String> device = roleEngineerDevService.getDevice();
// engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
// List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
//
// List<CsLedgerVO> deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")).
// peek(
// temp -> {
// CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId());
// temp.setComFlag(po.getRunStatus());
// temp.setNDId(po.getNdid());
// temp.setType("device");
// }
// ).
// sorted(Comparator.comparing(CsLedgerVO::getSort))
// .collect(Collectors.toList());
// checkDevSetData(deviceList);
// projectList.forEach(pro -> pro.setChildren(getChildren(pro, deviceList)));
// engineeringList.forEach(eng -> eng.setChildren(getChildren(eng, projectList)));
//
// //获取便携式项目数
// CsLedgerVO portable = new CsLedgerVO();
// portable.setLevel(0);
// portable.setName(DataParam.PORTABLE_SYSTEM);
// portable.setPid("0");
// portable.setId(IdUtil.simpleUUID());
//
// CsLedgerVO project = new CsLedgerVO();
// project.setLevel(1);
// project.setName(DataParam.WIRELESS_PROJECT);
// project.setPid("0");
// project.setId(DataParam.WIRELESS_PROJECT_ID);
//
// List<CsLedgerVO> portables = allList.stream().filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0")).collect(Collectors.toList());
// checkDevSetData(portables);
// for (CsLedgerVO c : portables) {
// c.setPid(project.getId());
// CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(c.getId());
// c.setComFlag(po.getRunStatus());
// c.setNDId(po.getNdid());
// c.setType("device");
// }
// project.setChildren(portables);
//
// List<CsLedgerVO> wxProjectList = new ArrayList<>();
// wxProjectList.add(project);
//
// portable.setChildren(wxProjectList);
//
//
// CsLedgerVO government = new CsLedgerVO();
// government.setLevel(0);
// government.setName(DataParam.GOVERNANCE_SYSTEM);
// government.setPid("0");
// government.setId(IdUtil.simpleUUID());
// government.setChildren(engineeringList);
// List<CsLedgerVO> tree = new ArrayList<>();
//
// if (CollUtil.isNotEmpty(portables)) {
// tree.add(portable);
// }
// if (CollUtil.isNotEmpty(deviceList)) {
// tree.add(government);
// }
//
// return tree;
// }
@Override
public List<CsLedgerVO> objTree() {
List<CsLedgerVO> result = new ArrayList<>();
@@ -698,6 +885,9 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
List<String> lineIds = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList());
List<PqSensitiveUser> pqSensitiveUserList = pqSensitiveUserFeignClient.getListByIds(objIds).getData();
if (CollUtil.isEmpty(pqSensitiveUserList)) {
return result;
}
Map<String,String> objMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
List<CsLedger> csLineList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, lineIds));

View File

@@ -43,10 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -332,11 +329,15 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
if (CollUtil.isEmpty(records)) {
return result;
}
List<PqSensitiveUserLineVO> list = new ArrayList<>();
List<String> sensitiveUserIds = list.stream().map(PqSensitiveUserLineVO::getSensitiveUser).distinct().collect(Collectors.toList());
Map<String, String> sensitiveUserNameMap = pqSensitiveUserFeignClient.getListByIds(sensitiveUserIds).getData()
.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
Map<String, String> sensitiveUserNameMap = new HashMap<>();
List<PqSensitiveUser> pqSensitiveUserList = pqSensitiveUserFeignClient.getListByIds(sensitiveUserIds).getData();
if (CollUtil.isNotEmpty(pqSensitiveUserList)) {
sensitiveUserNameMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
}
PqSensitiveUserLineVO sensitiveUserLineVO;
for (CsLinePO record : records) {
sensitiveUserLineVO = new PqSensitiveUserLineVO();