diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
index 644a0320..c47cadc0 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
@@ -198,23 +198,20 @@
sum(ifnull(t.budget_workload,0)) as budget_workload,
sum(ifnull(t.budget_cost,0)) as budget_cost,
sum(ifnull(t.act_workload,0)) as act_workload,
- sum(ifnull(t.act_cost,0)) as act_cost,
- sum(ifnull(t.rworkload,ifnull(t.budget_workload,0)-ifnull(t.act_workload,0))) as rworkload
+ sum(ifnull(t.act_cost,0)) as act_cost
from xm_task t where t.menu_id in
( #{item})
and t.ntype='0'
- group by menu_id
+ group by t.menu_id
) t on t.menu_id=res.menu_id
left join (
select q.menu_id,
sum(ifnull(q.budget_workload,0)) as budget_workload,
sum(ifnull(q.budget_cost,0)) as budget_cost,
sum(ifnull(q.act_workload,0)) as act_workload,
- sum(ifnull(q.act_cost,0)) as act_cost,
- sum(ifnull(q.rworkload,ifnull(q.budget_workload,0)-ifnull(q.act_workload,0))) as rworkload
-
+ sum(ifnull(q.act_cost,0)) as act_cost
from xm_question q where q.menu_id in
( #{item})
@@ -225,8 +222,8 @@
res.budget_cost=ifnull(t.budget_cost,0)+ifnull(q.budget_cost,0),
res.mact_workload=ifnull(t.act_workload,0)+ifnull(q.act_workload,0),
res.mact_cost=ifnull(t.act_cost,0)+ifnull(q.act_cost,0),
- res.rworkload=ifnull(t.rworkload,0)+ifnull(q.rworkload,0),
- res.mact_rate=case when (ifnull(t.rworkload,0)+ifnull(q.rworkload,0)+ifnull(t.act_workload,0)+ifnull(q.act_workload,0))!=0 then (ifnull(t.act_workload,0)+ifnull(q.act_workload,0))*100/(ifnull(t.rworkload,0)+ifnull(q.rworkload,0)+ifnull(t.act_workload,0)+ifnull(q.act_workload,0))
+ res.mact_rate=case when (ifnull(t.budget_workload,0)+ifnull(q.budget_workload,0) )!=0 then (ifnull(t.act_workload,0)+ifnull(q.act_workload,0))*100/(ifnull(t.budget_workload,0)+ifnull(q.budget_workload,0) )
+ when (ifnull(t.act_workload,0)+ifnull(q.act_workload,0))>0 then 100
else 0 end
where (res.menu_id) in
diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml
index 9964e9ef..91859a98 100644
--- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml
+++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml
@@ -240,7 +240,6 @@
sum( ifnull( t.budget_workload, 0 ) ) AS budget_workload,
sum( ifnull( t.act_cost, 0 ) ) AS act_cost,
sum( ifnull( t.act_workload, 0 ) ) AS act_workload,
- sum( ifnull( t.rworkload, if(t.budget_workload>0,(t.budget_workload-ifnull(t.act_workload,0)),0) ) ) AS rworkload,
sum( ifnull( t.budget_workload, 0 ) * ifnull( t.rate, 0 ) ) AS budget_workload_rate,
sum( ifnull(t.rate,0)) as total_rate,
min( t.start_time ) AS start_time,
@@ -262,8 +261,8 @@
res.budget_cost=ifnull(t2.budget_cost,0),
res.act_cost = t2.act_cost,
res.act_workload = t2.act_workload,
- res.rate = case when (ifnull(t2.rworkload,0)+ifnull(t2.act_workload,0)>0) then ifnull(t2.act_workload,0)*100/(ifnull(t2.rworkload,0)+ifnull(t2.act_workload,0))
- when t2.children_cnt >0 then t2.total_rate/t2.children_cnt
+ 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,
res.start_time = ifnull(res.start_time,t2.start_time),
res.end_time = ifnull(t2.end_time,t2.end_time),
@@ -289,8 +288,6 @@
sum( ifnull( t.act_cost, 0 ) ) AS act_cost,
sum( ifnull( t.act_workload, 0 ) ) AS act_workload,
sum( ifnull( t.budget_cost, 0 ) ) AS budget_cost,
- sum( ifnull( t.rworkload, if(t.budget_workload>0,(t.budget_workload-ifnull(t.act_workload,0)),0) ) ) AS rworkload,
-
sum( ifnull( t.budget_workload, 0 ) * ifnull( t.rate, 0 ) ) as budget_workload_rate,
sum( ifnull(t.rate,0)) as total_rate,
sum( ifnull( t.budget_workload, 0 )) as budget_workload,
@@ -308,8 +305,8 @@
res.budget_cost=ifnull(t2.budget_cost,0),
res.act_cost = t2.act_cost,
res.act_workload = t2.act_workload,
- res.rate = case when (ifnull(t2.rworkload,0)+ifnull(t2.act_workload,0)>0) then ifnull(t2.act_workload,0)*100/(ifnull(t2.rworkload,0)+ifnull(t2.act_workload,0))
- when t2.children_cnt >0 then t2.total_rate/t2.children_cnt
+ 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,
res.start_time = ifnull(res.start_time,t2.start_time),
res.end_time = ifnull(t2.end_time,t2.end_time),
@@ -389,8 +386,8 @@
group by w.task_id
)
as w on res.id=w.task_id
- set res.act_workload=w.workload,res.rate=case when res.rworkload>0 then ifnull(w.workload,0)*100/(ifnull(w.workload,0)+res.rworkload)
- 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.budget_workload>0 then ifnull(w.workload,0)*100/ res.budget_workload
+ when w.workload>0 then 100
else 0 end
where res.id in