diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java index f224562b..4f467cef 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTestPlanController.java @@ -79,8 +79,32 @@ public class XmTestPlanController { m.put("tips", tips); return m; } - - + + + @ApiOperation( value = "统计测试计划数据",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200,response=XmTestPlan.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @RequestMapping(value="/calc",method=RequestMethod.POST) + public Map calcXmTestPlan(@RequestBody XmTestPlan xmTestPlan) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功统计测试计划数据"); + try{ + boolean createPk=false; + if(!StringUtils.hasText(xmTestPlan.getId())) { + return failed("id-0","测试计划编号不能为空"); + } + this.xmTestPlanService.calcXmTestPlan(xmTestPlan.getId()); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } @ApiOperation( value = "新增一条测试计划信息",notes=" ") @ApiResponses({ diff --git a/xm-core/src/main/java/com/xm/core/service/XmTestPlanService.java b/xm-core/src/main/java/com/xm/core/service/XmTestPlanService.java index 63ca9d0c..738385de 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTestPlanService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTestPlanService.java @@ -1,16 +1,9 @@ package com.xm.core.service; +import com.mdp.core.service.BaseService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.Map; import org.springframework.stereotype.Service; -import com.mdp.core.service.BaseService; -import static com.mdp.core.utils.BaseUtils.*; -import com.mdp.core.entity.Tips; -import com.mdp.core.err.BizException; - -import com.xm.core.entity.XmTestPlan; /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com 顶级模块 xm 大模块 core 小模块
@@ -20,5 +13,8 @@ import com.xm.core.entity.XmTestPlan; public class XmTestPlanService extends BaseService { static Logger logger =LoggerFactory.getLogger(XmTestPlanService.class); + public void calcXmTestPlan(String id) { + super.update("calcXmTestPlan",id); + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTestPlanMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTestPlanMapper.xml index 0b467545..4deb6352 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTestPlanMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTestPlanMapper.xml @@ -14,7 +14,72 @@ and res.name like concat('%',#{key},'%') - + + UPDATE xm_test_plan res + LEFT JOIN ( + SELECT + pc.plan_id, + count( * ) total_cases, + sum( IF ( pc.exec_status = '2', 1, 0 ) ) ok_cases, + sum( IF ( pc.exec_status = '4', 1, 0 ) ) err_cases, + sum( IF ( pc.exec_status = '1', 1, 0 ) ) ig_cases, + sum( IF ( pc.exec_status = '3', 1, 0 ) ) bl_cases, + sum( IF ( pc.exec_status = '0', 1, 0 ) ) to_test_cases, + count( DISTINCT c.menu_id ) menus, + count( DISTINCT c.func_id ) funcs + FROM + xm_test_plan_case pc + INNER JOIN xm_test_case c ON pc.case_id = c.id + WHERE + pc.plan_id = #{id} + GROUP BY + pc.plan_id + ) AS cc ON cc.plan_id = res.id + LEFT JOIN ( + SELECT + q.plan_id, + count( * ) bug_cnt, + sum( + IF + ( + q.bug_status = '1' + OR q.bug_status = '2' + OR q.bug_status = '3' + OR q.bug_status = '4' + OR q.bug_status = '5' + OR q.bug_status = '6' + OR q.bug_status = '9', + 1, + 0 + ) + ) active_bugs, + sum( IF ( q.bug_status = '8', 1, 0 ) ) closed_bugs, + sum( IF ( q.bug_status = '7', 1, 0 ) ) resolved_bugs, + 0 confirmed_bugs + FROM + xm_question q + WHERE + q.plan_id = #{id} + GROUP BY + q.plan_id + ) AS bugs ON res.id = bugs.plan_id + SET res.total_cases = cc.total_cases, + res.ok_cases = cc.ok_cases, + res.err_cases = cc.err_cases, + res.ig_cases = cc.ig_cases, + res.bl_cases = cc.bl_cases, + res.to_test_cases = cc.to_test_cases, + res.menus = cc.menus, + res.funcs = cc.funcs, + res.bug_cnt = bugs.bug_cnt, + res.active_bugs = bugs.active_bugs, + res.closed_bugs = bugs.closed_bugs, + res.resolved_bugs = bugs.resolved_bugs, + res.resolved_bugs = bugs.resolved_bugs, + res.confirmed_bugs = bugs.confirmed_bugs + WHERE + id = #{id} +