فهرست منبع

成本测算排序,部门月度计划按照分摊部门

qianxb 2 سال پیش
والد
کامیت
f5a5ea4f4c

+ 3 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/entity/ProjectCostBudget.java

@@ -165,4 +165,7 @@ public class ProjectCostBudget extends BaseEntity {
     @ApiModelProperty(value = "计划结束月工作天数")
     private BigDecimal planEndMonthDays;
 
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
 }

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

@@ -14,14 +14,14 @@
     </select>
     <select id="getPage" resultType="org.springblade.control.vo.DepartmentMonthPlanVO">
         SELECT dmp.*,
-               (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.cost_type = dmp.department_type
+               (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.dept_id = dmp.dept_id
                     and (pcb.plan_start_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date
                     or pcb.plan_end_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date)) as 'planTotal',
-                (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.cost_type = dmp.department_type
+                (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.dept_id = dmp.dept_id
                                                                    and pcb.task_approve = 1
                     and (pcb.plan_start_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date
                     or pcb.plan_end_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date)) as 'finishPlanTotal',
-                (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.cost_type = dmp.department_type
+                (select COUNT(1)  from c_project_cost_budget pcb WHERE pcb.dept_id = dmp.dept_id
                                                                    and pcb.task_approve = 0
                     and (pcb.plan_start_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date
                     or pcb.plan_end_time BETWEEN dmp.plan_start_date AND dmp.plan_end_date)) as 'beginPlanTotal',

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

@@ -40,7 +40,7 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
 
     void removeChildrenPlan(@Param("projectId") Long projectId);
 
-    List<ProjectCostBudgetVO> getDepartmentPlan(@Param("type") Integer type,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate);
+    List<ProjectCostBudgetVO> getDepartmentPlan(@Param("deptId") Long deptId,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate);
 
     void updateStatus(@Param("id") Long id,@Param("status") int status);
 

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

@@ -107,7 +107,7 @@
                (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 = 2 and di.id = pcb.plan_task_type) as planTaskTypeValue
         from c_project_cost_budget pcb
-        WHERE pcb.cost_type = #{type}
+        WHERE pcb.dept_id = #{deptId}
           and (pcb.plan_start_time BETWEEN #{startDate} AND #{endDate}
             or pcb.plan_end_time BETWEEN #{startDate} AND #{endDate})
     </select>

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

@@ -41,7 +41,7 @@ public interface IProjectCostBudgetService extends BaseService<ProjectCostBudget
     //修改项目计划
     void updatePlan(ProjectCostBudgetVO vo);
     //根据部门类型和日期查询计划
-    List<ProjectCostBudgetVO> getDepartmentPlan(Integer type,String date);
+    List<ProjectCostBudgetVO> getDepartmentPlan(Long deptId,String date);
 
     //根据项目id,部门id查询延期计划
     List<ProjectCostBudgetVO> getDepartmentTimeOutPlan(Integer costType,Long projectId);

+ 7 - 6
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/DepartmentMonthPlanServiceImpl.java

@@ -117,12 +117,13 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
     public List<ProjectCostBudgetVO> getDepartmentPlan(DepartmentMonthPlan plan) {
         //查询出部门当月的项目计划,返回
         List<ProjectCostBudgetVO> voList = new ArrayList<>();
-        if (plan.getDepartmentType() != 5){
-            voList = budgetService.getDepartmentPlan(plan.getDepartmentType(),plan.getPlanDate());
-        }else {
-            voList.addAll(budgetService.getDepartmentPlan(5,plan.getPlanDate()));
-            voList.addAll(budgetService.getDepartmentPlan(6,plan.getPlanDate()));
-        }
+//        if (plan.getDepartmentType() != 5){
+//            voList = budgetService.getDepartmentPlan(plan.getDepartmentType(),plan.getPlanDate());
+//        }else {
+//            voList.addAll(budgetService.getDepartmentPlan(5,plan.getPlanDate()));
+//            voList.addAll(budgetService.getDepartmentPlan(6,plan.getPlanDate()));
+//        }
+        voList.addAll(budgetService.getDepartmentPlan(plan.getDeptId(),plan.getPlanDate()));
         return voList;
     }
 

+ 42 - 15
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -61,7 +61,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         List<ProjectCostBudget> allBudget = new ArrayList<>();
         //施工单位
         if (dto.getBuildUnit() != null && dto.getBuildUnit().size() > 0){
-            dto.getBuildUnit().stream().forEach(l->{
+            int i = 1;
+            for (ProjectCostBudget l : dto.getBuildUnit()) {
                 if (l.getDeptId() == null){
                     throw new ServiceException("请选择费用分摊部门");
                 }
@@ -80,18 +81,21 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 if (l.getStaffCount() == null){
                     throw new ServiceException("请填写投入人员数量");
                 }
+                l.setSort(i);
+                i++;
                 if (l.getApprove() != null && (l.getApprove() == 1 || l.getApprove() == 2)){
-                    return;
+                    continue;
                 }
-              l.setProjectId(dto.getProjectId());
-              l.setUnitType(1);
-              countMoney(l);
-            });
+                l.setProjectId(dto.getProjectId());
+                l.setUnitType(1);
+                countMoney(l);
+            }
             allBudget.addAll(dto.getBuildUnit());
         }
         //监理单位
         if (dto.getSupervisorUnit() != null && dto.getSupervisorUnit().size() > 0){
-            dto.getSupervisorUnit().stream().forEach(l->{
+            int i = 1;
+            for (ProjectCostBudget l : dto.getSupervisorUnit()) {
                 if (l.getDeptId() == null){
                     throw new ServiceException("请选择费用分摊部门");
                 }
@@ -101,18 +105,30 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 if (l.getProjectProcess() == null){
                     throw new ServiceException("请选择项目环节");
                 }
+                if (l.getBudgetDays() == null){
+                    throw new ServiceException("请填写预计工作量");
+                }
+                if (l.getPostType() == null){
+                    throw new ServiceException("请选择岗位类型");
+                }
+                if (l.getStaffCount() == null){
+                    throw new ServiceException("请填写投入人员数量");
+                }
+                l.setSort(i);
+                i++;
                 if (l.getApprove() != null && (l.getApprove() == 1 || l.getApprove() == 2)){
-                    return;
+                    continue;
                 }
                 l.setProjectId(dto.getProjectId());
                 l.setUnitType(2);
                 countMoney(l);
-            });
+            }
             allBudget.addAll(dto.getSupervisorUnit());
         }
         //建设单位
         if (dto.getConstructUnit() != null && dto.getConstructUnit().size() > 0){
-            dto.getConstructUnit().stream().forEach(l->{
+            int i = 1;
+            for (ProjectCostBudget l : dto.getConstructUnit()) {
                 if (l.getDeptId() == null){
                     throw new ServiceException("请选择费用分摊部门");
                 }
@@ -122,13 +138,24 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 if (l.getProjectProcess() == null){
                     throw new ServiceException("请选择项目环节");
                 }
+                if (l.getBudgetDays() == null){
+                    throw new ServiceException("请填写预计工作量");
+                }
+                if (l.getPostType() == null){
+                    throw new ServiceException("请选择岗位类型");
+                }
+                if (l.getStaffCount() == null){
+                    throw new ServiceException("请填写投入人员数量");
+                }
+                l.setSort(i);
+                i++;
                 if (l.getApprove() != null && (l.getApprove() == 1 || l.getApprove() == 2)){
-                    return;
+                    continue;
                 }
                 l.setProjectId(dto.getProjectId());
                 l.setUnitType(3);
                 countMoney(l);
-            });
+            }
             allBudget.addAll(dto.getConstructUnit());
         }
         baseMapper.removeOldBudget(dto.getProjectId());
@@ -585,12 +612,12 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
 
     /**
      * 根据部门类型和日期查询计划
-     * @param type
+     * @param
      * @param date
      * @return
      */
     @Override
-    public List<ProjectCostBudgetVO> getDepartmentPlan(Integer type, String date) {
+    public List<ProjectCostBudgetVO> getDepartmentPlan(Long deptId, String date) {
         //初始化时间段
         String[] split = date.split("-");
         int year = Integer.parseInt(split[0]);
@@ -611,7 +638,7 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 }
             }
         }
-        List<ProjectCostBudgetVO> departmentPlan = baseMapper.getDepartmentPlan(type, startDate, endDate);
+        List<ProjectCostBudgetVO> departmentPlan = baseMapper.getDepartmentPlan(deptId, startDate, endDate);
         List<DictInfo> allTaskInfo = budgetMapper.getAllTaskInfo();
         Map<Long, List<DictInfo>> taskMap = new HashMap<>();
         if (allTaskInfo != null && allTaskInfo.size() > 0) {

+ 17 - 4
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetStatsServiceImpl.java

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -78,11 +79,23 @@ public class ProjectCostBudgetStatsServiceImpl extends BaseServiceImpl<ProjectCo
             //查询具体明细并分组存入
             list = budgetService.budgetListByProjectId(vo.getProjectId());
         }
-        if (list != null && list.size() > 0) {
+        if (list != null && list.size() > 0 ) {
             Map<Integer, List<ProjectCostBudget>> map = list.parallelStream().collect(Collectors.groupingBy(ProjectCostBudget::getUnitType));
-            vo.setBuildUnit(map.get(1));
-            vo.setSupervisorUnit(map.get(2));
-            vo.setConstructUnit(map.get(3));
+            List<ProjectCostBudget> b1 = map.get(1);
+            if (b1 != null && b1.size() > 0 && b1.get(0).getSort() != null) {
+                b1 = b1.stream().sorted(Comparator.comparing(ProjectCostBudget::getSort)).collect(Collectors.toList());
+            }
+            vo.setBuildUnit(b1);
+            List<ProjectCostBudget> b2 = map.get(2);
+            if (b2 != null && b2.size() > 0 && b2.get(0).getSort() != null) {
+                b2 = b2.stream().sorted(Comparator.comparing(ProjectCostBudget::getSort)).collect(Collectors.toList());
+            }
+            vo.setSupervisorUnit(b2);
+            List<ProjectCostBudget> b3 = map.get(3);
+            if (b3 != null && b3.size() > 0 && b3.get(0).getSort() != null) {
+                b3 = b3.stream().sorted(Comparator.comparing(ProjectCostBudget::getSort)).collect(Collectors.toList());
+            }
+            vo.setConstructUnit(b3);
         }
         return vo;
     }