Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
4ede95ddb1
  1. 10
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 4
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  3. 27
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

10
xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java

@ -323,7 +323,15 @@ public class XmTaskController {
if(fieldKey.size()>0){
fieldKey=fieldKey.stream().filter(i->!StringUtils.isEmpty(xmTaskMap.get(i) )).collect(Collectors.toSet());
xmTaskService.editSomeFields(xmTaskMap);
if(fieldKey.contains("budgetWorkload")){//如果调整了预估工时需要重新计算进度数据
if(xmTasksDb.size()>0){
this.xmTaskService.batchUpdateBudgetWorkloadAndRate(xmTasksDb.stream().map(i->i.getId()).collect(Collectors.toSet()).stream().collect(Collectors.toList()));
this.xmTaskService.batchSumParents(xmTasksDb);
}
}else{
xmTaskService.editSomeFields(xmTaskMap);
}
xmRecordService.addXmTaskRecord(xmTask.getProjectId(),xmTask.getId(),"修改项目任务","修改任务"+xmTask.getMenuName(),"", JSON.toJSONString(xmTask));
}

4
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -740,5 +740,9 @@ public class XmTaskService extends BaseService {
ids=ids.stream().collect(Collectors.toSet()).stream().collect(Collectors.toList());
super.update("calcWorkloadByRecord",ids);
}
public void batchUpdateBudgetWorkloadAndRate(List<String> ids) {
super.update("batchUpdateBudgetWorkloadAndRate",ids);
}
}

27
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

@ -263,7 +263,8 @@
res.act_workload = t2.act_workload,
res.rate = case when (ifnull(t2.budget_workload,0) >0) then ifnull(t2.act_workload,0)*100/(ifnull(t2.budget_workload,0) )
when t2.act_workload >0 100
else 0 end,
when res.task_state in('2','3','4') then 100
else res.rate end,
res.start_time = ifnull(res.start_time,t2.start_time),
res.end_time = ifnull(t2.end_time,t2.end_time),
res.act_start_time = t2.act_start_time,
@ -307,7 +308,8 @@
res.act_workload = t2.act_workload,
res.rate = case when ( ifnull(t2.budget_workload,0)>0) then ifnull(t2.act_workload,0)*100/( ifnull(t2.budget_workload,0))
when t2.act_workload >0 then 100
else 0 end,
when res.task_state in('2','3','4') then 100
else res.rate end,
res.start_time = ifnull(res.start_time,t2.start_time),
res.end_time = ifnull(t2.end_time,t2.end_time),
res.act_start_time = t2.act_start_time,
@ -386,14 +388,31 @@
group by w.task_id
)
as w on res.id=w.task_id
set res.act_workload=w.workload,res.rate=case when res.budget_workload>0 then ifnull(w.workload,0)*100/ res.budget_workload
set res.act_workload=w.workload,res.rate=case when res.status in('2','3','4') then 100
when res.budget_workload>0 then ifnull(w.workload,0)*100/ res.budget_workload
when w.workload>0 then 100
else 0 end
else res.rate end
where res.id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
</update>
<!-- 批量更新 -->
<update id="batchUpdateBudgetWorkloadAndRate" parameterType="List">
update xm_task res
set
res.init_budget_workload=ifnull(res.init_budget_workload,res.budget_workload),
res.budget_workload=#{budgetWorkload},
res.rate=case when res.status in('2','3','4') then 100
when #{budgetWorkload}>0 then ifnull(res.act_workload,0)*100/ #{budgetWorkload}
when res.act_workload>0 then 100
else res.rate end
where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
</update>
<!--结束 自定义sql函数区域-->

Loading…
Cancel
Save