Răsfoiți Sursa

优化内控系统,项目计划预算的保存流程

qianxb 1 an în urmă
părinte
comite
c693c079df

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

@@ -40,6 +40,8 @@ public interface ProjectCostBudgetMapper extends BaseMapper<ProjectCostBudget> {
 
     void removeChildrenPlan(@Param("projectId") Long projectId);
 
+    void removeChildrenPlan2(@Param("parentId") Long parentId);
+
     List<ProjectCostBudgetVO> getDepartmentPlan(@Param("deptId") Long deptId,@Param("date") String date);
 
     void updateStatus(@Param("id") Long id,@Param("status") int status);

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

@@ -28,6 +28,10 @@
         delete from c_project_cost_budget
         where project_id = #{projectId} and parent_id > 0
     </delete>
+    <delete id="removeChildrenPlan2">
+        delete from c_project_cost_budget
+        where  parent_id = #{parentId} and status = 1
+    </delete>
 
     <select id="budgetList" resultType="org.springblade.control.vo.ProjectCostBudgetVO">
         select

+ 43 - 3
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.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -1396,9 +1397,13 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
      * 编辑子计划
      */
     @Override
+    @Transactional
     public ProjectCostBudgetVO2 updateChildrenPlan(ProjectCostBudgetVO2 vo2) {
         //如果子计划为空,则清空父计划,然后修改可以编辑父计划
         List<ProjectCostBudgetVO2> list = vo2.getChildrenList();
+        //删除当前计划的子计划,只删除未开始的计划
+        baseMapper.removeChildrenPlan2(vo2.getId());
+        List<ProjectCostBudget> childrenList = new ArrayList<>();
         if (list != null && list.size() > 0){
             //查看进行中的子计划的任务类型是否被更改
             for (ProjectCostBudgetVO2 vo : list) {
@@ -1472,6 +1477,22 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 //拼接子计划的完成指标
                 targetStr.append(j+"."+l.getPlanTarget()+"、");
                 j++;
+
+                //只保存未开始的计划
+                if (l.getStatus() == null || l.getStatus() == 1){
+                    ProjectCostBudget budget = new ProjectCostBudget();
+                    BeanUtils.copyProperties(l,budget);
+                    budget.setProjectId(vo2.getProjectId());
+                    budget.setParentId(vo2.getId());
+                    budget.setCostType(vo2.getCostType());
+                    budget.setUnitType(vo2.getUnitType());
+                    budget.setDeptId(vo2.getDeptId());
+                    budget.setBudgetType(vo2.getBudgetType());
+                    budget.setProjectProcess(vo2.getProjectProcess());
+                    budget.setTaskDetail(vo2.getTaskDetail());
+                    budget.setPostType(vo2.getPostType());
+                    childrenList.add(budget);
+                }
             }
 
             //所有子计划完成,设置父计划为绿色
@@ -1506,9 +1527,29 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 vo2.setPlanDays(new BigDecimal(dateInfoMapper.getWorkDays(startDate, endDate)));
             }
             vo2.setIsShowEdit(0);
-
+            //新增或修改子计划
+            this.saveOrUpdateBatch(childrenList);
+            //修改数据库
+            this.update(new LambdaUpdateWrapper<ProjectCostBudget>()
+                    .set(ProjectCostBudget::getPlanTaskType,vo2.getPlanTaskType())
+                    .set(ProjectCostBudget::getPlanTaskDesc,vo2.getPlanTaskDesc())
+                    .set(ProjectCostBudget::getPlanTarget,vo2.getPlanTarget())
+                    .set(ProjectCostBudget::getPlanStartTime,vo2.getPlanStartTime())
+                    .set(ProjectCostBudget::getPlanEndTime,vo2.getPlanEndTime())
+                    .set(ProjectCostBudget::getPlanDays,vo2.getPlanDays())
+                    .eq(ProjectCostBudget::getId,vo2.getId()));
         }else {
-            vo2.setPlanTaskTypeValue(null);
+             //修改数据库
+            this.update(new LambdaUpdateWrapper<ProjectCostBudget>()
+                    .set(ProjectCostBudget::getPlanTaskType,null)
+                    .set(ProjectCostBudget::getPlanTaskDesc,null)
+                    .set(ProjectCostBudget::getPlanTarget,null)
+                    .set(ProjectCostBudget::getPlanStartTime,null)
+                    .set(ProjectCostBudget::getPlanEndTime,null)
+                    .set(ProjectCostBudget::getPlanDays,null)
+                    .eq(ProjectCostBudget::getId,vo2.getId()));
+             //返回给前端显示
+             vo2.setPlanTaskTypeValue(null);
              vo2.setPlanTaskType(null);
              vo2.setPlanTaskDesc(null);
              vo2.setPlanTarget(null);
@@ -1516,7 +1557,6 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
              vo2.setPlanEndTime(null);
              vo2.setPlanDays(null);
              vo2.setIsShowEdit(1);
-             return vo2;
         }
         return vo2;
     }