Sfoglia il codice sorgente

门户-领导权限所有接口

qianxb 2 anni fa
parent
commit
ff0ec50a81
20 ha cambiato i file con 412 aggiunte e 46 eliminazioni
  1. 20 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/PlanStatisticVO.java
  2. 22 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectIncomeCostRatioVO.java
  3. 1 1
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectProcessVO.java
  4. 28 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectServiceProcessVO.java
  5. 27 0
      blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/RiskPlanByMonthOfYearVO.java
  6. 30 0
      blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java
  7. 18 7
      blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java
  8. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.java
  9. 8 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml
  10. 4 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.java
  11. 25 3
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml
  12. 1 0
      blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectInfoMapper.xml
  13. 6 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java
  14. 2 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java
  15. 6 5
      blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectCostBudgetService.java
  16. 155 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java
  17. 10 0
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java
  18. 3 2
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInformServiceImpl.java
  19. 41 26
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java
  20. 3 2
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectProcessServiceImpl.java

+ 20 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/PlanStatisticVO.java

@@ -0,0 +1,20 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Param  门户普通权限,计划统计图
+ * @Author wangwl
+ * @Date 2023/6/30 14:32
+ **/
+@Data
+public class PlanStatisticVO {
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "计划总数")
+    private List<Integer> value;
+}

+ 22 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectIncomeCostRatioVO.java

@@ -0,0 +1,22 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Param  门户-统计项目收入占比,支出占比
+ * @Author wangwl
+ * @Date 2023/6/30 10:05
+ **/
+@Data
+public class ProjectIncomeCostRatioVO {
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目支出")
+    private Integer projectCost;
+
+    @ApiModelProperty(value = "项目收入")
+    private Integer projectIncome;
+
+}

+ 1 - 1
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectProcessVO.java

