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 694f404f..b5bc0b41 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
@@ -472,6 +472,12 @@
update xm_task
+
+ res.rate=case when res.task_state in('2','3','4') then 100
+ when res.budget_workload>0 then ifnull(res.act_workload,0)*100/ res.budget_workload
+ when res.act_workload>0 then 100
+ else res.rate end
+
where (id) in