|
|
@ -48,7 +48,7 @@ import java.util.stream.Collectors; |
|
|
|
@Transactional |
|
|
|
|
|
|
|
public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoMapper, HuzhouProjectinfo> |
|
|
|
implements IHuzhouProjectinfoService { |
|
|
|
implements IHuzhouProjectinfoService { |
|
|
|
@Autowired |
|
|
|
private HuzhouProjectinfoMapper projectinfoMapper; |
|
|
|
@Autowired |
|
|
@ -93,17 +93,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void submitProject(MultipartFile[] multipartFile,HuzhouProjectinfo info) throws IOException { |
|
|
|
public void submitProject(MultipartFile[] multipartFile, HuzhouProjectinfo info) throws IOException { |
|
|
|
//保存项目信息
|
|
|
|
info.setStage("1");//最开始的状态。项目入库中
|
|
|
|
if(info.getId()!=null){ |
|
|
|
if (info.getId() != null) { |
|
|
|
//批量入库后,有项目负责人重新发起入库申请
|
|
|
|
userprojectService.removeByProjectId(info.getId(),"0"); |
|
|
|
userprojectService.removeByProjectId(info.getId(), "0"); |
|
|
|
this.updateById(info); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.save(info);//保存项目信息
|
|
|
|
} |
|
|
|
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo",info.getId());//创建流程
|
|
|
|
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo", info.getId());//创建流程
|
|
|
|
Task task = workFlow.getTask(); |
|
|
|
String processInstanceId = workFlow.getProcessInstanceId(); |
|
|
|
String taskId = task.getId(); |
|
|
@ -116,47 +116,48 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
//上级指导室中文名称查询角色有哪些人
|
|
|
|
List<HashMap<String, String>> userDictByRoles = sysUserService.getUserDictByRoles(dictName); |
|
|
|
ArrayList<String> strings = new ArrayList<>(); |
|
|
|
if(userDictByRoles==null||userDictByRoles.size()==0){ |
|
|
|
String error = "任务牵头处室"+dictName+"负责人未找到"; |
|
|
|
if (userDictByRoles == null || userDictByRoles.size() == 0) { |
|
|
|
String error = "任务牵头处室" + dictName + "负责人未找到"; |
|
|
|
throw new EasyException(error); |
|
|
|
} |
|
|
|
// 金额校验
|
|
|
|
Double totalMoney = info.getTotalMoney(); |
|
|
|
Double accountMoney = info.getCentralMoney() + info.getProvincialMoney() + info.getCityMoney() + info.getCountyMoney() + info.getSelfMoney(); |
|
|
|
Double accountYearMoney = info.getPayamount2023Money() + info.getPayamount2024Money() + info.getPayamount2025Money(); |
|
|
|
if(!totalMoney.equals(accountMoney)){ |
|
|
|
String error="各类资金之和与总投资不匹配!"; |
|
|
|
if (!totalMoney.equals(accountMoney)) { |
|
|
|
String error = "各类资金之和与总投资不匹配!"; |
|
|
|
throw new EasyException(error); |
|
|
|
} |
|
|
|
if(!totalMoney.equals(accountYearMoney)){ |
|
|
|
String error="总支付金额与总投资不匹配!"; |
|
|
|
if (!totalMoney.equals(accountYearMoney)) { |
|
|
|
String error = "总支付金额与总投资不匹配!"; |
|
|
|
throw new EasyException(error); |
|
|
|
} |
|
|
|
|
|
|
|
for (HashMap<String, String> map:userDictByRoles |
|
|
|
) { |
|
|
|
for (HashMap<String, String> map : userDictByRoles |
|
|
|
) { |
|
|
|
String userid = map.get("value"); |
|
|
|
strings.add(userid); |
|
|
|
} |
|
|
|
variables.put("taskLeadingDepartment",strings); |
|
|
|
variables.put("taskLeadingDepartment", strings); |
|
|
|
//发起人节点处理
|
|
|
|
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
|
|
|
|
taskService.setVariableLocal(taskId, "approvalStatue", "1");//添加审批状态 通过
|
|
|
|
String comment = "同意"; |
|
|
|
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
|
|
|
|
taskService.addComment(taskId, processInstanceId, comment);//添加审批意见
|
|
|
|
taskService.complete(taskId, variables); |
|
|
|
userprojectService.saveFromProject(info,"0");//保存项目联系人信息,0表示当前醒目是主项目
|
|
|
|
userprojectService.saveFromProject(info, "0");//保存项目联系人信息,0表示当前醒目是主项目
|
|
|
|
uploadfileinfoService.saveFileAndFileInfo(multipartFile, info.getId(), "5"); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void batchImportProjects(MultipartFile multipartFile) throws Exception { |
|
|
|
//是否有文件
|
|
|
|
if (multipartFile == null && multipartFile.getSize() == 0) { |
|
|
|
throw new EasyException("文件上传错误,重新上传"); |
|
|
|
throw new EasyException("文件上传错误,重新上传"); |
|
|
|
} |
|
|
|
//获取文件名称 判断文件是否为 Execl
|
|
|
|
String filename = multipartFile.getOriginalFilename(); |
|
|
|
if (!(filename.endsWith(".xls") || filename.endsWith(".xlsx"))) { |
|
|
|
throw new EasyException("文件上传格式有误,请重新上传"); |
|
|
|
throw new EasyException("文件上传格式有误,请重新上传"); |
|
|
|
} |
|
|
|
//获取表格文件内的信息
|
|
|
|
InputStream inputStream = multipartFile.getInputStream(); |
|
|
@ -177,11 +178,11 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
int cellNum = 28;//一共28列
|
|
|
|
//第一行获取字段名称
|
|
|
|
for (int i = 0; i < cellNum; i++) { |
|
|
|
NameMap.put(String.valueOf(i),titlerow.getCell(i).getStringCellValue()); |
|
|
|
NameMap.put(String.valueOf(i), titlerow.getCell(i).getStringCellValue()); |
|
|
|
} |
|
|
|
//第二行获取中外名称
|
|
|
|
for (int i = 1; i < cellNum; i++) { |
|
|
|
chineseNameMap.put(String.valueOf(i),chineseTitlerow.getCell(i).getStringCellValue()); |
|
|
|
chineseNameMap.put(String.valueOf(i), chineseTitlerow.getCell(i).getStringCellValue()); |
|
|
|
} |
|
|
|
for (int i = 2; i < physicalNumberOfRows; i++) { |
|
|
|
Row row = sheet.getRow(i);//获取行的数据
|
|
|
@ -189,7 +190,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
for (int j = 1; j < cellNum; j++) { |
|
|
|
String value = ""; |
|
|
|
//根据行,获取当前行,列的数据
|
|
|
|
if(row.getCell(j)!=null){ |
|
|
|
if (row.getCell(j) != null) { |
|
|
|
row.getCell(j).setCellType(CellType.STRING);//设置列的数据格式为字符串
|
|
|
|
value = row.getCell(j).getStringCellValue();//获取列的数据
|
|
|
|
} |
|
|
@ -200,38 +201,38 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
// }
|
|
|
|
String name = NameMap.get(String.valueOf(j)); |
|
|
|
//所属任务
|
|
|
|
if("reformName".equals(name)){ |
|
|
|
if ("reformName".equals(name)) { |
|
|
|
List<Select> reformTasks = sysDictService.selectByDictType("reformTasks");//获取字典列表
|
|
|
|
String dictValue = null; |
|
|
|
//根据值获取名称
|
|
|
|
for (Select dict:reformTasks) { |
|
|
|
if(dict.getLabel().equals(value)){ |
|
|
|
dictValue=dict.getValue(); |
|
|
|
for (Select dict : reformTasks) { |
|
|
|
if (dict.getLabel().equals(value)) { |
|
|
|
dictValue = dict.getValue(); |
|
|
|
} |
|
|
|
} |
|
|
|
if(dictValue==null){ |
|
|
|
if (dictValue == null) { |
|
|
|
String s = chineseNameMap.get(String.valueOf(j)); |
|
|
|
throw new EasyException("第"+(i+1)+"行,"+s+",不在字典中,请联系管理员"); |
|
|
|
throw new EasyException("第" + (i + 1) + "行," + s + ",不在字典中,请联系管理员"); |
|
|
|
} |
|
|
|
value= dictValue; |
|
|
|
value = dictValue; |
|
|
|
} |
|
|
|
//上级指导室
|
|
|
|
if("superLeader".equals(name)){ |
|
|
|
if ("superLeader".equals(name)) { |
|
|
|
List<Select> reformTasks = sysDictService.selectByDictType("superLeader"); |
|
|
|
String dictValue = null; |
|
|
|
for (Select dict:reformTasks) { |
|
|
|
if(dict.getLabel().equals(value)){ |
|
|
|
dictValue=dict.getValue(); |
|
|
|
for (Select dict : reformTasks) { |
|
|
|
if (dict.getLabel().equals(value)) { |
|
|
|
dictValue = dict.getValue(); |
|
|
|
} |
|
|
|
} |
|
|
|
if(dictValue==null){ |
|
|
|
if (dictValue == null) { |
|
|
|
String s = chineseNameMap.get(String.valueOf(j)); |
|
|
|
throw new EasyException("第"+(i+1)+"行,"+s+",不在字典中,请联系管理员"); |
|
|
|
throw new EasyException("第" + (i + 1) + "行," + s + ",不在字典中,请联系管理员"); |
|
|
|
} |
|
|
|
value= dictValue; |
|
|
|
value = dictValue; |
|
|
|
} |
|
|
|
//周期判断暂时不加
|
|
|
|
if("constructionPeriod".equals(name)){ |
|
|
|
if ("constructionPeriod".equals(name)) { |
|
|
|
// int constructionPeriod = Integer.parseInt(value);
|
|
|
|
// LocalDate now = LocalDate.now();
|
|
|
|
// LocalDate localDate = LocalDate.of(2025, 6, 30);
|
|
|
@ -242,68 +243,69 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
// }
|
|
|
|
} |
|
|
|
//校验金额格式
|
|
|
|
if(name.contains("Money")){ |
|
|
|
if (name.contains("Money")) { |
|
|
|
try { |
|
|
|
BigDecimal bigDecimal = new BigDecimal(value); |
|
|
|
}catch (Exception e){ |
|
|
|
} catch (Exception e) { |
|
|
|
String s = chineseNameMap.get(String.valueOf(j)); |
|
|
|
throw new EasyException("第"+(i+1)+"行,"+s+",金额格式错误"); |
|
|
|
throw new EasyException("第" + (i + 1) + "行," + s + ",金额格式错误"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
//校验各个单位联系人格式
|
|
|
|
if((name.contains("Contactor")||name.contains("projectContacts"))&&(value!=null&&value.length()!=0)){ |
|
|
|
if ((name.contains("Contactor") || name.contains("projectContacts")) && (value != null && value.length() != 0)) { |
|
|
|
SysUser user = userprojectService.getUserByrealNameOrName(value); |
|
|
|
if(user==null){ |
|
|
|
if (user == null) { |
|
|
|
String s = chineseNameMap.get(String.valueOf(j)); |
|
|
|
throw new EasyException("第"+(i+1)+"行,"+s+",此人不在系统中,请增加"); |
|
|
|
}else { |
|
|
|
throw new EasyException("第" + (i + 1) + "行," + s + ",此人不在系统中,请增加"); |
|
|
|
} else { |
|
|
|
value = user.getId(); |
|
|
|
} |
|
|
|
} |
|
|
|
//保存字段的数据到huzhouProjectinfo
|
|
|
|
HuzhouCommonUtils.setObjectAttributes(huzhouProjectinfo,name,value); |
|
|
|
HuzhouCommonUtils.setObjectAttributes(huzhouProjectinfo, name, value); |
|
|
|
} |
|
|
|
huzhouProjectinfo.setStage("0");//设置阶段为待入库
|
|
|
|
huzhouProjectinfos.add(huzhouProjectinfo); |
|
|
|
this.save(huzhouProjectinfo);//添加到数据库
|
|
|
|
userprojectService.saveFromProject(huzhouProjectinfo,"0");//保存联系人
|
|
|
|
userprojectService.saveFromProject(huzhouProjectinfo, "0");//保存联系人
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void approveProjectInfo(ProjectApproveOV projectApproveOV,MultipartFile[] multipartFile) throws IOException { |
|
|
|
public void approveProjectInfo(ProjectApproveOV projectApproveOV, MultipartFile[] multipartFile) throws IOException { |
|
|
|
String taskId = projectApproveOV.getTaskId(); |
|
|
|
HuzhouProjectinfo projectinfo = new HuzhouProjectinfo(); |
|
|
|
BeanUtils.copyProperties(projectApproveOV,projectinfo); |
|
|
|
BeanUtils.copyProperties(projectApproveOV, projectinfo); |
|
|
|
String comment = projectApproveOV.getComment(); |
|
|
|
String projectid = projectApproveOV.getProjectid(); |
|
|
|
String flag = projectApproveOV.getFlag(); |
|
|
|
String isEdit = projectApproveOV.getIsEdit(); |
|
|
|
//单个入库项目可以编辑,发起人编辑
|
|
|
|
if("1".equals(isEdit)&&"1".equals(flag)){ |
|
|
|
if(null!=projectinfo){ |
|
|
|
if ("1".equals(isEdit) && "1".equals(flag)) { |
|
|
|
if (null != projectinfo) { |
|
|
|
// 金额校验
|
|
|
|
Double totalMoney = projectinfo.getTotalMoney(); |
|
|
|
Double accountMoney = projectinfo.getCentralMoney() + projectinfo.getProvincialMoney() + projectinfo.getCityMoney() + projectinfo.getCountyMoney() + projectinfo.getSelfMoney(); |
|
|
|
Double accountYearMoney = projectinfo.getPayamount2023Money() + projectinfo.getPayamount2024Money() + projectinfo.getPayamount2025Money(); |
|
|
|
if(!totalMoney.equals(accountMoney)){ |
|
|
|
String error="各类资金之和与总投资不匹配!"; |
|
|
|
if (!totalMoney.equals(accountMoney)) { |
|
|
|
String error = "各类资金之和与总投资不匹配!"; |
|
|
|
throw new EasyException(error); |
|
|
|
} |
|
|
|
if(!totalMoney.equals(accountYearMoney)){ |
|
|
|
String error="总支付金额与总投资不匹配!"; |
|
|
|
if (!totalMoney.equals(accountYearMoney)) { |
|
|
|
String error = "总支付金额与总投资不匹配!"; |
|
|
|
throw new EasyException(error); |
|
|
|
} |
|
|
|
//查询修改前信息进行保存
|
|
|
|
this.updateById(projectinfo); |
|
|
|
//保存修改记录
|
|
|
|
//删除此项目原来的人员和项目对应信息
|
|
|
|
userprojectService.removeByProjectId(projectid,"0"); |
|
|
|
userprojectService.removeByProjectId(projectid, "0"); |
|
|
|
//保存新的人员和项目对应信息
|
|
|
|
userprojectService.saveFromProject(projectinfo,"0"); |
|
|
|
userprojectService.saveFromProject(projectinfo, "0"); |
|
|
|
} |
|
|
|
if(multipartFile!=null){ |
|
|
|
uploadfileinfoService.modifyUploadFile(multipartFile,projectid,"5"); |
|
|
|
if (multipartFile != null) { |
|
|
|
uploadfileinfoService.modifyUploadFile(multipartFile, projectid, "5"); |
|
|
|
} |
|
|
|
} |
|
|
|
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); |
|
|
@ -323,10 +325,10 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
// }
|
|
|
|
String processInstanceId = workFlow.getProcessInstanceId(); |
|
|
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); |
|
|
|
if(processInstance==null&&"1".equals(flag)){ |
|
|
|
if (processInstance == null && "1".equals(flag)) { |
|
|
|
//流程结束了,变更状态
|
|
|
|
processinfoService.modifyStatusByProjectId(projectid,"2","creatProjectinfo"); |
|
|
|
this.modifyStageById(projectid,"2"); |
|
|
|
processinfoService.modifyStatusByProjectId(projectid, "2", "creatProjectinfo"); |
|
|
|
this.modifyStageById(projectid, "2"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -335,31 +337,29 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
//查询之前的项目信息进行保存留痕
|
|
|
|
HuzhouProjectinfo historyData = getById(huzhouProjectinfo.getId()); |
|
|
|
HuzhouProjectinfoHistory huzhouProjectinfoHistory = new HuzhouProjectinfoHistory(); |
|
|
|
BeanUtils.copyProperties(historyData,huzhouProjectinfoHistory); |
|
|
|
BeanUtils.copyProperties(historyData, huzhouProjectinfoHistory); |
|
|
|
historyMapper.insert(huzhouProjectinfoHistory); |
|
|
|
//更新项目的联系人
|
|
|
|
this.updateById(huzhouProjectinfo); |
|
|
|
userprojectService.removeByProjectId(huzhouProjectinfo.getId(),"0"); |
|
|
|
userprojectService.saveFromProject(huzhouProjectinfo,"0"); |
|
|
|
userprojectService.removeByProjectId(huzhouProjectinfo.getId(), "0"); |
|
|
|
userprojectService.saveFromProject(huzhouProjectinfo, "0"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void modifyStageById(String id, String stage) { |
|
|
|
HuzhouProjectinfo byId = getById(id); |
|
|
|
//byId不为null 是主项目,为null是子项目
|
|
|
|
if(null!=byId){ |
|
|
|
if (null != byId) { |
|
|
|
LambdaUpdateWrapper<HuzhouProjectinfo> updateWrapper = new LambdaUpdateWrapper<>(); |
|
|
|
updateWrapper.eq(HuzhouProjectinfo::getId,id); |
|
|
|
updateWrapper.set(HuzhouProjectinfo::getStage,stage); |
|
|
|
updateWrapper.eq(HuzhouProjectinfo::getId, id); |
|
|
|
updateWrapper.set(HuzhouProjectinfo::getStage, stage); |
|
|
|
this.update(updateWrapper); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
LambdaUpdateWrapper<HuzhouSubProjectinfo> updateWrapper = new LambdaUpdateWrapper<>(); |
|
|
|
updateWrapper.eq(HuzhouSubProjectinfo::getId,id); |
|
|
|
updateWrapper.set(HuzhouSubProjectinfo::getStage,stage); |
|
|
|
subProjectinfoMapper.update(null,updateWrapper); |
|
|
|
updateWrapper.eq(HuzhouSubProjectinfo::getId, id); |
|
|
|
updateWrapper.set(HuzhouSubProjectinfo::getStage, stage); |
|
|
|
subProjectinfoMapper.update(null, updateWrapper); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -376,28 +376,28 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
public IPage<HuzhouProjectinfoOV> getProjectInfoAndChildPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize, String newStage) { |
|
|
|
Page page = new Page(pageNo, pageSize); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList; |
|
|
|
if(newStage!=null){ |
|
|
|
if (newStage != null) { |
|
|
|
List<String> stageList = Arrays.stream(newStage.split(",")).collect(Collectors.toList()); |
|
|
|
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageListNew(page,projectInfoAuthSelect,stageList); |
|
|
|
}else { |
|
|
|
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page,projectInfoAuthSelect); |
|
|
|
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageListNew(page, projectInfoAuthSelect, stageList); |
|
|
|
} else { |
|
|
|
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page, projectInfoAuthSelect); |
|
|
|
} |
|
|
|
|
|
|
|
List<HuzhouProjectinfoOV> records = projectAndChildInfoPageList.getRecords(); |
|
|
|
records.forEach(item->{ |
|
|
|
records.forEach(item -> { |
|
|
|
item.setMissingSubprojects(false);//设置默认是false
|
|
|
|
double subTotalMoney =0;//子项目的总金额
|
|
|
|
double subTotalMoney = 0;//子项目的总金额
|
|
|
|
List<HuzhouSubProjectinfo> subProjectinfoList = item.getChildren(); |
|
|
|
if (subProjectinfoList.size()>0){ |
|
|
|
subTotalMoney= subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
|
|
|
|
if (subProjectinfoList.size() > 0) { |
|
|
|
subTotalMoney = subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
|
|
|
|
Double totalMoney = item.getTotalMoney(); |
|
|
|
if(subTotalMoney!=0&&totalMoney!=subTotalMoney){ |
|
|
|
if (subTotalMoney != 0 && totalMoney != subTotalMoney) { |
|
|
|
item.setMissingSubprojects(true);//子项目金额总和和主项目不一致
|
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
//没有子项目
|
|
|
|
item.setChildren(null); |
|
|
|
} |
|
|
@ -409,19 +409,19 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
public IPage<HuzhouProjectinfoOV> getProjectInfoAndChildPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize) { |
|
|
|
Page page = new Page(pageNo, pageSize); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo); |
|
|
|
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page,projectInfoAuthSelect); |
|
|
|
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page, projectInfoAuthSelect); |
|
|
|
List<HuzhouProjectinfoOV> records = projectAndChildInfoPageList.getRecords(); |
|
|
|
records.forEach(item->{ |
|
|
|
records.forEach(item -> { |
|
|
|
item.setMissingSubprojects(false);//设置默认是false
|
|
|
|
double subTotalMoney =0;//子项目的总金额
|
|
|
|
double subTotalMoney = 0;//子项目的总金额
|
|
|
|
List<HuzhouSubProjectinfo> subProjectinfoList = item.getChildren(); |
|
|
|
if (subProjectinfoList.size()>0){ |
|
|
|
subTotalMoney= subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
|
|
|
|
if (subProjectinfoList.size() > 0) { |
|
|
|
subTotalMoney = subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
|
|
|
|
Double totalMoney = item.getTotalMoney(); |
|
|
|
if(subTotalMoney!=0&&totalMoney!=subTotalMoney){ |
|
|
|
if (subTotalMoney != 0 && totalMoney != subTotalMoney) { |
|
|
|
item.setMissingSubprojects(true);//子项目金额总和和主项目不一致
|
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
//没有子项目
|
|
|
|
item.setChildren(null); |
|
|
|
} |
|
|
@ -429,44 +429,45 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
return projectAndChildInfoPageList; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void batchdownloadProject(HttpServletResponse response, HuzhouProjectinfo projectinfo) { |
|
|
|
//查询主项目的信息
|
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo); |
|
|
|
List<HuzhouProjectinfo> projectinfoList = projectinfoMapper.getProjectInfoPageList(projectInfoAuthSelect); |
|
|
|
for(int i =0;i<projectinfoList.size();i++){ |
|
|
|
for (int i = 0; i < projectinfoList.size(); i++) { |
|
|
|
HuzhouProjectinfo huzhouProjectinfo = projectinfoList.get(i); |
|
|
|
//查询是否有子项目
|
|
|
|
LambdaQueryWrapper<HuzhouSubProjectinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(HuzhouSubProjectinfo::getProjectId,huzhouProjectinfo.getId()); |
|
|
|
queryWrapper.eq(HuzhouSubProjectinfo::getProjectId, huzhouProjectinfo.getId()); |
|
|
|
List<HuzhouSubProjectinfo> huzhouSubProjectinfos = subProjectinfoMapper.selectList(queryWrapper); |
|
|
|
if(huzhouSubProjectinfos.size()>0){ |
|
|
|
if (huzhouSubProjectinfos.size() > 0) { |
|
|
|
//有子项目就添加到当前列表中
|
|
|
|
List<HuzhouProjectinfo> collect = huzhouSubProjectinfos.stream().map(sub -> { |
|
|
|
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); |
|
|
|
BeanUtils.copyProperties(sub, projectInfo); |
|
|
|
return projectInfo; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
projectinfoList.addAll(i+1,collect); |
|
|
|
projectinfoList.addAll(i + 1, collect); |
|
|
|
//索引增加
|
|
|
|
i+=collect.size(); |
|
|
|
i += collect.size(); |
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
|
//因为查询结果中有些字段是字典值,要转化成字典的中文
|
|
|
|
projectinfoList.forEach(item->{ |
|
|
|
projectinfoList.forEach(item -> { |
|
|
|
List<Select> reformTasks = sysDictService.selectByDictType("reformTasks"); |
|
|
|
String dictValue = null; |
|
|
|
for (Select dict:reformTasks) { |
|
|
|
if(dict.getValue().equals(item.getReformName())){ |
|
|
|
dictValue=dict.getLabel(); |
|
|
|
for (Select dict : reformTasks) { |
|
|
|
if (dict.getValue().equals(item.getReformName())) { |
|
|
|
dictValue = dict.getLabel(); |
|
|
|
item.setReformName(dictValue); |
|
|
|
} |
|
|
|
} |
|
|
|
List<Select> superLeaders = sysDictService.selectByDictType("superLeader"); |
|
|
|
for (Select dict:superLeaders) { |
|
|
|
if(dict.getValue().equals(item.getSuperLeader())){ |
|
|
|
dictValue=dict.getLabel(); |
|
|
|
for (Select dict : superLeaders) { |
|
|
|
if (dict.getValue().equals(item.getSuperLeader())) { |
|
|
|
dictValue = dict.getLabel(); |
|
|
|
item.setSuperLeader(dictValue); |
|
|
|
} |
|
|
|
} |
|
|
@ -476,15 +477,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
for (Method method : methods) { |
|
|
|
try { |
|
|
|
String name = method.getName(); |
|
|
|
if (name.startsWith("get")&&(name.contains("Contactor")||name.contains("ProjectContacts"))) { // 假设所有的getter方法都不带参数,并且返回一个基本数据类型或其包装类
|
|
|
|
if (name.startsWith("get") && (name.contains("Contactor") || name.contains("ProjectContacts"))) { // 假设所有的getter方法都不带参数,并且返回一个基本数据类型或其包装类
|
|
|
|
Object value = method.invoke(item); |
|
|
|
if (value != null) { // 过滤掉null值
|
|
|
|
SysUser user = sysUserService.getById(value.toString()); |
|
|
|
if(user!=null){ |
|
|
|
if (user != null) { |
|
|
|
String realname = user.getNickname(); |
|
|
|
String setName = "set"+name.substring(3); |
|
|
|
String setName = "set" + name.substring(3); |
|
|
|
Method method1 = clazz.getMethod(setName, String.class); |
|
|
|
method1.invoke(item,realname); |
|
|
|
method1.invoke(item, realname); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -504,7 +505,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
public Object queryProjectInfoById(String id) { |
|
|
|
HuzhouProjectinfo projectinfo = getById(id); |
|
|
|
//projectinfo为空说明是子项目
|
|
|
|
if(null==projectinfo){ |
|
|
|
if (null == projectinfo) { |
|
|
|
HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(id); |
|
|
|
return huzhouSubProjectinfo; |
|
|
|
} |
|
|
@ -512,9 +513,10 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 暂时无用 |
|
|
|
/** |
|
|
|
* 暂时无用 |
|
|
|
* 查询当前项目是否已经发起流程计划 |
|
|
|
* |
|
|
|
* @param |
|
|
|
* @return 2 计划的审批流程已完成 1 是流程中, 0 是未发起流程 |
|
|
|
*/ |
|
|
@ -539,48 +541,48 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
//查询当前用户名下主项目和子项目的id
|
|
|
|
@Override |
|
|
|
public Map<String,List<String>> findAllProjectIds() { |
|
|
|
HuzhouProjectinfo projectInfo =new HuzhouProjectinfo(); |
|
|
|
public Map<String, List<String>> findAllProjectIds() { |
|
|
|
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); |
|
|
|
projectInfo.setStage("0"); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); |
|
|
|
List<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); |
|
|
|
List<String> zIds = projectAndChildInfoPageList.stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
List<String> cIds = new ArrayList<>(); |
|
|
|
for(HuzhouProjectinfoOV info:projectAndChildInfoPageList){ |
|
|
|
if(info.getChildren()!=null){ |
|
|
|
for(HuzhouSubProjectinfo child:info.getChildren()){ |
|
|
|
for (HuzhouProjectinfoOV info : projectAndChildInfoPageList) { |
|
|
|
if (info.getChildren() != null) { |
|
|
|
for (HuzhouSubProjectinfo child : info.getChildren()) { |
|
|
|
cIds.add(child.getProjectId()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, List<String>> result = new HashMap<>(); |
|
|
|
result.put("zxm",zIds); |
|
|
|
result.put("cxm",cIds); |
|
|
|
result.put("zxm", zIds); |
|
|
|
result.put("cxm", cIds); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
//统计主项目和子项目中的总投资
|
|
|
|
@Override |
|
|
|
public BigDecimal totalMoneyByProjectIds(Map<String,List<String>> projectIds) { |
|
|
|
public BigDecimal totalMoneyByProjectIds(Map<String, List<String>> projectIds) { |
|
|
|
|
|
|
|
BigDecimal zxmTotal = new BigDecimal("0.00"); |
|
|
|
BigDecimal cxmTotal = new BigDecimal("0.00"); |
|
|
|
if(projectIds.get("zxm").size()!=0) { |
|
|
|
if (projectIds.get("zxm").size() != 0) { |
|
|
|
LambdaQueryWrapper<HuzhouProjectinfo> query = new LambdaQueryWrapper<>(new HuzhouProjectinfo()) |
|
|
|
.in(HuzhouProjectinfo::getId, projectIds.get("zxm")) |
|
|
|
.select(HuzhouProjectinfo::getId, HuzhouProjectinfo::getTotalMoney); |
|
|
|
List<HuzhouProjectinfo> projectInfoList = projectinfoMapper.selectList(query); |
|
|
|
zxmTotal = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); |
|
|
|
} |
|
|
|
if(projectIds.get("cxm").size()!=0){ |
|
|
|
if (projectIds.get("cxm").size() != 0) { |
|
|
|
LambdaQueryWrapper<HuzhouSubProjectinfo> cquery = new LambdaQueryWrapper<>(new HuzhouSubProjectinfo()) |
|
|
|
.in(HuzhouSubProjectinfo::getId,projectIds.get("cxm")) |
|
|
|
.select(HuzhouSubProjectinfo::getId,HuzhouSubProjectinfo::getTotalMoney); |
|
|
|
List<HuzhouSubProjectinfo> subProjectInfoList=subProjectinfoMapper.selectList(cquery); |
|
|
|
.in(HuzhouSubProjectinfo::getId, projectIds.get("cxm")) |
|
|
|
.select(HuzhouSubProjectinfo::getId, HuzhouSubProjectinfo::getTotalMoney); |
|
|
|
List<HuzhouSubProjectinfo> subProjectInfoList = subProjectinfoMapper.selectList(cquery); |
|
|
|
cxmTotal = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); |
|
|
|
} |
|
|
|
BigDecimal result = zxmTotal.add(cxmTotal); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
@ -589,17 +591,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
@Override |
|
|
|
public ProjectProgressOV countProjectProgress() { |
|
|
|
|
|
|
|
int fininshNum=0; |
|
|
|
int unfininshNum=0; |
|
|
|
int fininshNum = 0; |
|
|
|
int unfininshNum = 0; |
|
|
|
//1、查询所有项目
|
|
|
|
//2、查询所有项目对应的计划阶段
|
|
|
|
Map<String, List<String>> projectIdsMap = this.findAllProjectIds(); |
|
|
|
List<String> projectIdsList = projectIdsMap.get("zxm"); |
|
|
|
projectIdsList.addAll(projectIdsMap.get("cxm")); |
|
|
|
if(projectIdsList.size()!=0){ |
|
|
|
if (projectIdsList.size() != 0) { |
|
|
|
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(projectIdsList); |
|
|
|
fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count(); |
|
|
|
unfininshNum = planInfoList.size()-fininshNum; |
|
|
|
unfininshNum = planInfoList.size() - fininshNum; |
|
|
|
} |
|
|
|
|
|
|
|
ProjectProgressOV result = ProjectProgressOV.builder().fininshNum(fininshNum).unfininshNum(unfininshNum).build(); |
|
|
@ -615,19 +617,19 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
BigDecimal totalAmount = new BigDecimal("0.00"); |
|
|
|
BigDecimal unPayAmount = new BigDecimal("0.00"); |
|
|
|
BigDecimal payAmount = new BigDecimal("0.00"); |
|
|
|
if(projectIdsList.size()!=0){ |
|
|
|
if (projectIdsList.size() != 0) { |
|
|
|
List<HuzhouContractinfo> contractInfoList = contractinfoService.ListByProjectIds(projectIdsList); |
|
|
|
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(projectIdsList); |
|
|
|
Map<String, Double> contractMoneyMap; |
|
|
|
List<String> finishPlanTaskList; |
|
|
|
for(String projectId:projectIdsList){ |
|
|
|
for (String projectId : projectIdsList) { |
|
|
|
contractMoneyMap = contractInfoList.stream().filter(x -> x.getProjectId().equals(projectId)) |
|
|
|
.collect(Collectors.toMap(HuzhouContractinfo::getTaskName, HuzhouContractinfo::getTotalMoney)); |
|
|
|
finishPlanTaskList = planInfoList.stream().filter(x->x.getProjectId().equals(projectId)) |
|
|
|
.filter(x->x.getIsfinish().equals("2")).map(x->x.getTaskName()).collect(Collectors.toList()); |
|
|
|
for(String key:contractMoneyMap.keySet()){ |
|
|
|
if(finishPlanTaskList.contains(key)){ |
|
|
|
payAmount=payAmount.add(new BigDecimal(Double.toString(contractMoneyMap.get(key)))); |
|
|
|
finishPlanTaskList = planInfoList.stream().filter(x -> x.getProjectId().equals(projectId)) |
|
|
|
.filter(x -> x.getIsfinish().equals("2")).map(x -> x.getTaskName()).collect(Collectors.toList()); |
|
|
|
for (String key : contractMoneyMap.keySet()) { |
|
|
|
if (finishPlanTaskList.contains(key)) { |
|
|
|
payAmount = payAmount.add(new BigDecimal(Double.toString(contractMoneyMap.get(key)))); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -647,11 +649,11 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
List<String> cxmIds = projectIdsMap.get("cxm"); |
|
|
|
zxmIds.addAll(cxmIds); |
|
|
|
CountOV result; |
|
|
|
List<ProjectStatusOV> projectStatusList= new ArrayList<>(); |
|
|
|
List<CommonCountOV> projectByReformList= new ArrayList<>(); |
|
|
|
List<CommonCountOV> projectByRegionList= new ArrayList<>(); |
|
|
|
List<CommonCountOV> projectByWorkplaceList= new ArrayList<>(); |
|
|
|
if(zxmIds.size()!=0){ |
|
|
|
List<ProjectStatusOV> projectStatusList = new ArrayList<>(); |
|
|
|
List<CommonCountOV> projectByReformList = new ArrayList<>(); |
|
|
|
List<CommonCountOV> projectByRegionList = new ArrayList<>(); |
|
|
|
List<CommonCountOV> projectByWorkplaceList = new ArrayList<>(); |
|
|
|
if (zxmIds.size() != 0) { |
|
|
|
List<HuzhouProjectinfo> projectInfoList = projectinfoMapper.selectBatchIds(zxmIds); |
|
|
|
List<HuzhouSubProjectinfo> cProjectinfoList = subProjectinfoService.listByProjectIds(cxmIds); |
|
|
|
projectInfoList.addAll(cProjectinfoList); |
|
|
@ -660,13 +662,13 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
//根据项目状态统计
|
|
|
|
Map<String, List<HuzhouProjectinfo>> statusCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getStage())); |
|
|
|
for(String key:statusCountMap.keySet()){ |
|
|
|
for (String key : statusCountMap.keySet()) { |
|
|
|
projectStatusList.add(ProjectStatusOV.builder().name(projectStage.get(key)).value(statusCountMap.get(key).size()).build()); |
|
|
|
} |
|
|
|
|
|
|
|
//根据所属改革任务统计(阶段完成情况)
|
|
|
|
Map<String, List<HuzhouProjectinfo>> reformCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getReformName().trim())); |
|
|
|
for (String key:reformCountMap.keySet()){ |
|
|
|
for (String key : reformCountMap.keySet()) { |
|
|
|
List<String> keyProjectIdsList = reformCountMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
Map<String, Integer> countMap = planinfoService.conutCompletionStatus(keyProjectIdsList); |
|
|
|
projectByReformList.add(CommonCountOV.builder().name(reformTasks.get(key)).fininshNum(countMap.get("fininshNum")).unfininshNum(countMap.get("unfininshNum")).build()); |
|
|
@ -674,7 +676,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
//根据行政区统计
|
|
|
|
Map<String, List<HuzhouProjectinfo>> regionCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getAdminDivision().trim())); |
|
|
|
for (String key:regionCountMap.keySet()){ |
|
|
|
for (String key : regionCountMap.keySet()) { |
|
|
|
List<String> keyProjectIdsList = regionCountMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
Map<String, Integer> countMap = planinfoService.conutCompletionStatus(keyProjectIdsList); |
|
|
|
projectByRegionList.add(CommonCountOV.builder().name(key).fininshNum(countMap.get("fininshNum")).unfininshNum(countMap.get("unfininshNum")).build()); |
|
|
@ -682,7 +684,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
//根据单位统计
|
|
|
|
Map<String, List<HuzhouProjectinfo>> workplaceCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getWorkplaceProperties().trim())); |
|
|
|
for (String key:workplaceCountMap.keySet()){ |
|
|
|
for (String key : workplaceCountMap.keySet()) { |
|
|
|
List<String> keyProjectIdsList = workplaceCountMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
Map<String, Integer> countMap = planinfoService.conutCompletionStatus(keyProjectIdsList); |
|
|
|
projectByWorkplaceList.add(CommonCountOV.builder().name(key).fininshNum(countMap.get("fininshNum")).unfininshNum(countMap.get("unfininshNum")).build()); |
|
|
@ -691,8 +693,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
FundOV fund = countFund(); |
|
|
|
result = CountOV.builder().xiangmZJD(projectProgress).xiangmuZJ(fund) |
|
|
|
.xiangmuZT(projectStatusList).XXQY(projectByRegionList).SSGGRW(projectByReformList).DWSX(projectByWorkplaceList).build(); |
|
|
|
}else { |
|
|
|
result=CountOV.builder().xiangmZJD(ProjectProgressOV.builder().fininshNum(0).unfininshNum(0).build()) |
|
|
|
} else { |
|
|
|
result = CountOV.builder().xiangmZJD(ProjectProgressOV.builder().fininshNum(0).unfininshNum(0).build()) |
|
|
|
.xiangmuZJ(FundOV.builder().fininshNum("0").unfininshNum("0").build()) |
|
|
|
.xiangmuZT(projectStatusList) |
|
|
|
.XXQY(projectByRegionList) |
|
|
@ -704,68 +706,68 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean updateType() { |
|
|
|
Boolean result=projectinfoMapper.updateType()>0; |
|
|
|
Boolean result = projectinfoMapper.updateType() > 0; |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public TypeResponseOV getIds() { |
|
|
|
HuzhouProjectinfo projectInfo =new HuzhouProjectinfo(); |
|
|
|
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); |
|
|
|
projectInfo.setStage("0"); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); |
|
|
|
List<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); |
|
|
|
Map<String, List<HuzhouProjectinfoOV>> zxmMap = projectAndChildInfoPageList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getType)); |
|
|
|
int total = projectAndChildInfoPageList.size(); |
|
|
|
List<String> rkIds = zxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
List<String> ptIds= zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
List<String> ptIds = zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
TypeResponseOV.TypeResponseOVBuilder result = TypeResponseOV.builder().total(total).rkIdsList(rkIds).ptIdsList(ptIds).pageList(projectAndChildInfoPageList); |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public TypeResponseOV getIdsByType() { |
|
|
|
HuzhouProjectinfo projectInfo =new HuzhouProjectinfo(); |
|
|
|
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); |
|
|
|
projectInfo.setStage("0"); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); |
|
|
|
List<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); |
|
|
|
Map<String, List<HuzhouProjectinfoOV>> zxmMap = projectAndChildInfoPageList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getType)); |
|
|
|
List<HuzhouSubProjectinfo> cxm = new ArrayList<>(); |
|
|
|
for(HuzhouProjectinfoOV info:projectAndChildInfoPageList){ |
|
|
|
if(info.getChildren()!=null){ |
|
|
|
for (HuzhouProjectinfoOV info : projectAndChildInfoPageList) { |
|
|
|
if (info.getChildren() != null) { |
|
|
|
cxm.addAll(info.getChildren()); |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, List<HuzhouSubProjectinfo>> cxmMap = cxm.stream().collect(Collectors.groupingBy(x->x.getType())); |
|
|
|
int zxmNum=0; |
|
|
|
int cxmNum=0; |
|
|
|
for (String key:zxmMap.keySet()) { |
|
|
|
zxmNum= zxmMap.get(key).size()+zxmNum; |
|
|
|
Map<String, List<HuzhouSubProjectinfo>> cxmMap = cxm.stream().collect(Collectors.groupingBy(x -> x.getType())); |
|
|
|
int zxmNum = 0; |
|
|
|
int cxmNum = 0; |
|
|
|
for (String key : zxmMap.keySet()) { |
|
|
|
zxmNum = zxmMap.get(key).size() + zxmNum; |
|
|
|
} |
|
|
|
for (String key:cxmMap.keySet()) { |
|
|
|
cxmNum= zxmMap.get(key).size()+cxmNum; |
|
|
|
for (String key : cxmMap.keySet()) { |
|
|
|
cxmNum = zxmMap.get(key).size() + cxmNum; |
|
|
|
} |
|
|
|
int total = zxmNum + cxmNum; |
|
|
|
|
|
|
|
List<String> rkIds = zxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
List<String> crkIds = cxmMap.get("1").stream().map(x->x.getId()).collect(Collectors.toList()); |
|
|
|
List<String> ptIds= zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
ptIds.addAll(cxmMap.get("2").stream().map(x->x.getId()).collect(Collectors.toList())); |
|
|
|
List<String> crkIds = cxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
List<String> ptIds = zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
ptIds.addAll(cxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList())); |
|
|
|
TypeResponseOV result = TypeResponseOV.builder().total(total).rkIdsList(rkIds).crkIdsList(crkIds).ptIdsList(ptIds).build(); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ProjectProgressOV getProgress(List<String> Ids) { |
|
|
|
int fininshNum=0; |
|
|
|
int unfininshNum=0; |
|
|
|
double progress=0.00; |
|
|
|
int fininshNum = 0; |
|
|
|
int unfininshNum = 0; |
|
|
|
double progress = 0.00; |
|
|
|
String formatted = "0.00"; |
|
|
|
if(Ids.size()!=0){ |
|
|
|
if (Ids.size() != 0) { |
|
|
|
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(Ids); |
|
|
|
fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count(); |
|
|
|
unfininshNum = planInfoList.size()-fininshNum; |
|
|
|
if(fininshNum!=0&&planInfoList.size()!=0){ |
|
|
|
progress= (double)fininshNum/planInfoList.size(); |
|
|
|
unfininshNum = planInfoList.size() - fininshNum; |
|
|
|
if (fininshNum != 0 && planInfoList.size() != 0) { |
|
|
|
progress = (double) fininshNum / planInfoList.size(); |
|
|
|
formatted = String.format("%.2f", progress); |
|
|
|
} |
|
|
|
|
|
|
@ -779,17 +781,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
@Override |
|
|
|
public ProjectProgressOV getProgressByType() { |
|
|
|
int fininshNum=0; |
|
|
|
int unfininshNum=0; |
|
|
|
int fininshNum = 0; |
|
|
|
int unfininshNum = 0; |
|
|
|
//1、查询所有入库项目
|
|
|
|
//2、查询所有项目对应的计划阶段
|
|
|
|
List<String> projectIds = this.getIdsByType().getRkIdsList(); |
|
|
|
List<String> cprojectIds = this.getIdsByType().getCrkIdsList(); |
|
|
|
projectIds.addAll(cprojectIds); |
|
|
|
if(projectIds.size()!=0){ |
|
|
|
if (projectIds.size() != 0) { |
|
|
|
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(projectIds); |
|
|
|
fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count(); |
|
|
|
unfininshNum = planInfoList.size()-fininshNum; |
|
|
|
unfininshNum = planInfoList.size() - fininshNum; |
|
|
|
} |
|
|
|
|
|
|
|
ProjectProgressOV result = ProjectProgressOV.builder().fininshNum(fininshNum).unfininshNum(unfininshNum).build(); |
|
|
@ -801,35 +803,74 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
public NewFundOV getFund(List<String> Ids) { |
|
|
|
NewFundOV result = null; |
|
|
|
BigDecimal defVal = new BigDecimal("0.00"); |
|
|
|
if(Ids.size()!=0){ |
|
|
|
if (Ids.size() != 0) { |
|
|
|
Map<String, BigDecimal> totalMap = contractinfoMapper.getTotalByProjectIds(Ids); |
|
|
|
Map<String, BigDecimal> paymentMap = contractinfoMapper.getPaymentsByProjectIds(Ids); |
|
|
|
BigDecimal totalAmount = totalMap != null?totalMap.get("totalAcount"):defVal; |
|
|
|
BigDecimal totalCentral = totalMap != null?totalMap.get("centralAcount"):defVal; |
|
|
|
BigDecimal totalProvincial = totalMap != null?totalMap.get("provincialAcount"):defVal; |
|
|
|
BigDecimal payAmount = paymentMap != null?paymentMap.get("totalPayment"):defVal; |
|
|
|
BigDecimal payCentral = paymentMap != null?paymentMap.get("centralPayment"):defVal; |
|
|
|
BigDecimal payProvincial = paymentMap != null?paymentMap.get("provincialPayment"):defVal; |
|
|
|
BigDecimal totalAmount = totalMap != null ? totalMap.get("totalAcount") : defVal; |
|
|
|
BigDecimal totalCentral = totalMap != null ? totalMap.get("centralAcount") : defVal; |
|
|
|
BigDecimal totalProvincial = totalMap != null ? totalMap.get("provincialAcount") : defVal; |
|
|
|
BigDecimal payAmount = paymentMap != null ? paymentMap.get("totalPayment") : defVal; |
|
|
|
BigDecimal payCentral = paymentMap != null ? paymentMap.get("centralPayment") : defVal; |
|
|
|
BigDecimal payProvincial = paymentMap != null ? paymentMap.get("provincialPayment") : defVal; |
|
|
|
//补充区级资金、市级资金、自筹资金
|
|
|
|
|
|
|
|
//资金执行率
|
|
|
|
BigDecimal paymentExecutionRate=new BigDecimal("0.00"); |
|
|
|
if(payAmount.compareTo(BigDecimal.ZERO) > 0){ |
|
|
|
paymentExecutionRate = payAmount.divide(totalAmount, 2, RoundingMode.HALF_UP); |
|
|
|
BigDecimal totalCity = totalMap != null ? totalMap.get("cityAcount") : defVal; |
|
|
|
BigDecimal totalCounty = totalMap != null ? totalMap.get("countyAcount") : defVal; |
|
|
|
BigDecimal totalSelf = totalMap != null ? totalMap.get("selfAcount") : defVal; |
|
|
|
BigDecimal payCity = paymentMap != null ? paymentMap.get("cityPayment") : defVal; |
|
|
|
BigDecimal payCounty = paymentMap != null ? paymentMap.get("countyPayment") : defVal; |
|
|
|
BigDecimal paySelf = paymentMap != null ? paymentMap.get("selfPayment") : defVal; |
|
|
|
//合同总资金执行率
|
|
|
|
BigDecimal paymentExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (payAmount.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
paymentExecutionRate = payAmount.divide(totalAmount, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
BigDecimal superiorFundPayment = payCentral.add(payProvincial); |
|
|
|
BigDecimal superiorFundTotal = totalCentral.add(totalProvincial); |
|
|
|
//上级资金执行率
|
|
|
|
BigDecimal superiorFundExecutionRate=new BigDecimal("0.00"); |
|
|
|
if(superiorFundPayment.compareTo(BigDecimal.ZERO) > 0){ |
|
|
|
BigDecimal superiorFundExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (superiorFundPayment.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
superiorFundExecutionRate = superiorFundPayment.divide(superiorFundTotal, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
//中央资金执行率
|
|
|
|
BigDecimal payCentralExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (payCentral.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
payCentralExecutionRate = payCentral.divide(totalCentral, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
//省级资金执行率
|
|
|
|
BigDecimal payProvincialExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (payProvincial.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
payProvincialExecutionRate = payProvincial.divide(totalProvincial, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
//市级资金执行率
|
|
|
|
BigDecimal payCityExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (payCity.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
payCityExecutionRate = payCity.divide(totalCity, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
//区级资金执行率
|
|
|
|
BigDecimal payCountyExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (payCounty.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
payCountyExecutionRate = payCounty.divide(totalCounty, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
//自筹资金执行率
|
|
|
|
BigDecimal paySelfExecutionRate = new BigDecimal("0.00"); |
|
|
|
if (paySelf.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
paySelfExecutionRate = paySelf.divide(totalSelf, 2, RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
|
|
|
|
result=NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount)) |
|
|
|
result = NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount)) |
|
|
|
.totalCentral(String.valueOf(totalCentral)).payCentral(String.valueOf(payCentral)) |
|
|
|
.totalProvincial(String.valueOf(totalProvincial)).payProvincial(String.valueOf(payProvincial)) |
|
|
|
.totalCity(String.valueOf(totalCity)).payCity(String.valueOf(payCity)) |
|
|
|
.totalCounty(String.valueOf(totalCounty)).payCounty(String.valueOf(payCounty)) |
|
|
|
.totalSelf(String.valueOf(totalSelf)).paySelf(String.valueOf(paySelf)) |
|
|
|
.paymentExecutionRate(String.valueOf(paymentExecutionRate)) |
|
|
|
.superiorFundExecutionRate(String.valueOf(superiorFundExecutionRate)).build(); |
|
|
|
.superiorFundExecutionRate(String.valueOf(superiorFundExecutionRate)) |
|
|
|
.payCentralExecutionRate(String.valueOf(payCentralExecutionRate)) |
|
|
|
.payProvincialExecutionRate(String.valueOf(payProvincialExecutionRate)) |
|
|
|
.payCityExecutionRate(String.valueOf(payCityExecutionRate)) |
|
|
|
.payCountyExecutionRate(String.valueOf(payCountyExecutionRate)) |
|
|
|
.paySelfExecutionRate(String.valueOf(paySelfExecutionRate)) |
|
|
|
.build(); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
@ -841,16 +882,16 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
projectIds.addAll(cprojectIds); |
|
|
|
NewFundOV result = null; |
|
|
|
BigDecimal defVal = new BigDecimal("0.00"); |
|
|
|
if(projectIds.size()!=0){ |
|
|
|
if (projectIds.size() != 0) { |
|
|
|
Map<String, BigDecimal> totalMap = contractinfoMapper.getTotalByProjectIds(projectIds); |
|
|
|
Map<String, BigDecimal> paymentMap = contractinfoMapper.getPaymentsByProjectIds(projectIds); |
|
|
|
BigDecimal totalAmount = totalMap.size()>0?totalMap.get("totalAcount"):defVal; |
|
|
|
BigDecimal totalCentral = totalMap.size()>0?totalMap.get("centralAcount"):defVal; |
|
|
|
BigDecimal totalProvincial = totalMap.size()>0?totalMap.get("provincialAcount"):defVal; |
|
|
|
BigDecimal payAmount = totalMap.size()>0?paymentMap.get("totalPayment"):defVal; |
|
|
|
BigDecimal payCentral = totalMap.size()>0?paymentMap.get("centralPayment"):defVal; |
|
|
|
BigDecimal payProvincial = totalMap.size()>0?paymentMap.get("provincialPayment"):defVal; |
|
|
|
result=NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount)) |
|
|
|
BigDecimal totalAmount = totalMap.size() > 0 ? totalMap.get("totalAcount") : defVal; |
|
|
|
BigDecimal totalCentral = totalMap.size() > 0 ? totalMap.get("centralAcount") : defVal; |
|
|
|
BigDecimal totalProvincial = totalMap.size() > 0 ? totalMap.get("provincialAcount") : defVal; |
|
|
|
BigDecimal payAmount = totalMap.size() > 0 ? paymentMap.get("totalPayment") : defVal; |
|
|
|
BigDecimal payCentral = totalMap.size() > 0 ? paymentMap.get("centralPayment") : defVal; |
|
|
|
BigDecimal payProvincial = totalMap.size() > 0 ? paymentMap.get("provincialPayment") : defVal; |
|
|
|
result = NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount)) |
|
|
|
.totalCentral(String.valueOf(totalCentral)).payCentral(String.valueOf(payCentral)) |
|
|
|
.totalProvincial(String.valueOf(totalProvincial)).payProvincial(String.valueOf(payProvincial)).build(); |
|
|
|
} |
|
|
@ -858,7 +899,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public IPage<DimensionPageResponse> getDimensionPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir) { |
|
|
|
public IPage<DimensionPageResponse> getDimensionPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize, String orderBy, String orderDir) { |
|
|
|
Page page = new Page(pageNo, pageSize); |
|
|
|
// //只要入库项目
|
|
|
|
// projectInfo.setType("2");
|
|
|
@ -867,18 +908,18 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
List<DimensionPageOV> records = pageSorted.getRecords(); |
|
|
|
List<DimensionPageResponse> newRecords = new ArrayList<>(); |
|
|
|
IPage<DimensionPageResponse> result=new Page<>(); |
|
|
|
IPage<DimensionPageResponse> result = new Page<>(); |
|
|
|
|
|
|
|
LambdaQueryWrapper<HuzhouProjectinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
List<String> projectIds=new ArrayList<>(); |
|
|
|
for(DimensionPageOV r:records) { |
|
|
|
List<String> projectIds = new ArrayList<>(); |
|
|
|
for (DimensionPageOV r : records) { |
|
|
|
queryWrapper.eq(HuzhouProjectinfo::getDutyWorkplace, r.getDutyWorkplace()).eq(HuzhouProjectinfo::getAdminDivision, r.getAdminDivision()) |
|
|
|
.eq(HuzhouProjectinfo::getWorkplaceProperties, r.getWorkplaceProperties()).eq(HuzhouProjectinfo::getSuperLeader, r.getSuperLeader()); |
|
|
|
projectIds.addAll(projectinfoMapper.selectList(queryWrapper).stream().map(x -> x.getId()).collect(Collectors.toList())); |
|
|
|
NewFundOV fund = this.getFund(projectIds); |
|
|
|
ProjectProgressOV progress = this.getProgress(projectIds); |
|
|
|
DimensionPageResponse build =new DimensionPageResponse(); |
|
|
|
BeanUtils.copyProperties(r,build); |
|
|
|
DimensionPageResponse build = new DimensionPageResponse(); |
|
|
|
BeanUtils.copyProperties(r, build); |
|
|
|
BigDecimal totalDecimal = BigDecimal.valueOf(r.getTotalMoney()); |
|
|
|
BigDecimal roundedTotalDecimal = totalDecimal.setScale(2, RoundingMode.HALF_UP); |
|
|
|
BigDecimal centralDecimal = BigDecimal.valueOf(r.getCentralMoney()); |
|
|
@ -897,8 +938,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
result.setSize(pageSorted.getSize()).setCurrent(pageSorted.getCurrent()).setRecords(newRecords).setTotal(pageSorted.getTotal()); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir) { |
|
|
|
public IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize, String orderBy, String orderDir) { |
|
|
|
Page page = new Page(pageNo, pageSize); |
|
|
|
// //只要入库项目
|
|
|
|
// projectInfo.setType("2");
|
|
|
@ -907,14 +949,14 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
|
|
|
|
List<ProjectPageOV> records = pageSorted.getRecords(); |
|
|
|
List<ProjectPageResponse> newRecords = new ArrayList<>(); |
|
|
|
IPage<ProjectPageResponse> result=new Page<>(); |
|
|
|
for(ProjectPageOV r:records) { |
|
|
|
List<String> projectIds=new ArrayList<>(); |
|
|
|
IPage<ProjectPageResponse> result = new Page<>(); |
|
|
|
for (ProjectPageOV r : records) { |
|
|
|
List<String> projectIds = new ArrayList<>(); |
|
|
|
projectIds.add(r.getId()); |
|
|
|
NewFundOV fund = this.getFund(projectIds); |
|
|
|
ProjectProgressOV progress = this.getProgress(projectIds); |
|
|
|
ProjectPageResponse build =new ProjectPageResponse(); |
|
|
|
BeanUtils.copyProperties(r,build); |
|
|
|
ProjectPageResponse build = new ProjectPageResponse(); |
|
|
|
BeanUtils.copyProperties(r, build); |
|
|
|
BigDecimal totalDecimal = BigDecimal.valueOf(r.getTotalMoney()); |
|
|
|
BigDecimal roundedTotalDecimal = totalDecimal.setScale(2, RoundingMode.HALF_UP); |
|
|
|
BigDecimal centralDecimal = BigDecimal.valueOf(r.getCentralMoney()); |
|
|
@ -935,21 +977,59 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CountByConditionOV> countByReformName(String reformName) { |
|
|
|
public CountByConditionOV countByReformName(String reformName) { |
|
|
|
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); |
|
|
|
List<HuzhouProjectinfoOV> projectinfoOVList= projectinfoMapper.getListByCondition(projectInfoAuthSelect,reformName); |
|
|
|
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); |
|
|
|
List<String> allProjectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
Map<String, List<HuzhouProjectinfoOV>> reformMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getReformName)); |
|
|
|
for (String key:reformMap.keySet()){ |
|
|
|
//总进度(待补充)
|
|
|
|
List<ProjectProgressOV> progressResponse = new ArrayList<>(); |
|
|
|
List<FundByConditionOV> fundByConditionResponse = new ArrayList<>(); |
|
|
|
for (String key : reformMap.keySet()) { |
|
|
|
List<String> keyProjectIdsList = reformMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
//进度
|
|
|
|
ProjectProgressOV progress = this.getProgress(keyProjectIdsList); |
|
|
|
progressResponse.add(ProjectProgressOV.builder().name(key).projectProgress(String.valueOf(progress.getProjectProgress())).build()); |
|
|
|
|
|
|
|
//所属改革总金额、执行率、上级资金执行率
|
|
|
|
NewFundOV fund = this.getFund(keyProjectIdsList); |
|
|
|
//各种类资金总额和执行率,from fund
|
|
|
|
fundByConditionResponse.add(FundByConditionOV.builder().name(key).totalMoney(fund.getTotalMoney()) |
|
|
|
.paymentExecutionRate(fund.getPaymentExecutionRate()) |
|
|
|
.superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build()); |
|
|
|
} |
|
|
|
return null; |
|
|
|
//各种类资金总额和执行率,from fund
|
|
|
|
NewFundOV totalFund = this.getFund(allProjectIds); |
|
|
|
FundByKindOV fundByTypeResponse = FundByKindOV.builder().totalMoney(totalFund.getTotalMoney()).payAmount(totalFund.getPayAmount()) |
|
|
|
.paymentExecutionRate(totalFund.getPaymentExecutionRate()) |
|
|
|
.totalCentral(totalFund.getTotalCentral()).payCentral(totalFund.getPayCentral()) |
|
|
|
.payCentralExecutionRate(totalFund.getPayCentralExecutionRate()) |
|
|
|
.totalProvincial(totalFund.getTotalProvincial()).payProvincial(totalFund.getPayProvincial()) |
|
|
|
.payProvincialExecutionRate(totalFund.getPayProvincialExecutionRate()) |
|
|
|
.totalCity(totalFund.getTotalCity()).payCity(totalFund.getPayCity()) |
|
|
|
.payCityExecutionRate(totalFund.getPayCityExecutionRate()) |
|
|
|
.totalCounty(totalFund.getTotalCounty()).payCounty(totalFund.getPayCounty()) |
|
|
|
.payCountyExecutionRate(totalFund.getPayCountyExecutionRate()) |
|
|
|
.totalSelf(totalFund.getTotalSelf()).paySelf(totalFund.getPaySelf()) |
|
|
|
.paySelfExecutionRate(totalFund.getPaySelfExecutionRate()) |
|
|
|
.build(); |
|
|
|
|
|
|
|
CountByConditionOV result = CountByConditionOV.builder().progress(progressResponse) |
|
|
|
.countFundByCondition(fundByConditionResponse).countFundByFundType(fundByTypeResponse).build(); |
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public Map<String,String> countNumByPlan(){ |
|
|
|
List<String> planName=new ArrayList<>(); |
|
|
|
planName.add("合同签订"); |
|
|
|
planName.add("终验阶段"); |
|
|
|
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); |
|
|
|
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); |
|
|
|
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); |
|
|
|
List<String> projectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|