From a2f03a059429daa2ede7867fffcd5de23d7323c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Wed, 6 Apr 2022 00:26:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xm/core/service/XmMenuStateService.java | 5 - .../mapper/xm/core/dao/XmMenuStateMapper.xml | 167 ++++++++++++++---- 2 files changed, 131 insertions(+), 41 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/service/XmMenuStateService.java b/xm-core/src/main/java/com/xm/core/service/XmMenuStateService.java index f330e0b5..ed2eede4 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmMenuStateService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmMenuStateService.java @@ -64,13 +64,8 @@ public class XmMenuStateService extends BaseService { state.setProductId(productId); state.setMenuId(xmMenu.getMenuId()); state.setMenuName(xmMenu.getMenuName()); - state.setPlanStartTime(new Date()); state.setCtime(new Date()); - state.setLtime(new Date()); state.setBizDate(DateUtils.getDate("yyyy-MM-dd")); - state.setCuserid(user.getUserid()); - state.setCusername(user.getUsername()); - state.setProductName(productName); addStates.add(state); } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuStateMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuStateMapper.xml index 89f44f13..5e4880f2 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuStateMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuStateMapper.xml @@ -23,40 +23,76 @@ update xm_menu_state s left join (select m.pmenu_id, - sum(1) as children_cnt, - sum(ss.plan_workload) as plan_workload , - sum(ss.plan_cost_amount) as plan_cost_amount , + sum(ss.budget_workload) as budget_workload , + sum(ss.budget_iuser_workload) as budget_iuser_workload , + sum(ss.budget_ouser_workload) as budget_ouser_workload , + sum(ss.budget_at) as budget_at , + sum(ss.budget_iuser_at) as budget_iuser_at , + sum(ss.budget_ouser_at) as budget_ouser_at , + sum(ss.act_workload) as act_workload , - sum(ss.act_cost_amount) as act_cost_amount , - sum(ifnull(ss.finish_rate,0) * ifnull(ss.plan_workload,0)) as plan_workload_rate, + sum(ss.act_iuser_workload) as act_iuser_workload , + sum(ss.act_ouser_workload) as act_ouser_workload , + sum(ss.act_at) as act_at , + sum(ss.act_iuser_at) as act_iuser_at , + sum(ss.act_ouser_at) as act_ouser_at , + + sum(ifnull(ss.finish_rate,0))/count(1) as raw_rate , + sum(ss.task_cnt) as task_cnt , - sum(ss.finish_task_cnt) as finish_task_cnt , - sum(ss.project_cnt) as project_cnt , - sum(ss.iteration_cnt) as iteration_cnt , + sum(ss.task_unstart_cnt) as task_unstart_cnt , + sum(ss.task_exec_cnt) as task_exec_cnt , + sum(ss.task_finish_cnt) as task_finish_cnt , + sum(ss.task_set_cnt) as task_set_cnt , + sum(ss.task_close_cnt) as task_close_cnt , + + sum(ss.test_cases) as test_cases , sum(ss.exec_cases) as exec_cases , sum(ss.design_cases) as design_cases , sum(ss.finish_cases) as finish_cases , + + sum(ss.bug_cnt) as bug_cnt , sum(ss.active_bugs) as active_bugs , sum(ss.confirmed_bugs) as confirmed_bugs , sum(ss.resolved_bugs) as resolved_bugs , - sum(ss.closed_bugs) as closed_bugs + sum(ss.closed_bugs) as closed_bugs, + + min(ss.min_start_time) as min_start_time, + max(ss.max_end_time) as max_end_time from xm_menu_state ss inner join xm_menu m on ss.menu_id=m.menu_id where m.pmenu_id in #{item} - group by m.pmenu_id) s2 on s2.pmenu_id=s.menu_id inner join xm_menu xm on xm.menu_id=s.menu_id - set s.plan_workload=ifnull(s2.plan_workload,0), - s.plan_cost_amount=ifnull(s2.plan_cost_amount,0), + group by m.pmenu_id) s2 on s2.pmenu_id=s.menu_id inner join xm_menu xmm on xmm.menu_id=s.menu_id + set + s.budget_workload=ifnull(s2.budget_workload,0), + s.budget_iuser_workload=ifnull(s2.budget_iuser_workload,0), + s.budget_ouser_workload=ifnull(s2.budget_ouser_workload,0), + s.budget_at=ifnull(s2.budget_at,0), + s.budget_iuser_at=ifnull(s2.budget_iuser_at,0), + s.budget_ouser_at=ifnull(s2.budget_ouser_at,0), + s.act_workload=ifnull(s2.act_workload,0), - s.act_cost_amount=ifnull(s2.act_cost_amount,0), - s.finish_rate=if(s2.plan_workload is null or s2.plan_workload=0,0,s2.plan_workload_rate/s2.plan_workload), + s.act_iuser_workload=ifnull(s2.act_iuser_workload,0), + s.act_ouser_workload=ifnull(s2.act_ouser_workload,0), + s.act_at=ifnull(s2.act_at,0), + s.act_iuser_at=ifnull(s2.act_iuser_at,0), + s.act_ouser_at=ifnull(s2.act_ouser_at,0), + + s.finish_rate=case when ifnull(s2.budget_workload,0) >0 + then 100*(ifnull(s2.act_workload,0)) / s2.budget_workload + when ifnull(s2.act_workload,0)>0 then 100 + else 0 end, + s.task_cnt=ifnull(s2.task_cnt,0), - s.finish_task_cnt=ifnull(s2.finish_task_cnt,0), - s.project_cnt=ifnull(s2.project_cnt,0), - s.iteration_cnt=ifnull(s2.iteration_cnt,0), + s.task_unstart_cnt=ifnull(s2.task_unstart_cnt,0), + s.task_finish_cnt=ifnull(s2.task_finish_cnt,0), + s.task_set_cnt=ifnull(s2.task_set_cnt,0), + s.task_close_cnt=ifnull(s2.task_close_cnt,0), + s.test_cases=ifnull(s2.test_cases,0), s.exec_cases=ifnull(s2.exec_cases,0), @@ -68,7 +104,18 @@ s.confirmed_bugs=ifnull(s2.confirmed_bugs,0), s.resolved_bugs=ifnull(s2.resolved_bugs,0), s.closed_bugs=ifnull(s2.closed_bugs,0), - xm.children_cnt=ifnull(s2.children_cnt,0) + xmm.children_cnt=ifnull(s2.children_cnt,0), + xmm.mact_workload=ifnull(s2.act_workload,0), + xmm.mact_cost=ifnull(s2.act_at,0), + xmm.mact_rate=case when ifnull(s2.budget_workload,0) >0 + then 100*(ifnull(s2.act_workload,0)) / s2.budget_workload + when ifnull(s2.act_workload,0)>0 then 100 + else 0 end, + s.biz_date=bizDate, + s.min_start_time=s2.min_start_time, + s.max_end_time=s2.max_end_time, + xmm.start_time=s2.min_start_time, + xmm.end_time=s2.max_end_time where s.menu_id in #{item} @@ -79,37 +126,74 @@ update xm_menu_state s left join (select m.pmenu_id, - sum(1) as children_cnt, - sum(ss.plan_workload) as plan_workload , - sum(ss.plan_cost_amount) as plan_cost_amount , + count(1) as children_cnt, + sum(ss.budget_workload) as budget_workload , + sum(ss.budget_iuser_workload) as budget_iuser_workload , + sum(ss.budget_ouser_workload) as budget_ouser_workload , + sum(ss.budget_at) as budget_at , + sum(ss.budget_iuser_at) as budget_iuser_at , + sum(ss.budget_ouser_at) as budget_ouser_at , + sum(ss.act_workload) as act_workload , - sum(ss.act_cost_amount) as act_cost_amount , - sum(ifnull(ss.finish_rate,0) * ifnull(ss.plan_workload,0)) as plan_workload_rate, + sum(ss.act_iuser_workload) as act_iuser_workload , + sum(ss.act_ouser_workload) as act_ouser_workload , + sum(ss.act_at) as act_at , + sum(ss.act_iuser_at) as act_iuser_at , + sum(ss.act_ouser_at) as act_ouser_at , + + sum(ifnull(ss.finish_rate,0))/count(1) as raw_rate , + sum(ss.task_cnt) as task_cnt , - sum(ss.finish_task_cnt) as finish_task_cnt , - sum(ss.project_cnt) as project_cnt , - sum(ss.iteration_cnt) as iteration_cnt , + sum(ss.task_unstart_cnt) as task_unstart_cnt , + sum(ss.task_exec_cnt) as task_exec_cnt , + sum(ss.task_finish_cnt) as task_finish_cnt , + sum(ss.task_set_cnt) as task_set_cnt , + sum(ss.task_close_cnt) as task_close_cnt , + + sum(ss.test_cases) as test_cases , sum(ss.exec_cases) as exec_cases , sum(ss.design_cases) as design_cases , sum(ss.finish_cases) as finish_cases , + + sum(ss.bug_cnt) as bug_cnt , sum(ss.active_bugs) as active_bugs , sum(ss.confirmed_bugs) as confirmed_bugs , sum(ss.resolved_bugs) as resolved_bugs , - sum(ss.closed_bugs) as closed_bugs + sum(ss.closed_bugs) as closed_bugs, + + min(ss.min_start_time) as min_start_time, + max(ss.max_end_time) as max_end_time from xm_menu_state ss inner join xm_menu m on ss.menu_id=m.menu_id where m.pmenu_id =#{item} - group by m.pmenu_id) s2 on s2.pmenu_id=s.menu_id inner join xm_menu xm on s.menu_id=xm.menu_id - set s.plan_workload=ifnull(s2.plan_workload,0), - s.plan_cost_amount=ifnull(s2.plan_cost_amount,0), + group by m.pmenu_id) s2 on s2.pmenu_id=s.menu_id inner join xm_menu xmm on s.menu_id=xmm.menu_id + set + s.budget_workload=ifnull(s2.budget_workload,0), + s.budget_iuser_workload=ifnull(s2.budget_iuser_workload,0), + s.budget_ouser_workload=ifnull(s2.budget_ouser_workload,0), + s.budget_at=ifnull(s2.budget_at,0), + s.budget_iuser_at=ifnull(s2.budget_iuser_at,0), + s.budget_ouser_at=ifnull(s2.budget_ouser_at,0), + s.act_workload=ifnull(s2.act_workload,0), - s.act_cost_amount=ifnull(s2.act_cost_amount,0), - s.finish_rate=if(s2.plan_workload is null or s2.plan_workload=0,0,s2.plan_workload_rate/s2.plan_workload), + s.act_iuser_workload=ifnull(s2.act_iuser_workload,0), + s.act_ouser_workload=ifnull(s2.act_ouser_workload,0), + s.act_at=ifnull(s2.act_at,0), + s.act_iuser_at=ifnull(s2.act_iuser_at,0), + s.act_ouser_at=ifnull(s2.act_ouser_at,0), + + s.finish_rate=case when ifnull(s2.budget_workload,0) >0 + then 100*(ifnull(s2.act_workload,0)) / s2.budget_workload + when ifnull(s2.act_workload,0)>0 then 100 + else 0 end, + s.task_cnt=ifnull(s2.task_cnt,0), - s.finish_task_cnt=ifnull(s2.finish_task_cnt,0), - s.project_cnt=ifnull(s2.project_cnt,0), - s.iteration_cnt=ifnull(s2.iteration_cnt,0), + s.task_unstart_cnt=ifnull(s2.task_unstart_cnt,0), + s.task_finish_cnt=ifnull(s2.task_finish_cnt,0), + s.task_set_cnt=ifnull(s2.task_set_cnt,0), + s.task_close_cnt=ifnull(s2.task_close_cnt,0), + s.test_cases=ifnull(s2.test_cases,0), s.exec_cases=ifnull(s2.exec_cases,0), @@ -121,7 +205,18 @@ s.confirmed_bugs=ifnull(s2.confirmed_bugs,0), s.resolved_bugs=ifnull(s2.resolved_bugs,0), s.closed_bugs=ifnull(s2.closed_bugs,0), - xm.children_cnt=ifnull(s2.children_cnt,0) + xmm.children_cnt=ifnull(s2.children_cnt,0), + xmm.mact_workload=ifnull(s2.act_workload,0), + xmm.mact_cost=ifnull(s2.act_at,0), + xmm.mact_rate=case when ifnull(s2.budget_workload,0) >0 + then 100*(ifnull(s2.act_workload,0)) / s2.budget_workload + when ifnull(s2.act_workload,0)>0 then 100 + else 0 end, + s.biz_date=bizDate, + s.min_start_time=s2.min_start_time, + s.max_end_time=s2.max_end_time, + xmm.start_time=s2.min_start_time, + xmm.end_time=s2.max_end_time where s.menu_id = #{item}