@@ -21,7 +21,7 @@ public class ProjectProcessVO extends ProjectProcess {
     @ApiModelProperty(value = "进程状态值")
     private String statusValue;
 
-    @ApiModelProperty(value = "是否参与")
+    @ApiModelProperty(value = "是否参与,0未参与,1参与")
     private Integer isParticipate;
 
     @ApiModelProperty(value = "成本支出")

+ 28 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectServiceProcessVO.java

@@ -0,0 +1,28 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Param   门户-项目服务进程
+ * @Author wangwl
+ * @Date 2023/6/30 11:59
+ **/
+@Data
+public class ProjectServiceProcessVO {
+
+    @ApiModelProperty(value = "进程名称")
+    private String processName;
+
+    @ApiModelProperty(value = "进程执行进度条")
+    private Integer processProgressBar;
+
+    @ApiModelProperty(value = "进程已支出成本进度条")
+    private Integer processCostProgressBar;
+
+    @ApiModelProperty(value = "进程已支出成本金额")
+    private BigDecimal processCostCount;
+
+}

+ 27 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/RiskPlanByMonthOfYearVO.java

@@ -0,0 +1,27 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Param  任务统计-风险计划
+ * @Author wangwl
+ * @Date 2023/6/30 16:01
+ **/
+@Data
+public class RiskPlanByMonthOfYearVO {
+    @ApiModelProperty(value = "计划名称")
+    private String name;
+
+    @ApiModelProperty(value = "格式")
+    private String type;
+
+    @ApiModelProperty(value = "格式")
+    private String stack;
+
+    @ApiModelProperty(value = "计划数量")
+    private List<Integer> data;
+
+}

+ 30 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/AnnualBudgetController.java

@@ -187,6 +187,36 @@ public class AnnualBudgetController {
         return R.data(budgetService.portalRiskPlan());
     }
 
+    /**
+     * 门户-各项目支出占比
+     */
+    @GetMapping("/portalProjectCostRatio")
+    @ApiOperationSupport(order = 13)
+    @ApiOperation(value = "门户-各项目支出占比",notes = "传入年月,如2023-06")
+    public R<List<ProjectIncomeCostRatioVO>> portalProjectCostRatio(String date) {
+        return R.data(budgetService.portalProjectCostRatio(date));
+    }
+
+    /**
+     * 门户-各项目收入占比
+     */
+    @GetMapping("/portalProjectIncomeRatio")
+    @ApiOperationSupport(order = 14)
+    @ApiOperation(value = "门户-各项目收入占比",notes = "传入年月,如2023-06")
+    public R<List<ProjectIncomeCostRatioVO>> portalProjectIncomeRatio(String date) {
+        return R.data(budgetService.portalProjectIncomeRatio(date));
+    }
+
+    /**
+     * 门户-项目服务阶段进程
+     */
+    @GetMapping("/portalProjectProcess")
+    @ApiOperationSupport(order = 15)
+    @ApiOperation(value = "门户-项目服务阶段进程",notes = "传入项目id")
+    public R<List<ProjectServiceProcessVO>> portalProjectProcess(Long projectId) {
+        return R.data(budgetService.portalProjectProcess(projectId));
+    }
+
 //    /**
 //     * 门户-风险计划查看
 //     */

+ 18 - 7
blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectCostBudgetController.java

@@ -11,6 +11,7 @@ import org.springblade.control.dto.ProjectCostBudgetDTO;
 import org.springblade.control.entity.ProjectCostBudget;
 import org.springblade.control.service.IProjectCostBudgetService;
 import org.springblade.control.vo.ControlProjectInfoVO;
+import org.springblade.control.vo.PlanStatisticVO;
 import org.springblade.control.vo.ProjectCostBudgetVO;
 import org.springblade.control.vo.ProjectCostBudgetVO3;
 import org.springblade.core.mp.support.Query;
@@ -109,7 +110,7 @@ public class ProjectCostBudgetController {
      */
     @GetMapping("/planOverview")
     @ApiOperationSupport(order = 7)
-    @ApiOperation(value = "门户普通权限总计划统计")
+    @ApiOperation(value = "门户-普通权限-总计划统计")
     public R<ProjectCostBudgetVO3> planOverview(){
         return R.data(budgetService.planOverview());
     }
@@ -119,30 +120,40 @@ public class ProjectCostBudgetController {
      */
     @GetMapping("/postponePlan")
     @ApiOperationSupport(order = 8)
-    @ApiOperation(value = "门户普通权限预警")
+    @ApiOperation(value = "门户-普通权限-预警")
     public R<List<ProjectCostBudgetVO3>> postponePlan(){
         return R.data(budgetService.postponePlan());
     }
 
     /**
-     * 门户普通权限单月计划统计
+     * 门户-普通权限-单月计划统计
      */
     @GetMapping("/MonthPlanOverview")
     @ApiOperationSupport(order = 9)
-    @ApiOperation(value = "门户普通权限单月计划统计")
+    @ApiOperation(value = "门-户普通权限-单月计划统计")
     public R<ProjectCostBudgetVO3> MonthPlanOverview(String planDate){
         return R.data(budgetService.MonthPlanOverview(planDate));
     }
 
     /**
-     * 门户普通权限计划统计图
+     * 门户-普通权限-计划统计图
      */
     @GetMapping("/MonthOfYearPlanOverview")
     @ApiOperationSupport(order = 10)
-    @ApiOperation(value = "门户普通权限计划统计图")
-    public R<List<Map<String,List<Integer>>>> MonthOfYearPlanOverview(){
+    @ApiOperation(value = "门户-普通权限-计划统计图")
+    public R<List<PlanStatisticVO>> MonthOfYearPlanOverview(){
         return R.data(budgetService.MonthOfYearPlanOverview());
     }
 
+    /**
+     * 任务统计-计划统计图
+     */
+    @GetMapping("/MonthOfYearPlanOverview2")
+    @ApiOperationSupport(order = 11)
+    @ApiOperation(value = "任务统计-计划统计图",notes = "有参数的计划统计图")
+    public R<List<PlanStatisticVO>> MonthOfYearPlanOverview2(Long deptId,Long UserId,LocalDate start,LocalDate end){
+        return R.data(budgetService.MonthOfYearPlanOverview2(deptId,UserId,start,end));
+    }
+
 
 }

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.java

@@ -26,4 +26,6 @@ public interface ContractReturnedInfoMapper extends BaseMapper<ContractReturnedI
     List<ContractReturnedInfoVO> getListByProjectId(@Param("projectId") Long projectId,@Param("contractId") Long contractId);
 
     BigDecimal getYearReturned(@Param("year") int year);
+
+    List<ContractReturnedInfo> getProjectReturnedByMonth(@Param("date") String date);
 }

+ 8 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ContractReturnedInfoMapper.xml

@@ -30,4 +30,12 @@
             and DATE_FORMAT(practical_returned_time ,'%Y') = #{year}
         </if>
     </select>
+    <select id="getProjectReturnedByMonth" resultType="org.springblade.control.entity.ContractReturnedInfo">
+        select * from c_contract_returned_info
+        WHERE is_deleted = 0
+        <if test="date != null and date != ''">
+            and DATE_FORMAT(practical_returned_time ,'%Y-%m') = #{date}
+        </if>
+        and practical_returned_money is not null
+    </select>
 </mapper>

+ 4 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.java

@@ -65,4 +65,8 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
     List<ProjectCostBudgetVO2> getPlanByMonth(@Param("date") String date);
 
     List<ProjectCostBudget> getRiskPlan(@Param("projectId") Long projectId,@Param("costType") Integer costType);
+
+    List<ProjectCostBudget> getPlanPracticalCostByMonth(@Param("date") String date);
+
+    List<ProjectCostBudget> MonthOfYearPlanOverview2(@Param("deptId") Long deptId,@Param("userId") Long userId,@Param("start") LocalDate start,@Param("end") LocalDate end);
 }

+ 25 - 3
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectCostBudgetMapper.xml

@@ -125,7 +125,11 @@
         select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{id} and pcb.parent_id = 0
     </select>
     <select id="getProjectAllFinishedTask" resultType="org.springblade.control.entity.ProjectCostBudget">
-        select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{projectId} and cost_type = #{costType} and pcb.task_approve = 1
+        select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{projectId}
+        <if test="costType != null and costType != ''">
+            and cost_type = #{costType}
+        </if>
+        and pcb.task_approve = 1
     </select>
     <select id="getAllPracticalBudgetByProjectId"
             resultType="org.springblade.control.entity.ProjectCostBudget">
@@ -155,8 +159,12 @@
         select pcb.*,
                (pcb.plan_days * (select bu.one_money from blade_user bu WHERE bu.id = pcb.task_user)) as 'planCountMoney',
                 (select cpi.name from c_control_project_info cpi WHERE cpi.id = pcb.project_id) as 'projectName'
-        from c_project_cost_budget pcb WHERE DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
-                                         and pcb.task_user is not null and pcb.plan_days is not null
+        from c_project_cost_budget pcb
+        WHERE pcb.is_deleted = 0
+        <if test="date != null and date != ''">
+            and DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
+        </if>
+        and pcb.task_user is not null and pcb.plan_days is not null
     </select>
     <select id="getRiskPlan" resultType="org.springblade.control.entity.ProjectCostBudget">
         SELECT * from c_project_cost_budget WHERE plan_end_time &lt; NOW() and status in (2,3)
@@ -175,6 +183,20 @@
             and cost_type = #{costType}
         </if>
     </select>
+    <select id="getPlanPracticalCostByMonth" resultType="org.springblade.control.entity.ProjectCostBudget">
+        select pcb.*
+        from c_project_cost_budget pcb
+        WHERE pcb.is_deleted = 0 and pcb.task_approve = 1
+        <if test="date != null and date != ''">
+            and DATE_FORMAT(pcb.plan_start_time ,'%Y-%m') = #{date}
+        </if>
+    </select>
+    <select id="MonthOfYearPlanOverview2" resultType="org.springblade.control.entity.ProjectCostBudget">
+        select pcb.*
+        from c_project_cost_budget pcb
+        where pcb.task_user = #{user} and pcb.is_deleted = 0
+            and DATE_FORMAT(pcb.plan_start_time,'%Y') = #{year} or DATE_FORMAT(pcb.plan_end_time,'%Y') = #{year}
+    </select>
 
 
 </mapper>

+ 1 - 0
blade-service/blade-control/src/main/java/org/springblade/control/mapper/ProjectInfoMapper.xml

@@ -62,6 +62,7 @@
     </select>
     <select id="ProjectListStats" resultType="org.springblade.control.vo.AllProjectStatsVO">
         select
+            cpi.id as 'projectId',
             cpi.name as 'projectName',
             cci.contract_money  as 'contractMoney',
                 (select cbs.project_cost_total from c_project_cost_budget_stats cbs WHERE cpi.id = cbs.project_id  and cbs.is_deleted = 0) as 'budgetCost',

+ 6 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IAnnualBudgetService.java

@@ -44,4 +44,10 @@ public interface IAnnualBudgetService extends BaseService<AnnualBudget> {
     List<DeptMonthPlanRatioVO> portalProjectMonthRatio(String date);
 
     List<AllProjectStatsVO> portalRiskPlan();
+
+    List<ProjectIncomeCostRatioVO> portalProjectCostRatio(String date);
+
+    List<ProjectIncomeCostRatioVO> portalProjectIncomeRatio(String date);
+
+    List<ProjectServiceProcessVO> portalProjectProcess(Long projectId);
 }

+ 2 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/IContractReturnedInfoService.java

@@ -36,4 +36,6 @@ public interface IContractReturnedInfoService extends BaseService<ContractReturn
 
     //获取指定一年的回款
     BigDecimal getYearReturned(int year);
+
+    List<ContractReturnedInfo> getProjectReturnedByMonth(String date);
 }

