Browse Source

项目统计增加支出

qianxb 2 năm trước cách đây
mục cha
commit
93ffe56472

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

@@ -33,7 +33,7 @@ public class AllProjectStatsVO {
     @ApiModelProperty(value = "预算成本")
     private BigDecimal budgetCost;
 
-    @ApiModelProperty(value = "实际已支出成本")
+    @ApiModelProperty(value = "实际已支出成本")
     private BigDecimal practicalPayCost;
 
     @ApiModelProperty(value = "实际已回款")

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

@@ -53,4 +53,6 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
     List<ProjectCostBudget> getAllBudgetByProjectId(@Param("id") Long id);
 
     List<ProjectCostBudget> getProjectAllFinishedTask(@Param("projectId") Long projectId,@Param("costType") Integer costType);
+
+    List<ProjectCostBudget> getAllPracticalBudgetByProjectId(@Param("projectId") Long projectId);
 }

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

@@ -124,6 +124,10 @@
     <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>
+    <select id="getAllPracticalBudgetByProjectId"
+            resultType="org.springblade.control.entity.ProjectCostBudget">
+        select * from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = #{projectId} and pcb.task_approve = 1
+    </select>
 
 
 </mapper>

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

@@ -57,6 +57,7 @@
         select
             (select sum(cci.contract_money)  from c_control_contract_info cci WHERE cci.is_deleted = 0) as allContractMoney,
             (select SUM(cbs.project_cost_total)  from c_project_cost_budget_stats cbs WHERE cbs.is_deleted = 0) as allProjectCost,
+            (select SUM(pcb.actual_total_money)  from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.task_approve = 1)as "allPracticalDisburse",
             (select SUM(cri.practical_returned_money)  from c_contract_returned_info cri WHERE cri.is_deleted = 0) as allReturned
     </select>
     <select id="ProjectListStats" resultType="org.springblade.control.vo.AllProjectStatsVO">
@@ -64,6 +65,7 @@
             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',
+                (select SUM(pcb.actual_total_money)  from c_project_cost_budget pcb WHERE  pcb.is_deleted =0 and pcb.project_id = cpi.id and pcb.task_approve = 1)as "practicalPayCost",
                 (select SUM(cri.practical_returned_money)  from c_contract_returned_info cri WHERE cpi.id = cri.project_id and cri.is_deleted = 0) as 'ReturnedMoney',
                 (cci.contract_money - IFNULL((select SUM(cri.practical_returned_money) from c_contract_returned_info cri WHERE cri.contract_id = cci.id and cri.is_deleted = 0),0)) as 'unreturnedMoney'
         from c_control_project_info cpi left join c_control_contract_info cci on cpi.id = cci.project_id and cci.is_deleted = 0

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

@@ -56,4 +56,6 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
     List<ProjectCostBudget> getAllBudgetByProjectId(Long id);
 
     List<ProjectCostBudget> getProjectAllFinishedTask(Long projectId,Integer costType);
+
+    List<ProjectCostBudget> getAllPracticalBudgetByProjectId(Long projectId);
 }

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

@@ -395,6 +395,16 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         return baseMapper.getProjectAllFinishedTask(projectId,costType);
     }
 
+    /**
+     * 获取项目的所有实际费用
+     * @param id
+     * @return
+     */
+    @Override
+    public List<ProjectCostBudget> getAllPracticalBudgetByProjectId(Long projectId) {
+        return baseMapper.getAllPracticalBudgetByProjectId(projectId);
+    }
+
     /**
      * 统计一行的几个总金额
      */

+ 12 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectInfoServiceImpl.java

@@ -164,6 +164,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
         List<DictInfo> costTypeDict = baseMapper.getCostTypeDict();
         //获取项目所有预算
         List<ProjectCostBudget> budgets = budgetService.getAllBudgetByProjectId(id);
+        //获取项目所有实际费用
+        List<ProjectCostBudget> practicalList = budgetService.getAllPracticalBudgetByProjectId(id);
         if (budgets != null && budgets.size() > 0){
             Map<Integer, List<ProjectCostBudget>> budgetMap = budgets.parallelStream()
                     .collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
@@ -179,6 +181,16 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
                     }
                 }
                 vo.setBudgetCost(bigDecimal);
+                //设置费用分类实际费用,目前只设置人工
+                BigDecimal practicalCost = new BigDecimal(0);
+                if (practicalList != null && practicalList.size() > 0){
+                    for (ProjectCostBudget budget : practicalList) {
+                        if (budget.getCostType() == i){
+                            practicalCost = practicalCost.add(budget.getActualTotalMoney());
+                        }
+                    }
+                }
+                vo.setPracticalCost(practicalCost);
                 list.add(vo);
             }
             return list;