pms获取部门下面所有监测点
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
package com.njcn.device.biz.pojo.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wr
|
||||||
|
* @description
|
||||||
|
* @date 2023/4/26 10:08
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PmsDeptGetChildrenDTO {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "deptId",value = "部门id")
|
||||||
|
private String deptId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "deptId",value = "部门名称")
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "deptChildren",value = "子集部门code集合")
|
||||||
|
private List<String> deptChildren;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "monitorIds",value = "主网监测点信息")
|
||||||
|
private List<String> monitorIds;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "pwMonitorIds",value = "配网监测点信息")
|
||||||
|
private List<String> pwMonitorIds;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.njcn.device.biz.pojo.param;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wr
|
||||||
|
* @description
|
||||||
|
* @date 2023/4/26 10:37
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PmsDeptGetLineParam {
|
||||||
|
@NotBlank(message = "部门id不可为空")
|
||||||
|
@ApiModelProperty(name = "deptId",value = "部门id")
|
||||||
|
private String deptId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package com.njcn.device.pms.controller.ledgerManger;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.TimeInterval;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.biz.pojo.dto.PmsDeptGetChildrenDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.PmsDeptGetLineParam;
|
||||||
|
import com.njcn.device.pms.service.majornetwork.IMonitorService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wr
|
||||||
|
* @description
|
||||||
|
* @date 2023/4/26 10:00
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/commTerminal")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "通用台账-所有子孙部门以及监测点")
|
||||||
|
public class DeptMonitorController extends BaseController {
|
||||||
|
|
||||||
|
private final IMonitorService monitorService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过部门获取所有子集部门所拥有的监测点
|
||||||
|
*
|
||||||
|
* @author wr
|
||||||
|
* @date 2023/4/26
|
||||||
|
*/
|
||||||
|
@PostMapping("/deptGetLineIds")
|
||||||
|
@ApiImplicitParam(name = "param", value = "请求参数", required = true)
|
||||||
|
public HttpResult<List<PmsDeptGetChildrenDTO>> deptGetLineList(@RequestBody @Validated PmsDeptGetLineParam param) {
|
||||||
|
TimeInterval timer = new TimeInterval();
|
||||||
|
String methodDescribe = getMethodDescribe("deptGetLineList");
|
||||||
|
List<PmsDeptGetChildrenDTO> monitor = monitorService.deptMonitor(param);
|
||||||
|
log.info("运行时长" + timer.intervalRestart());
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,6 +3,8 @@ package com.njcn.device.pms.service.majornetwork;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.PmsDeptGetChildrenDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.PmsDeptGetLineParam;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
||||||
@@ -14,6 +16,7 @@ import com.njcn.device.pq.pojo.po.Overlimit;
|
|||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -133,4 +136,11 @@ public interface IMonitorService extends IService<Monitor> {
|
|||||||
* @return MonitorVO
|
* @return MonitorVO
|
||||||
*/
|
*/
|
||||||
MonitorVO monitorTerminal(MonitorTerminalParam param);
|
MonitorVO monitorTerminal(MonitorTerminalParam param);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据部门id获取监测点信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PmsDeptGetChildrenDTO> deptMonitor(PmsDeptGetLineParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.device.pms.service.majornetwork.impl;
|
package com.njcn.device.pms.service.majornetwork.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@@ -9,9 +10,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.device.biz.pojo.dto.PmsDeptGetChildrenDTO;
|
||||||
|
import com.njcn.device.biz.pojo.param.PmsDeptGetLineParam;
|
||||||
import com.njcn.device.biz.utils.COverlimit;
|
import com.njcn.device.biz.utils.COverlimit;
|
||||||
import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
|
import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
|
||||||
import com.njcn.device.pms.mapper.majornetwork.*;
|
import com.njcn.device.pms.mapper.majornetwork.*;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
||||||
@@ -28,6 +32,7 @@ import com.njcn.device.pq.pojo.po.Overlimit;
|
|||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.SystemResponseEnum;
|
import com.njcn.system.enums.SystemResponseEnum;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
|
import com.njcn.user.pojo.dto.DeptDTO;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.factory.PageFactory;
|
import com.njcn.web.factory.PageFactory;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -37,12 +42,10 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -321,6 +324,61 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
return monitorTerminal;
|
return monitorTerminal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PmsDeptGetChildrenDTO> deptMonitor(PmsDeptGetLineParam param) {
|
||||||
|
//返回主网和配网监测信息
|
||||||
|
List<PmsDeptGetChildrenDTO> deviceInfos = new ArrayList<>();
|
||||||
|
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getDeptId(), Stream.of(0,1).collect(Collectors.toList())).getData();
|
||||||
|
List<DeptDTO> directDeptInfos = deptInfos.stream()
|
||||||
|
.filter(deptDTO -> deptDTO.getPid().equals(param.getDeptId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (CollUtil.isEmpty(directDeptInfos)) {
|
||||||
|
//没有直接子部门,获取当前部门所有信息
|
||||||
|
List<DeptDTO> dept = deptInfos.stream()
|
||||||
|
.filter(deptDTO -> deptDTO.getId().equals(param.getDeptId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
deviceInfos.add(getPmsMonitor(dept.get(0), Collections.singletonList(dept.get(0).getCode())));
|
||||||
|
}else{
|
||||||
|
for (DeptDTO deptDTO : directDeptInfos) {
|
||||||
|
//筛选上级部门pids包含该id的所有部门
|
||||||
|
List<DeptDTO> descendantDeptDTO = deptInfos.stream()
|
||||||
|
.filter(d -> d.getPids().contains(deptDTO.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
//形成需要查询监测点的部门索引
|
||||||
|
List<String> deptIdList = descendantDeptDTO.stream()
|
||||||
|
.map(DeptDTO::getCode)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
deptIdList.add(deptDTO.getCode());
|
||||||
|
deviceInfos.add(getPmsMonitor(deptDTO, deptIdList));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return deviceInfos;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PmsDeptGetChildrenDTO getPmsMonitor(DeptDTO deptDTO, List<String> deptIdList) {
|
||||||
|
PmsDeptGetChildrenDTO pmsDeptGetChildrenDTO = new PmsDeptGetChildrenDTO();
|
||||||
|
pmsDeptGetChildrenDTO.setDeptId(deptDTO.getCode());
|
||||||
|
if (deptDTO.getType() == 0) {
|
||||||
|
pmsDeptGetChildrenDTO.setDeptName(deptDTO.getArea());
|
||||||
|
} else {
|
||||||
|
pmsDeptGetChildrenDTO.setDeptName(deptDTO.getName());
|
||||||
|
}
|
||||||
|
pmsDeptGetChildrenDTO.setDeptChildren(deptIdList);
|
||||||
|
if(CollUtil.isNotEmpty(deptIdList)){
|
||||||
|
//主网监测点
|
||||||
|
List<Monitor> monitorList = this.list(new LambdaQueryWrapper<Monitor>().in(CollUtil.isNotEmpty(deptIdList),Monitor::getOrgId, deptIdList));
|
||||||
|
//配网监测点
|
||||||
|
List<PmsMonitorBaseDTO> pwMonitorList = iDistributionMonitorService.getMonitorByCondition(deptIdList,null);
|
||||||
|
|
||||||
|
pmsDeptGetChildrenDTO.setMonitorIds(monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList()));
|
||||||
|
pmsDeptGetChildrenDTO.setPwMonitorIds(pwMonitorList.stream().map(PmsMonitorBaseDTO::getMonitorId).distinct().collect(Collectors.toList()));
|
||||||
|
}else{
|
||||||
|
pmsDeptGetChildrenDTO.setMonitorIds(new ArrayList<>());
|
||||||
|
pmsDeptGetChildrenDTO.setPwMonitorIds(new ArrayList<>());
|
||||||
|
}
|
||||||
|
return pmsDeptGetChildrenDTO;
|
||||||
|
}
|
||||||
|
|
||||||
private void checkParam(MonitorParam monitorParam, boolean update) {
|
private void checkParam(MonitorParam monitorParam, boolean update) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user