+ 6 - 5
blade-service/blade-control/src/main/java/org/springblade/control/service/IProjectCostBudgetService.java

@@ -8,10 +8,7 @@ import org.springblade.control.entity.ControlProjectInfo;
 import org.springblade.control.entity.DictInfo;
 import org.springblade.control.entity.ProjectCostBudget;
 import org.springblade.control.entity.ProjectCostBudgetStats;
-import org.springblade.control.vo.ControlProjectInfoVO;
-import org.springblade.control.vo.ProjectCostBudgetVO;
-import org.springblade.control.vo.ProjectCostBudgetVO2;
-import org.springblade.control.vo.ProjectCostBudgetVO3;
+import org.springblade.control.vo.*;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.mp.support.Query;
 
@@ -53,7 +50,9 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
 
     List<ProjectCostBudgetVO3> postponePlan();
 
-    List<Map<String,List<Integer>>> MonthOfYearPlanOverview();
+    List<PlanStatisticVO> MonthOfYearPlanOverview();
+
+    List<PlanStatisticVO> MonthOfYearPlanOverview2(Long deptId,Long UserId,LocalDate start,LocalDate end);
 
     List<ProjectCostBudget> getAllBudgetByProjectId(Long id);
 
@@ -68,4 +67,6 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
     List<ProjectCostBudgetVO2> getPlanByMonth(String date);
 
     List<ProjectCostBudget> getRiskPlan(Long projectId,Integer costType);
