zhangfeng
2022-10-10 1305d0aa469fe7330fd2f8e9fbb10d95042571be
incident-manage/incident-manage-rpc-provider/src/main/java/com/gkhy/safePlatform/incidentManage/rpc/provider/IncidentManageRpcProvider.java
@@ -1,14 +1,28 @@
package com.gkhy.safePlatform.incidentManage.rpc.provider;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
import com.gkhy.safePlatform.commons.vo.ResultVO;
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
import com.gkhy.safePlatform.incidentManage.enums.AccidentResultCodes;
import com.gkhy.safePlatform.incidentManage.exception.AccidentException;
import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentLevelResultCountRespDTO;
import com.gkhy.safePlatform.incidentManage.model.dto.resp.StatisticsDepLevelMonthAccidentRespDTO;
import com.gkhy.safePlatform.incidentManage.model.dto.resp.StatisticsDeptLevelYearAccidentRespDTO;
import com.gkhy.safePlatform.incidentManage.query.IncidentManageCountQuery;
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.AccidentLevelResultCountRPCRespDTO;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.IncidentManageRPCResp;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.StatisticsDepLevelMonthAccidentRPCRespDTO;
import com.gkhy.safePlatform.incidentManage.rpc.api.model.dto.resp.StatisticsDeptLevelYearAccidentRPCRespDTO;
import com.gkhy.safePlatform.incidentManage.service.AccidentCountService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
@DubboService
@@ -26,4 +40,146 @@
    public SearchResultVO<List<IncidentManageRPCResp>> getCountByDeptIds(IncidentManageCountRPCReq query) {
        return accidentCountService.getCountByDeptIds(query);
    }
    @Override
    public ResultVO<StatisticsDepLevelMonthAccidentRPCRespDTO> getAccidentCountByDeptIdAndMonth(IncidentManageCountRPCReq query) {
        ResultVO<StatisticsDepLevelMonthAccidentRPCRespDTO> result = new ResultVO<>(ResultCodes.OK);
        IncidentManageCountQuery countQuery = new IncidentManageCountQuery();
        countQuery.setDeptId(query.getDeptId());
        countQuery.setYear(query.getYear());
        countQuery.setMonth(query.getMonth());
        try{
            StatisticsDepLevelMonthAccidentRespDTO accidentRespDTO = accidentCountService.getCountByDeptIdAndMonth(countQuery);
            StatisticsDepLevelMonthAccidentRPCRespDTO accidentRPCRespDTO = new StatisticsDepLevelMonthAccidentRPCRespDTO();
            accidentRPCRespDTO.setMonth(accidentRespDTO.getMonth());
            accidentRPCRespDTO.setDepLevel(accidentRespDTO.getDepLevel());
            List<AccidentLevelResultCountRespDTO> accidentLevelList = accidentRespDTO.getAccidentLevelList();
            if(!CollectionUtils.isEmpty(accidentLevelList)){
                List<AccidentLevelResultCountRPCRespDTO> resultCountRPCRespDTOList = BeanCopyUtils.copyBeanList(accidentLevelList, AccidentLevelResultCountRPCRespDTO.class);
                accidentRPCRespDTO.setAccidentLevelList(resultCountRPCRespDTOList);
            }
            result.setData(accidentRPCRespDTO);
        }catch (AccidentException e){
            result.setCode(e.getCode());
            result.setMsg(e.getMessage());
        }catch (Exception e) {
            result.setCode(AccidentResultCodes.ERROR.getCode());
            result.setMsg(AccidentResultCodes.ERROR.getDesc());
        }
        return result;
    }
    @Override
    public ResultVO<StatisticsDeptLevelYearAccidentRPCRespDTO> getAccidentCountByDeptIdAndYear(IncidentManageCountRPCReq query) {
        ResultVO<StatisticsDeptLevelYearAccidentRPCRespDTO> result = new ResultVO<>(ResultCodes.OK);
        IncidentManageCountQuery countQuery = new IncidentManageCountQuery();
        countQuery.setDeptId(query.getDeptId());
        countQuery.setYear(query.getYear());
        countQuery.setMonth(query.getMonth());
        try{
            StatisticsDeptLevelYearAccidentRespDTO accidentRespDTO = accidentCountService.getCountByDeptIdAndYear(countQuery);
            StatisticsDeptLevelYearAccidentRPCRespDTO accidentRPCRespDTO = new StatisticsDeptLevelYearAccidentRPCRespDTO();
            accidentRPCRespDTO.setYear(accidentRespDTO.getYear());
            accidentRPCRespDTO.setDepLevel(accidentRespDTO.getDepLevel());
            List<StatisticsDepLevelMonthAccidentRespDTO> monthList = accidentRespDTO.getMonthList();
            List<StatisticsDepLevelMonthAccidentRPCRespDTO> monthAccidentRPCRespDTOList = new ArrayList<>();
            if(!CollectionUtils.isEmpty(monthList)){
                for(StatisticsDepLevelMonthAccidentRespDTO monthAccidentRespDTO : monthList){
                    StatisticsDepLevelMonthAccidentRPCRespDTO monthAccidentRPCRespDTO = new StatisticsDepLevelMonthAccidentRPCRespDTO();
                    monthAccidentRPCRespDTO.setMonth(monthAccidentRespDTO.getMonth());
                    monthAccidentRPCRespDTO.setDepLevel(monthAccidentRespDTO.getDepLevel());
                    List<AccidentLevelResultCountRespDTO> accidentLevelList = monthAccidentRespDTO.getAccidentLevelList();
                    if(!CollectionUtils.isEmpty(accidentLevelList)){
                        List<AccidentLevelResultCountRPCRespDTO> resultCountRPCRespDTOList = BeanCopyUtils.copyBeanList(accidentLevelList, AccidentLevelResultCountRPCRespDTO.class);
                        monthAccidentRPCRespDTO.setAccidentLevelList(resultCountRPCRespDTOList);
                    }
                    monthAccidentRPCRespDTOList.add(monthAccidentRPCRespDTO);
                }
            }
            accidentRPCRespDTO.setMonthList(monthAccidentRPCRespDTOList);
            result.setData(accidentRPCRespDTO);
        }catch (AccidentException e){
            result.setCode(e.getCode());
            result.setMsg(e.getMessage());
        }catch (Exception e) {
            result.setCode(AccidentResultCodes.ERROR.getCode());
            result.setMsg(AccidentResultCodes.ERROR.getDesc());
        }
        return result;
    }
    @Override
    public ResultVO<List<StatisticsDepLevelMonthAccidentRPCRespDTO>> getAccidentCountByDeptIdsAndMonth(IncidentManageCountRPCReq query) {
        ResultVO<List<StatisticsDepLevelMonthAccidentRPCRespDTO>> result = new ResultVO<>(ResultCodes.OK);
        IncidentManageCountQuery countQuery = new IncidentManageCountQuery();
        countQuery.setDeptId(query.getDeptId());
        countQuery.setYear(query.getYear());
        countQuery.setMonth(query.getMonth());
        try{
            List<StatisticsDepLevelMonthAccidentRespDTO> accidentRespDTOList = accidentCountService.getCountByDeptIdsAndMonth(countQuery);
            List<StatisticsDepLevelMonthAccidentRPCRespDTO> accidentRPCRespDTOList = new ArrayList<>();
            for(StatisticsDepLevelMonthAccidentRespDTO accidentRespDTO:accidentRespDTOList){
                StatisticsDepLevelMonthAccidentRPCRespDTO accidentRPCRespDTO = new StatisticsDepLevelMonthAccidentRPCRespDTO();
                accidentRPCRespDTO.setMonth(accidentRespDTO.getMonth());
                accidentRPCRespDTO.setDepLevel(accidentRespDTO.getDepLevel());
                List<AccidentLevelResultCountRespDTO> accidentLevelList = accidentRespDTO.getAccidentLevelList();
                if(!CollectionUtils.isEmpty(accidentLevelList)){
                    List<AccidentLevelResultCountRPCRespDTO> resultCountRPCRespDTOList = BeanCopyUtils.copyBeanList(accidentLevelList, AccidentLevelResultCountRPCRespDTO.class);
                    accidentRPCRespDTO.setAccidentLevelList(resultCountRPCRespDTOList);
                }
                accidentRPCRespDTOList.add(accidentRPCRespDTO);
            }
            result.setData(accidentRPCRespDTOList);
        }catch (AccidentException e){
            result.setCode(e.getCode());
            result.setMsg(e.getMessage());
        }catch (Exception e) {
            result.setCode(AccidentResultCodes.ERROR.getCode());
            result.setMsg(AccidentResultCodes.ERROR.getDesc());
        }
        return result;
    }
    @Override
    public ResultVO<List<StatisticsDeptLevelYearAccidentRPCRespDTO>> getAccidentCountByDeptIdsAndYear(IncidentManageCountRPCReq query) {
        ResultVO<List<StatisticsDeptLevelYearAccidentRPCRespDTO>> result = new ResultVO<>(ResultCodes.OK);
        IncidentManageCountQuery countQuery = new IncidentManageCountQuery();
        countQuery.setDeptId(query.getDeptId());
        countQuery.setYear(query.getYear());
        countQuery.setMonth(query.getMonth());
        try{
            List<StatisticsDeptLevelYearAccidentRespDTO> yearAccidentRespDTOList = accidentCountService.getCountByDeptIdsAndYear(countQuery);
            List<StatisticsDeptLevelYearAccidentRPCRespDTO> accidentRPCRespDTOList = new ArrayList<>();
            for(StatisticsDeptLevelYearAccidentRespDTO yearAccidentRespDTO:yearAccidentRespDTOList){
                StatisticsDeptLevelYearAccidentRPCRespDTO yearAccidentRPCRespDTO = new StatisticsDeptLevelYearAccidentRPCRespDTO();
                yearAccidentRPCRespDTO.setYear(yearAccidentRespDTO.getYear());
                yearAccidentRPCRespDTO.setDepLevel(yearAccidentRespDTO.getDepLevel());
                List<StatisticsDepLevelMonthAccidentRespDTO> monthList = yearAccidentRespDTO.getMonthList();
                List<StatisticsDepLevelMonthAccidentRPCRespDTO> monthAccidentRPCRespDTOList = new ArrayList<>();
                if(!CollectionUtils.isEmpty(monthList)){
                    for(StatisticsDepLevelMonthAccidentRespDTO monthAccidentRespDTO:monthList){
                        StatisticsDepLevelMonthAccidentRPCRespDTO monthAccidentRPCRespDTO = new StatisticsDepLevelMonthAccidentRPCRespDTO();
                        monthAccidentRPCRespDTO.setMonth(monthAccidentRespDTO.getMonth());
                        monthAccidentRPCRespDTO.setDepLevel(monthAccidentRespDTO.getDepLevel());
                        List<AccidentLevelResultCountRespDTO> accidentLevelList = monthAccidentRespDTO.getAccidentLevelList();
                        if (!CollectionUtils.isEmpty(accidentLevelList)) {
                            List<AccidentLevelResultCountRPCRespDTO> resultCountRPCRespDTOList = BeanCopyUtils.copyBeanList(accidentLevelList, AccidentLevelResultCountRPCRespDTO.class);
                            monthAccidentRPCRespDTO.setAccidentLevelList(resultCountRPCRespDTOList);
                        }
                        monthAccidentRPCRespDTOList.add(monthAccidentRPCRespDTO);
                    }
                }
                accidentRPCRespDTOList.add(yearAccidentRPCRespDTO);
            }
            result.setData(accidentRPCRespDTOList);
        }catch (AccidentException e){
            result.setCode(e.getCode());
            result.setMsg(e.getMessage());
        }catch (Exception e) {
            result.setCode(AccidentResultCodes.ERROR.getCode());
            result.setMsg(AccidentResultCodes.ERROR.getDesc());
        }
        return result;
    }
}