Merge branch 'dev_PMS_ZPK' of code.gitlink.org.cn:Gitlink/microservices into dev_PMS_ZPK

This commit is contained in:
OTTO 2024-08-29 11:24:30 +08:00
commit 0d5818337b
7 changed files with 71 additions and 3 deletions

View File

@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
@ -391,4 +392,18 @@ public class PmsProjectIssuesController extends BaseController {
public GenericsTableDataInfo<PmsProjectTestsheetCaseVo> linkTestcase(@ApiParam("工作项id") @PathVariable Long issueId, @ApiParam("项目Id") @RequestParam(name = "pmProjectId") Long pmProjectId) {
return pmsProjectTestsheetIssuesService.getProjectIssueLinkTestcaseList(issueId, pmProjectId);
}
@RequiresPermissions(value = {"pms:pmsProject:show", "pms:pmsProject:showMe"}, logical = Logical.OR)
@PostMapping("/import")
@ApiOperation(value = "导入工作项")
public AjaxResult importIssuesFromFile(@PathVariable String enterpriseIdentifier, @RequestPart("file") MultipartFile file, @ApiParam("项目Id") @RequestParam(name = "pmProjectId") Long pmProjectId) {
return success(pmsProjectIssuesService.importIssuesFromFile(enterpriseIdentifier, file, pmProjectId));
}
@RequiresPermissions(value = {"pms:pmsProject:show", "pms:pmsProject:showMe"}, logical = Logical.OR)
@GetMapping("/export")
@ApiOperation(value = "导出工作项")
public void exportIssues(HttpServletResponse response, @ApiParam("项目Id") @RequestParam(name = "pmProjectId") Long pmProjectId) {
pmsProjectIssuesService.exportIssues(response, pmProjectId);
}
}

View File

@ -40,6 +40,9 @@ public class PmsProjectRepositorySearchVo
@NotNull
private Long limit;
@ApiModelProperty(value = "是否导入成功 0未成功 1成功")
private Boolean actived;
public PmsProjectRepository toPmsProjectRepository() {
PmsProjectRepository pmsProjectRepository = new PmsProjectRepository();
pmsProjectRepository.setPmsProjectId(pmsProjectId);

View File

@ -28,4 +28,7 @@ public class PmsProjectUnlinkedRepositorySearchVo
@ApiModelProperty(value = "每页数量")
@NotNull
private Long limit;
@ApiModelProperty(value = "是否导入成功")
private Boolean actived;
}

View File