+
+    List<ProjectCostBudget> getPlanPracticalCostByMonth(String date);
 }

+ 155 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/AnnualBudgetServiceImpl.java

@@ -2,6 +2,7 @@ package org.springblade.control.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.AllArgsConstructor;
+import org.hibernate.validator.internal.IgnoreForbiddenApisErrors;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.control.dto.AnnualBudgetDTO;
 import org.springblade.control.entity.*;
@@ -44,6 +45,8 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
 
     private final IProjectInfoService projectInfoService;
 
+    private final IProjectProcessService processService;
+
     /**
      * 新增年度经营预算
      * @param dto
@@ -450,6 +453,9 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
      */
     @Override
     public List<DeptMonthPlanRatioVO> portalProjectMonthRatio(String date) {
+        if ("汇总所有".equals(date)){
+            date = "";
+        }
         //获取当月所有计划,和计划工资
         List<ProjectCostBudgetVO2> planByMonth = budgetService.getPlanByMonth(date);
         if (planByMonth != null || planByMonth.size() >= 0) {
@@ -560,6 +566,155 @@ public class AnnualBudgetServiceImpl extends BaseServiceImpl<AnnualBudgetMapper,
         return vos;
     }
 
+    /**
+     * 门户-各项目支出占比
+     */
+    @Override
+    public List<ProjectIncomeCostRatioVO> portalProjectCostRatio(String date) {
+        if ("汇总所有".equals(date)){
+            date = "";
+        }
+        //获取项目列表
+        List<ControlProjectInfo> list = projectInfoService.list();
+        if (list == null || list.size() <= 0){
+            return null;
+        }
+        List<ProjectIncomeCostRatioVO> vos = new ArrayList<>();
+        //按月获取闭环任务,根据项目分组
+        List<ProjectCostBudget> costByMonth = budgetService.getPlanPracticalCostByMonth(date);
+        if (costByMonth == null || costByMonth.size() <= 0){
+            //没有闭环任务,为每个项目设置为0
+            for (ControlProjectInfo info : list) {
+                ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+                vo.setProjectName(info.getName());
+                vo.setProjectCost(0);
+                vos.add(vo);
+            }
+            return vos;
+        }
+        Map<Long, List<ProjectCostBudget>> map = costByMonth.parallelStream()
+                .collect(Collectors.groupingBy(ProjectCostBudget::getProjectId));
+        //为每个合同设置支出
+        for (ControlProjectInfo info : list) {
+            ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+            vo.setProjectName(info.getName());
+            BigDecimal big = new BigDecimal(0);
+            List<ProjectCostBudget> budgets = map.get(info.getId());
+            if (budgets != null && budgets.size() > 0){
+                for (ProjectCostBudget budget : budgets) {
+                    big = big.add(budget.getActualTotalMoney());
+                }
+            }
+            vo.setProjectCost(big.intValue());
+            vos.add(vo);
+        }
+        return vos;
+    }
+
+    @Override
+    public List<ProjectIncomeCostRatioVO> portalProjectIncomeRatio(String date) {
+        if ("汇总所有".equals(date)){
+            date = "";
+        }
+        //获取项目列表
+        List<ControlProjectInfo> list = projectInfoService.list();
+        if (list == null || list.size() <= 0){
+            return null;
+        }
+        //获取所有回款,根据项目分组
+        List<ProjectIncomeCostRatioVO> vos = new ArrayList<>();
+        List<ContractReturnedInfo> returnedByMonth = returnedInfoService.getProjectReturnedByMonth(date);
+        if (returnedByMonth == null || returnedByMonth.size() <= 0){
+            //没有闭环任务,为每个项目设置为0
+            for (ControlProjectInfo info : list) {
+                ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+                vo.setProjectName(info.getName());
+                vo.setProjectIncome(0);
+                vos.add(vo);
+            }
+            return vos;
+        }
+        Map<Long, List<ContractReturnedInfo>> map = returnedByMonth.parallelStream()
+                .collect(Collectors.groupingBy(ContractReturnedInfo::getProjectId));
+        //为每个合同设置收入
+        for (ControlProjectInfo info : list) {
+            ProjectIncomeCostRatioVO vo = new ProjectIncomeCostRatioVO();
+            vo.setProjectName(info.getName());
+            BigDecimal big = new BigDecimal(0);
+            List<ContractReturnedInfo> returnedInfos = map.get(info.getId());
+            if (returnedInfos != null && returnedInfos.size() > 0){
+                for (ContractReturnedInfo returnedInfo : returnedInfos) {
+                    big = big.add(returnedInfo.getPracticalReturnedMoney());
+                }
+            }
+            vo.setProjectCost(big.intValue());
+            vos.add(vo);
+        }
+        return vos;
+    }
+
+    /**
+     * 门户-项目服务阶段进程
+     */
+    @Override
+    public List<ProjectServiceProcessVO> portalProjectProcess(Long projectId) {
+        //获取当前项目所有进程
+        List<ProjectProcessVO> projectProcess = processService.getProjectProcess(projectId);
+        //获取项目所有已经闭环的计划
+        List<ProjectCostBudget> finishedTask = budgetService.getProjectAllFinishedTask(projectId, null);
+        Map<Long, List<ProjectCostBudget>> collect = new HashMap<>();
+        boolean isPlan = false ;
+        if (finishedTask == null || finishedTask.size() <= 0){
+                isPlan = true;
+        }else {
+            collect = finishedTask.parallelStream()
+                    .collect(Collectors.groupingBy(ProjectCostBudget::getProjectProcess));
+        }
+        //把计划根据进程分组
+        //为每个进程设置值
+        List<ProjectServiceProcessVO> vos = new ArrayList<>();
+        for (ProjectProcessVO process : projectProcess) {
+            ProjectServiceProcessVO vo = new ProjectServiceProcessVO();
+            vo.setProcessName(process.getName());
+            //设置进程百分比
+            if (process.getProcessEndTime() != null && process.getProcessEndTime() != null){
+                if (process.getStatus() == 1){
+                    //未开始
+                    vo.setProcessProgressBar(0);
+                }else if (process.getStatus() == 3){
+                    //已闭环
+                    vo.setProcessProgressBar(100);
+                }else {
+                    //进行中
+                    vo.setProcessProgressBar(50);
+                }
+            }else {
+                //未设置时间默认未开始
+                vo.setProcessProgressBar(0);
+            }
+            //设置进程支出金额,目前只统计人工支出
+            if (isPlan){
+                vo.setProcessCostCount(new BigDecimal(0));
+            }else {
+                List<ProjectCostBudget> budgets = collect.get(process.getId());
+                if (budgets != null && budgets.size() > 0){
+                    //计算所有任务支出总和
+                    BigDecimal big = new BigDecimal(0);
+                    for (ProjectCostBudget budget : budgets) {
+                        big = big.add(budget.getActualTotalMoney());
+                    }
+                    vo.setProcessCostCount(big);
+                }else {
+                    vo.setProcessCostCount(new BigDecimal(0));
+                }
+            }
+            //设置进程支出金额百分比
+            vo.setProcessCostProgressBar(40);
+            vos.add(vo);
+        }
+        return vos;
+    }
+
     /**
      * 统计支出 1支出总和2工资总和
      */

+ 10 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ContractReturnedInfoServiceImpl.java

@@ -97,4 +97,14 @@ public class ContractReturnedInfoServiceImpl extends BaseServiceImpl<ContractRet
         }
         return yearReturned;
     }
