河北两级贯通文档修改

冀北台账管理接口开发
This commit is contained in:
cdf
2024-05-16 10:05:49 +08:00
parent f184e371f0
commit 986522c017
17 changed files with 572 additions and 40 deletions

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pq.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -61,6 +62,17 @@ public class RunManageController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDeviceLedger")
@ApiOperation("获取基本的终端台账信息")
@ApiImplicitParam(name = "runManageParam", value = "终端台账参数", required = true)
public HttpResult<Page<RunTimeVO>> getDeviceLedger(@RequestBody @Validated RunManageParam runManageParam) {
String methodDescribe = getMethodDescribe("getRuntimeData");
Page<RunTimeVO> result = runManageService.getDeviceLedger(runManageParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getTerminalLedger")
@ApiOperation("终端台账统计")

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO;
@@ -61,6 +62,14 @@ public interface DeviceMapper extends BaseMapper<Device> {
@Param("searchValue") String searchValue);
Page<RunTimeVO> getDeviceLedger(@Param("page")Page<RunTimeVO> page,
@Param("list") List<String> list,
@Param("comFlag") List<Integer> comFlag,
@Param("runFlag") List<Integer> runFlag,
@Param("manufacturers") List<String> manufacturer,
@Param("searchValue") String searchValue);
List<LineInfluxDbOnlineVO> getOnlineEvaluate(@Param("list") List<String> devIndexes,
@Param("begin") String searchBeginTime,
@Param("end") String searchEndTime);

View File

@@ -190,7 +190,7 @@
ORDER BY
gdName,
bdName,
devName;
devName
</select>
<select id="getOnlineEvaluate" resultType="com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO">
SELECT
@@ -253,4 +253,78 @@
set run_flag = #{runFlag}
where id = #{id}
</update>
<select id="getDeviceLedger" resultType="com.njcn.device.pq.pojo.vo.RunTimeVO">
SELECT
dev.Id AS id,
area.NAME AS areaName,
gd.NAME AS gdName,
sub.NAME AS bdName,
manufacturerId.NAME AS manufacturer,
dev.NAME AS devName,
device.IP AS ip,
device.Login_Time AS loginTime,
devT.Name AS devType,
device.PORT AS PORT,
CASE
device.Run_Flag
WHEN 0 THEN
"投运"
WHEN 1 THEN
"热备用"
WHEN 2 THEN
"停运"
END AS runFlag,
CASE
device.Com_Flag
WHEN 0 THEN
"中断"
WHEN 1 THEN
"正常"
END AS comFlag,
device.Update_Time AS updateTime
FROM
pq_line dev
INNER JOIN pq_line sub ON sub.Id = dev.Pid
INNER JOIN pq_line gd ON gd.Id = sub.Pid
INNER JOIN pq_line areaId ON areaId.Id = gd.Pid
INNER JOIN sys_area area ON area.Id = areaId.NAME
INNER JOIN pq_device device ON device.Id = dev.Id
INNER JOIN sys_dict_data manufacturerId ON manufacturerId.Id = device.Manufacturer
INNER JOIN sys_dict_data devT ON devT.Id = device.Dev_Type
WHERE dev.Id in
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
<if test="runFlag.size()!=0">
and device.Run_Flag in
<foreach item="item1" collection="runFlag" separator="," open="(" close=")">
#{item1}
</foreach>
</if>
<if test="comFlag.size()!=0">
and device.Com_Flag in
<foreach item="item2" collection="comFlag" separator="," open="(" close=")">
#{item2}
</foreach>
</if>
<if test="manufacturers.size() != 0">
and device.Manufacturer in
<foreach collection="manufacturers" item="item3" separator="," open="(" close=")">
#{item3}
</foreach>
</if>
<if test="searchValue != '' and searchValue != null ">
<bind name="searchValueLike" value="'%'+searchValue+'%'"/>
AND sub.NAME LIKE #{searchValueLike}
OR dev.NAME LIKE #{searchValueLike}
OR devT.Name LIKE #{searchValueLike}
OR device.IP LIKE #{searchValueLike}
</if>
ORDER BY
gdName,
bdName,
devName
</select>
</mapper>

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.RunManageParam;
import com.njcn.device.pq.pojo.vo.RunManageVO;
@@ -29,6 +30,10 @@ public interface RunManageService {
List<RunTimeVO> getRuntimeDetail(RunManageParam runManageParam);
Page<RunTimeVO> getDeviceLedger(RunManageParam runManageParam);
/**
* 终端台账统计
* @author cdf

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
@@ -27,6 +28,7 @@ import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.enums.StatisticsEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -70,9 +72,9 @@ public class RunManageServiceImpl implements RunManageService {
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
BeanUtil.copyProperties(runManageParam, deviceInfoParam);
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList()));
List<String> lineIndexes = generalDeviceDTOList.stream().flatMap(list->list.getLineIndexes().stream()).collect(Collectors.toList());
List<String> lineIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(lineIndexes)) {
return deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(),runManageParam.getSearchValue());
return deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(), runManageParam.getSearchValue());
} else {
return new ArrayList<>();
}
@@ -86,51 +88,65 @@ public class RunManageServiceImpl implements RunManageService {
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList()));
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList());
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getDeviceIndexes().stream()).collect(Collectors.toList());
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(StrUtil.isNotBlank(runManageParam.getSearchBeginTime()) && StrUtil.isNotBlank(runManageParam.getSearchEndTime()) ){
if (StrUtil.isNotBlank(runManageParam.getSearchBeginTime()) && StrUtil.isNotBlank(runManageParam.getSearchEndTime())) {
runManageParam.setSearchBeginTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchBeginTime()))));
runManageParam.setSearchEndTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchEndTime()))));
}
List<String> manuList = runManageParam.getManufacturer().stream().map(SimpleDTO::getId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(devIndexes)){
runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag(),manuList,runManageParam.getSearchValue());
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = deviceMapper.getOnlineEvaluate(devIndexes,runManageParam.getSearchBeginTime(),runManageParam.getSearchEndTime());
Map<String,LineInfluxDbOnlineVO> map = lineInfluxDbOnlineVOList.stream().collect(Collectors.toMap(LineInfluxDbOnlineVO::getDevIndex, Function.identity()));
runManageDevList = runManageDevList.stream().peek(item-> item.setOnlineEvaluate(!map.containsKey(item.getId()) ? 3.14159 : NumberUtil.round(map.get(item.getId()).getOnlineRate(), 4).doubleValue())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(devIndexes)) {
runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag(), manuList, runManageParam.getSearchValue());
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = deviceMapper.getOnlineEvaluate(devIndexes, runManageParam.getSearchBeginTime(), runManageParam.getSearchEndTime());
Map<String, LineInfluxDbOnlineVO> map = lineInfluxDbOnlineVOList.stream().collect(Collectors.toMap(LineInfluxDbOnlineVO::getDevIndex, Function.identity()));
runManageDevList = runManageDevList.stream().peek(item -> item.setOnlineEvaluate(!map.containsKey(item.getId()) ? 3.14159 : NumberUtil.round(map.get(item.getId()).getOnlineRate(), 4).doubleValue())).collect(Collectors.toList());
String evaluate = runManageParam.getEvaluate();
if(StrUtil.isNotBlank(evaluate)){
runManageDevList=runManageDevList.stream().filter(x->filterOnlineEvaluate(evaluate,x.getOnlineEvaluate())).collect(Collectors.toList());
if (StrUtil.isNotBlank(evaluate)) {
runManageDevList = runManageDevList.stream().filter(x -> filterOnlineEvaluate(evaluate, x.getOnlineEvaluate())).collect(Collectors.toList());
}
}
}
return runManageDevList;
}
@Override
public Page<RunTimeVO> getDeviceLedger(RunManageParam runManageParam) {
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
BeanUtil.copyProperties(runManageParam, deviceInfoParam);
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0, 1, 2).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(generalDeviceDTOList)) {
throw new BusinessException("当前部门没有装置台账");
}
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getDeviceIndexes().stream()).collect(Collectors.toList());
//List<String> manuList = runManageParam.getManufacturer().stream().map(SimpleDTO::getId).collect(Collectors.toList());
return deviceMapper.getDeviceLedger(new Page<>(PageFactory.getPageNum(runManageParam), PageFactory.getPageSize(runManageParam)), devIndexes, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), null);
}
/**
* 评价筛选
*
* @param evaluate
* @param onlineEvaluate
* @return
*/
private boolean filterOnlineEvaluate(String evaluate, Double onlineEvaluate) {
if(onlineEvaluate!=null){
onlineEvaluate=onlineEvaluate*100;
switch (evaluate){
if (onlineEvaluate != null) {
onlineEvaluate = onlineEvaluate * 100;
switch (evaluate) {
case "":
if(onlineEvaluate>90){
if (onlineEvaluate > 90) {
return true;
}
return false;
case "":
if(60<onlineEvaluate&&onlineEvaluate<=90){
if (60 < onlineEvaluate && onlineEvaluate <= 90) {
return true;
}
return false;
case "":
if(onlineEvaluate<=60){
if (onlineEvaluate <= 60) {
return true;
}
return false;
@@ -301,9 +317,9 @@ public class RunManageServiceImpl implements RunManageService {
private GeneralDeviceDTO assembleDataByLine(SimpleDTO simpleDTO, List<Line> lines, List<String> keyIds, Integer level) {
GeneralDeviceDTO generalDeviceDTO = new GeneralDeviceDTO();
if(LineBaseEnum.SUB_V_LEVEL.getCode().equals(level)){
if (LineBaseEnum.SUB_V_LEVEL.getCode().equals(level)) {
generalDeviceDTO.setName(simpleDTO.getValue());
}else {
} else {
generalDeviceDTO.setName(simpleDTO.getName());
}
generalDeviceDTO.setIndex(simpleDTO.getId());