@@ -0,0 +1,72 @@ | |||||
package com.hz.pm.api.meeting.builder; | |||||
import com.hz.pm.api.meeting.entity.domain.MeetingOuterProject; | |||||
import com.hz.pm.api.meeting.entity.dto.MeetingReviewProjectDTO; | |||||
import com.hz.pm.api.meeting.entity.vo.MeetingReviewProjectVO; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
/** | |||||
* <p> | |||||
* MeetingReviewResultBuilder | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 19:29 2023/12/21 | |||||
*/ | |||||
public class MeetingReviewProjectBuilder { | |||||
private MeetingReviewProjectBuilder() { | |||||
} | |||||
public static MeetingReviewProjectDTO convert(Project project){ | |||||
MeetingReviewProjectDTO mrp = new MeetingReviewProjectDTO(); | |||||
mrp.setProjectId(project.getId()); | |||||
mrp.setBuildOrg(project.getBuildOrgName()); | |||||
mrp.setProjectName(project.getProjectName()); | |||||
mrp.setProjectType(project.getProjectType()); | |||||
mrp.setProjectYear(project.getProjectYear()); | |||||
mrp.setDeclareAmount(project.getDeclareAmount()); | |||||
mrp.setProjectCode(project.getProjectCode()); | |||||
return mrp; | |||||
} | |||||
public static MeetingReviewProjectDTO convert(MeetingOuterProject mop) { | |||||
MeetingReviewProjectDTO mrp = new MeetingReviewProjectDTO(); | |||||
mrp.setBuildOrg(mop.getBuildOrg()); | |||||
mrp.setProjectName(mop.getProjectName()); | |||||
mrp.setProjectType(mop.getProjectType()); | |||||
mrp.setProjectYear(mop.getProjectYear()); | |||||
mrp.setDeclareAmount(mop.getDeclareAmount()); | |||||
mrp.setMeetingProjectId(mop.getId()); | |||||
return mrp; | |||||
} | |||||
public static MeetingReviewProjectVO to(Project project) { | |||||
return MeetingReviewProjectVO | |||||
.builder() | |||||
.id(project.getId()) | |||||
.projectCode(project.getProjectCode()) | |||||
.projectName(project.getProjectName()) | |||||
.declaredAmount(project.getDeclareAmount()) | |||||
.projectType(project.getProjectType()) | |||||
.projectYear(project.getProjectYear()) | |||||
.buildOrg(project.getBuildOrgName()) | |||||
.createOn(project.getCreateOn()) | |||||
.build(); | |||||
} | |||||
public static MeetingReviewProjectVO to(MeetingOuterProject mop) { | |||||
return MeetingReviewProjectVO | |||||
.builder() | |||||
.meetingProjectId(mop.getId()) | |||||
.projectName(mop.getProjectName()) | |||||
.declaredAmount(mop.getDeclareAmount()) | |||||
.projectType(mop.getProjectType()) | |||||
.projectYear(mop.getProjectYear()) | |||||
.buildOrg(mop.getBuildOrg()) | |||||
.createOn(mop.getCreateOn()) | |||||
.build(); | |||||
} | |||||
} |
@@ -0,0 +1,44 @@ | |||||
package com.hz.pm.api.meeting.builder; | |||||
import com.hz.pm.api.meeting.entity.domain.MeetingInnerProject; | |||||
import com.hz.pm.api.meeting.entity.domain.MeetingOuterProject; | |||||
import com.hz.pm.api.meeting.entity.dto.ProjectReviewResultDTO; | |||||
/** | |||||
* <p> | |||||
* ProjectReviewResultBuilder | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 19:21 2023/12/21 | |||||
*/ | |||||
public class ProjectReviewResultBuilder { | |||||
private ProjectReviewResultBuilder() { | |||||
} | |||||
public static ProjectReviewResultDTO convert(MeetingInnerProject mip) { | |||||
ProjectReviewResultDTO prr = new ProjectReviewResultDTO(); | |||||
prr.setReviewResult(mip.getReviewResult()); | |||||
prr.setBuildNecessity(mip.getBuildNecessity()); | |||||
prr.setInvestRationality(mip.getInvestRationality()); | |||||
prr.setSuggestedFunding(mip.getSuggestedFunding()); | |||||
prr.setOtherAdvices(mip.getOtherAdvices()); | |||||
prr.setTechFeasibility(mip.getTechFeasibility()); | |||||
prr.setNeedRationality(mip.getNeedRationality()); | |||||
return prr; | |||||
} | |||||
public static ProjectReviewResultDTO convert(MeetingOuterProject mop) { | |||||
ProjectReviewResultDTO prr = new ProjectReviewResultDTO(); | |||||
prr.setReviewResult(mop.getReviewResult()); | |||||
prr.setBuildNecessity(mop.getBuildNecessity()); | |||||
prr.setInvestRationality(mop.getInvestRationality()); | |||||
prr.setSuggestedFunding(mop.getSuggestedFunding()); | |||||
prr.setOtherAdvices(mop.getOtherAdvices()); | |||||
prr.setTechFeasibility(mop.getTechFeasibility()); | |||||
prr.setNeedRationality(mop.getNeedRationality()); | |||||
return prr; | |||||
} | |||||
} |
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
/** | /** | ||||
@@ -36,11 +37,26 @@ public class MeetingInnerProject implements Serializable { | |||||
@ApiModelProperty("项目编号") | @ApiModelProperty("项目编号") | ||||
private String projectCode; | private String projectCode; | ||||
@ApiModelProperty("会议结果说明") | |||||
private String resultDescription; | |||||
@ApiModelProperty("建设必要性") | |||||
private String buildNecessity; | |||||
@ApiModelProperty("会议结果附件") | |||||
private String resultAttachFiles; | |||||
@ApiModelProperty("需求合理性") | |||||
private String needRationality; | |||||
@ApiModelProperty("技术方案可行性") | |||||
private String techFeasibility; | |||||
@ApiModelProperty("审核结果") | |||||
private Integer reviewResult; | |||||
@ApiModelProperty("其他意见") | |||||
private String otherAdvices; | |||||
@ApiModelProperty("投资测算合理性") | |||||
private String investRationality; | |||||
@ApiModelProperty("建议资金(单位:万元)") | |||||
private BigDecimal suggestedFunding; | |||||
@TableField(fill = FieldFill.INSERT_UPDATE) | @TableField(fill = FieldFill.INSERT_UPDATE) | ||||
private LocalDateTime updateOn; | private LocalDateTime updateOn; | ||||
@@ -43,11 +43,26 @@ public class MeetingOuterProject implements Serializable { | |||||
@ApiModelProperty("申报金额") | @ApiModelProperty("申报金额") | ||||
private BigDecimal declareAmount; | private BigDecimal declareAmount; | ||||
@ApiModelProperty("会议结果说明") | |||||
private String resultDescription; | |||||
@ApiModelProperty("建设必要性") | |||||
private String buildNecessity; | |||||
@ApiModelProperty("会议结果附件") | |||||
private String resultAttachFiles; | |||||
@ApiModelProperty("需求合理性") | |||||
private String needRationality; | |||||
@ApiModelProperty("技术方案可行性") | |||||
private String techFeasibility; | |||||
@ApiModelProperty("审核结果") | |||||
private Integer reviewResult; | |||||
@ApiModelProperty("其他意见") | |||||
private String otherAdvices; | |||||
@ApiModelProperty("投资测算合理性") | |||||
private String investRationality; | |||||
@ApiModelProperty("建议资金(单位:万元)") | |||||
private BigDecimal suggestedFunding; | |||||
@ApiModelProperty("会议ID") | @ApiModelProperty("会议ID") | ||||
private Long meetingId; | private Long meetingId; | ||||
@@ -16,6 +16,8 @@ import java.math.BigDecimal; | |||||
@Data | @Data | ||||
public class MeetingReviewProjectDTO { | public class MeetingReviewProjectDTO { | ||||
private Long meetingProjectId; | |||||
@ApiModelProperty("项目ID") | @ApiModelProperty("项目ID") | ||||
private Long projectId; | private Long projectId; | ||||
@@ -37,10 +39,7 @@ public class MeetingReviewProjectDTO { | |||||
@ApiModelProperty("申报单位") | @ApiModelProperty("申报单位") | ||||
private String buildOrg; | private String buildOrg; | ||||
@ApiModelProperty("会议结果说明") | |||||
private String resultDescription; | |||||
@ApiModelProperty("会议结果附件") | |||||
private String resultAttachFiles; | |||||
@ApiModelProperty("评审结果") | |||||
private ProjectReviewResultDTO reviewResultDetail; | |||||
} | } |
@@ -0,0 +1,40 @@ | |||||
package com.hz.pm.api.meeting.entity.dto; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.math.BigDecimal; | |||||
/** | |||||
* <p> | |||||
* ProjectReviewResultDTO | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 17:17 2023/12/21 | |||||
*/ | |||||
@Data | |||||
public class ProjectReviewResultDTO { | |||||
@ApiModelProperty("建设必要性") | |||||
private String buildNecessity; | |||||
@ApiModelProperty("需求合理性") | |||||
private String needRationality; | |||||
@ApiModelProperty("技术方案可行性") | |||||
private String techFeasibility; | |||||
@ApiModelProperty("审核结果") | |||||
private Integer reviewResult; | |||||
@ApiModelProperty("其他意见") | |||||
private String otherAdvices; | |||||
@ApiModelProperty("投资测算合理性") | |||||
private String investRationality; | |||||
@ApiModelProperty("建议资金(单位:万元)") | |||||
private BigDecimal suggestedFunding; | |||||
} |
@@ -5,6 +5,7 @@ import lombok.Data; | |||||
import javax.validation.constraints.NotBlank; | import javax.validation.constraints.NotBlank; | ||||
import javax.validation.constraints.NotNull; | import javax.validation.constraints.NotNull; | ||||
import java.math.BigDecimal; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -32,4 +33,25 @@ public class MeetingResultUploadReq { | |||||
@ApiModelProperty("会议结果附件") | @ApiModelProperty("会议结果附件") | ||||
private String resultAttachFiles; | private String resultAttachFiles; | ||||
@ApiModelProperty("建设必要性") | |||||
private String buildNecessity; | |||||
@ApiModelProperty("需求合理性") | |||||
private String needRationality; | |||||
@ApiModelProperty("技术方案可行性") | |||||
private String techFeasibility; | |||||
@ApiModelProperty("审核结果:1 通过、0 不通过") | |||||
private Integer reviewResult; | |||||
@ApiModelProperty("其他意见") | |||||
private String otherAdvices; | |||||
@ApiModelProperty("投资测算合理性") | |||||
private String investRationality; | |||||
@ApiModelProperty("建议资金(单位:万元)") | |||||
private BigDecimal suggestedFunding; | |||||
} | } |
@@ -111,10 +111,4 @@ public class MeetingDetailBasicVO { | |||||
@ApiModelProperty("相关材料") | @ApiModelProperty("相关材料") | ||||
private String attachFiles; | private String attachFiles; | ||||
@ApiModelProperty("会议结果说明") | |||||
private String resultDescription; | |||||
@ApiModelProperty("会议结果附件") | |||||
private String resultAttachFiles; | |||||
} | } |
@@ -1,6 +1,7 @@ | |||||
package com.hz.pm.api.meeting.entity.vo; | package com.hz.pm.api.meeting.entity.vo; | ||||
import com.fasterxml.jackson.annotation.JsonFormat; | import com.fasterxml.jackson.annotation.JsonFormat; | ||||
import com.hz.pm.api.meeting.entity.dto.ProjectReviewResultDTO; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Builder; | import lombok.Builder; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -25,6 +26,9 @@ public class MeetingReviewProjectVO { | |||||
public MeetingReviewProjectVO() { | public MeetingReviewProjectVO() { | ||||
} | } | ||||
@ApiModelProperty("会议项目关联ID") | |||||
private Long meetingProjectId; | |||||
@ApiModelProperty("项目ID") | @ApiModelProperty("项目ID") | ||||
private Long id; | private Long id; | ||||
@@ -46,11 +50,8 @@ public class MeetingReviewProjectVO { | |||||
@ApiModelProperty("申报单位") | @ApiModelProperty("申报单位") | ||||
private String buildOrg; | private String buildOrg; | ||||
@ApiModelProperty("会议结果说明") | |||||
private String resultDescription; | |||||
@ApiModelProperty("会议结果附件") | |||||
private String resultAttachFiles; | |||||
@ApiModelProperty("评审结果") | |||||
private ProjectReviewResultDTO reviewResultDetail; | |||||
@ApiModelProperty("创建时间") | @ApiModelProperty("创建时间") | ||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") | @JsonFormat(pattern = "yyyy-MM-dd HH:mm") | ||||
@@ -13,13 +13,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.hz.pm.api.common.helper.RegionCacheHelper; | import com.hz.pm.api.common.helper.RegionCacheHelper; | ||||
import com.hz.pm.api.common.model.entity.ViewRegionDTO; | import com.hz.pm.api.common.model.entity.ViewRegionDTO; | ||||
import com.hz.pm.api.expert.constant.ReviewResultEnum; | |||||
import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | ||||
import com.hz.pm.api.expert.model.entity.ExpertReview; | |||||
import com.hz.pm.api.expert.service.IExpertReviewService; | import com.hz.pm.api.expert.service.IExpertReviewService; | ||||
import com.hz.pm.api.expert.service.IExpertUserFullInfoService; | import com.hz.pm.api.expert.service.IExpertUserFullInfoService; | ||||
import com.hz.pm.api.gov.service.IBelongOrgService; | import com.hz.pm.api.gov.service.IBelongOrgService; | ||||
import com.hz.pm.api.meeting.builder.ExpertInviteBuilder; | import com.hz.pm.api.meeting.builder.ExpertInviteBuilder; | ||||
import com.hz.pm.api.meeting.builder.MeetingReviewProjectBuilder; | |||||
import com.hz.pm.api.meeting.builder.ProjectReviewResultBuilder; | |||||
import com.hz.pm.api.meeting.entity.domain.*; | import com.hz.pm.api.meeting.entity.domain.*; | ||||
import com.hz.pm.api.meeting.entity.dto.*; | import com.hz.pm.api.meeting.entity.dto.*; | ||||
import com.hz.pm.api.meeting.entity.enumeration.ExpertAttendStatusEnum; | import com.hz.pm.api.meeting.entity.enumeration.ExpertAttendStatusEnum; | ||||
@@ -451,6 +451,7 @@ public class MeetingManage { | |||||
.invitedStopped(meeting.getInviteStatus()) | .invitedStopped(meeting.getInviteStatus()) | ||||
.attachFiles(meeting.getAttachFiles()) | .attachFiles(meeting.getAttachFiles()) | ||||
.description(meeting.getDescription()) | .description(meeting.getDescription()) | ||||
.smsNotifySign(meeting.getSmsNotifySign()) | |||||
.remark(meeting.getRemark()) | .remark(meeting.getRemark()) | ||||
.build(); | .build(); | ||||
if (meeting.getIsInnerProject() != null) { | if (meeting.getIsInnerProject() != null) { | ||||
@@ -459,25 +460,21 @@ public class MeetingManage { | |||||
Map<Long, MeetingInnerProject> innerProjectMap = CollUtils.listToMap(innerProjects, MeetingInnerProject::getProjectId); | Map<Long, MeetingInnerProject> innerProjectMap = CollUtils.listToMap(innerProjects, MeetingInnerProject::getProjectId); | ||||
List<Project> projects = projectService.listByIds(innerProjectMap.keySet()); | List<Project> projects = projectService.listByIds(innerProjectMap.keySet()); | ||||
List<MeetingReviewProjectDTO> convert = CollUtils.convert(projects, w -> { | List<MeetingReviewProjectDTO> convert = CollUtils.convert(projects, w -> { | ||||
MeetingReviewProjectDTO mrp = new MeetingReviewProjectDTO(); | |||||
mrp.setProjectId(w.getId()); | |||||
mrp.setBuildOrg(w.getBuildOrgName()); | |||||
mrp.setProjectName(w.getProjectName()); | |||||
mrp.setProjectType(w.getProjectType()); | |||||
mrp.setProjectYear(w.getProjectYear()); | |||||
mrp.setDeclareAmount(w.getDeclareAmount()); | |||||
mrp.setProjectCode(w.getProjectCode()); | |||||
MeetingInnerProject innerProject = innerProjectMap.get(w.getId()); | |||||
if (innerProject != null) { | |||||
mrp.setResultAttachFiles(innerProject.getResultAttachFiles()); | |||||
mrp.setResultDescription(innerProject.getResultDescription()); | |||||
} | |||||
MeetingReviewProjectDTO mrp = MeetingReviewProjectBuilder.convert(w); | |||||
MeetingInnerProject mip = innerProjectMap.get(mrp.getProjectId()); | |||||
mrp.setMeetingProjectId(mip.getId()); | |||||
mrp.setReviewResultDetail(ProjectReviewResultBuilder.convert(mip)); | |||||
return mrp; | return mrp; | ||||
}); | }); | ||||
detail.setProjects(convert); | detail.setProjects(convert); | ||||
} else { | } else { | ||||
List<MeetingOuterProject> outerProjects = meetingOuterProjectService.listByMeetingId(meetingId); | List<MeetingOuterProject> outerProjects = meetingOuterProjectService.listByMeetingId(meetingId); | ||||
detail.setProjects(BeanUtil.copyToList(outerProjects, MeetingReviewProjectDTO.class)); | |||||
detail.setProjects(CollUtils.convert(outerProjects, mop -> { | |||||
MeetingReviewProjectDTO mrp = MeetingReviewProjectBuilder.convert(mop); | |||||
ProjectReviewResultDTO result = ProjectReviewResultBuilder.convert(mop); | |||||
mrp.setReviewResultDetail(result); | |||||
return mrp; | |||||
})); | |||||
} | } | ||||
} | } | ||||
detail.setInviteRule(inviteRuleDetail(meetingId)); | detail.setInviteRule(inviteRuleDetail(meetingId)); | ||||
@@ -891,7 +888,7 @@ public class MeetingManage { | |||||
Page<Project> page = projectService.page(req.page(), query); | Page<Project> page = projectService.page(req.page(), query); | ||||
PageVo<MeetingReviewProjectVO> result = PageVo.of(null, page.getTotal()); | PageVo<MeetingReviewProjectVO> result = PageVo.of(null, page.getTotal()); | ||||
if (result.getTotal() > 0) { | if (result.getTotal() > 0) { | ||||
result.setRecords(CollUtils.convert(page.getRecords(), this::buildProjectList)); | |||||
result.setRecords(CollUtils.convert(page.getRecords(), MeetingReviewProjectBuilder::to)); | |||||
} | } | ||||
return result; | return result; | ||||
} | } | ||||
@@ -903,34 +900,22 @@ public class MeetingManage { | |||||
Map<Long, MeetingInnerProject> projectMap = CollUtils.listToMap(projects, MeetingInnerProject::getProjectId); | Map<Long, MeetingInnerProject> projectMap = CollUtils.listToMap(projects, MeetingInnerProject::getProjectId); | ||||
List<Project> projectList = projectService.listByIds(projectMap.keySet()); | List<Project> projectList = projectService.listByIds(projectMap.keySet()); | ||||
return CollUtils.convert(projectList, w -> { | return CollUtils.convert(projectList, w -> { | ||||
MeetingReviewProjectVO vo = buildProjectList(w); | |||||
MeetingInnerProject innerProject = projectMap.get(w.getId()); | |||||
if (innerProject != null) { | |||||
vo.setResultAttachFiles(innerProject.getResultAttachFiles()); | |||||
vo.setResultDescription(innerProject.getResultDescription()); | |||||
} | |||||
MeetingReviewProjectVO vo = MeetingReviewProjectBuilder.to(w); | |||||
MeetingInnerProject mip = projectMap.get(w.getId()); | |||||
vo.setMeetingProjectId(mip.getId()); | |||||
vo.setReviewResultDetail(ProjectReviewResultBuilder.convert(mip)); | |||||
return vo; | return vo; | ||||
}); | }); | ||||
} else { | } else { | ||||
List<MeetingOuterProject> projects = meetingOuterProjectService.listByMeetingId(meetingId); | List<MeetingOuterProject> projects = meetingOuterProjectService.listByMeetingId(meetingId); | ||||
return BeanUtil.copyToList(projects, MeetingReviewProjectVO.class); | |||||
return CollUtils.convert(projects, w -> { | |||||
MeetingReviewProjectVO mrr = MeetingReviewProjectBuilder.to(w); | |||||
mrr.setReviewResultDetail(ProjectReviewResultBuilder.convert(w)); | |||||
return mrr; | |||||
}); | |||||
} | } | ||||
} | } | ||||
private MeetingReviewProjectVO buildProjectList(Project project) { | |||||
return MeetingReviewProjectVO | |||||
.builder() | |||||
.id(project.getId()) | |||||
.projectCode(project.getProjectCode()) | |||||
.projectName(project.getProjectName()) | |||||
.declaredAmount(project.getDeclareAmount()) | |||||
.projectType(project.getProjectType()) | |||||
.projectYear(project.getProjectYear()) | |||||
.buildOrg(project.getBuildOrgName()) | |||||
.createOn(project.getCreateOn()) | |||||
.build(); | |||||
} | |||||
private void buildOptionProjectQuery(LambdaQueryWrapper<Project> query, String meetingType, ProjectStatusEnum status) { | private void buildOptionProjectQuery(LambdaQueryWrapper<Project> query, String meetingType, ProjectStatusEnum status) { | ||||
query.eq(Project::getStatus, status.getCode()); | query.eq(Project::getStatus, status.getCode()); | ||||
String sql = String.format("select 1 from meeting m inner join meeting_inner_project mip on" + | String sql = String.format("select 1 from meeting m inner join meeting_inner_project mip on" + | ||||
@@ -962,23 +947,13 @@ public class MeetingManage { | |||||
throw BizException.wrap("此会议未关联项目"); | throw BizException.wrap("此会议未关联项目"); | ||||
} | } | ||||
if (Boolean.TRUE.equals(meeting.getIsInnerProject())) { | if (Boolean.TRUE.equals(meeting.getIsInnerProject())) { | ||||
LambdaUpdateWrapper<MeetingInnerProject> mUpdate = Wrappers | |||||
.lambdaUpdate(MeetingInnerProject.class) | |||||
.set(MeetingInnerProject::getUpdateOn, now) | |||||
.set(MeetingInnerProject::getResultDescription, req.getResultDescription()) | |||||
.set(MeetingInnerProject::getResultAttachFiles, req.getResultAttachFiles()) | |||||
.set(MeetingInnerProject::getUpdateBy, LoginUserUtil.getUserId()) | |||||
.eq(MeetingInnerProject::getId, req.getMeetingProjectId()); | |||||
meetingInnerProjectService.update(mUpdate); | |||||
MeetingInnerProject mip = BeanUtil.copyProperties(req, MeetingInnerProject.class); | |||||
mip.setId(req.getMeetingProjectId()); | |||||
meetingInnerProjectService.updateById(mip); | |||||
} else { | } else { | ||||
LambdaUpdateWrapper<MeetingOuterProject> mUpdate = Wrappers | |||||
.lambdaUpdate(MeetingOuterProject.class) | |||||
.set(MeetingOuterProject::getUpdateOn, now) | |||||
.set(MeetingOuterProject::getResultDescription, req.getResultDescription()) | |||||
.set(MeetingOuterProject::getResultAttachFiles, req.getResultAttachFiles()) | |||||
.set(MeetingOuterProject::getUpdateBy, LoginUserUtil.getUserId()) | |||||
.eq(MeetingOuterProject::getId, req.getMeetingProjectId()); | |||||
meetingOuterProjectService.update(mUpdate); | |||||
MeetingOuterProject mop = BeanUtil.copyProperties(req, MeetingOuterProject.class); | |||||
mop.setId(req.getMeetingProjectId()); | |||||
meetingOuterProjectService.updateById(mop); | |||||
} | } | ||||
} finally { | } finally { | ||||
distributedLock.releaseLock(key); | distributedLock.releaseLock(key); | ||||