Browse Source

看板1.4

master
Jinyuanyuan 4 months ago
parent
commit
c801508a17
  1. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java
  2. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java
  3. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml
  4. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml
  5. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java
  6. 506
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  7. 16
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java
  8. 21
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByConditionOV.java
  9. 42
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByKindOV.java
  10. 21
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NewFundOV.java
  11. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectFoundOV.java
  12. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectProgressOV.java

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java

@ -215,7 +215,9 @@ public class HuzhouProjectController {
} }
@GetMapping("/countByTask") @GetMapping("/countByTask")
public Result<?> countByTask(){ public Result<?> countByTask(){
return null; String a="reform_name";
CountByConditionOV result = projectinfoService.countByReformName(a);
return Result.ok(result);
} }

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java

@ -9,4 +9,6 @@ import java.util.List;
public interface HuzhouPlaninfoMapper extends BaseMapper<HuzhouPlaninfo> { public interface HuzhouPlaninfoMapper extends BaseMapper<HuzhouPlaninfo> {
List<HuzhouPlaninfo> getChildTaskBySuperior(@Param("info") HuzhouPlaninfo info); List<HuzhouPlaninfo> getChildTaskBySuperior(@Param("info") HuzhouPlaninfo info);
Integer getNumByPlan(@Param("info") HuzhouPlaninfo info);
} }

6
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml

@ -266,9 +266,9 @@
select sum(total_money) as totalAcount, select sum(total_money) as totalAcount,
sum(central_money) as centralAcount, sum(central_money) as centralAcount,
sum(provincial_money) as provincialAcount, sum(provincial_money) as provincialAcount,
sum(city_money) as cityMoney, sum(city_money) as cityAcount,
sum(county_money) as countyMoney, sum(county_money) as countyAcount,
sum(self_money) as selfMoney from huzhou_contractinfo sum(self_money) as selfAcount from huzhou_contractinfo
where project_id in where project_id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")"> <foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId} #{projectId}

3
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml

@ -4,4 +4,7 @@
<select id="getChildTaskBySuperior" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo" resultType="com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo"> <select id="getChildTaskBySuperior" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo" resultType="com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo">
select * from huzhou_planinfo where superior = #{info.taskLevel} and project_id = #{info.projectId} order by INET_ATON(CONCAT(task_level, '.0')) select * from huzhou_planinfo where superior = #{info.taskLevel} and project_id = #{info.projectId} order by INET_ATON(CONCAT(task_level, '.0'))
</select> </select>
<select id="getNumByPlan" resultType="java.lang.Integer">
select count(*) from huzhou_planinfo where project_id#{projectId} and task_name=#{taskName}
</select>
</mapper> </mapper>

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java

@ -173,7 +173,7 @@ public interface IHuzhouProjectinfoService extends IService<HuzhouProjectinfo> {
IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir); IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir);
List<CountByConditionOV> countByReformName(String reformName); CountByConditionOV countByReformName(String reformName);
} }

506
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

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

16
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java

@ -1,17 +1,27 @@
package com.easy.admin.modules.huzhou.vo; package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List; import java.util.List;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class CountByConditionOV { public class CountByConditionOV {
private String totalProgress; private String totalProgress;
List<ProjectStatusOV> progress; List<ProjectProgressOV> progress;
List<ProjecFoundOV> countFundByFundType; List<FundByConditionOV> countFundByCondition;
List<ProjecFoundOV> countFundByCondition;
FundByKindOV countFundByFundType;
} }

21
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByConditionOV.java

@ -0,0 +1,21 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class FundByConditionOV {
private String name;
private String totalMoney;
private String paymentExecutionRate;
private String superiorFundExecutionRate;
}

42
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByKindOV.java

@ -0,0 +1,42 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class FundByKindOV {
private String totalMoney;
private String totalCentral;
private String totalProvincial;
private String totalCity;
private String totalCounty;
private String totalSelf;
private String payAmount;
private String payCentral;
private String payProvincial;
private String payCity;
private String payCounty;
private String paySelf;
private String paymentExecutionRate;
private String payCentralExecutionRate;
private String payProvincialExecutionRate;
private String payCityExecutionRate;
private String payCountyExecutionRate;
private String paySelfExecutionRate;
}

21
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NewFundOV.java

@ -12,14 +12,35 @@ import java.math.BigDecimal;
public class NewFundOV { public class NewFundOV {
private String name;
private String totalMoney; private String totalMoney;
private String totalCentral; private String totalCentral;
private String totalProvincial; private String totalProvincial;
private String totalCity;
private String totalCounty;
private String totalSelf;
private String payAmount; private String payAmount;
private String payCentral; private String payCentral;
private String payProvincial; private String payProvincial;
private String payCity;
private String payCounty;
private String paySelf;
private String paymentExecutionRate; private String paymentExecutionRate;
private String superiorFundExecutionRate; private String superiorFundExecutionRate;
private String payCentralExecutionRate;
private String payProvincialExecutionRate;
private String payCityExecutionRate;
private String payCountyExecutionRate;
private String paySelfExecutionRate;
} }

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjecFoundOV.java → huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectFoundOV.java

@ -8,7 +8,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Builder(toBuilder = true) @Builder(toBuilder = true)
public class ProjecFoundOV { public class ProjectFoundOV {
private String name; private String name;
private String total; private String total;
private String paymentExecutionRate; private String paymentExecutionRate;

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectProgressOV.java

@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
@Accessors(chain = true) @Accessors(chain = true)
@Builder(toBuilder = true) @Builder(toBuilder = true)
public class ProjectProgressOV { public class ProjectProgressOV {
private String name;
private Integer fininshNum; private Integer fininshNum;
private Integer unfininshNum; private Integer unfininshNum;

Loading…
Cancel
Save