diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java index ea9f07c09..b1e0f4129 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/controller/PmsProjectIssuesController.java @@ -385,4 +385,15 @@ public class PmsProjectIssuesController extends BaseController { public void exportIssues(HttpServletResponse response, @ApiParam("项目Id") @RequestParam(name = "pmProjectId") Long pmProjectId) { pmsProjectIssuesService.exportIssues(response, pmProjectId); } + + /** + * 同步更新issue企业标识 + * 说明:旧issues数据直接通过pmProjectId与pms建立关联,新需求要与企业建立关联,故需要同步更新issue企业标识 + */ + @PutMapping("/updateIssueEnterpriseIdentifier") + @ApiOperation(value = "同步更新issue企业标识") + public AjaxResult updateIssueEnterpriseIdentifier() { + boolean result = pmsProjectIssuesService.updateIssueEnterpriseIdentifier(); + return success(result); + } } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/domain/ForgeIssues.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/domain/ForgeIssues.java new file mode 100644 index 000000000..64577fef2 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/domain/ForgeIssues.java @@ -0,0 +1,88 @@ +package com.microservices.pms.project.domain; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class ForgeIssues { + private Integer id; + + private Integer trackerId; + + private Integer projectId; + + private String subject; + + private Date dueDate; + + private Integer categoryId; + + private Integer statusId; + + private Integer assignedToId; + + private Integer priorityId; + + private Integer fixedVersionId; + + private Integer authorId; + + private Date createdOn; + + private Date updatedOn; + + private Date startDate; + + private Integer doneRatio; + + private Float estimatedHours; + + private Integer parentId; + + private Integer rootId; + + private Integer lft; + + private Integer rgt; + + private Boolean isPrivate; + + private Date closedOn; + + private Integer projectIssuesIndex; + + private String issueType; + + private Integer token; + + private String issueTagsValue; + + private Boolean isLock; + + private String issueClassify; + + private String refName; + + private String branchName; + + private String description; + + private Integer blockchainTokenNum; + + private Long pmProjectId; + + private Long pmSprintId; + + private Integer pmIssueType; + + private BigDecimal timeScale; + + private Integer childCount; + private Long changerId; + + private Integer fakeId; + + private String enterpriseIdentifier; +} \ No newline at end of file diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/ForgeIssuesMapper.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/ForgeIssuesMapper.java new file mode 100644 index 000000000..863aa9e99 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/ForgeIssuesMapper.java @@ -0,0 +1,21 @@ +package com.microservices.pms.project.mapper; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.pms.project.domain.ForgeIssues; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 用户表 数据层 + * + * @author microservices + */ +@Slave +@Mapper +public interface ForgeIssuesMapper { + + List getBriefIssues(); + + int updateForIssues(ForgeIssues forgeIssues); +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectMapper.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectMapper.java index 2437ae097..04c9144af 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectMapper.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/mapper/PmsProjectMapper.java @@ -91,4 +91,6 @@ public interface PmsProjectMapper PmsProject selectPmsProjectById(Long id); List selectProjectIdsByAssigneeUserId(@Param("enterpriseIdentifier") String enterpriseIdentifier, @Param("gitlinkUserId") Long gitlinkUserId); + + String selectEnterpriseIdentifierByProjectId(@Param("pmProjectId") Long pmProjectId); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java index a20d01a3a..14fea5b0b 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java @@ -15,9 +15,11 @@ import com.microservices.pms.enterprise.service.IPmsEnterpriseService; import com.microservices.pms.enums.ProjectIssueStatus; import com.microservices.pms.product.domain.enums.ProductReqStatus; import com.microservices.pms.product.service.IPmsProductRequirementService; +import com.microservices.pms.project.domain.ForgeIssues; import com.microservices.pms.project.domain.PmsProject; import com.microservices.pms.project.domain.SimpleRepository; import com.microservices.pms.project.domain.vo.*; +import com.microservices.pms.project.mapper.ForgeIssuesMapper; import com.microservices.pms.project.mapper.PmsProjectMapper; import com.microservices.pms.project.mapper.PmsProjectSprintMapper; import com.microservices.pms.project.mapper.PmsProjectTestsheetMapper; @@ -83,6 +85,8 @@ public class PmsProjectIssuesService { private PmsProjectTestsheetMapper pmsProjectTestsheetMapper; @Resource private PmsProjectMapper pmsProjectMapper; + @Resource + private ForgeIssuesMapper forgeIssuesMapper; public JSONObject selectPmsProjectIssuesList(PmsProjectIssuesSearchVo pmsProjectIssuesSearchVo) { @@ -776,4 +780,20 @@ public class PmsProjectIssuesService { throw new RuntimeException(e); } } + + public boolean updateIssueEnterpriseIdentifier() { + Long currentUserId = SecurityUtils.getGitlinkUserId(); + if (currentUserId == null || currentUserId != 831) { + return false; + } + List forgeIssuesList = forgeIssuesMapper.getBriefIssues(); + for (ForgeIssues forgeIssues : forgeIssuesList) { + String enterpriseIdentifier = pmsProjectMapper.selectEnterpriseIdentifierByProjectId(forgeIssues.getPmProjectId()); + if (enterpriseIdentifier != null) { + forgeIssues.setEnterpriseIdentifier(enterpriseIdentifier); + forgeIssuesMapper.updateForIssues(forgeIssues); + } + } + return true; + } } diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/ForgeIssuesMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/ForgeIssuesMapper.xml new file mode 100644 index 000000000..862db6c27 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/ForgeIssuesMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE issues + set enterprise_identifier = #{enterpriseIdentifier} + where id = #{id} + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml index 6f92f0ed1..a747dabdd 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml @@ -180,6 +180,12 @@ where pp.project_assignee_id = #{gitlinkUserId} and pe.enterprise_identifier = #{enterpriseIdentifier} + insert into pms_project