接入结果总览员工结果同步重算
This commit is contained in:
@@ -56,6 +56,14 @@ public interface ICcdiProjectOverviewService {
|
||||
return new CcdiProjectRiskModelPeopleVO();
|
||||
}
|
||||
|
||||
/**
|
||||
* 重算结果总览员工结果并同步项目风险人数
|
||||
*
|
||||
* @param projectId 项目ID
|
||||
* @param operator 操作人
|
||||
*/
|
||||
void refreshOverviewEmployeeResults(Long projectId, String operator);
|
||||
|
||||
/**
|
||||
* 刷新项目风险人数
|
||||
*
|
||||
|
||||
@@ -129,7 +129,7 @@ public class CcdiBankTagServiceImpl implements ICcdiBankTagService {
|
||||
resultMapper.insertBatch(allResults);
|
||||
}
|
||||
|
||||
projectOverviewService.refreshProjectRiskCounts(projectId, operator);
|
||||
projectOverviewService.refreshOverviewEmployeeResults(projectId, operator);
|
||||
|
||||
task.setStatus(STATUS_SUCCESS);
|
||||
task.setSuccessRuleCount(rules.size());
|
||||
|
||||
@@ -3,8 +3,10 @@ package com.ruoyi.ccdi.project.service.impl;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.ccdi.project.domain.CcdiProject;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.entity.CcdiProjectOverviewEmployeeResult;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeRiskAggregateVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewEmployeeHitRowVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewStatVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleItemVO;
|
||||
@@ -14,6 +16,7 @@ import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskPeopleOverviewVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectTopRiskPeopleItemVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectTopRiskPeopleVO;
|
||||
import com.ruoyi.ccdi.project.mapper.CcdiProjectMapper;
|
||||
import com.ruoyi.ccdi.project.mapper.CcdiProjectOverviewEmployeeResultMapper;
|
||||
import com.ruoyi.ccdi.project.mapper.CcdiProjectOverviewMapper;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiProjectOverviewService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
@@ -37,6 +40,12 @@ public class CcdiProjectOverviewServiceImpl implements ICcdiProjectOverviewServi
|
||||
@Resource
|
||||
private CcdiProjectMapper projectMapper;
|
||||
|
||||
@Resource
|
||||
private CcdiProjectOverviewEmployeeResultMapper overviewEmployeeResultMapper;
|
||||
|
||||
@Resource
|
||||
private CcdiProjectOverviewEmployeeResultBuilder overviewEmployeeResultBuilder;
|
||||
|
||||
@Override
|
||||
public CcdiProjectOverviewDashboardVO getDashboard(Long projectId) {
|
||||
CcdiProject project = overviewMapper.selectDashboardBaseByProjectId(projectId);
|
||||
@@ -122,6 +131,29 @@ public class CcdiProjectOverviewServiceImpl implements ICcdiProjectOverviewServi
|
||||
return people;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void refreshOverviewEmployeeResults(Long projectId, String operator) {
|
||||
getRequiredProject(projectId);
|
||||
overviewEmployeeResultMapper.deleteByProjectId(projectId);
|
||||
List<CcdiProjectOverviewEmployeeHitRowVO> hitRows =
|
||||
overviewEmployeeResultMapper.selectEmployeeHitRowsByProjectId(projectId);
|
||||
List<CcdiProjectOverviewEmployeeResult> results =
|
||||
overviewEmployeeResultBuilder.build(projectId, hitRows, operator);
|
||||
|
||||
if (!results.isEmpty()) {
|
||||
overviewEmployeeResultMapper.insertBatch(results);
|
||||
}
|
||||
|
||||
projectMapper.updateRiskCountsByProjectId(
|
||||
projectId,
|
||||
countRiskLevel(results, "HIGH"),
|
||||
countRiskLevel(results, "MEDIUM"),
|
||||
countRiskLevel(results, "LOW"),
|
||||
operator
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void refreshProjectRiskCounts(Long projectId, String operator) {
|
||||
@@ -196,6 +228,12 @@ public class CcdiProjectOverviewServiceImpl implements ICcdiProjectOverviewServi
|
||||
throw new ServiceException("项目风险人数统计结果类型异常");
|
||||
}
|
||||
|
||||
private Integer countRiskLevel(List<CcdiProjectOverviewEmployeeResult> results, String riskLevelCode) {
|
||||
return Math.toIntExact(results.stream()
|
||||
.filter(item -> riskLevelCode.equals(item.getRiskLevelCode()))
|
||||
.count());
|
||||
}
|
||||
|
||||
private Integer defaultZero(Integer value) {
|
||||
return value == null ? 0 : value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user