+
+    /**
+     * 根据月份获取回款
+     * @param date
+     * @return
+     */
+    @Override
+    public List<ContractReturnedInfo> getProjectReturnedByMonth(String date) {
+        return baseMapper.getProjectReturnedByMonth(date);
+    }
 }

+ 3 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/PlanInformServiceImpl.java

@@ -20,6 +20,7 @@ import org.springblade.control.vo.ControlProjectInfoVO;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,7 +40,7 @@ public class PlanInformServiceImpl extends BaseServiceImpl<PlanInformMapper, Pla
     @Override
     public List<PlanInform> getUserInform() {
         //没有用户
-        Long user = 1123598821738675201L;
-        return this.list(new LambdaQueryWrapper<PlanInform>().eq(PlanInform::getInformUser,user).orderByDesc(PlanInform::getInformDate).last("limit 5"));
+        Long userId = SecureUtil.getUserId();
+        return this.list(new LambdaQueryWrapper<PlanInform>().eq(PlanInform::getInformUser,userId).orderByDesc(PlanInform::getInformDate).last("limit 5"));
     }
 }

+ 41 - 26
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -19,12 +19,10 @@ import org.springblade.control.mapper.ProjectInfoMapper;
 import org.springblade.control.service.IProjectCostBudgetService;
 import org.springblade.control.service.IProjectInfoService;
 import org.springblade.control.service.IProjectProcessService;
