代码提交

This commit is contained in:
huangzj
2023-09-28 11:41:47 +08:00
parent 7b9f456a4d
commit d670713a01
5 changed files with 200 additions and 69 deletions

View File

@@ -7,6 +7,7 @@ import com.njcn.csdevice.pojo.dto.DevDetailDTO;
import com.njcn.csdevice.pojo.dto.LineParamDTO; import com.njcn.csdevice.pojo.dto.LineParamDTO;
import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.param.CsLedgerParam;
import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@@ -34,4 +35,8 @@ public interface CsLedgerFeignClient {
@PostMapping("/queryDevDetail") @PostMapping("/queryDevDetail")
HttpResult<DevDetailDTO> queryDevDetail(@RequestParam("devId") String devId); HttpResult<DevDetailDTO> queryDevDetail(@RequestParam("devId") String devId);
@PostMapping("/deviceTree")
@ApiOperation("三层设备树(装置层)")
HttpResult<List<CsLedgerVO>> getDeviceTree();
} }

View File

@@ -8,6 +8,7 @@ import com.njcn.csdevice.pojo.dto.DevDetailDTO;
import com.njcn.csdevice.pojo.dto.LineParamDTO; import com.njcn.csdevice.pojo.dto.LineParamDTO;
import com.njcn.csdevice.pojo.param.CsLedgerParam; import com.njcn.csdevice.pojo.param.CsLedgerParam;
import com.njcn.csdevice.pojo.po.CsLedger; import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.utils.CsDeviceEnumUtil; import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -55,6 +56,12 @@ public class CsLedgerFeignClientFallbackFactory implements FallbackFactory<CsLed
log.error("{}异常,降级处理,异常为:{}","查询设备详情",cause.toString()); log.error("{}异常,降级处理,异常为:{}","查询设备详情",cause.toString());
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CsLedgerVO>> getDeviceTree() {
log.error("{}异常,降级处理,异常为:{}","查询设备树",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -1,6 +1,8 @@
package com.njcn.csharmonic.mapper; package com.njcn.csharmonic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.csharmonic.param.CsEventUserQueryPage;
import com.njcn.csharmonic.param.CsEventUserQueryParam; import com.njcn.csharmonic.param.CsEventUserQueryParam;
import com.njcn.csharmonic.pojo.po.CsEventUserPO; import com.njcn.csharmonic.pojo.po.CsEventUserPO;
import com.njcn.csharmonic.pojo.vo.EventDetailVO; import com.njcn.csharmonic.pojo.vo.EventDetailVO;
@@ -20,4 +22,6 @@ public interface CsEventUserPOMapper extends BaseMapper<CsEventUserPO> {
Integer queryEventCount(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam); Integer queryEventCount(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam);
List<EventDetailVO> queryUserEventList(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam); List<EventDetailVO> queryUserEventList(@Param("csEventUserQueryParam") CsEventUserQueryParam csEventUserQueryParam);
Page<EventDetailVO> queryEventpage(Page<EventDetailVO> returnpage, @Param("csEventUserQueryPage") CsEventUserQueryPage csEventUserQueryPage, @Param("devIds") List<String> devIds);
} }

View File

@@ -62,4 +62,41 @@
order by create_time desc order by create_time desc
</select> </select>
<select id="queryEventpage" resultType="com.njcn.csharmonic.pojo.vo.EventDetailVO">
select a.event_id id,a.user_id userId,a.status status,b.device_id deviceId,b.line_id lineId,
b.start_time startTime,b.tag tag ,b.wave_path wavePath,b.instant_pics,b.rms_pics , b.type type
from cs_event_user a inner join cs_event b on a.event_id=b.id where 1=1
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.endTime != null and csEventUserQueryPage.endTime !=''">
AND DATE(b.start_time) &lt;= DATE(#{csEventUserQueryPage.endTime})
</if>
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.startTime != null and csEventUserQueryPage.startTime !=''">
AND DATE(b.start_time) &gt;= DATE(#{csEventUserQueryPage.startTime})
</if>
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.target != null and csEventUserQueryPage.target.size()>0">
and b.tag in
<foreach collection="csEventUserQueryPage.target" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
and b.device_id in
<foreach collection="devIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.type != null and csEventUserQueryPage.type !=''">
AND b.type =#{ csEventUserQueryPage.type}
</if>
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.level != null and csEventUserQueryPage.level !=''">
AND b.level =#{ csEventUserQueryPage.level}
</if>
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.status != null and csEventUserQueryPage.status !=''">
AND a.status =#{ csEventUserQueryPage.status}
</if>
<if test="csEventUserQueryPage!=null and csEventUserQueryPage.userId != null and csEventUserQueryPage.userId !=''">
and a.user_id=#{ csEventUserQueryPage.userId}
</if>
order by create_time desc
</select>
</mapper> </mapper>

View File

@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.constant.LogInfo;
import com.njcn.csdevice.api.CsLedgerFeignClient; import com.njcn.csdevice.api.CsLedgerFeignClient;
import com.njcn.csdevice.pojo.dto.DevDetailDTO; import com.njcn.csdevice.pojo.dto.DevDetailDTO;
import com.njcn.csdevice.pojo.po.AppTopologyDiagramPO;
import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO; import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csharmonic.param.CsEventUserQueryPage; import com.njcn.csharmonic.param.CsEventUserQueryPage;
import com.njcn.csharmonic.param.CsEventUserQueryParam; import com.njcn.csharmonic.param.CsEventUserQueryParam;
import com.njcn.csharmonic.pojo.vo.EventDetailVO; import com.njcn.csharmonic.pojo.vo.EventDetailVO;
@@ -16,22 +16,17 @@ import com.njcn.influx.service.EvtDataService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.EleEvtFeignClient; import com.njcn.system.api.EleEvtFeignClient;
import com.njcn.system.api.EpdFeignClient; import com.njcn.system.api.EpdFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.pojo.po.EleEpdPqd;
import com.njcn.system.pojo.po.EleEvtParm; import com.njcn.system.pojo.po.EleEvtParm;
import com.njcn.user.enums.AppRoleEnum; import com.njcn.user.enums.AppRoleEnum;
import com.njcn.web.utils.RequestUtil; import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -91,29 +86,154 @@ public class CsEventUserPOServiceImpl extends ServiceImpl<CsEventUserPOMapper, C
// csEventUserQueryParam.setTarget(collect); // csEventUserQueryParam.setTarget(collect);
// } // }
List<EventDetailVO> list = this.getBaseMapper().queryUserEventList(csEventUserQueryParam); List<EventDetailVO> list = this.getBaseMapper().queryUserEventList(csEventUserQueryParam);
// 主要用于统计不关心详情,详情重分页查询获取
// list.forEach(temp->{
// DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData();
// temp.setEquipmentName(devDetail.getEquipmentName());
// temp.setProjectId(devDetail.getProjectId());
// temp.setProjectName(devDetail.getProjectName());
// temp.setEngineeringid(devDetail.getEngineeringid());
// temp.setEngineeringName(devDetail.getEngineeringName());
// EleEpdPqd data = epdFeignClient.findByName(temp.getTag()).getData();
// temp.setShowName(data.getShowName());
//
// if(Objects.equals(csEventUserQueryParam.getType(),"0")){
// List<EleEvtParm> data1 = eleEvtFeignClient.queryByPid(data.getId()).getData();
// List<EventDataSetDTO> eventDataSetDTOS = new ArrayList<>();
// for (EleEvtParm eleEvtParm : data1) {
// EventDataSetDTO eventDataSetDTO = new EventDataSetDTO();
// BeanUtils.copyProperties(eleEvtParm,eventDataSetDTO);
// EventDataSetDTO evtData = evtDataService.getEventDataSet("evt_data", temp.getId(), eleEvtParm.getName());
// if (evtData == null) {
// eventDataSetDTO.setValue("-");
// }else {
// eventDataSetDTO.setValue(Optional.ofNullable(evtData.getValue()).orElse("-"));
//
// }
//
// eventDataSetDTOS.add(eventDataSetDTO);
// }
// temp.setDataSet(eventDataSetDTOS);
//
// List<EventDataSetDTO> evtParamVVaDepth = eventDataSetDTOS.stream().
// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_VVaDepth")).
// collect(Collectors.toList());
// if(CollectionUtil.isEmpty(evtParamVVaDepth)){
// temp.setEvtParamVVaDepth("-");
//
// }else {
// temp.setEvtParamVVaDepth(evtParamVVaDepth.get(0).getValue()+(Objects.isNull(evtParamVVaDepth.get(0).getUnit())?"":evtParamVVaDepth.get(0).getUnit()));
//
// }
//
// List<EventDataSetDTO> evtParamPosition = eventDataSetDTOS.stream().
// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_Position")).
// collect(Collectors.toList());
// if(CollectionUtil.isEmpty(evtParamPosition)){
// temp.setEvtParamPosition("-");
//
// }else {
// temp.setEvtParamPosition(evtParamPosition.get(0).getValue()+(Objects.isNull(evtParamPosition.get(0).getUnit())?"":evtParamPosition.get(0).getUnit()));
//
// }
//
// List<EventDataSetDTO> evtParamTm = eventDataSetDTOS.stream().
// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_Tm")).
// collect(Collectors.toList());
// if(CollectionUtil.isEmpty(evtParamTm)){
// temp.setEvtParamTm("-");
//
// }else {
// temp.setEvtParamTm(evtParamTm.get(0).getValue()+(Objects.isNull(evtParamTm.get(0).getUnit())?"":evtParamTm.get(0).getUnit()));
//
// }
//
// List<EventDataSetDTO> evtParamPhase = eventDataSetDTOS.stream().
// filter(dataSetDTO -> Objects.equals(dataSetDTO.getName(), "Evt_Param_Phase")).
// collect(Collectors.toList());
// if(CollectionUtil.isEmpty(evtParamPhase)){
// temp.setEvtParamPhase("-");
//
// }else {
// temp.setEvtParamPhase(evtParamPhase.get(0).getValue()+(Objects.isNull(evtParamPhase.get(0).getUnit())?"":evtParamPhase.get(0).getUnit()));
//
// }
//
// }
//
// });
list.forEach(temp->{
return list;
}
@Override
public void updateStatus(CsEventUserQueryParam csEventUserQueryParam) {
if(CollectionUtil.isEmpty(csEventUserQueryParam.getEventIds())){
return;
}
csEventUserQueryParam.setUserId(RequestUtil.getUserIndex());
this.lambdaUpdate().in(CsEventUserPO::getEventId,csEventUserQueryParam.getEventIds()).
eq(CsEventUserPO::getUserId,csEventUserQueryParam.getUserId()).
set(CsEventUserPO::getStatus,1).update();
}
@Override
public Page<EventDetailVO> queryEventpage(CsEventUserQueryPage csEventUserQueryPage) {
Page<EventDetailVO> returnpage = new Page<> (csEventUserQueryPage.getPageNum ( ), csEventUserQueryPage.getPageSize ( ));
csEventUserQueryPage.setUserId(RequestUtil.getUserIndex());
String role = RequestUtil.getUserRole();
if(Objects.equals(role, LogInfo.UNKNOWN_ROLE)){
return returnpage;
}
List<String> strings = JSONArray.parseArray(role, String.class);
if(CollectionUtils.isEmpty(strings)){
return returnpage;
}
role=strings.get(0);
if( Objects.equals(role, AppRoleEnum.APP_VIP_USER.getCode())){
csEventUserQueryPage.setLevel("3");
}
if( Objects.equals(role, AppRoleEnum.OPERATION_MANAGER.getCode())||Objects.equals(role, AppRoleEnum.ROOT.getCode())){
csEventUserQueryPage.setUserId(null);
}
List<String> deviceId = new ArrayList<>();
List<CsLedgerVO> data = csLedgerFeignClient.getDeviceTree().getData();
List<String> collect = data.stream().filter(temp->StringUtils.isEmpty(csEventUserQueryPage.getEngineeringid())||
Objects.equals(temp.getId(), csEventUserQueryPage.getEngineeringid())).map(CsLedgerVO::getChildren).
flatMap(Collection::stream).filter(
temp->StringUtils.isEmpty(csEventUserQueryPage.getProjectId())||
Objects.equals(temp.getId(), csEventUserQueryPage.getProjectId())
).
map(CsLedgerVO::getChildren).
flatMap(Collection::stream).filter(
temp->StringUtils.isEmpty(csEventUserQueryPage.getDeviceId())||
Objects.equals(temp.getId(), csEventUserQueryPage.getDeviceId())
).
map(CsLedgerVO::getId).
collect(Collectors.toList());
if (CollectionUtils.isEmpty(collect)){
return returnpage;
}
returnpage = this.getBaseMapper().queryEventpage(returnpage,csEventUserQueryPage,collect);
returnpage.getRecords().forEach(temp->{
DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData(); DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData();
temp.setEquipmentName(devDetail.getEquipmentName()); temp.setEquipmentName(devDetail.getEquipmentName());
temp.setProjectId(devDetail.getProjectId()); temp.setProjectId(devDetail.getProjectId());
temp.setProjectName(devDetail.getProjectName()); temp.setProjectName(devDetail.getProjectName());
temp.setEngineeringid(devDetail.getEngineeringid()); temp.setEngineeringid(devDetail.getEngineeringid());
temp.setEngineeringName(devDetail.getEngineeringName()); temp.setEngineeringName(devDetail.getEngineeringName());
EleEpdPqd data = epdFeignClient.findByName(temp.getTag()).getData(); EleEpdPqd ele = epdFeignClient.findByName(temp.getTag()).getData();
temp.setShowName(data.getShowName()); temp.setShowName(ele.getShowName());
if(Objects.equals(csEventUserQueryPage.getType(),"0")){
}); List<EleEvtParm> data1 = eleEvtFeignClient.queryByPid(ele.getId()).getData();
if(Objects.equals(csEventUserQueryParam.getType(),"0")){
list.forEach(temp->{
DevDetailDTO devDetail = csLedgerFeignClient.queryDevDetail(temp.getDeviceId()).getData();
temp.setEquipmentName(devDetail.getEquipmentName());
temp.setProjectId(devDetail.getProjectId());
temp.setProjectName(devDetail.getProjectName());
temp.setEngineeringid(devDetail.getEngineeringid());
temp.setEngineeringName(devDetail.getEngineeringName());
EleEpdPqd data = epdFeignClient.findByName(temp.getTag()).getData();
temp.setShowName(data.getShowName());
List<EleEvtParm> data1 = eleEvtFeignClient.queryByPid(data.getId()).getData();
List<EventDataSetDTO> eventDataSetDTOS = new ArrayList<>(); List<EventDataSetDTO> eventDataSetDTOS = new ArrayList<>();
for (EleEvtParm eleEvtParm : data1) { for (EleEvtParm eleEvtParm : data1) {
EventDataSetDTO eventDataSetDTO = new EventDataSetDTO(); EventDataSetDTO eventDataSetDTO = new EventDataSetDTO();
@@ -173,56 +293,14 @@ public class CsEventUserPOServiceImpl extends ServiceImpl<CsEventUserPOMapper, C
temp.setEvtParamPhase(evtParamPhase.get(0).getValue()+(Objects.isNull(evtParamPhase.get(0).getUnit())?"":evtParamPhase.get(0).getUnit())); temp.setEvtParamPhase(evtParamPhase.get(0).getValue()+(Objects.isNull(evtParamPhase.get(0).getUnit())?"":evtParamPhase.get(0).getUnit()));
} }
}
}); });
}
return list;
}
@Override
public void updateStatus(CsEventUserQueryParam csEventUserQueryParam) {
if(CollectionUtil.isEmpty(csEventUserQueryParam.getEventIds())){
return;
}
csEventUserQueryParam.setUserId(RequestUtil.getUserIndex());
this.lambdaUpdate().in(CsEventUserPO::getEventId,csEventUserQueryParam.getEventIds()).
eq(CsEventUserPO::getUserId,csEventUserQueryParam.getUserId()).
set(CsEventUserPO::getStatus,1).update();
}
@Override
public Page<EventDetailVO> queryEventpage(CsEventUserQueryPage csEventUserQueryPage) {
Page<EventDetailVO> returnpage = new Page<> (csEventUserQueryPage.getPageNum ( ), csEventUserQueryPage.getPageSize ( ));
List<EventDetailVO> list = this.queryUserEventList(csEventUserQueryPage);
if(!StringUtils.isEmpty(csEventUserQueryPage.getEngineeringid())){
list =list.stream().filter(temp->Objects.equals(temp.getEngineeringid(),csEventUserQueryPage.getEngineeringid())).collect(Collectors.toList());
}
if(!StringUtils.isEmpty(csEventUserQueryPage.getProjectId())){
list =list.stream().filter(temp->Objects.equals(temp.getProjectId(),csEventUserQueryPage.getProjectId())).collect(Collectors.toList());
}
if(!StringUtils.isEmpty(csEventUserQueryPage.getDeviceId())){
list =list.stream().filter(temp->Objects.equals(temp.getDeviceId(),csEventUserQueryPage.getDeviceId())).collect(Collectors.toList());
}
List list1 = this.startPage(list, csEventUserQueryPage.getPageNum(), csEventUserQueryPage.getPageSize());
returnpage.setRecords (list1);
returnpage.setTotal(list.size());
return returnpage; return returnpage;
} }
public List startPage(List list, Integer pageNum,
Integer pageSize) {
int total = list.size();
int size = pageNum * pageSize > total ? total : pageNum * pageSize;
int startNum = (pageNum - 1) * pageSize;
if (startNum > size){
startNum = 1;
}
List dataList = list.subList(startNum, size);
return dataList;
}
} }