双重预防项目-国泰新华二开定制版
kongzy
2024-08-14 135a322f44708b1187d37ea4b6859b5d82113e89
src/main/java/com/ruoyi/doublePrevention/service/baseService/impl/RiskAndPeopleInfoServiceImpl.java
@@ -1,96 +1,164 @@
package com.ruoyi.doublePrevention.service.baseService.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.BeanCopyUtils;
import com.ruoyi.doublePrevention.entity.PreventRiskDangerCheckLog;
import com.ruoyi.doublePrevention.entity.RiskAndPeopleInfo;
import com.ruoyi.doublePrevention.entity.dto.req.RiskAndPeopleInfoReqBO;
import com.ruoyi.doublePrevention.entity.dto.resp.RiskAndPeopleInfoDTO;
import com.ruoyi.doublePrevention.entity.dto.resp.RiskAndPeopleInfoRespDTO;
import com.ruoyi.doublePrevention.repository.RiskAndPeopleInfoRepository;
import com.ruoyi.doublePrevention.service.baseService.PreventRiskDangerCheckLogService;
import com.ruoyi.doublePrevention.service.baseService.RiskAndPeopleInfoService;
import com.ruoyi.doublePrevention.vo.ResultVO;
import com.ruoyi.project.tr.HiddenDangerCheckJob.domain.HiddenDangerCheckJobLog;
import com.ruoyi.project.tr.HiddenDangerCheckJob.service.IHiddenDangerCheckJobLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Service("RiskAndPeopleInfoService")
public class RiskAndPeopleInfoServiceImpl  extends ServiceImpl<RiskAndPeopleInfoRepository, RiskAndPeopleInfo> implements RiskAndPeopleInfoService {
    @Autowired
    private RiskAndPeopleInfoRepository repository;
    @Autowired
    private IHiddenDangerCheckJobLogService hiddenDangerCheckJobLogService;
    @Autowired
    private PreventRiskDangerCheckLogService preventRiskDangerCheckLogService;
    @Override
    public ResultVO<RiskAndPeopleInfoRespDTO> listRiskAndPeoplePage(RiskAndPeopleInfoReqBO reqBO) {
        ResultVO resultVO = new ResultVO<>();
        RiskAndPeopleInfoRespDTO respDTO = new RiskAndPeopleInfoRespDTO();
        if (ObjectUtils.isEmpty(reqBO.getPageSize())){
            throw new BusinessException("分页信息不能为空");
        }
        if (ObjectUtils.isEmpty(reqBO.getPageNum())){
            throw new BusinessException("分页信息不能为空");
        }
        Integer pageIndex = reqBO.getPageNum();
        Integer pageSize = reqBO.getPageSize();
        Page<RiskAndPeopleInfo> page = PageHelper.startPage(pageIndex, pageSize);
        List<RiskAndPeopleInfo> riskOldInfo = repository.listRiskAndPeoplePage(reqBO);
        List<HiddenDangerCheckJobLog> allCheckJobLogList = new ArrayList<>();
        List<HiddenDangerCheckJobLog> completeCheckJobLogList = new ArrayList<>();
        for (RiskAndPeopleInfo riskAndPeopleInfo : riskOldInfo) {
            //取出操作人的id,依此为依据,查询所有的任务记录 check_user_id
            List<HiddenDangerCheckJobLog> jobLogLists = hiddenDangerCheckJobLogService.getJobLogByCheckUserId(riskAndPeopleInfo.getHandleLiabilityPersonId());
            if (jobLogLists.size() > 0){
                for (HiddenDangerCheckJobLog jobLog : jobLogLists) {
                    PreventRiskDangerCheckLog preventRiskDangerCheckLog = preventRiskDangerCheckLogService.getByDangerCheckByJobId(jobLog.getJobId());
                    if (preventRiskDangerCheckLog.getCheckStatus() != 3){
                        completeCheckJobLogList.add(jobLog);
                    }
                    allCheckJobLogList.add(jobLog);
                }
            }
        }
        List<RiskAndPeopleInfoDTO> riskAndPeopleList = BeanCopyUtils.copyBeanList(riskOldInfo, RiskAndPeopleInfoDTO.class);
        int completeRatio = 0;
        if (allCheckJobLogList.size() > 0){
            completeRatio = completeCheckJobLogList.size() / allCheckJobLogList.size();
        }
        respDTO.setRiskAndPeopleInfoDTO(riskAndPeopleList);
        respDTO.setCount(allCheckJobLogList.size());
        respDTO.setComplete(completeCheckJobLogList.size());
        respDTO.setCompleteRatio(BigDecimal.valueOf(completeRatio));
        resultVO.setPageSize(pageSize);
        resultVO.setPageNum(pageIndex);
        resultVO.setCount(riskAndPeopleList.size());
        resultVO.setData(respDTO);
        return resultVO;
    }
}
package com.ruoyi.doublePrevention.service.baseService.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.BeanCopyUtils;
import com.ruoyi.doublePrevention.entity.PreventRiskDangerCheckLog;
import com.ruoyi.doublePrevention.entity.RiskAndPeopleInfo;
import com.ruoyi.doublePrevention.entity.dto.req.RiskAndPeopleInfoReqBO;
import com.ruoyi.doublePrevention.entity.dto.resp.RiskAndPeopleInfoDTO;
import com.ruoyi.doublePrevention.entity.dto.resp.RiskAndPeopleInfoRespDTO;
import com.ruoyi.doublePrevention.repository.RiskAndPeopleInfoRepository;
import com.ruoyi.doublePrevention.service.baseService.PreventRiskDangerCheckLogService;
import com.ruoyi.doublePrevention.service.baseService.RiskAndPeopleInfoService;
import com.ruoyi.doublePrevention.vo.ResultVO;
import com.ruoyi.project.tr.HiddenDangerCheckJob.domain.HiddenDangerCheckJobLog;
import com.ruoyi.project.tr.HiddenDangerCheckJob.service.IHiddenDangerCheckJobLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Service("RiskAndPeopleInfoService")
public class RiskAndPeopleInfoServiceImpl  extends ServiceImpl<RiskAndPeopleInfoRepository, RiskAndPeopleInfo> implements RiskAndPeopleInfoService {
    @Autowired
    private RiskAndPeopleInfoRepository repository;
    @Autowired
    private IHiddenDangerCheckJobLogService hiddenDangerCheckJobLogService;
    @Autowired
    private PreventRiskDangerCheckLogService preventRiskDangerCheckLogService;
    @Override
    public ResultVO<RiskAndPeopleInfoRespDTO> listRiskAndPeoplePage(RiskAndPeopleInfoReqBO reqBO) {
        ResultVO resultVO = new ResultVO<>();
        RiskAndPeopleInfoRespDTO respDTO = new RiskAndPeopleInfoRespDTO();
        if (ObjectUtils.isEmpty(reqBO.getPageSize())){
            throw new BusinessException("分页信息不能为空");
        }
        if (ObjectUtils.isEmpty(reqBO.getPageNum())){
            throw new BusinessException("分页信息不能为空");
        }
        Integer pageIndex = reqBO.getPageNum();
        Integer pageSize = reqBO.getPageSize();
        Page<RiskAndPeopleInfo> page = PageHelper.startPage(pageIndex, pageSize);
        List<RiskAndPeopleInfo> riskOldInfo = repository.listRiskAndPeoplePage(reqBO);
        List<HiddenDangerCheckJobLog> allCheckJobLogList = new ArrayList<>();
        List<HiddenDangerCheckJobLog>  completeCheckJobLogList = new ArrayList<>();
        List<HiddenDangerCheckJobLog> allCheckJobLogListOfHandle = new ArrayList<>();
        List<HiddenDangerCheckJobLog> completeCheckJobLogListOfHandle = new ArrayList<>();
        List<HiddenDangerCheckJobLog> allCheckJobLogListOfTechnology = new ArrayList<>();
        List<HiddenDangerCheckJobLog> completeCheckJobLogListOfTechnology = new ArrayList<>();
        List<HiddenDangerCheckJobLog> allCheckJobLogListOfMain = new ArrayList<>();
        List<HiddenDangerCheckJobLog> completeCheckJobLogListOfMain = new ArrayList<>();
        for (RiskAndPeopleInfo riskAndPeopleInfo : riskOldInfo) {
            //操作人的id,依此为依据,查询所有的任务记录 check_user_id
            List<HiddenDangerCheckJobLog> jobLogOfHandle = hiddenDangerCheckJobLogService.getJobLogByCheckUserId(riskAndPeopleInfo.getHandleLiabilityPersonId());
            if (jobLogOfHandle.size() > 0){
                for (HiddenDangerCheckJobLog jobLog : jobLogOfHandle) {
                    PreventRiskDangerCheckLog preventRiskDangerCheckLog = preventRiskDangerCheckLogService.getByDangerCheckByJobId(jobLog.getJobId());
                    if (preventRiskDangerCheckLog.getCheckStatus() != 3){
                        completeCheckJobLogListOfHandle.add(jobLog);
                        completeCheckJobLogList.add(jobLog);
                    }
                    allCheckJobLogListOfHandle.add(jobLog);
                    allCheckJobLogList.add(jobLog);
                }
            }
            //技术负责人的id,依此为依据,查询所有的任务记录 check_user_id
            List<HiddenDangerCheckJobLog> jobLogListsOfTechnology = hiddenDangerCheckJobLogService.getJobLogByCheckUserId(riskAndPeopleInfo.getTechnologyLiabilityPersonId());
            if (jobLogListsOfTechnology.size() > 0){
                for (HiddenDangerCheckJobLog jobLog : jobLogListsOfTechnology) {
                    PreventRiskDangerCheckLog preventRiskDangerCheckLog = preventRiskDangerCheckLogService.getByDangerCheckByJobId(jobLog.getJobId());
                    if (preventRiskDangerCheckLog.getCheckStatus() != 3){
                        completeCheckJobLogListOfTechnology.add(jobLog);
                        completeCheckJobLogList.add(jobLog);
                    }
                    allCheckJobLogListOfTechnology.add(jobLog);
                    allCheckJobLogList.add(jobLog);
                }
            }
            //主要负责人的id,依此为依据,查询所有的任务记录 check_user_id
            List<HiddenDangerCheckJobLog> jobLogListsOfMain = hiddenDangerCheckJobLogService.getJobLogByCheckUserId(riskAndPeopleInfo.getMainLiabilityPersonId());
            if (jobLogListsOfMain.size() > 0){
                for (HiddenDangerCheckJobLog jobLog : jobLogListsOfMain) {
                    PreventRiskDangerCheckLog preventRiskDangerCheckLog = preventRiskDangerCheckLogService.getByDangerCheckByJobId(jobLog.getJobId());
                    if (preventRiskDangerCheckLog.getCheckStatus() != 3){
                        completeCheckJobLogListOfMain.add(jobLog);
                        completeCheckJobLogList.add(jobLog);
                    }
                    allCheckJobLogListOfMain.add(jobLog);
                    allCheckJobLogList.add(jobLog);
                }
            }
        }
        List<RiskAndPeopleInfoDTO> riskAndPeopleList = BeanCopyUtils.copyBeanList(riskOldInfo, RiskAndPeopleInfoDTO.class);
        int completeRatio = 0;
        if (allCheckJobLogList.size() > 0){
            completeRatio = completeCheckJobLogList.size() / allCheckJobLogList.size();
        }
        int completeRatioOfHandle = 0;
        if (allCheckJobLogListOfHandle.size() > 0){
            completeRatioOfHandle = completeCheckJobLogListOfHandle.size() / allCheckJobLogListOfHandle.size();
        }
        int completeRatioOfTechnology = 0;
        if (allCheckJobLogListOfTechnology.size() > 0){
            completeRatioOfTechnology = completeCheckJobLogListOfTechnology.size() / allCheckJobLogListOfTechnology.size();
        }
        int completeRatioOfMain = 0;
        if (allCheckJobLogListOfMain.size() > 0){
            completeRatioOfMain = completeCheckJobLogListOfMain.size() / allCheckJobLogListOfMain.size();
        }
        respDTO.setRiskAndPeopleInfoDTO(riskAndPeopleList);
        respDTO.setCount(allCheckJobLogList.size());
        respDTO.setComplete(completeCheckJobLogList.size());
        respDTO.setCompleteRatio(BigDecimal.valueOf(completeRatio));
        respDTO.setCountOfHandle(allCheckJobLogListOfHandle.size());
        respDTO.setCompleteOfHandle(completeCheckJobLogListOfHandle.size());
        respDTO.setCompleteRatioOfHandle(BigDecimal.valueOf(completeRatioOfHandle));
        respDTO.setCountOfTechnology(allCheckJobLogListOfTechnology.size());
        respDTO.setCompleteOfTechnology(completeCheckJobLogListOfTechnology.size());
        respDTO.setCompleteRatioOfTechnology(BigDecimal.valueOf(completeRatioOfTechnology));
        respDTO.setCountOfMain(allCheckJobLogListOfMain.size());
        respDTO.setCompleteOfMain(completeCheckJobLogListOfMain.size());
        respDTO.setCompleteRatioOfMain(BigDecimal.valueOf(completeRatioOfMain));
        resultVO.setPageSize(pageSize);
        resultVO.setPageNum(pageIndex);
        resultVO.setCount((int) page.getTotal());
        resultVO.setData(respDTO);
        return resultVO;
    }
    @Override
    public RiskAndPeopleInfo selectRiskAndPeopleInfoById(Long id) {
        return repository.selectRiskAndPeopleInfoById(id);
    }
}