河北两级贯通文档修改
冀北台账管理接口开发
This commit is contained in:
@@ -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("终端台账统计")
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user