diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java index 9c89ead..3a2acee 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java @@ -190,7 +190,7 @@ public class HuzhouProjectController { } /** - * 测试 + * 根据所属单位以page形式返回统计结果 * @param * @param */ @@ -204,6 +204,11 @@ public class HuzhouProjectController { return Result.OK(dimensionPage); } + /** + * 根据每个项目以page形式返回统计结果 + * @param + * @param + */ @GetMapping("/getPageSorted") public Result getPageSorted(HuzhouProjectinfo projectInfo, @RequestParam(name="current", defaultValue="1") Integer pageNo, @@ -213,10 +218,25 @@ public class HuzhouProjectController { IPage projectPage = projectinfoService.getProjectPage(projectInfo, pageNo, pageSize, orderBy, orderDir); return Result.OK(projectPage); } - @GetMapping("/countByTask") - public Result countByTask(){ + // + @GetMapping("/showCountBoard") + public Result showCountBoard(){ String a="reform_name"; - CountByConditionOV result = projectinfoService.countByReformName(a); + CountBoardOV result = projectinfoService.showCountBoard(); + return Result.ok(result); + + } + @GetMapping("/showCountBoardByReformName") + public Result showCountBoardByReformName(){ + String condition="reformName"; + CountByConditionOV result = projectinfoService.countByCondition(condition); + return Result.ok(result); + + } + @GetMapping("/showCountBoardByAdminDivision") + public Result showCountBoardByAdminDivision(){ + String condition="adminDivision"; + CountByConditionOV result = projectinfoService.countByCondition(condition); return Result.ok(result); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java index 49d9751..5a24c5b 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java @@ -6,9 +6,12 @@ import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; public interface HuzhouPlaninfoMapper extends BaseMapper { List getChildTaskBySuperior(@Param("info") HuzhouPlaninfo info); - Integer getNumByPlan(@Param("info") HuzhouPlaninfo info); + Integer getNumByPlan(@Param("projectIds") List projectIds,@Param("taskName") String taskName); + + Integer getStartedProjectNum(@Param("projectIds") List projectIds); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java index 6d7599b..781ff26 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easy.admin.modules.huzhou.vo.DimensionPageOV; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; +import com.easy.admin.modules.huzhou.vo.NumByTypeOV; import com.easy.admin.modules.huzhou.vo.ProjectPageOV; import org.apache.ibatis.annotations.Mapper; import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; @@ -66,4 +67,6 @@ public interface HuzhouProjectinfoMapper extends BaseMapper { IPage getProjectPageSorted(Page page, @Param("info") HuzhouProjectinfo info, @Param("orderBy") String orderBy, @Param("orderDir") String orderDir); List getListByCondition(@Param("info") HuzhouProjectinfo info,@Param("condition") String condition); + + List getNumByType(@Param("info") HuzhouProjectinfo info); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml index 7b4044b..75b0baf 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml @@ -5,6 +5,15 @@ select * from huzhou_planinfo where superior = #{info.taskLevel} and project_id = #{info.projectId} order by INET_ATON(CONCAT(task_level, '.0')) + \ No newline at end of file diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml index 250c2b2..b871690 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml @@ -74,6 +74,10 @@ + + + + (1=1 @@ -309,7 +313,7 @@ order by create_date desc order by ${orderBy} ${orderDir} + \ No newline at end of file diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java index 31f57a3..a67b76d 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java @@ -102,5 +102,11 @@ public interface IHuzhouPlaninfoService extends IService { Map conutCompletionStatus(List projectIds); + Integer getNumByPlan(List projectIds,String taskName); + + Integer getPlanList(String projectId); + + Integer getStartedProjectNum(List projectIds); + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java index 5ba3bfa..7dd5e17 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java @@ -16,4 +16,6 @@ public interface IHuzhouPlaninfofileService extends IService void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, MultipartFile[] adviceFiles) throws IOException; String getProcessName(String pid); + + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java index 585fdec..c57556a 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java @@ -173,7 +173,9 @@ public interface IHuzhouProjectinfoService extends IService { IPage getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir); - CountByConditionOV countByReformName(String reformName); + CountByConditionOV countByCondition(String condition); + + CountBoardOV showCountBoard(); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java index 4f78820..d731391 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java @@ -1004,4 +1004,22 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl projectIds, String taskName) { + Integer result = planinfoMapper.getNumByPlan(projectIds, taskName); + return result; + } + @Override + public Integer getPlanList(String projectId) { + LambdaUpdateWrapper query=new LambdaUpdateWrapper<>(); + query.eq(HuzhouPlaninfo::getProjectId,projectId); + int result = planinfoMapper.selectList(query).isEmpty() ? 0 : planinfoMapper.selectList(query).size(); + return result; + } + + @Override + public Integer getStartedProjectNum(List projectIds) { + Integer result = planinfoMapper.getStartedProjectNum(projectIds); + 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 dc309a8..1b68e1f 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 @@ -976,60 +976,116 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); List allProjectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList()); - Map> reformMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getReformName)); - //总进度(待补充) + Map> conditionMap=new HashMap<>(); + Map reformTasks = dictService.selectByDictType("reformTasks").stream().collect(Collectors.toMap(x -> x.getValue(), x -> x.getLabel())); + if(Objects.equals(condition, "reformName")){ + conditionMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getReformName)); + }else { + conditionMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getAdminDivision)); + } + //总进度 + String projectProgress = this.getProgress(allProjectIds).getProjectProgress(); + TotalProgressOV totalProgress = this.countNumByPlan(allProjectIds); + totalProgress.setProgress(projectProgress); + List progressResponse = new ArrayList<>(); List fundByConditionResponse = new ArrayList<>(); - for (String key : reformMap.keySet()) { - List keyProjectIdsList = reformMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList()); + for (String key : conditionMap.keySet()) { + List keyProjectIdsList = conditionMap.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()); + if(Objects.equals(condition, "reformName")){ + progressResponse.add(ProjectProgressOV.builder().name(reformTasks.get(key)).projectProgress(String.valueOf(progress.getProjectProgress())).build()); + }else { + progressResponse.add(ProjectProgressOV.builder().name(key).projectProgress(String.valueOf(progress.getProjectProgress())).build()); + } //所属改革总金额、执行率、上级资金执行率 NewFundOV fund = this.getFund(keyProjectIdsList); - fundByConditionResponse.add(FundByConditionOV.builder().name(key).totalMoney(fund.getTotalMoney()) - .paymentExecutionRate(fund.getPaymentExecutionRate()) - .superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build()); + if(Objects.equals(condition, "reformName")){ + fundByConditionResponse.add(FundByConditionOV.builder().name(reformTasks.get(key)).totalMoney(fund.getTotalMoney()) + .paymentExecutionRate(fund.getPaymentExecutionRate()) + .superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build()); + }else{ + fundByConditionResponse.add(FundByConditionOV.builder().name(key).totalMoney(fund.getTotalMoney()) + .paymentExecutionRate(fund.getPaymentExecutionRate()) + .superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build()); + } + } //各种类资金总额和执行率,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) + FundByKindOV fundByTypeResponse = this.modelChange(totalFund); + CountByConditionOV result = CountByConditionOV.builder().totalProgress(totalProgress).progress(progressResponse) .countFundByCondition(fundByConditionResponse).countFundByFundType(fundByTypeResponse).build(); return result; } - public Map countNumByPlan(){ - List planName=new ArrayList<>(); - planName.add("合同签订"); - planName.add("终验阶段"); + @Override + public CountBoardOV showCountBoard() { HuzhouProjectinfo projectInfo = new HuzhouProjectinfo(); ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo); List projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect); List projectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList()); + //项目数量统计by type + Map numByType = projectinfoMapper.getNumByType(projectInfoAuthSelect).stream() + .collect(Collectors.toMap(x -> x.getType(), o -> o)); + int total=projectIds.size(); + int ptNum=0; + int rkNum=0; + ptNum=numByType.get("1").getNum(); + rkNum=numByType.get("2").getNum(); + CountBoardOV result = CountBoardOV.builder().total(String.valueOf(total)).ptNum(String.valueOf(ptNum)).rkNum(String.valueOf(rkNum)).build(); + //项目总进度 + TotalProgressOV totalProgress = this.countNumByPlan(projectIds); + String projectProgress = this.getProgress(projectIds).getProjectProgress(); + totalProgress.setProgress(projectProgress); + ////各种类资金总额和执行率 + NewFundOV totalFund = this.getFund(projectIds); + FundByKindOV fundByTypeResponse = this.modelChange(totalFund); + result.setTotalProgress(totalProgress).setCountFundByFundType(fundByTypeResponse); + return result; - return null; + } + public TotalProgressOV countNumByPlan(List projectIds) { + List planName = new ArrayList<>(); + planName.add("合同签订"); + planName.add("终验阶段"); + int notStartedNum = 0; + int purchasedNum = 0; + int finishNum = 0; + if (projectIds.size() > 0) { + notStartedNum = projectIds.size() - planinfoService.getStartedProjectNum(projectIds); + purchasedNum = planinfoService.getNumByPlan(projectIds, planName.get(0)); + finishNum = planinfoService.getNumByPlan(projectIds, planName.get(1)); + } + TotalProgressOV result = TotalProgressOV.builder().notStartedNum(String.valueOf(notStartedNum)) + .purchasedNum(String.valueOf(purchasedNum)).finishNum(String.valueOf(finishNum)).build(); + return result; + } + public FundByKindOV modelChange(NewFundOV newfundOV){ + FundByKindOV fundByTypeResponse = FundByKindOV.builder().totalMoney(newfundOV.getTotalMoney()).payAmount(newfundOV.getPayAmount()) + .paymentExecutionRate(newfundOV.getPaymentExecutionRate()) + .totalCentral(newfundOV.getTotalCentral()).payCentral(newfundOV.getPayCentral()) + .payCentralExecutionRate(newfundOV.getPayCentralExecutionRate()) + .totalProvincial(newfundOV.getTotalProvincial()).payProvincial(newfundOV.getPayProvincial()) + .payProvincialExecutionRate(newfundOV.getPayProvincialExecutionRate()) + .totalCity(newfundOV.getTotalCity()).payCity(newfundOV.getPayCity()) + .payCityExecutionRate(newfundOV.getPayCityExecutionRate()) + .totalCounty(newfundOV.getTotalCounty()).payCounty(newfundOV.getPayCounty()) + .payCountyExecutionRate(newfundOV.getPayCountyExecutionRate()) + .totalSelf(newfundOV.getTotalSelf()).paySelf(newfundOV.getPaySelf()) + .paySelfExecutionRate(newfundOV.getPaySelfExecutionRate()) + .build(); + return fundByTypeResponse; } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountBoardOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountBoardOV.java new file mode 100644 index 0000000..b48791c --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountBoardOV.java @@ -0,0 +1,23 @@ +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 CountBoardOV { + + //项目数量 + + private String total; + + private String rkNum; + + private String ptNum; + private TotalProgressOV totalProgress; + + private FundByKindOV countFundByFundType; +} diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java index 0bf0fee..c29669e 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java @@ -12,16 +12,16 @@ import java.util.List; @Builder(toBuilder = true) public class CountByConditionOV { - private String totalProgress; + private TotalProgressOV totalProgress; - List progress; + private List progress; - List countFundByCondition; + private List countFundByCondition; - FundByKindOV countFundByFundType; + private FundByKindOV countFundByFundType; } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NumByTypeOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NumByTypeOV.java new file mode 100644 index 0000000..0ec3e02 --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NumByTypeOV.java @@ -0,0 +1,17 @@ +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 NumByTypeOV { + + private String type; + + private Integer num; + +} diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TotalProgressOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TotalProgressOV.java new file mode 100644 index 0000000..e58c7c7 --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TotalProgressOV.java @@ -0,0 +1,18 @@ +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 TotalProgressOV { + + private String progress; + + private String notStartedNum; + private String purchasedNum; + private String finishNum; +}