feat(周报功能重构):周报-个人工作项列表

This commit is contained in:
wanjia 2025-05-26 19:17:29 +08:00
parent f61b11bc93
commit 0e83fa62ce
5 changed files with 75 additions and 31 deletions

View File

@ -2,6 +2,7 @@ package com.microservices.pms.project.controller;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.microservices.common.core.web.domain.AjaxResult; import com.microservices.common.core.web.domain.AjaxResult;
import com.microservices.pms.project.domain.vo.PmsPersonalWeeklyIssuesSearchVo;
import com.microservices.pms.project.domain.vo.PmsPersonalWeeklyReportSearchVo; import com.microservices.pms.project.domain.vo.PmsPersonalWeeklyReportSearchVo;
import com.microservices.pms.project.domain.vo.PmsProjectIssuesInputVo; import com.microservices.pms.project.domain.vo.PmsProjectIssuesInputVo;
import com.microservices.pms.project.domain.vo.PmsProjectIssuesSearchVo; import com.microservices.pms.project.domain.vo.PmsProjectIssuesSearchVo;
@ -54,6 +55,15 @@ public class PmsProjectWeeklyReportController {
return success(result); return success(result);
} }
@GetMapping("/personalIssueList")
@ApiOperation(value = "周报-个人工作项列表")
public AjaxResult getPersonalIssueList(@PathVariable String enterpriseIdentifier, PmsPersonalWeeklyIssuesSearchVo pmsPersonalWeeklyIssuesSearchVo)
{
pmsPersonalWeeklyIssuesSearchVo.setEnterpriseIdentifier(enterpriseIdentifier);
JSONObject result = pmsProjectIssuesService.getPersonalIssueList(pmsPersonalWeeklyIssuesSearchVo);
return success(result);
}
/** /**
* 查询周报-项目组工作项统计 * 查询周报-项目组工作项统计
*/ */

View File

@ -0,0 +1,46 @@
package com.microservices.pms.project.domain.vo;
import com.microservices.common.core.utils.ServletUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@ApiModel("个人周报工作项搜索对象")
public class PmsPersonalWeeklyIssuesSearchVo {
@ApiModelProperty(value = "用户gitlink用户id")
private Long userId;
@ApiModelProperty(value = "企业标识", hidden = true)
private String enterpriseIdentifier;
@ApiModelProperty(value = "工作项名称搜索关键词")
private String keyword;
@ApiModelProperty(value = "状态值,可多个状态逗号隔开")
private String statusIds;
@ApiModelProperty(value = "排序方式: issues.updated_on 更新时间 issues.created_on 创建时间 issue_priorities.position 优先级")
private String sortBy;
@ApiModelProperty(value = "排序方向:asc 正序 desc 倒序")
private String sortDirection;
@ApiModelProperty(value = "本周工作项页码")
private String thisWeekPage;
@ApiModelProperty(value = "分页数")
private String thisWeekLimit;
@ApiModelProperty(value = "本周工作项页码")
private String nextWeekPage;
@ApiModelProperty(value = "分页数")
private String nextWeekLimit;
public void setKeyword(String keyword) {
this.keyword = ServletUtils.urlDecode(keyword);
}
}

View File

@ -6,40 +6,12 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ApiModel("个人周报工作项搜索对象") @ApiModel("个人周报工作项统计对象")
public class PmsPersonalWeeklyReportSearchVo { public class PmsPersonalWeeklyReportSearchVo {
@ApiModelProperty(value = "工作项名称搜索关键词") @ApiModelProperty(value = "用户gitlink用户id", hidden = true)
private String keyword;
@ApiModelProperty(value = "状态值,可多个状态逗号隔开")
private String statusIds;
@ApiModelProperty(value = "排序方式: issues.updated_on 更新时间 issues.created_on 创建时间 issue_priorities.position 优先级")
private String sortBy;
@ApiModelProperty(value = "排序方向:asc 正序 desc 倒序")
private String sortDirection;
@ApiModelProperty(value = "本周工作项页码")
private String thisWeekPage;
@ApiModelProperty(value = "分页数")
private String thisWeekLimit;
@ApiModelProperty(value = "本周工作项页码")
private String nextWeekPage;
@ApiModelProperty(value = "分页数")
private String nextWeekLimit;
@ApiModelProperty(value = "当前用户gitlink用户id", hidden = true)
private Long userId; private Long userId;
@ApiModelProperty(value = "企业标识", hidden = true) @ApiModelProperty(value = "企业标识", hidden = true)
private String enterpriseIdentifier; private String enterpriseIdentifier;
public void setKeyword(String keyword) {
this.keyword = ServletUtils.urlDecode(keyword);
}
} }

View File

@ -754,7 +754,7 @@ public class PmsProjectIssuesService {
public JSONObject getProjectIssueList(PmsProjectIssuesSearchVo pmsProjectIssuesSearchVo) { public JSONObject getProjectIssueList(PmsProjectIssuesSearchVo pmsProjectIssuesSearchVo) {
List<Long> pmProjectIds = pmsProjectService.selectProjectIdsByAssigneeUserId( List<Long> pmProjectIds = pmsProjectService.selectProjectIdsByAssigneeUserId(
pmsProjectIssuesSearchVo.getEnterpriseIdentifier(), pmsProjectIssuesSearchVo.getEnterpriseIdentifier(),
SecurityUtils.getGitlinkUserId()); StringUtils.isEmpty(pmsProjectIssuesSearchVo.getAssignerId()) ? SecurityUtils.getGitlinkUserId() : Long.valueOf(pmsProjectIssuesSearchVo.getAssignerId()));
String pmProjectIdsStr = StringUtils.join(pmProjectIds, ","); String pmProjectIdsStr = StringUtils.join(pmProjectIds, ",");
pmsProjectIssuesSearchVo.setPmProjectIds(pmProjectIdsStr); pmsProjectIssuesSearchVo.setPmProjectIds(pmProjectIdsStr);
JSONObject issueSearch = new JSONObject(); JSONObject issueSearch = new JSONObject();
@ -765,4 +765,15 @@ public class PmsProjectIssuesService {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
public JSONObject getPersonalIssueList(PmsPersonalWeeklyIssuesSearchVo pmsPersonalWeeklyIssuesSearchVo) {
pmsPersonalWeeklyIssuesSearchVo.setUserId(pmsPersonalWeeklyIssuesSearchVo.getUserId() == null ? SecurityUtils.getGitlinkUserId() : pmsPersonalWeeklyIssuesSearchVo.getUserId());
JSONObject issueSearch = new JSONObject();
convertObjectToJSONObject(pmsPersonalWeeklyIssuesSearchVo, issueSearch, null);
try {
return setProjectIssueListUserState(gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_PERSONAL_ISSUE_LIST(issueSearch)));
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
}
} }

View File

@ -463,4 +463,9 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
return getGitLinkRequestUrl( return getGitLinkRequestUrl(
buildUri("/api/pm/weekly_issues/group_issues.json", params)); buildUri("/api/pm/weekly_issues/group_issues.json", params));
} }
public static GitLinkRequestUrl GET_PERSONAL_ISSUE_LIST(JSONObject issueSearch) throws URISyntaxException {
return getGitLinkRequestUrl(
buildUri("/api/pm/weekly_issues/personal_issues.json", issueSearch));
}
} }