-import org.springblade.control.vo.ControlProjectInfoVO;
-import org.springblade.control.vo.ProjectCostBudgetVO;
-import org.springblade.control.vo.ProjectCostBudgetVO2;
-import org.springblade.control.vo.ProjectCostBudgetVO3;
+import org.springblade.control.vo.*;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -319,9 +317,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
      */
     @Override
     public ProjectCostBudgetVO3 planOverview() {
-        //没有用户
-        Long user = 1123598821738675201L;
-        ProjectCostBudgetVO3 vo3 = baseMapper.getUserALLPlan(user);
+        Long userId = SecureUtil.getUserId();
+        ProjectCostBudgetVO3 vo3 = baseMapper.getUserALLPlan(userId);
         return vo3;
     }
 
@@ -331,7 +328,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     @Override
     public ProjectCostBudgetVO3 MonthPlanOverview(String planDate) {
         //没有用户
-        Long user = 1123598821738675201L;
+        Long userId = SecureUtil.getUserId();
         //初始化时间段
         String[] split = planDate.split("-");
         int year = Integer.parseInt(split[0]);
@@ -352,7 +349,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 }
             }
         }
-        ProjectCostBudgetVO3 vo3 = baseMapper.MonthPlanOverview(user, startDate, endDate);
+        ProjectCostBudgetVO3 vo3 = baseMapper.MonthPlanOverview(userId, startDate, endDate);
         return vo3;
     }
 
