From d7b0007ac9006431a4546fe91934222e8ac247a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Fri, 4 Mar 2022 17:37:07 +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 --- .../com/xm/core/ctrl/XmMenuController.java | 7 +- .../com/xm/core/service/XmProjectService.java | 1 + .../mapper/xm/core/dao/XmMenuStateMapper.xml | 88 ++++++++++--------- 3 files changed, 53 insertions(+), 43 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java index 5aeaeb0d..85c68a2e 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java @@ -432,7 +432,8 @@ public class XmMenuController { public Map batchDelXmMenu(@RequestBody List xmMenus) { Map m = new HashMap<>(); Tips tips=new Tips("成功删除"+xmMenus.size()+"条数据"); - try{ + try{ + List noExists=new ArrayList<>(); List hasChildMenus=new ArrayList<>(); List canDelList=new ArrayList<>(); List xmMenusDb=this.xmMenuService.selectListByIds(xmMenus.stream().map(i->i.getMenuId()).collect(Collectors.toList())); @@ -444,6 +445,7 @@ public class XmMenuController { hasChildMenus.add(xmMenu.getMenuName()); } } + noExists=noExists.stream().filter(i->!xmMenusDb.stream().filter(k->k.getMenuId().equals(i.getMenuId())).findAny().isPresent()).collect(Collectors.toList()); List canDelResult=new ArrayList<>(); List noQxResult=new ArrayList<>(); if(canDelList.size()>0) { @@ -460,6 +462,9 @@ public class XmMenuController { if(noQxResult.size()>0){ msg.add("无权限操作以下"+noQxResult.size()+"个需求.【"+noQxResult.stream().map(i->i.getMenuName()).collect(Collectors.joining(",")) +"】"); } + if(noExists.size()>0){ + msg.add("以下"+noExists.size()+"个需求已不存在,【"+noExists.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】"); + } if(canDelResult.size()==0){ tips.setFailureMsg(msg.stream().collect(Collectors.joining(" "))); }else{ diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectService.java index 1d0220da..fd7da635 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectService.java @@ -168,6 +168,7 @@ public class XmProjectService extends BaseService { node.setMenuName(null); node.setProductId(null); node.setProductName(null); + node.setPreTaskid(newTaskIdMap.get(node.getPreTaskid())); } this.xmTaskService.parentIdPathsCalcBeforeSave(xmTasks); this.xmTaskService.batchImportFromTemplate(xmTasks); 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 8034e1c7..cec634e6 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 @@ -21,13 +21,14 @@ - update xm_menu_state s inner join + 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.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))/ifnull(sum(ifnull(ss.plan_workload,0.00001)),9999) as finish_rate , + sum(ifnull(ss.finish_rate,0) * ifnull(ss.plan_workload,0)) as plan_workload_rate, sum(ss.task_cnt) as task_cnt , sum(ss.finish_task_cnt) as finish_task_cnt , sum(ss.project_cnt) as project_cnt , @@ -46,27 +47,28 @@ #{item} - group by m.pmenu_id) s2 on s2.pmenu_id=s.menu_id - set s.plan_workload=s2.plan_workload, - s.plan_cost_amount=s2.plan_cost_amount, - s.act_workload=s2.act_workload, - s.act_cost_amount=s2.act_cost_amount, - s.finish_rate=s2.finish_rate, - s.task_cnt=s2.task_cnt, - s.finish_task_cnt=s2.finish_task_cnt, - s.project_cnt=s2.project_cnt, - s.iteration_cnt=s2.iteration_cnt, + 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), + 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.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.test_cases=s2.test_cases, - s.exec_cases=s2.exec_cases, - s.design_cases=s2.design_cases, - s.finish_cases=s2.finish_cases, + s.test_cases=ifnull(s2.test_cases,0), + s.exec_cases=ifnull(s2.exec_cases,0), + s.design_cases=ifnull(s2.design_cases,0), + s.finish_cases=ifnull(s2.finish_cases,0), - s.bug_cnt=s2.bug_cnt, - s.active_bugs=s2.active_bugs, - s.confirmed_bugs=s2.confirmed_bugs, - s.resolved_bugs=s2.resolved_bugs, - s.closed_bugs=s2.closed_bugs + s.bug_cnt=ifnull(s2.bug_cnt,0), + s.active_bugs=ifnull(s2.active_bugs,0), + 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) where s.menu_id in #{item} @@ -75,13 +77,14 @@ - update xm_menu_state s inner join + 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.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))/ifnull(sum(ifnull(ss.plan_workload,0.00001)),9999) as finish_rate , + sum(ifnull(ss.finish_rate,0) * ifnull(ss.plan_workload,0)) as plan_workload_rate, sum(ss.task_cnt) as task_cnt , sum(ss.finish_task_cnt) as finish_task_cnt , sum(ss.project_cnt) as project_cnt , @@ -97,27 +100,28 @@ sum(ss.closed_bugs) as closed_bugs 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 - set s.plan_workload=s2.plan_workload, - s.plan_cost_amount=s2.plan_cost_amount, - s.act_workload=s2.act_workload, - s.act_cost_amount=s2.act_cost_amount, - s.finish_rate=s2.finish_rate, - s.task_cnt=s2.task_cnt, - s.finish_task_cnt=s2.finish_task_cnt, - s.project_cnt=s2.project_cnt, - s.iteration_cnt=s2.iteration_cnt, + 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), + 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.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.test_cases=s2.test_cases, - s.exec_cases=s2.exec_cases, - s.design_cases=s2.design_cases, - s.finish_cases=s2.finish_cases, + s.test_cases=ifnull(s2.test_cases,0), + s.exec_cases=ifnull(s2.exec_cases,0), + s.design_cases=ifnull(s2.design_cases,0), + s.finish_cases=ifnull(s2.finish_cases,0), - s.bug_cnt=s2.bug_cnt, - s.active_bugs=s2.active_bugs, - s.confirmed_bugs=s2.confirmed_bugs, - s.resolved_bugs=s2.resolved_bugs, - s.closed_bugs=s2.closed_bugs + s.bug_cnt=ifnull(s2.bug_cnt,0), + s.active_bugs=ifnull(s2.active_bugs,0), + 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) where s.menu_id = #{item}