package com.gkhy.safePlatform.riskCtrl.service.impl; import cn.hutool.core.date.DateUtil; import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepInfoRPCRespDTO; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.doublePrevent.rpc.apimodel.PreventRPCDataCountService; import com.gkhy.safePlatform.doublePrevent.rpc.apimodel.model.req.RPCDataCountI1ReqDTO; import com.gkhy.safePlatform.doublePrevent.rpc.apimodel.model.req.RPCDataCountI2ReqDTO; import com.gkhy.safePlatform.doublePrevent.rpc.apimodel.model.resp.RPCDataCountI1RespDTO; import com.gkhy.safePlatform.doublePrevent.rpc.apimodel.model.resp.RPCDataCountI2RespDTO; import com.gkhy.safePlatform.emergency.rpc.api.EmergencyRpcAPi; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteCountRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteNumRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencyExecuteTimeRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.req.EmergencydrillTimeRPCReq; import com.gkhy.safePlatform.emergency.rpc.api.model.dto.resp.*; import com.gkhy.safePlatform.incidentManage.rpc.api.IncidentManageRpcAPi; import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.req.IncidentManageCountRPCReq; import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.*; import com.gkhy.safePlatform.riskCtrl.model.bo.*; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class CollectReportDataService { @DubboReference(check = false) private AccountDepartmentService departmentService; @DubboReference(check = false) private PreventRPCDataCountService preventRPCDataCountService; @DubboReference(check = false) private IncidentManageRpcAPi incidentManageRpcAPi; @DubboReference(check = false) private EmergencyRpcAPi emergencyRpcAPi; /** * 获取双重预防的隐患单月统计数据 * @param depInfo * @param year * @param month * @return */ @Transactional public RiskDataBO getPreventRiskData(DepInfoRPCRespDTO depInfo, Integer year, Integer month){ //获取I1数据 RPCDataCountI1ReqDTO riskSearchReqDTO = new RPCDataCountI1ReqDTO(); riskSearchReqDTO.setDepId(depInfo.getDepId()); riskSearchReqDTO.setYear(year); riskSearchReqDTO.setMonth(month); if(month != null) riskSearchReqDTO.setType((byte)1); else riskSearchReqDTO.setType((byte)2); ResultVO riskI1RpcResult = preventRPCDataCountService.listMonthDangerResultCountI1(riskSearchReqDTO); if(riskI1RpcResult == null || !riskI1RpcResult.getCode().equals(ResultCodes.OK.getCode())){ throw new RuntimeException("RPC调用出错"); } RPCDataCountI1RespDTO i1RpcData = (RPCDataCountI1RespDTO) riskI1RpcResult.getData(); //获取I2数据 RPCDataCountI2ReqDTO riskI2SearchReqDto = new RPCDataCountI2ReqDTO(); riskI2SearchReqDto.setDepId(depInfo.getDepId()); riskI2SearchReqDto.setYear(year); riskI2SearchReqDto.setMonth(month); if(month != null) riskI2SearchReqDto.setType((byte)1); else riskI2SearchReqDto.setType((byte)2); ResultVO riskI2RpcResult = preventRPCDataCountService.listMonthDangerLevelCountI2(riskI2SearchReqDto); if(riskI2RpcResult == null || !riskI2RpcResult.getCode().equals(ResultCodes.OK.getCode())){ throw new RuntimeException("RPC调用出错"); } RPCDataCountI2RespDTO i2RpcData = (RPCDataCountI2RespDTO) riskI2RpcResult.getData(); //处理数据 if(i1RpcData == null || i2RpcData == null){ return null; } RiskDataBO riskDataBO = new RiskDataBO(); riskDataBO.setDepId(depInfo.getDepId()); riskDataBO.setDepLevel(depInfo.getDepLevel()); riskDataBO.setDepName(depInfo.getDepName()); riskDataBO.setYear(year); riskDataBO.setMonth(month); riskDataBO.setCauseDeathCount(i1RpcData.getDeathCount()); riskDataBO.setCauseHeavyInjureCount(i1RpcData.getHeavyInjureCount()); riskDataBO.setCauseLightInjureCount(i1RpcData.getLightInjureCount()); //重大隐患数据 RiskCountBO majorRiskData = new RiskCountBO(); majorRiskData.setRiskCount(i2RpcData.getHeavyRiskCount()); majorRiskData.setRectifyCount(i2RpcData.getHeavyRiskRectifyCount()); riskDataBO.setMajorRiskData(majorRiskData); //一般隐患数据 RiskCountBO generalRiskData = new RiskCountBO(); generalRiskData.setRiskCount(i2RpcData.getLightRiskCount()); generalRiskData.setRectifyCount(i2RpcData.getLightRiskRectifyCount()); riskDataBO.setGeneralRiskData(generalRiskData); return riskDataBO; } @Transactional public IncidentDataBO getIncidentCountData(DepInfoRPCRespDTO depInfo, Integer year, Integer month){ //获取事故统计数据 IncidentManageCountRPCReq req = new IncidentManageCountRPCReq(); req.setDeptId(depInfo.getDepId()); req.setYear(year); req.setMonth(month); ResultVO> incidentSearchResultVO = incidentManageRpcAPi.getAccidentCountByDeptIdsAndMonth(req); if(incidentSearchResultVO == null || !incidentSearchResultVO.getCode().equals(ResultCodes.OK.getCode()) || incidentSearchResultVO.getData() == null){ return null; } //定义业务数据包装对象 IncidentDataBO incidentDataBO = new IncidentDataBO(); incidentDataBO.setDepId(depInfo.getDepId()); incidentDataBO.setDepLevel(depInfo.getDepLevel()); incidentDataBO.setDepName(depInfo.getDepName()); incidentDataBO.setYear(year); incidentDataBO.setMonth(month); //特大事故数据 IncidentCauseCountBO l1DateBO = new IncidentCauseCountBO(); l1DateBO.init(); l1DateBO.setLevel((byte)1); //重大事故数据 IncidentCauseCountBO l2DateBO = new IncidentCauseCountBO(); l2DateBO.init(); l2DateBO.setLevel((byte)2); //较大事故数据 IncidentCauseCountBO l3DateBO = new IncidentCauseCountBO(); l3DateBO.init(); l3DateBO.setLevel((byte)3); //一般事故数据 IncidentCauseCountBO l4DateBO = new IncidentCauseCountBO(); l4DateBO.init(); l4DateBO.setLevel((byte)4); //未遂事故数据 IncidentCauseCountBO l5DateBO = new IncidentCauseCountBO(); l5DateBO.init(); l5DateBO.setLevel((byte)5); List rpcRespDTOList = (List) incidentSearchResultVO.getData(); for(StatisticsDepLevelMonthAccidentRPCRespDTO respDTO : rpcRespDTOList){ if(respDTO.getAccidentLevelList() == null || respDTO.getAccidentLevelList().isEmpty()) continue; for(AccidentLevelResultCountRPCRespDTO accidentLevelCountDto : respDTO.getAccidentLevelList()){ if(accidentLevelCountDto == null) continue; if(accidentLevelCountDto.getAccidentLevel().equals((byte)1)){ l1DateBO.setAccidentCount(l1DateBO.getAccidentCount()+accidentLevelCountDto.getAccidentCount()); l1DateBO.setCauseDeathCount(l1DateBO.getCauseDeathCount()+accidentLevelCountDto.getDeathCount()); l1DateBO.setCauseHeavyInjureCount(l1DateBO.getCauseHeavyInjureCount()+accidentLevelCountDto.getSeriousInjuryCount()); l1DateBO.setCauseLightInjureCount(l1DateBO.getCauseLightInjureCount()+accidentLevelCountDto.getMinorInjuryCount()); l1DateBO.setLoss(l1DateBO.getLoss().add(accidentLevelCountDto.getEconomicLoss())); }else if(accidentLevelCountDto.getAccidentLevel().equals((byte)2)){ l2DateBO.setAccidentCount(l2DateBO.getAccidentCount()+accidentLevelCountDto.getAccidentCount()); l2DateBO.setCauseDeathCount(l2DateBO.getCauseDeathCount()+accidentLevelCountDto.getDeathCount()); l2DateBO.setCauseHeavyInjureCount(l2DateBO.getCauseHeavyInjureCount()+accidentLevelCountDto.getSeriousInjuryCount()); l2DateBO.setCauseLightInjureCount(l2DateBO.getCauseLightInjureCount()+accidentLevelCountDto.getMinorInjuryCount()); l2DateBO.setLoss(l2DateBO.getLoss().add(accidentLevelCountDto.getEconomicLoss())); }else if(accidentLevelCountDto.getAccidentLevel().equals((byte)3)){ l3DateBO.setAccidentCount(l3DateBO.getAccidentCount()+accidentLevelCountDto.getAccidentCount()); l3DateBO.setCauseDeathCount(l3DateBO.getCauseDeathCount()+accidentLevelCountDto.getDeathCount()); l3DateBO.setCauseHeavyInjureCount(l3DateBO.getCauseHeavyInjureCount()+accidentLevelCountDto.getSeriousInjuryCount()); l3DateBO.setCauseLightInjureCount(l3DateBO.getCauseLightInjureCount()+accidentLevelCountDto.getMinorInjuryCount()); l3DateBO.setLoss(l3DateBO.getLoss().add(accidentLevelCountDto.getEconomicLoss())); }else if(accidentLevelCountDto.getAccidentLevel().equals((byte)4)){ l4DateBO.setAccidentCount(l4DateBO.getAccidentCount()+accidentLevelCountDto.getAccidentCount()); l4DateBO.setCauseDeathCount(l4DateBO.getCauseDeathCount()+accidentLevelCountDto.getDeathCount()); l4DateBO.setCauseHeavyInjureCount(l4DateBO.getCauseHeavyInjureCount()+accidentLevelCountDto.getSeriousInjuryCount()); l4DateBO.setCauseLightInjureCount(l4DateBO.getCauseLightInjureCount()+accidentLevelCountDto.getMinorInjuryCount()); l4DateBO.setLoss(l4DateBO.getLoss().add(accidentLevelCountDto.getEconomicLoss())); }else if(accidentLevelCountDto.getAccidentLevel().equals((byte)5)){ l5DateBO.setAccidentCount(l5DateBO.getAccidentCount()+accidentLevelCountDto.getAccidentCount()); l5DateBO.setCauseDeathCount(l5DateBO.getCauseDeathCount()+accidentLevelCountDto.getDeathCount()); l5DateBO.setCauseHeavyInjureCount(l5DateBO.getCauseHeavyInjureCount()+accidentLevelCountDto.getSeriousInjuryCount()); l5DateBO.setCauseLightInjureCount(l5DateBO.getCauseLightInjureCount()+accidentLevelCountDto.getMinorInjuryCount()); l5DateBO.setLoss(l5DateBO.getLoss().add(accidentLevelCountDto.getEconomicLoss())); } } } incidentDataBO.setL1AccidentData(l1DateBO); incidentDataBO.setL2AccidentData(l2DateBO); incidentDataBO.setL3AccidentData(l3DateBO); incidentDataBO.setL4AccidentData(l4DateBO); incidentDataBO.setL5AccidentData(l5DateBO); return incidentDataBO; } /** * 获取事故管理单月统计数据 * @param depInfo * @param year * @param month * @return */ @Transactional public IncidentDataBO getIncidentCountData_old(DepInfoRPCRespDTO depInfo, Integer year, Integer month){ IncidentManageCountRPCReq req = new IncidentManageCountRPCReq(); req.setDeptId(depInfo.getDepId()); req.setYear(year); req.setMonth(month); SearchResultVO> incidentRpcSearchResultVO = incidentManageRpcAPi.getCountByDeptIds(req); if(incidentRpcSearchResultVO == null || !incidentRpcSearchResultVO.getCode().equals(ResultCodes.OK.getCode())){ throw new RuntimeException("RPC调用出错"); } List incidentManageRPCRespList = (List) incidentRpcSearchResultVO.getData(); if(incidentManageRPCRespList == null || incidentManageRPCRespList.isEmpty()){ return null; } IncidentDataBO incidentDataBO = new IncidentDataBO(); incidentDataBO.setDepId(depInfo.getDepId()); incidentDataBO.setDepLevel(depInfo.getDepLevel()); incidentDataBO.setDepName(depInfo.getDepName()); incidentDataBO.setYear(year); incidentDataBO.setMonth(month); //特大事故数据 IncidentCauseCountBO l1DateBO = new IncidentCauseCountBO(); l1DateBO.init(); l1DateBO.setLevel((byte)1); //重大事故数据 IncidentCauseCountBO l2DateBO = new IncidentCauseCountBO(); l2DateBO.init(); l2DateBO.setLevel((byte)2); //较大事故数据 IncidentCauseCountBO l3DateBO = new IncidentCauseCountBO(); l3DateBO.init(); l3DateBO.setLevel((byte)3); //一般事故数据 IncidentCauseCountBO l4DateBO = new IncidentCauseCountBO(); l4DateBO.init(); l4DateBO.setLevel((byte)4); //未遂事故数据 IncidentCauseCountBO l5DateBO = new IncidentCauseCountBO(); l5DateBO.init(); l5DateBO.setLevel((byte)5); for(IncidentManageRPCResp resp : incidentManageRPCRespList){ if(resp == null) continue; for(IncidentManageCountRPCResp countData : resp.getData()){ if(countData == null) continue; for(IncidentManageCountDetailRPCResp detail : countData.getDetail()){ if(detail == null) continue; switch (detail.getLevel()){ case "1" : { l1DateBO.setAccidentCount(l1DateBO.getAccidentCount()+detail.getNum()); l1DateBO.setCauseDeathCount(l1DateBO.getCauseDeathCount()+detail.getDeathNum()); l1DateBO.setCauseHeavyInjureCount(l1DateBO.getCauseHeavyInjureCount()+detail.getSeriousInjuryNum()); l1DateBO.setCauseLightInjureCount(l1DateBO.getCauseLightInjureCount()+detail.getMinorInjuryNum()); l1DateBO.setLoss(l1DateBO.getLoss().add(detail.getEconomicLoss())); break; } case "2" : { l2DateBO.setAccidentCount(l2DateBO.getAccidentCount()+detail.getNum()); l2DateBO.setCauseDeathCount(l2DateBO.getCauseDeathCount()+detail.getDeathNum()); l2DateBO.setCauseHeavyInjureCount(l2DateBO.getCauseHeavyInjureCount()+detail.getSeriousInjuryNum()); l2DateBO.setCauseLightInjureCount(l2DateBO.getCauseLightInjureCount()+detail.getMinorInjuryNum()); l2DateBO.setLoss(l2DateBO.getLoss().add(detail.getEconomicLoss())); break; } case "3" : { l3DateBO.setAccidentCount(l3DateBO.getAccidentCount()+detail.getNum()); l3DateBO.setCauseDeathCount(l3DateBO.getCauseDeathCount()+detail.getDeathNum()); l3DateBO.setCauseHeavyInjureCount(l3DateBO.getCauseHeavyInjureCount()+detail.getSeriousInjuryNum()); l3DateBO.setCauseLightInjureCount(l3DateBO.getCauseLightInjureCount()+detail.getMinorInjuryNum()); l3DateBO.setLoss(l3DateBO.getLoss().add(detail.getEconomicLoss())); break; } case "4" : { l4DateBO.setAccidentCount(l4DateBO.getAccidentCount()+detail.getNum()); l4DateBO.setCauseDeathCount(l4DateBO.getCauseDeathCount()+detail.getDeathNum()); l4DateBO.setCauseHeavyInjureCount(l4DateBO.getCauseHeavyInjureCount()+detail.getSeriousInjuryNum()); l4DateBO.setCauseLightInjureCount(l4DateBO.getCauseLightInjureCount()+detail.getMinorInjuryNum()); l4DateBO.setLoss(l4DateBO.getLoss().add(detail.getEconomicLoss())); break; } case "5" : { l5DateBO.setAccidentCount(l5DateBO.getAccidentCount()+detail.getNum()); l5DateBO.setCauseDeathCount(l5DateBO.getCauseDeathCount()+detail.getDeathNum()); l5DateBO.setCauseHeavyInjureCount(l5DateBO.getCauseHeavyInjureCount()+detail.getSeriousInjuryNum()); l5DateBO.setCauseLightInjureCount(l5DateBO.getCauseLightInjureCount()+detail.getMinorInjuryNum()); l5DateBO.setLoss(l5DateBO.getLoss().add(detail.getEconomicLoss())); break; } default: break; } } } } incidentDataBO.setL1AccidentData(l1DateBO); incidentDataBO.setL2AccidentData(l2DateBO); incidentDataBO.setL3AccidentData(l3DateBO); incidentDataBO.setL4AccidentData(l4DateBO); incidentDataBO.setL5AccidentData(l5DateBO); return incidentDataBO; } @Transactional public EmergencyDataBO getEmergencyCountData(DepInfoRPCRespDTO depInfo, Integer year, Integer month){ EmergencyExecuteCountRPCReq req = new EmergencyExecuteCountRPCReq(); req.setDeptId(depInfo.getDepId()); req.setYear(year); req.setMonth(month); //查询演练次数 ResultVO> emgcExecCountResultVO = emergencyRpcAPi.getExecuteCountByDeptIdsAndMonth(req); if(emgcExecCountResultVO == null || !emgcExecCountResultVO.getCode().equals(ResultCodes.OK.getCode()) || emgcExecCountResultVO.getData() == null){ return null; } //查询演练时间 EmergencydrillTimeRPCReq timeRPCReq = new EmergencydrillTimeRPCReq(); timeRPCReq.setDeptId(depInfo.getDepId()); timeRPCReq.setYear(year); timeRPCReq.setMonth(month); ResultVO> emgcExecTimeSearchResultVO = emergencyRpcAPi.getExecuteLastTimeByDeptIdsAndTime(timeRPCReq); if(emgcExecTimeSearchResultVO == null || !emgcExecTimeSearchResultVO.getCode().equals(ResultCodes.OK.getCode()) || emgcExecTimeSearchResultVO.getData() == null){ return null; } EmergencyDataBO emergencyDataBO = new EmergencyDataBO(); emergencyDataBO.setDepId(depInfo.getDepId()); emergencyDataBO.setDepLevel(depInfo.getDepLevel()); emergencyDataBO.setDepName(depInfo.getDepName()); emergencyDataBO.setYear(year); emergencyDataBO.setMonth(month); //解析数据 // - 解析演练次数 Map depLevelEmgcDataMap = new HashMap<>(); List emgcExecCountRespDtoList = (List) emgcExecCountResultVO.getData(); for(StatisticsDepLevelMonthEexcuteRPCRespDTO emgcExecCountRespDto : emgcExecCountRespDtoList){ EmergencyCountBO dataBO = depLevelEmgcDataMap.get(emgcExecCountRespDto.getDepLevel()); if(dataBO == null){ dataBO = new EmergencyCountBO(); dataBO.setDepLevel(emgcExecCountRespDto.getDepLevel()); depLevelEmgcDataMap.put(emgcExecCountRespDto.getDepLevel(),dataBO); } dataBO.setPracticeCount(emgcExecCountRespDto.getExecuteCount()); depLevelEmgcDataMap.put(emgcExecCountRespDto.getDepLevel(), dataBO); } // - 解析演练时间 List timeRPCRespList = (List) emgcExecTimeSearchResultVO.getData(); for(EmergencyExecuteDepLevelLasTimeRPCRespDTO resp : timeRPCRespList){ if(depLevelEmgcDataMap.containsKey(resp.getDepLevel())){ EmergencyCountBO countBO = depLevelEmgcDataMap.get(resp.getDepLevel()); LocalDateTime lastTime = DateUtil.parseLocalDateTime(resp.getLastPricateTime()); if(countBO.getLastPracticeTime() == null){ countBO.setLastPracticeTime(lastTime); }else if(countBO.getLastPracticeTime().isBefore(lastTime)){ countBO.setLastPracticeTime(lastTime); } } } emergencyDataBO.setPracticeData(new ArrayList<>()); depLevelEmgcDataMap.forEach((depLevel,dataBO)->{ if(dataBO != null){ emergencyDataBO.getPracticeData().add(dataBO); } }); return emergencyDataBO; } /** * 获取应急演练单月统计数据 * @param depInfo * @param year * @param month * @return */ @Transactional public EmergencyDataBO getEmergencyCountData_old(DepInfoRPCRespDTO depInfo, Integer year, Integer month){ //获取应急演练次数数据 EmergencyExecuteNumRPCReq numRPCReq = new EmergencyExecuteNumRPCReq(); numRPCReq.setDeptId(depInfo.getDepId()); numRPCReq.setYear(year); numRPCReq.setMonth(month); SearchResultVO> emergencyRpcSearchResultVO = emergencyRpcAPi.getNumByDeptIds(numRPCReq); if(emergencyRpcSearchResultVO == null || !emergencyRpcSearchResultVO.getCode().equals(ResultCodes.OK.getCode())){ throw new RuntimeException("RPC调用出错"); } List emgcExecRespList = (List) emergencyRpcSearchResultVO.getData(); //获取应急演练时间数据 EmergencyExecuteTimeRPCReq timeRPCReq = new EmergencyExecuteTimeRPCReq(); timeRPCReq.setDeptId(depInfo.getDepId()); SearchResultVO> emergencyTimeRpcSearchResultVO = emergencyRpcAPi.getTimeByDeptIds(timeRPCReq); if(emergencyTimeRpcSearchResultVO == null || !emergencyTimeRpcSearchResultVO.getCode().equals(ResultCodes.OK.getCode())){ throw new RuntimeException("RPC调用出错"); } List emgcExecTimeRespList = (List) emergencyTimeRpcSearchResultVO.getData(); if(emgcExecRespList == null || emgcExecRespList.isEmpty() || emgcExecTimeRespList == null || emgcExecTimeRespList.isEmpty()){ return null; } EmergencyDataBO emergencyDataBO = new EmergencyDataBO(); emergencyDataBO.setDepId(depInfo.getDepId()); emergencyDataBO.setDepLevel(depInfo.getDepLevel()); emergencyDataBO.setDepName(depInfo.getDepName()); emergencyDataBO.setYear(year); emergencyDataBO.setMonth(month); Map depLevelEmgcDataMap = new HashMap<>(); for(EmergencyExecuteNumRPCResp resp : emgcExecRespList){ if(resp == null || resp.getDetail() == null) continue; if(!depLevelEmgcDataMap.containsKey(resp.getDeptLevel())){ EmergencyCountBO emergencyCountBO = new EmergencyCountBO(); emergencyCountBO.setDepLevel(resp.getDeptLevel()); depLevelEmgcDataMap.put(resp.getDeptLevel(), emergencyCountBO); } EmergencyCountBO dataBO = depLevelEmgcDataMap.get(resp.getDeptLevel()); for(EmergencyExecuteNumDetailRPCResp detail : resp.getDetail()){ if(detail == null) continue; dataBO.setPracticeCount(dataBO.getPracticeCount()+detail.getNum()); } } for(EmergencyExecuteTimeRPCResp resp : emgcExecTimeRespList){ if(resp == null) continue; if(!depLevelEmgcDataMap.containsKey(resp.getDeptLevel())){ EmergencyCountBO emergencyCountBO = new EmergencyCountBO(); emergencyCountBO.setDepLevel(resp.getDeptLevel()); depLevelEmgcDataMap.put(resp.getDeptLevel(), emergencyCountBO); } EmergencyCountBO dataBO = depLevelEmgcDataMap.get(resp.getDeptLevel()); LocalDateTime lastTime = DateUtil.parseLocalDateTime(resp.getLastTime()); if(dataBO.getLastPracticeTime() == null){ dataBO.setLastPracticeTime(lastTime); }else if(dataBO.getLastPracticeTime().isBefore(lastTime)){ dataBO.setLastPracticeTime(lastTime); } } emergencyDataBO.setPracticeData(new ArrayList<>()); depLevelEmgcDataMap.forEach((depLevel,dataBO)->{ if(dataBO != null){ emergencyDataBO.getPracticeData().add(dataBO); } }); return emergencyDataBO; } }