@@ -362,8 +359,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     @Override
     public List<ProjectCostBudgetVO3> postponePlan() {
         //没有用户
-        Long user = 1123598821738675201L;
-        return baseMapper.postponePlan(user);
+        Long userId = SecureUtil.getUserId();
+        return baseMapper.postponePlan(userId);
     }
 
 
@@ -371,15 +368,15 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
      * 门户普通权限计划统计图
      */
     @Override
-    public List<Map<String, List<Integer>>> MonthOfYearPlanOverview() {
-        //没有用户
-        Long user = 1123598821738675201L;
+    public List<PlanStatisticVO> MonthOfYearPlanOverview() {
+        //查询当前用户
+        Long userId = SecureUtil.getUserId();
         //获取今年
         int year = LocalDate.now().getYear();
         //获取今年所有的当前用户的计划
-        List<ProjectCostBudget> list = baseMapper.MonthOfYearPlanOverview(user, year);
+        List<ProjectCostBudget> list = baseMapper.MonthOfYearPlanOverview(userId, year);
         if (list != null && list.size() > 0) {
-            List<Map<String, List<Integer>>> mapList = new ArrayList<>();
+            List<PlanStatisticVO> mapList = new ArrayList<>();
             List<Integer> allPlan = new ArrayList<>();
             List<Integer> finishedPlan = new ArrayList<>();
             List<Integer> unfinishedPlan = new ArrayList<>();
@@ -403,21 +400,29 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 finishedPlan.add(total2);
                 unfinishedPlan.add(total3);
             }
-            HashMap<String, List<Integer>> map1 = new HashMap<>();
-            map1.put("总计划",allPlan);
-            HashMap<String, List<Integer>> map2 = new HashMap<>();
-            map2.put("已完成",finishedPlan);
-            HashMap<String, List<Integer>> map3 = new HashMap<>();
-            map3.put("未完成",unfinishedPlan);
-            mapList.add(map1);
-            mapList.add(map2);
-            mapList.add(map3);
+            PlanStatisticVO vo1 = new PlanStatisticVO();
+            vo1.setName("总计划");
+            vo1.setValue(allPlan);
+            PlanStatisticVO vo2 = new PlanStatisticVO();
+            vo2.setName("已完成");
+            vo2.setValue(finishedPlan);
+            PlanStatisticVO vo3 = new PlanStatisticVO();
+            vo3.setName("未完成");
+            vo3.setValue(unfinishedPlan);
+            mapList.add(vo1);
+            mapList.add(vo2);
+            mapList.add(vo3);
             return mapList;
         }else {
             return null;
         }
     }
 
+    @Override
+    public List<PlanStatisticVO> MonthOfYearPlanOverview2(Long deptId, Long UserId, LocalDate start, LocalDate end) {
+        return null;
+    }
+
     @Override
     public List<ProjectCostBudget> getAllBudgetByProjectId(Long id) {
         return baseMapper.getAllBudgetByProjectId(id);
@@ -468,7 +473,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     }
 
     /**
-     * 按月查询所有支出
+     * 按月查询所有计划支出
      * @param date
      * @return
      */
@@ -489,6 +494,16 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         return baseMapper.getRiskPlan(projectId,costType);
     }
 
+    /**
+     * 根据月获取计划闭环后实际金额
+     * @param date
+     * @return
+     */
+    @Override
+    public List<ProjectCostBudget> getPlanPracticalCostByMonth(String date) {
+        return baseMapper.getPlanPracticalCostByMonth(date);
+    }
+
     /**
      * 统计一行的几个总金额
      */

+ 3 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectProcessServiceImpl.java

@@ -86,7 +86,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessMap
     }
 
     /**
-     * 根项目id获取项目的进程
+     * 根项目id获取项目的进程
      *
      * @return
      */
@@ -95,8 +95,9 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessMap
         List<ProjectProcessVO> list = processMapper.getProjectProcess(id);
         list.stream().forEach(l -> {
             if (l.getProcessStartTime() != null && l.getProcessEndTime() != null) {
-                //是否开始时间,在当前时间之前
+                //开始时间是否在今天以前,是则已开始,否则未开始
                 if (l.getProcessStartTime().isBefore(LocalDate.now())) {
+                    //结束时间是否在今天以前,是则已结果,否则进行中
                     if (l.getProcessEndTime().isBefore(LocalDate.now())) {
                         l.setStatusValue("已闭环");
                         l.setStatus(3);