Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

liuyc 2 yıl önce
ebeveyn
işleme
5ccc1f21ed

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

@@ -0,0 +1,25 @@
+package org.springblade.control.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/6/20 15:28
+ **/
+@Data
+public class AllProjectStatsVO {
+    @ApiModelProperty(value = "总合同额")
+    private String allContractMoney;
+
+    @ApiModelProperty(value = "总测算成本")
+    private String allProjectCost;
+
+    @ApiModelProperty(value = "总实际支出")
+    private String allPracticalDisburse;
+
+    @ApiModelProperty(value = "总回款")
+    private String allReturned;
+
+}

+ 9 - 0
blade-service/blade-control/src/main/java/org/springblade/control/controller/ProjectInfoController.java

@@ -109,5 +109,14 @@ public class ProjectInfoController {
         return R.data(projectInfoService.getProjectServerTypeDict());
     }
 
+    /**
+     * 项目统计总金额成本
+     */
+    @GetMapping("/allProjectStats")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "项目统计总金额成本")
+    public R allProjectStats() {
+        return R.data(projectInfoService.allProjectStats());
+    }
 
 }

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

@@ -47,4 +47,6 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
     List<ProjectCostBudgetVO3> postponePlan(@Param("user") Long user);
 
     List<ProjectCostBudget> MonthOfYearPlanOverview(@Param("user") Long user,@Param("year") int year);
+
+    Integer getPostMoney(@Param("type") Integer postType);
 }

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

@@ -7,16 +7,22 @@
 
     <delete id="removeOldBudget">
         delete from c_project_cost_budget
-        where project_id = #{projectId} and approve = 0 and parent_id is null
+        where project_id = #{projectId} and approve = 0 and parent_id = 0
     </delete>
     <delete id="removeChildrenPlan">
         delete from c_project_cost_budget
-        where project_id = #{projectId} and parent_id is not null
+        where project_id = #{projectId} and parent_id > 0
     </delete>
 
     <select id="budgetList" resultType="org.springblade.control.vo.ProjectCostBudgetVO">
         select
-            pcb.*
+            pcb.*,
+            (select di.dict_name from c_dict_info di where di.code = 'cost_type' and di.dict_value = pcb.cost_type) as costTypeValue,
+            (select cpp.name from c_project_process cpp where cpp.id = pcb.project_process) as projectProcessValue,
+            (select di.dict_name from c_dict_info di where di.type = 1 and di.dict_value = pcb.budget_type and di.parent_id = 0) as budgetTypeValue,
+            (select di.dict_name from c_dict_info di where di.type = 1 and di.dict_value = pcb.task_detail and di.parent_id =
+                (select di.id from c_dict_info di where di.type = 1 and di.dict_value = pcb.budget_type and di.parent_id = 0)) as taskDetailValue,
+            (select di.dict_name from c_dict_info di where di.type = 3 and di.code = pcb.post_type) as postTypeValue
         from c_project_cost_budget pcb
         where pcb.project_id = #{budget.projectId}
         <if test="budget.costType != null and budget.costType != ''">
@@ -108,6 +114,10 @@
         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>
+    <select id="getPostMoney" resultType="java.lang.Integer">
+        select dict_value
+        from c_dict_info where `type` = 3 and code = #{type}
+    </select>
 
 
 </mapper>

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

@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.control.dto.ControlProjectInfoDTO;
 import org.springblade.control.entity.ControlProjectInfo;
 import org.springblade.control.entity.DictInfo;
+import org.springblade.control.vo.AllProjectStatsVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
 import org.springblade.system.entity.DictBiz;
 
@@ -26,4 +27,6 @@ public interface ProjectInfoMapper extends BaseMapper<ControlProjectInfo> {
     List<DictInfo> getProjectServerTypeDict();
 
     Long selectProjectCount();
+
+    AllProjectStatsVO allProjectStats();
 }

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

@@ -53,6 +53,9 @@
     <select id="selectProjectCount" resultType="java.lang.Long">
         select count(1) from c_control_project_info
     </select>
+    <select id="allProjectStats" resultType="org.springblade.control.vo.AllProjectStatsVO">
+
+    </select>
 
 
 </mapper>

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.control.dto.ControlProjectInfoDTO;
 import org.springblade.control.entity.ControlProjectInfo;
 import org.springblade.control.entity.DictInfo;
+import org.springblade.control.vo.AllProjectStatsVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.mp.support.Query;
@@ -31,4 +32,5 @@ public interface IProjectInfoService extends BaseService<ControlProjectInfo> {
 
     List<DictInfo> getProjectServerTypeDict();
 
+    AllProjectStatsVO allProjectStats();
 }

+ 11 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.control.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
@@ -43,6 +44,8 @@ import java.util.stream.Collectors;
 public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBudgetMapper, ProjectCostBudget> implements IProjectCostBudgetService {
 
     private final IProjectInfoService projectInfoService;
+
+    private final ProjectCostBudgetMapper budgetMapper;
     /**
      * 批量新增或修改预算
      * @param dto
@@ -378,8 +381,14 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     /**
      * 统计一行的几个总金额
      */
-    public static void countMoney(ProjectCostBudget budget){
-        BigDecimal postMoney = new BigDecimal("100");
+    public void countMoney(ProjectCostBudget budget){
+        BigDecimal postMoney;
+        if (budget.getPostType() != null && budget.getPostType() > 0){
+            Integer money = baseMapper.getPostMoney(budget.getPostType());
+            postMoney = new BigDecimal(money);
+        }else {
+            postMoney = new BigDecimal("0");
+        }
         //人工成本 = 人员数量 * 单价 * 天数
         if (budget.getStaffCount() != null && budget.getBudgetDays() != null) {
             budget.setBudgetStaffCost(budget.getStaffCount().multiply(postMoney).multiply(budget.getBudgetDays()));

+ 1 - 0
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetStatsServiceImpl.java

@@ -68,6 +68,7 @@ public class ProjectCostBudgetStatsServiceImpl extends BaseServiceImpl<ProjectCo
     public ProjectCostBudgetStatsVO getBudgetStatsById(Long id) {
         //查询项目成本统计
         ProjectCostBudgetStatsVO vo = baseMapper.getBudgetStatsById(id);
+
         //查询具体明细并分组存入
         List<ProjectCostBudget> list = budgetService.budgetListByProjectId(vo.getProjectId());
         if (list != null && list.size() > 0) {

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

@@ -15,6 +15,7 @@ import org.springblade.control.service.IContractInfoService;
 import org.springblade.control.service.IProjectCostBudgetStatsService;
 import org.springblade.control.service.IProjectInfoService;
 import org.springblade.control.service.IProjectProcessService;
+import org.springblade.control.vo.AllProjectStatsVO;
 import org.springblade.control.vo.ControlProjectInfoVO;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
@@ -136,6 +137,13 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
         return infoMapper.getProjectServerTypeDict();
     }
 
+    /**
+     * 项目统计总金额成本
+     */
+    @Override
+    public AllProjectStatsVO allProjectStats() {
+        return baseMapper.allProjectStats();
+    }
 
 
 }