@ -6,6 +6,8 @@ import com.microservices.common.core.exception.ServiceException;
import com.microservices.common.core.utils.DateUtils;
import com.microservices.common.httpClient.util.GitLinkRequestHelper;
import com.microservices.common.security.utils.SecurityUtils;
import com.microservices.pms.enterprise.domain.PmsEnterprise;
import com.microservices.pms.enterprise.service.IPmsEnterpriseService;
import com.microservices.pms.project.domain.PmsProject;
import com.microservices.pms.project.domain.SimpleRepository;
import com.microservices.pms.project.domain.vo.*;
@ -20,6 +22,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.net.URISyntaxException;
import java.util.*;
@ -51,6 +54,9 @@ public class PmsProjectIssuesService {
@Lazy
private IPmsProjectTestsheetIssuesService pmsProjectTestsheetIssuesService;
@Autowired
private IPmsEnterpriseService pmsEnterpriseService;
public JSONObject selectPmsProjectIssuesList(PmsProjectIssuesSearchVo pmsProjectIssuesSearchVo) {
pmsProjectService.selectAndCheckPmsProjectById(pmsProjectIssuesSearchVo.getPmProjectId());
@ -323,4 +329,25 @@ public class PmsProjectIssuesService {
public JSONObject deletePmsEnterpriseIssueTag(Long tagId) {
return gitLinkRequestHelper.doDelete(PmsGitLinkRequestUrl.DELETE_ORGANIZATION_ISSUE_TAG(tagId));
}
public JSONObject importIssuesFromFile(String enterpriseIdentifier, MultipartFile file, Long pmProjectId) {
PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseByIdentifier(enterpriseIdentifier);
JSONObject result;
try {
result = gitLinkRequestHelper.doPostFile(PmsGitLinkRequestUrl.IMPORT_ISSUES(pmProjectId, pmsEnterprise.getGitlinkOrgId()), file);
} catch (Exception e) {
logger.error(e.getMessage());
throw new ServiceException("导入工作项失败");
}
return result;
}
public void exportIssues(HttpServletResponse response, Long pmProjectId) {
try {
gitLinkRequestHelper.doGetResponse(PmsGitLinkRequestUrl.EXPORT_ISSUES(pmProjectId), response);
} catch (Exception e) {
logger.error(e.getMessage());
throw new ServiceException("导出工作项失败");
}
}
}

View File

@ -90,7 +90,8 @@ public class PmsProjectRepositoryServiceImpl implements IPmsProjectRepositorySer
pmsProjectRepositorySearchVo.getLimit(),
pmsProjectRepositorySearchVo.getSortBy(),
projectRepositoryIds,
null);
null,
pmsProjectRepositorySearchVo.getActived());
try {
return gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ORGANIZATION_REPO_LIST(pmsProjectRepositorySearchVo.getEnterpriseIdentifier(), queryParams));
} catch (URISyntaxException e) {
@ -108,7 +109,8 @@ public class PmsProjectRepositoryServiceImpl implements IPmsProjectRepositorySer
pmsProjectUnlinkedRepositorySearchVo.getLimit(),
pmsProjectUnlinkedRepositorySearchVo.getSortBy(),
null,
linkedRepositoryIdsString);
linkedRepositoryIdsString,
pmsProjectUnlinkedRepositorySearchVo.getActived());
try {
return gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ORGANIZATION_REPO_LIST(pmsProjectUnlinkedRepositorySearchVo.getEnterpriseIdentifier(), queryParams));
} catch (URISyntaxException e) {
@ -187,13 +189,16 @@ public class PmsProjectRepositoryServiceImpl implements IPmsProjectRepositorySer
private static Map<String, String> convertToGetRepoListQueryParam(String search, @NotNull Long page, @NotNull Long limit,
String sortBy, String projectRepositoryIds,
String linkedRepositoryIdsString) {
String linkedRepositoryIdsString, Boolean actived) {
Map<String, String> queryParams = new HashMap<>();
queryParams.put("search", search);
queryParams.put("page" , String.valueOf(page));
queryParams.put("limit", String.valueOf(limit));
queryParams.put("sort_by", sortBy);
queryParams.put("sort_direction", "desc");
if (actived != null) {
queryParams.put("actived", actived ? "true" : "false");
}
if (StringUtils.isNotEmpty(projectRepositoryIds)) {
queryParams.put("pm_project_repository_ids", projectRepositoryIds);
}

View File

@ -24,6 +24,8 @@ public class PmsRepositorySearchVo {
private Long page;
@ApiModelProperty(value = "每页数量")
private Long limit;
@ApiModelProperty(value = "是否导入成功")
private Boolean actived;
public String genQueryString() {
StringBuilder stringBuilder = new StringBuilder("?");
@ -41,6 +43,9 @@ public class PmsRepositorySearchVo {
if (StringUtils.isNotEmpty(search)) {
stringBuilder.append("&search=").append(search);
}
if (actived != null) {
stringBuilder.append("&actived=").append(actived ? "true" : "false");
}
return stringBuilder.toString();
}
}

View File

@ -261,6 +261,16 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
return getGitLinkRequestUrl(path);
}
public static GitLinkRequestUrl IMPORT_ISSUES(Long pmProjectId, Long organizationId) {
String path = String.format("/api/pm/issues/import?pm_project_id=%s&organization_id=%s", pmProjectId, organizationId);
return getGitLinkRequestUrl(path);
}
public static GitLinkRequestUrl EXPORT_ISSUES(Long pmProjectId) {
String path = "/api/pm/issues/export?pm_project_id=" + pmProjectId;
return getGitLinkRequestUrl(path);
}
/**
* 获取组织下代码库列表
*/