From 583d6fc916aeb413d498315ec0df913a429bb35f Mon Sep 17 00:00:00 2001 From: Jinyuanyuan <1197651512@qq.com> Date: Sat, 11 May 2024 16:13:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A11.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/HuzhouContractinfoServiceImpl.java | 6 +- .../impl/HuzhouProjectinfoServiceImpl.java | 166 +++++++++++------- .../impl/HuzhouSubProjectinfoServiceImpl.java | 19 +- 3 files changed, 118 insertions(+), 73 deletions(-) diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java index 7883a76..98efa2a 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java @@ -257,7 +257,11 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl contractInfoList=contractinfoMapper.selectList(query); List contractIds = contractInfoList.stream().map(x -> x.getId()).collect(Collectors.toList()); - List result = contractinfoMapper.selectBatchIds(contractIds); + List result= new ArrayList<>(); + if(contractIds.size()!=0){ + result = contractinfoMapper.selectBatchIds(contractIds); + } + return result; } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index 070f376..6edb8db 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -32,6 +32,7 @@ import com.easy.admin.sys.service.SysDictService; import com.easy.admin.util.PasswordUtil; import com.easy.admin.util.ShiroUtil; import javassist.expr.NewArray; +import kotlin.collections.EmptyList; import org.activiti.engine.IdentityService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; @@ -512,6 +513,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl> findAllProjectIds() { HuzhouProjectinfo projectInfo =new HuzhouProjectinfo(); @@ -533,62 +535,83 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl> projectIds) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(new HuzhouProjectinfo()) - .in(HuzhouProjectinfo::getId,projectIds.get("zxm")) - .select(HuzhouProjectinfo::getId,HuzhouProjectinfo::getTotalMoney); - List projectInfoList=projectinfoMapper.selectList(query); - BigDecimal zxmTotal = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); - - LambdaQueryWrapper cquery = new LambdaQueryWrapper<>(new HuzhouSubProjectinfo()) - .in(HuzhouSubProjectinfo::getId,projectIds.get("cxm")) - .select(HuzhouSubProjectinfo::getId,HuzhouSubProjectinfo::getTotalMoney); - List subProjectInfoList=subProjectinfoMapper.selectList(cquery); - BigDecimal cxmTotal = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); + BigDecimal zxmTotal = new BigDecimal("0.00"); + BigDecimal cxmTotal = new BigDecimal("0.00"); + if(projectIds.get("zxm").size()!=0) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(new HuzhouProjectinfo()) + .in(HuzhouProjectinfo::getId, projectIds.get("zxm")) + .select(HuzhouProjectinfo::getId, HuzhouProjectinfo::getTotalMoney); + List projectInfoList = projectinfoMapper.selectList(query); + zxmTotal = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); + } + if(projectIds.get("cxm").size()!=0){ + LambdaQueryWrapper cquery = new LambdaQueryWrapper<>(new HuzhouSubProjectinfo()) + .in(HuzhouSubProjectinfo::getId,projectIds.get("cxm")) + .select(HuzhouSubProjectinfo::getId,HuzhouSubProjectinfo::getTotalMoney); + List subProjectInfoList=subProjectinfoMapper.selectList(cquery); + cxmTotal = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum())); + } BigDecimal result = zxmTotal.add(cxmTotal); + + return result; } + //统计项目总进度(计划阶段已完成数和未完成数) @Override public ProjectProgressOV countProjectProgress() { + + int fininshNum=0; + int unfininshNum=0; //1、查询所有项目 //2、查询所有项目对应的计划阶段 Map> projectIdsMap = this.findAllProjectIds(); List projectIdsList = projectIdsMap.get("zxm"); projectIdsList.addAll(projectIdsMap.get("cxm")); - List planInfoList = planinfoService.listByProjectIds(projectIdsList); - int fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count(); - int unfininshNum=planInfoList.size()-fininshNum; + if(projectIdsList.size()!=0){ + List planInfoList = planinfoService.listByProjectIds(projectIdsList); + fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count(); + unfininshNum = planInfoList.size()-fininshNum; + } + ProjectProgressOV result = ProjectProgressOV.builder().fininshNum(fininshNum).unfininshNum(unfininshNum).build(); return result; } + //统计资金拨付情况(支付阶段在计划中已完成即为已付款) @Override public FundOV countFund() { Map> projectIdsMap = this.findAllProjectIds(); List projectIdsList = projectIdsMap.get("zxm"); projectIdsList.addAll(projectIdsMap.get("cxm")); - List contractInfoList = contractinfoService.ListByProjectIds(projectIdsList); - List planInfoList = planinfoService.listByProjectIds(projectIdsList); + BigDecimal totalAmount = new BigDecimal("0.00"); + BigDecimal unPayAmount = new BigDecimal("0.00"); BigDecimal payAmount = new BigDecimal("0.00"); - Map contractMoneyMap; - List finishPlanTaskList; - 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)))); + if(projectIdsList.size()!=0){ + List contractInfoList = contractinfoService.ListByProjectIds(projectIdsList); + List planInfoList = planinfoService.listByProjectIds(projectIdsList); + Map contractMoneyMap; + List finishPlanTaskList; + 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)))); + } } } + //根据projectIds累加总金额 + totalAmount = this.totalMoneyByProjectIds(projectIdsMap); + unPayAmount = totalAmount.subtract(payAmount); } - //根据projectIds累加总金额 - BigDecimal totalAmount = this.totalMoneyByProjectIds(projectIdsMap); - BigDecimal unPayAmount = totalAmount.subtract(payAmount); + FundOV result = FundOV.builder().fininshNum(payAmount.toString()).unfininshNum(unPayAmount.toString()).build(); return result; } @@ -598,49 +621,60 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl> projectIdsMap = this.findAllProjectIds(); List zxmIds = projectIdsMap.get("zxm"); List cxmIds = projectIdsMap.get("cxm"); - List projectInfoList = projectinfoMapper.selectBatchIds(zxmIds); - List cProjectinfoList = subProjectinfoService.listByProjectIds(cxmIds); - projectInfoList.addAll(cProjectinfoList); - List