Pārlūkot izejas kodu

修改离线档案下载包含删除数据,项目计划预算是否编辑

qianxb 2 gadi atpakaļ
vecāks
revīzija
ec31699c4a

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

@@ -83,7 +83,7 @@ public class ProjectCostBudget extends BaseEntity {
     private Integer approve;
 
     @ApiModelProperty(value = "计划任务类型")
-    private Integer planTaskType;
+    private Long planTaskType;
 
     @ApiModelProperty(value = "计划任务描述")
     private String planTaskDesc;

+ 2 - 0
blade-service-api/blade-control-api/src/main/java/org/springblade/control/vo/ProjectCostBudgetVO2.java

@@ -47,5 +47,7 @@ public class ProjectCostBudgetVO2 extends ProjectCostBudget {
     @ApiModelProperty(value = "0不显示分解子计划,1显示分解子计划")
     private Integer isShowChildren;
 
+    @ApiModelProperty(value = "0不显示编辑,1显示编辑")
+    private Integer isShowEdit;
 
 }

+ 1 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -418,7 +418,7 @@
                is_lock      as isLock,
                create_time  as createTime
         from u_archives_auto
-        where project_id = #{projectId};
+        where project_id = #{projectId} and is_deleted = 0;
     </select>
     <select id="pageByArchivesAuto" resultMap="archivesAutoResultMap">
         select uaa.*

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -334,7 +334,7 @@
                is_deleted   as isDeleted,
                create_time  as createTime
         from u_archive_file
-        where project_id = #{projectId};
+        where project_id = #{projectId} and is_deleted = 0;
     </select>
     <select id="getAllArchiveFileByContractType" resultType="org.springblade.business.vo.ArchiveFileVO">
         SELECT uaf.*, matc.tree_code as 'contractType'

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

@@ -22,7 +22,7 @@
             (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
+            (select di.dict_name from c_dict_info di where di.type = 3 and di.id = pcb.post_type) as postTypeValue
         from c_project_cost_budget pcb
         where pcb.project_id = #{budget.projectId} and pcb.parent_id = 0
         <if test="budget.costType != null and budget.costType != ''">

+ 21 - 3
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -200,6 +200,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                 }
                 //如果子计划,把子计划插入计划里
                 if (key.contains(vo2.getId())) {
+                    //如果计划的status为1,2,3,或者计划有子计划,则不能编辑
+                    vo2.setIsShowEdit(0);
                     //如果计划已经完成,则不计算超时
                     if (vo2.getTaskFinishedStatus() == null) {
                         //有子计划,判断子计划加起来是否超过预算天数
@@ -216,6 +218,12 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                     }
                     vo2.setChildrenList(listMap.get(vo2.getId()));
                 }else {
+                    //如果计划的status为1,2,3,或者计划有子计划,则不能编辑
+                    if (vo2.getStatus() == 1){
+                        vo2.setIsShowEdit(1);
+                    }else {
+                        vo2.setIsShowEdit(0);
+                    }
                     //没有子计划,则计划父计划的时间是否超时
                     if (vo2.getTaskFinishedStatus() == null && vo2.getPlanDays() != null){
                         if (vo2.getPlanDays().compareTo(vo2.getBudgetDays()) == 1) {
@@ -253,6 +261,8 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
     @Override
     @Transactional
     public void updatePlan(ProjectCostBudgetVO vo) {
+        //获取数据库中原来的计划
+
         //把3个单位合成一个
         List<ProjectCostBudgetVO2> list = new ArrayList<>();
         Map<Integer, List<ProjectCostBudgetVO2>> buildUnit = vo.getBuildUnit();
@@ -275,20 +285,28 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         for (ProjectCostBudgetVO2 vo2 : list) {
             List<ProjectCostBudgetVO2> vo2ChildrenList = vo2.getChildrenList();
             if (vo2ChildrenList != null && vo2ChildrenList.size() > 0){
-                //有子计划
+                //有子计划,则判断父计划是否也设置了计划日期
+                //查询出数据库里当前项目所以的父计划,还有子计划,然后按id分组,在这里进行获取
+                //然后判断是否存在计划时间,如果存在则提示已做父计划,不能再做子计划
                 for (ProjectCostBudget budget : vo2ChildrenList) {
                     budget.setProjectId(vo.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());
                 }
                 childrenList.addAll(vo2ChildrenList);
-            }
+                //把数据库里的父计划,添加进父计划中,因为有子计划,返回的父计划是有回显值的
+            }else {
                 //无子计划
+                //先判断数据中有无子计划,有子计划,父计划的几个值应该为空
+                //如果数据中无子计划,则保存返回的值
                 ProjectCostBudget budget = new ProjectCostBudget();
-                BeanUtils.copyProperties(vo2,budget);
+                BeanUtils.copyProperties(vo2, budget);
                 parentList.add(budget);
+            }
         }
         //删除没有指定任务人的子计划,    暂时全部删除
         baseMapper.removeChildrenPlan(vo.getProjectId());