fix(工作台): 工作台缺陷状态统计有误
--bug=1016061 --user=陈建星 【工作台】-我创建的缺陷-github#17150展示状态只有【新建】,【测试跟踪】-【缺陷管理】处的【已解决】和【已关闭】状态也被当做【新建】状态被展示 https://www.tapd.cn/55049933/s/1233613
This commit is contained in:
parent
1d68b3b220
commit
3db9e9374c
|
@ -17,7 +17,6 @@ public class IssuesDao extends IssuesWithBLOBs {
|
|||
private long caseCount;
|
||||
private List<String> caseIds;
|
||||
private String caseId;
|
||||
private int totalIssueCount;
|
||||
private List<String> tapdUsers;
|
||||
private List<String>zentaoBuilds;
|
||||
private String zentaoAssigned;
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package io.metersphere.base.domain;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class IssuesStatusCountDao {
|
||||
private int count;
|
||||
private String statusValue;
|
||||
private String platform;
|
||||
}
|
|
@ -2,9 +2,11 @@ package io.metersphere.base.mapper.ext;
|
|||
|
||||
import io.metersphere.base.domain.Issues;
|
||||
import io.metersphere.base.domain.IssuesDao;
|
||||
import io.metersphere.base.domain.IssuesStatusCountDao;
|
||||
import io.metersphere.dto.CustomFieldItemDTO;
|
||||
import io.metersphere.track.dto.CustomFieldResourceCompatibleDTO;
|
||||
import io.metersphere.track.dto.PlanReportIssueDTO;
|
||||
import io.metersphere.track.request.testcase.IssuesCountRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesRequest;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
|
@ -26,7 +28,7 @@ public interface ExtIssuesMapper {
|
|||
|
||||
List<PlanReportIssueDTO> selectForPlanReport(String planId);
|
||||
|
||||
List<IssuesDao> getCountByStatus(@Param("request") IssuesRequest issuesRequest);
|
||||
List<IssuesStatusCountDao> getCountByStatus(@Param("request") IssuesCountRequest issuesRequest);
|
||||
|
||||
List<String> selectIdNotInUuIds(@Param("projectId") String projectId, @Param("platform") String platform, @Param("platformIds") List<String> platformIds);
|
||||
|
||||
|
|
|
@ -83,11 +83,22 @@
|
|||
<select id="getNextNum" resultType="io.metersphere.base.domain.Issues">
|
||||
SELECT * FROM issues WHERE issues.project_id = #{projectId} ORDER BY num DESC LIMIT 1;
|
||||
</select>
|
||||
<select id="getCountByStatus" resultType="io.metersphere.base.domain.IssuesDao">
|
||||
select count(issues.id) as totalIssueCount, ifnull(issues.status,issues.platform_status) as status from issues
|
||||
left join project on issues.project_id = project.id
|
||||
<include refid="queryWhereCondition"/>
|
||||
group by status;
|
||||
<select id="getCountByStatus" resultType="io.metersphere.base.domain.IssuesStatusCountDao">
|
||||
select count(1) as `count`, if(i.platform = 'Local', cfi.value, i.platform_status) as statusValue, i.platform
|
||||
from issues i
|
||||
inner join project p
|
||||
on i.project_id = p.id and p.workspace_id = #{request.workspaceId}
|
||||
left join custom_field_issues cfi
|
||||
on i.id = cfi.resource_id and field_id in (
|
||||
select cf.id
|
||||
from custom_field cf
|
||||
left join project pr
|
||||
on cf.project_id = pr.id
|
||||
where cf.scene = 'ISSUE' and cf.name = '状态'
|
||||
and (pr.workspace_id = #{request.workspaceId} or global = true)
|
||||
)
|
||||
where i.creator = #{request.creator}
|
||||
group by statusValue;
|
||||
</select>
|
||||
<select id="getRelateIssues" resultType="io.metersphere.base.domain.IssuesDao">
|
||||
select issues.id, issues.num, issues.title, issues.project_id, issues.create_time, issues.update_time,
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
|
|||
import com.github.pagehelper.PageHelper;
|
||||
import io.metersphere.base.domain.Issues;
|
||||
import io.metersphere.base.domain.IssuesDao;
|
||||
import io.metersphere.base.domain.IssuesStatusCountDao;
|
||||
import io.metersphere.base.domain.IssuesWithBLOBs;
|
||||
import io.metersphere.commons.constants.NoticeConstants;
|
||||
import io.metersphere.commons.constants.OperLogConstants;
|
||||
|
@ -14,7 +15,6 @@ import io.metersphere.commons.utils.Pager;
|
|||
import io.metersphere.dto.IssueTemplateDao;
|
||||
import io.metersphere.log.annotation.MsAuditLog;
|
||||
import io.metersphere.notice.annotation.SendNotice;
|
||||
import io.metersphere.service.FileService;
|
||||
import io.metersphere.track.dto.DemandDTO;
|
||||
import io.metersphere.track.dto.PlatformStatusDTO;
|
||||
import io.metersphere.track.issue.domain.PlatformUser;
|
||||
|
@ -23,6 +23,7 @@ import io.metersphere.track.issue.domain.zentao.ZentaoBuild;
|
|||
import io.metersphere.track.request.issues.JiraIssueTypeRequest;
|
||||
import io.metersphere.track.request.issues.PlatformIssueTypeRequest;
|
||||
import io.metersphere.track.request.testcase.AuthUserIssueRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesCountRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesUpdateRequest;
|
||||
import io.metersphere.track.service.IssuesService;
|
||||
|
@ -39,8 +40,6 @@ public class IssuesController {
|
|||
|
||||
@Resource
|
||||
private IssuesService issuesService;
|
||||
@Resource
|
||||
private FileService fileService;
|
||||
|
||||
@PostMapping("/list/{goPage}/{pageSize}")
|
||||
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_ISSUE_READ)
|
||||
|
@ -155,7 +154,7 @@ public class IssuesController {
|
|||
}
|
||||
|
||||
@PostMapping("/status/count")
|
||||
public List<IssuesDao> getCountByStatus(@RequestBody IssuesRequest request) {
|
||||
public List<IssuesStatusCountDao> getCountByStatus(@RequestBody IssuesCountRequest request) {
|
||||
return issuesService.getCountByStatus(request);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package io.metersphere.track.request.testcase;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class IssuesCountRequest {
|
||||
private String workspaceId;
|
||||
private String creator;
|
||||
}
|
|
@ -30,6 +30,7 @@ import io.metersphere.track.request.attachment.AttachmentRequest;
|
|||
import io.metersphere.track.request.issues.JiraIssueTypeRequest;
|
||||
import io.metersphere.track.request.issues.PlatformIssueTypeRequest;
|
||||
import io.metersphere.track.request.testcase.AuthUserIssueRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesCountRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesRequest;
|
||||
import io.metersphere.track.request.testcase.IssuesUpdateRequest;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
@ -770,9 +771,17 @@ public class IssuesService {
|
|||
}
|
||||
}
|
||||
|
||||
public List<IssuesDao> getCountByStatus(IssuesRequest request) {
|
||||
return extIssuesMapper.getCountByStatus(request);
|
||||
|
||||
public List<IssuesStatusCountDao> getCountByStatus(IssuesCountRequest request) {
|
||||
request.setCreator(SessionUtils.getUserId());
|
||||
List<IssuesStatusCountDao> countByStatus = extIssuesMapper.getCountByStatus(request);
|
||||
countByStatus.forEach(item -> {
|
||||
if (StringUtils.isBlank(item.getStatusValue())) {
|
||||
item.setStatusValue(IssuesStatus.NEW.toString());
|
||||
} else {
|
||||
item.setStatusValue(item.getStatusValue().replace("\"", ""));
|
||||
}
|
||||
});
|
||||
return countByStatus;
|
||||
}
|
||||
|
||||
public List<String> getFollows(String issueId) {
|
||||
|
|
Loading…
Reference in New Issue