UAT问题清单-205条,参数收集统计按照一级责任领域统计。

This commit is contained in:
wangzhijiang
2023-05-09 17:40:50 +08:00
parent d43182504e
commit f7f5903a53
@@ -35,13 +35,16 @@ import com.jero.modules.cert.template.entity.ParamsTemplateEO;
import com.jero.modules.cert.template.enums.ControlTypeEnum;
import com.jero.modules.cert.template.service.IParamsInfoPublishEOService;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.project.service.IProjectUserPermissionService;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.mapper.SysDictMapper;
import com.jero.modules.system.service.ISysDictItemService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import org.apache.commons.collections4.CollectionUtils;
@@ -125,6 +128,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Autowired
private ISysDictService sysDictService;
@Autowired
private ISysDictItemService sysDictItemService;
/**
* 保存
*
@@ -877,8 +883,8 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Override
public Map<String, Object> getStatisticsForProjectDetails(String paramsManifestId, String cut) {
// 查询所有责任领域
List<DictModel> dutyTerritoryDictList = sysDictMapper.queryDictItemsByCode("duty_territory");
List<SysDictItem> sysDictItems = this.sysDictItemService.selectItemsAll();
Map<String, List<SysDictItem>> firstLevelDutyTerritoryMap = this.sysDictItemService.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems);
Map<String, Object> result = new LinkedHashMap<>();
List<String> dutyTerritoryNameList = new LinkedList<>();
@@ -898,60 +904,122 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
List<Map<String, Object>> listAll = paramsCollectManifestEOMapper.listInfoForExport(paramsCollectManifestEO, null);
// 循环责任领域,计算每个责任领域中的四种状态数据
for (DictModel item : dutyTerritoryDictList) {
if(ObjectUtil.isNotEmpty(firstLevelDutyTerritoryMap)){
for (Map.Entry<String, List<SysDictItem>> dutyTerritoryMap : firstLevelDutyTerritoryMap.entrySet()) {
String firstLevelDutyTerritory = dutyTerritoryMap.getKey();
List<SysDictItem> dutyTerritoryList = dutyTerritoryMap.getValue();
if(StringUtils.isEmpty(firstLevelDutyTerritory) || CollectionUtils.isEmpty(dutyTerritoryList)){
continue;
}
// 计算数量
double notStartNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state"))
double notStartNumber = 0;
double collectingNumber = 0;
double submitNumber = 0;
double syncReportNumber = 0;
for (SysDictItem dictItem : dutyTerritoryList) {
// 计算数量
notStartNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory")))
.count(); // 未开始的参数项 数量
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 未开始的参数项 数量
double collectingNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state"))
collectingNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory")))
.count(); // 收集中的参数项 数量
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 收集中的参数项 数量
double submitNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory")))
.count(); // 已提交的参数项 数量
submitNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 已提交的参数项 数量
double syncReportNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory")))
.count(); // 已同步上报库的参数项 数量
syncReportNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 已同步上报库的参数项 数量
}
// 计算百分比
double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数
String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比
String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比
String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比
String syncReportPercent = getRatio(syncReportNumber, total); // 已同步上报库的参数项 百分比
// 计算百分比
double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数
String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比
String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比
String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比
String syncReportPercent = getRatio(syncReportNumber, total); // 已同步上报库的参数项 百分比
// 累加
totalAll += total;
notStartTotal += notStartNumber;
collectingTotal += collectingNumber;
submitTotal += submitNumber;
syncReportTotal += syncReportNumber;
// 累加
totalAll += total;
notStartTotal += notStartNumber;
collectingTotal += collectingNumber;
submitTotal += submitNumber;
syncReportTotal += syncReportNumber;
// 组装数据 返回前端
if (notStartNumber == collectingNumber && collectingNumber == submitNumber && submitNumber == syncReportNumber && syncReportNumber == 0) {
continue;
}
getData(notStartList, notStartNumber, notStartPercent);
getData(collectingList, collectingNumber, collectingPercent);
getData(submitList, submitNumber, submitPercent);
getData(syncReportList, syncReportNumber, syncReportPercent);
// 组装数据 返回前端
if (notStartNumber == collectingNumber && collectingNumber == submitNumber && submitNumber == syncReportNumber && syncReportNumber == 0) {
continue;
dutyTerritoryNameList.add(firstLevelDutyTerritory);
}
if (CutEnum.EN.getValue().equals(cut)) {
dutyTerritoryNameList.add(item.getTextEn());
} else {
dutyTerritoryNameList.add(item.getText());
}
getData(notStartList, notStartNumber, notStartPercent);
getData(collectingList, collectingNumber, collectingPercent);
getData(submitList, submitNumber, submitPercent);
getData(syncReportList, syncReportNumber, syncReportPercent);
}
// // 查询所有责任领域
// List<DictModel> dutyTerritoryDictList = sysDictMapper.queryDictItemsByCode("duty_territory");
// // 循环责任领域,计算每个责任领域中的四种状态数据
// for (DictModel item : dutyTerritoryDictList) {
//
// // 计算数量
// double notStartNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state"))
// || CollectManifestStateEnum.SDT_BACK.getValue().equals(e.get("state"))
// || CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory")))
// .count(); // 未开始的参数项 数量
//
// double collectingNumber = listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state"))
// || CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.get("state"))
// || CollectManifestStateEnum.DRE_BACK.getValue().equals(e.get("state"))
// || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && item.getValue().equals(e.get("duty_territory")))
// .count(); // 收集中的参数项 数量
//
// double submitNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory")))
// .count(); // 已提交的参数项 数量
//
// double syncReportNumber = listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && item.getValue().equals(e.get("duty_territory")))
// .count(); // 已同步上报库的参数项 数量
//
// // 计算百分比
// double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数
// String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比
// String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比
// String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比
// String syncReportPercent = getRatio(syncReportNumber, total); // 已同步上报库的参数项 百分比
//
// // 累加
// totalAll += total;
// notStartTotal += notStartNumber;
// collectingTotal += collectingNumber;
// submitTotal += submitNumber;
// syncReportTotal += syncReportNumber;
//
//
// // 组装数据 返回前端
// if (notStartNumber == collectingNumber && collectingNumber == submitNumber && submitNumber == syncReportNumber && syncReportNumber == 0) {
// continue;
// }
//
// if (CutEnum.EN.getValue().equals(cut)) {
// dutyTerritoryNameList.add(item.getTextEn());
// } else {
// dutyTerritoryNameList.add(item.getText());
// }
//
// getData(notStartList, notStartNumber, notStartPercent);
// getData(collectingList, collectingNumber, collectingPercent);
// getData(submitList, submitNumber, submitPercent);
// getData(syncReportList, syncReportNumber, syncReportPercent);
//
// }
// 设置全部
if (CutEnum.EN.getValue().equals(cut)) {
dutyTerritoryNameList.add(0, "All");