项目库详情-法规清单数据-点击饼状图根据责任领域统计百分比开发。

This commit is contained in:
wangzhijiang
2023-04-27 14:15:56 +08:00
parent cbccda8c1a
commit 8d5aa7df5f
6 changed files with 495 additions and 51 deletions
@@ -4,6 +4,7 @@ import com.jero.modules.system.entity.SysDictItem;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -46,4 +47,12 @@ public interface ISysDictItemService extends IService<SysDictItem> {
* @return
*/
String disposeShowDictItemText(List<SysDictItem> sysDictItems,String fieldTexts,String cut,String dicCode);
/**
* 根据字典code获取一级数据字典
* @param dictCode
* @param sysDictItems
* @return
*/
Map<String, List<SysDictItem>> getFirstLevelSysDictItemByDictCode(String dictCode,List<SysDictItem> sysDictItems);
}
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.CutEnum;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.service.ISysDictItemService;
@@ -13,7 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -231,4 +234,27 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
}
return result;
}
@Override
public Map<String, List<SysDictItem>> getFirstLevelSysDictItemByDictCode(String dictCode,List<SysDictItem> sysDictItems) {
List<SysDictItem> sysDictItemByDictCode = sysDictItems.stream().filter(sysDict -> {
boolean flag = false;
if (StringUtils.equals(sysDict.getDictCode(), dictCode)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
Map<String, List<SysDictItem>> result = null;
if(CollectionUtils.isNotEmpty(sysDictItemByDictCode)){
result = sysDictItems.stream().filter(sysDict -> {
boolean flag = false;
if (StringUtils.isNotEmpty(sysDict.getStatNode())) {
flag = true;
}
return flag;
}).collect(Collectors.groupingBy(SysDictItem::getStatNode));
}
return result;
}
}
@@ -38,6 +38,8 @@ public enum OperatorTypeEnum {
QUERY_PREHOMO_STATISTICS("查询prehomo统计","queryPrehomoStatistics"),
QUERY_VERIFY_STATISTICS("查询验证符合性统计","queryVerifyStatistics"),
QUERY_CERTIFICATION_PROGRESS_STATISTICS("查询认证进度统计","queryCertificationProgressStatistics"),
QUERY_FG_TASK_TO_CONFIRM_STATISTICS("查询法规任务确认统计","queryFGTaskToConfirmStatistics"),
QUERY_RZ_TASK_TO_CONFIRM_STATISTICS("查询认证任务确认统计","queryRZTaskToConfirmStatistics"),
ADD_LAWS_OPINION_GATHER("添加法规意见收集数据","addLawsOpinionGather"),
UPDATE_LAWS_OPINION_GATHER_GATHER_RESULT("更新法规意见收集数据收集结果","updateLawsOpinionGatherGatherResult"),
@@ -0,0 +1,35 @@
package com.jero.modules.project.service;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import java.util.List;
import java.util.Map;
/**
* 项目库统计service
*/
public interface IProjectLibraryStatisticsService {
/**
* 获取法规清单-任务确认统计信息-根据责任领域分组
* @param datas
* @return
*/
Map<String, Object> getFGTaskToConfirmStatisticsGroupByTerritory(List<ProjectLawsInventoryEO> datas, Map<String, Object> params);
/**
* 获取设计符合性确认流程统计信息-根据责任领域分组
* @param datas
* @param params
* @return
*/
Map<String, Object> getDesignComplianceStatisticeGroupByTerritory(List<ProjectLawsInventoryEO> datas, Map<String, Object> params);
/**
* 获取验证符合性确认流程统计信息-根据责任领域分组
* @param datas
* @param params
* @return
*/
Map<String, Object> getVerifyComplianceStatisticeGroupByTerritory(List<ProjectLawsInventoryEO> datas, Map<String, Object> params);
}
@@ -165,6 +165,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private IParamsCollectManifestEOService paramsCollectManifestEOService;
@Autowired
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
@@ -1734,61 +1737,140 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = new QueryWrapper<>();
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue());
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue());
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper);
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){
params.put("projectLawsInventoryIdList",projectLawsInventoryIdList);
List<Map<String, Object>> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params);
disposeData(conditionAssessmentMapList,cut);
result.put("dataList",conditionAssessmentMapList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){
//清单确认 状态
String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus");
List<Map<String,Object>> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus);
disposeData(listingToConfirmList,cut);
result.put("dataList",listingToConfirmList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){
//任务确认 状态
String taskAffirmStatus = (String) params.get("taskAffirmStatus");
List<Map<String,Object>> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus);
disposeData(taskToConfirmList,cut);
result.put("dataList",taskToConfirmList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){
//设计符合性 流程任务状态
String designFlowTaskStatus = (String) params.get("designFlowTaskStatus");
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<Map<String,Object>> designComplianceList = this.projectTaskInventoryEOMapper.getDesignComplianceStatisticeGroupByTerritory(projectLawsInventoryIdList,designFlowTaskStatus);
disposeData(designComplianceList,cut);
result.put("dataList",designComplianceList);
}
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){
//prehomo确认 流程任务状态
String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus");
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<Map<String,Object>> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus);
disposeData(prehomoList,cut);
result.put("dataList",prehomoList);
}
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){
//验证符合性 流程任务状态
String verifyFlowTaskStatus = (String) params.get("verifyFlowTaskStatus");
List<SysDictItem> sysDictItems = new ArrayList<>();
// 法规清单所有的责任领域
String pliDutyTerritoryStr = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(","));
if (StringUtils.isNotEmpty(pliDutyTerritoryStr)) {
List<String> pliDutyTerritoryList = Arrays.asList(pliDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList());
sysDictItems = this.sysDictItemServiceImpl.selectItemsAll().stream().filter(sysDictItem -> {
boolean flag = false;
for (String pliDutyTerritory : pliDutyTerritoryList) {
if(StringUtils.equals(sysDictItem.getItemValue(),pliDutyTerritory)){
flag = true;
break;
}
}
return flag;
}).collect(Collectors.toList());
}
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<Map<String,Object>> verifyComplianceList = this.projectTaskInventoryEOMapper.getVerifyComplianceStatisticeGroupByTerritory(projectLawsInventoryIdList,verifyFlowTaskStatus);
disposeData(verifyComplianceList,cut);
result.put("dataList",verifyComplianceList);
}
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){
//认证进度 流程任务状态
String certificationProgress = (String) params.get("certificationProgress");
Map<String,Object> pliEoMap = new HashMap<>();
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<Map<String,Object>> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress);
disposeData(certificationProgressList,cut);
result.put("dataList",certificationProgressList);
Map<String, List<SysDictItem>> firstLevelDutyTerritoryMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems);
if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMap)){
// 根据责任领域组装法规清单数据,后续计算使用
for (Map.Entry<String, List<SysDictItem>> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) {
String key = firstLevelMap.getKey();
List<SysDictItem> dutyTerritoryList = firstLevelMap.getValue();
if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){
continue;
}
List<ProjectLawsInventoryEO> pliEoList = projectLawsInventoryEOList.stream().filter(pliEo -> {
boolean flag = false;
for (SysDictItem dutyTerritory : dutyTerritoryList) {
if (StringUtils.contains(pliEo.getDutyTerritory(), dutyTerritory.getItemValue())) {
flag = true;
break;
}
}
return flag;
}).collect(Collectors.toList());
JSONObject json = new JSONObject();
json.put("dutyTerritoryList",dutyTerritoryList);
json.put("pliEoList",pliEoList);
pliEoMap.put(key,json);
}
}
String status = (String) params.get("status");
if (CollectionUtils.isNotEmpty(projectLawsInventoryEOList)) {
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
if(StringUtils.equals(OperatorTypeEnum.QUERY_FG_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){
if(ObjectUtils.isNotEmpty(pliEoMap)){
List<Map<String, Object>> dataList = new ArrayList<>();
for (Map.Entry<String, Object> pliMap : pliEoMap.entrySet()) {
String key = pliMap.getKey();
JSONObject json = (JSONObject) pliMap.getValue();
List<ProjectLawsInventoryEO> pliEoList = (List<ProjectLawsInventoryEO>) json.get("pliEoList");
Map<String, Object> dataMaps = this.projectLibraryStatisticsService.getFGTaskToConfirmStatisticsGroupByTerritory(pliEoList,params);
Map<String, Object> dataMap = (Map<String, Object>) dataMaps.get(status);
double amount = (double) dataMap.get("amount");
if(amount != 0){
dataMap.put("dutyTerritoryName",key);
dataList.add(dataMap);
}
}
result.put("dataList",dataList);
}
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){
params.put("projectLawsInventoryIdList",projectLawsInventoryIdList);
List<Map<String, Object>> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params);
disposeData(conditionAssessmentMapList,cut);
result.put("dataList",conditionAssessmentMapList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){
//清单确认 状态
String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus");
List<Map<String,Object>> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus);
disposeData(listingToConfirmList,cut);
result.put("dataList",listingToConfirmList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){
//任务确认 状态
String taskAffirmStatus = (String) params.get("taskAffirmStatus");
List<Map<String,Object>> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus);
disposeData(taskToConfirmList,cut);
result.put("dataList",taskToConfirmList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){
//设计符合性
List<Map<String, Object>> dataList = new ArrayList<>();
for (Map.Entry<String, Object> pliMap : pliEoMap.entrySet()) {
String key = pliMap.getKey();
JSONObject json = (JSONObject) pliMap.getValue();
List<ProjectLawsInventoryEO> pliEoList = (List<ProjectLawsInventoryEO>) json.get("pliEoList");
Map<String, Object> dataMaps = this.projectLibraryStatisticsService.getDesignComplianceStatisticeGroupByTerritory(pliEoList,params);
Map<String, Object> dataMap = (Map<String, Object>) dataMaps.get(status);
double amount = (double) dataMap.get("amount");
if(amount != 0){
dataMap.put("dutyTerritoryName",key);
dataList.add(dataMap);
}
}
result.put("dataList",dataList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){
//prehomo确认 流程任务状态
String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus");
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<Map<String,Object>> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus);
disposeData(prehomoList,cut);
result.put("dataList",prehomoList);
}
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){
//验证符合性 流程任务状态
List<Map<String, Object>> dataList = new ArrayList<>();
for (Map.Entry<String, Object> pliMap : pliEoMap.entrySet()) {
String key = pliMap.getKey();
JSONObject json = (JSONObject) pliMap.getValue();
List<ProjectLawsInventoryEO> pliEoList = (List<ProjectLawsInventoryEO>) json.get("pliEoList");
Map<String, Object> dataMaps = this.projectLibraryStatisticsService.getVerifyComplianceStatisticeGroupByTerritory(pliEoList,params);
Map<String, Object> dataMap = (Map<String, Object>) dataMaps.get(status);
double amount = (double) dataMap.get("amount");
if(amount != 0){
dataMap.put("dutyTerritoryName",key);
dataList.add(dataMap);
}
}
result.put("dataList",dataList);
}else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){
//认证进度 流程任务状态
String certificationProgress = (String) params.get("certificationProgress");
if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){
List<Map<String,Object>> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress);
disposeData(certificationProgressList,cut);
result.put("dataList",certificationProgressList);
}
}
}
return result;
@@ -0,0 +1,290 @@
package com.jero.modules.project.service.impl;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.TaskAffirmStatusEnum;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryStatisticsService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStatisticsService {
@Autowired
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
@Autowired
private IProjectCertificationInventoryEOService projectCertificationInventoryEOService;
@Override
public Map<String, Object> getFGTaskToConfirmStatisticsGroupByTerritory(List<ProjectLawsInventoryEO> datas, Map<String, Object> params) {
Map<String, Object> result = new HashMap<>();
if(CollectionUtils.isNotEmpty(datas)){
DecimalFormat df = new DecimalFormat("#.00");
String status = (String) params.get("status");
Map<String,Object> notStartedMap = new HashMap<>();
Map<String,Object> toConfirmMap = new HashMap<>();
Map<String,Object> acceptedMap = new HashMap<>();
Map<String,Object> rejectedMap = new HashMap<>();
// 未发起
List<ProjectLawsInventoryEO> notStartedDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())
);
return flag;
}).collect(Collectors.toList());
List<ProjectLawsInventoryEO> notStartedVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())
);
return flag;
}).collect(Collectors.toList());
double notStartedComplianceFlowCount = (double) notStartedDesignPliEoList.size() + notStartedVerifyPliEoList.size();
double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size() * 2)) * 100;
String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0";
notStartedMap.put("amount",notStartedComplianceFlowCount);
notStartedMap.put("percentage",notStartedPercentageStr + "%");
// 待确认
List<ProjectLawsInventoryEO> toConfirmDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())
);
return flag;
}).collect(Collectors.toList());
List<ProjectLawsInventoryEO> toConfirmVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())
);
return flag;
}).collect(Collectors.toList());
double toConfirmComplianceFlowCount = (double) toConfirmDesignPliEoList.size() + toConfirmVerifyPliEoList.size();
double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size() * 2)) * 100;
String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0";
toConfirmMap.put("amount",toConfirmComplianceFlowCount);
toConfirmMap.put("percentage",toConfirmPercentageStr + "%");
// 接受
List<ProjectLawsInventoryEO> acceptedDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue())
);
return flag;
}).collect(Collectors.toList());
List<ProjectLawsInventoryEO> acceptedVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue())
);
return flag;
}).collect(Collectors.toList());
double acceptedComplianceFlowCount = (double) acceptedDesignPliEoList.size() + acceptedVerifyPliEoList.size();
double acceptedPercentage = (acceptedComplianceFlowCount / (datas.size() * 2)) * 100;
String acceptedPercentageStr = acceptedPercentage != 0 ? df.format(acceptedPercentage) : "0";
acceptedMap.put("amount",acceptedComplianceFlowCount);
acceptedMap.put("percentage",acceptedPercentageStr + "%");
// 拒绝
List<ProjectLawsInventoryEO> rejectedDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue())
);
return flag;
}).collect(Collectors.toList());
List<ProjectLawsInventoryEO> rejectedVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue())
);
return flag;
}).collect(Collectors.toList());
double rejectedComplianceFlowCount = (double) rejectedDesignPliEoList.size() + rejectedVerifyPliEoList.size();
double rejectedPercentage = (rejectedComplianceFlowCount / (datas.size() * 2)) * 100;
String rejectedPercentageStr = rejectedPercentage != 0 ? df.format(rejectedPercentage) : "0";
rejectedMap.put("amount",rejectedComplianceFlowCount);
rejectedMap.put("percentage",rejectedPercentageStr + "%");
result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap);
result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap);
result.put(TaskAffirmStatusEnum.ACCEPTED.getValue(),acceptedMap);
result.put(TaskAffirmStatusEnum.REJECTED.getValue(),rejectedMap);
}
return result;
}
@Override
public Map<String, Object> getDesignComplianceStatisticeGroupByTerritory(List<ProjectLawsInventoryEO> datas, Map<String, Object> params) {
Map<String, Object> result = new HashMap<>();
if(CollectionUtils.isNotEmpty(datas)){
Map<String,Object> notStartedMap = new HashMap<>();
Map<String,Object> toConfirmMap = new HashMap<>();
Map<String,Object> complianceMap = new HashMap<>();
Map<String,Object> nonComplianceMap = new HashMap<>();
DecimalFormat df = new DecimalFormat("#.00");
// 未发起
List<ProjectLawsInventoryEO> notStartedDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())
);
return flag;
}).collect(Collectors.toList());
double notStartedComplianceFlowCount = (double) notStartedDesignPliEoList.size();
double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size())) * 100;
String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0";
notStartedMap.put("amount",notStartedComplianceFlowCount);
notStartedMap.put("percentage",notStartedPercentageStr + "%");
// 待确认
List<ProjectLawsInventoryEO> toConfirmDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue())
);
return flag;
}).collect(Collectors.toList());
double toConfirmComplianceFlowCount = (double) toConfirmDesignPliEoList.size();
double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size())) * 100;
String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0";
toConfirmMap.put("amount",toConfirmComplianceFlowCount);
toConfirmMap.put("percentage",toConfirmPercentageStr + "%");
// 符合
List<ProjectLawsInventoryEO> complianceDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue())
);
return flag;
}).collect(Collectors.toList());
double complianceFlowCount = (double) complianceDesignPliEoList.size();
double compliancePercentage = (complianceFlowCount / (datas.size())) * 100;
String compliancePercentageStr = compliancePercentage != 0 ? df.format(compliancePercentage) : "0";
complianceMap.put("amount",complianceFlowCount);
complianceMap.put("percentage",compliancePercentageStr + "%");
// 不符合
List<ProjectLawsInventoryEO> nonComplianceDesignPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue())
);
return flag;
}).collect(Collectors.toList());
double nonComplianceComplianceFlowCount = (double) nonComplianceDesignPliEoList.size();
double nonCompliancePercentage = (nonComplianceComplianceFlowCount / (datas.size())) * 100;
String nonCompliancePercentageStr = nonCompliancePercentage != 0 ? df.format(nonCompliancePercentage) : "0";
nonComplianceMap.put("amount",nonComplianceComplianceFlowCount);
nonComplianceMap.put("percentage",nonCompliancePercentageStr + "%");
result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap);
result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap);
result.put(ComplianceFlowStatusEnum.CONFORMITY.getValue(),complianceMap);
result.put(ComplianceFlowStatusEnum.INCONFORMITY.getValue(),nonComplianceMap);
}
return result;
}
@Override
public Map<String, Object> getVerifyComplianceStatisticeGroupByTerritory(List<ProjectLawsInventoryEO> datas, Map<String, Object> params) {
Map<String, Object> result = new HashMap<>();
if(CollectionUtils.isNotEmpty(datas)){
Map<String,Object> notStartedMap = new HashMap<>();
Map<String,Object> toConfirmMap = new HashMap<>();
Map<String,Object> complianceMap = new HashMap<>();
Map<String,Object> nonComplianceMap = new HashMap<>();
DecimalFormat df = new DecimalFormat("#.00");
// 未发起
List<ProjectLawsInventoryEO> notStartedVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())
);
return flag;
}).collect(Collectors.toList());
double notStartedComplianceFlowCount = (double) notStartedVerifyPliEoList.size();
double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size())) * 100;
String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0";
notStartedMap.put("amount",notStartedComplianceFlowCount);
notStartedMap.put("percentage",notStartedPercentageStr + "%");
// 待确认
List<ProjectLawsInventoryEO> toConfirmVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())
|| StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue())
);
return flag;
}).collect(Collectors.toList());
double toConfirmComplianceFlowCount = (double) toConfirmVerifyPliEoList.size();
double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size())) * 100;
String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0";
toConfirmMap.put("amount",toConfirmComplianceFlowCount);
toConfirmMap.put("percentage",toConfirmPercentageStr + "%");
// 符合
List<ProjectLawsInventoryEO> complianceVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue())
);
return flag;
}).collect(Collectors.toList());
double complianceFlowCount = (double) complianceVerifyPliEoList.size();
double compliancePercentage = (complianceFlowCount / (datas.size())) * 100;
String compliancePercentageStr = compliancePercentage != 0 ? df.format(compliancePercentage) : "0";
complianceMap.put("amount",complianceFlowCount);
complianceMap.put("percentage",compliancePercentageStr + "%");
// 不符合
List<ProjectLawsInventoryEO> nonComplianceVerifyPliEoList = datas.stream().filter(data -> {
boolean flag = (
StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue())
);
return flag;
}).collect(Collectors.toList());
double nonComplianceComplianceFlowCount = (double) nonComplianceVerifyPliEoList.size();
double nonCompliancePercentage = (nonComplianceComplianceFlowCount / (datas.size())) * 100;
String nonCompliancePercentageStr = nonCompliancePercentage != 0 ? df.format(nonCompliancePercentage) : "0";
nonComplianceMap.put("amount",nonComplianceComplianceFlowCount);
nonComplianceMap.put("percentage",nonCompliancePercentageStr + "%");
result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap);
result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap);
result.put(ComplianceFlowStatusEnum.CONFORMITY.getValue(),complianceMap);
result.put(ComplianceFlowStatusEnum.INCONFORMITY.getValue(),nonComplianceMap);
}
return result;
}
}