Browse Source

Merge remote-tracking branch 'origin/master'

master
CMM 1 year ago
parent
commit
3716858934
7 changed files with 91 additions and 17 deletions
  1. +6
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/leave/manage/LeaveManage.java
  2. +3
    -3
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/controller/MeetingController.java
  3. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/domain/MeetingExpert.java
  4. +28
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/ConfirmedRosterReq.java
  5. +18
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java
  6. +22
    -12
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java
  7. +11
    -1
      pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java

+ 6
- 0
pmapi/src/main/java/com/ningdatech/pmapi/leave/manage/LeaveManage.java View File

@@ -215,6 +215,12 @@ public class LeaveManage {
if (ExpertInviteTypeEnum.RANDOM.eq(meeting.getInviteType())) { if (ExpertInviteTypeEnum.RANDOM.eq(meeting.getInviteType())) {
inviteTask.notifyInviteTask(meeting.getId(), Boolean.FALSE); inviteTask.notifyInviteTask(meeting.getId(), Boolean.FALSE);
} }
if (meeting.getConfirmedRoster()) {
LambdaUpdateWrapper<Meeting> mUpdate = Wrappers.lambdaUpdate(Meeting.class)
.set(Meeting::getConfirmedRoster, Boolean.FALSE)
.eq(Meeting::getId, meeting.getId());
meetingService.update(mUpdate);
}
// 临时请假无需审核 // 临时请假无需审核
leave.setAuditId(0L); leave.setAuditId(0L);
leave.setStatus(LeaveStatusEnum.PASSED.getCode()); leave.setStatus(LeaveStatusEnum.PASSED.getCode());


+ 3
- 3
pmapi/src/main/java/com/ningdatech/pmapi/meeting/controller/MeetingController.java View File

@@ -174,11 +174,11 @@ public class MeetingController {
meetingManage.setUpHeadman(req); meetingManage.setUpHeadman(req);
} }


@ApiOperation("重发短信")
@ApiOperation("重发短信 | 确认名单")
@PostMapping("/confirmedRoster") @PostMapping("/confirmedRoster")
@WebLog(value = "重发短信") @WebLog(value = "重发短信")
public void resendSms(@RequestBody MeetingCancelReq req) {
meetingManage.confirmedRoster(req.getMeetingId());
public void resendSms(@RequestBody ConfirmedRosterReq req) {
meetingManage.confirmedRoster(req);
} }


@GetMapping("/listReviewProject") @GetMapping("/listReviewProject")


+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/domain/MeetingExpert.java View File

@@ -56,6 +56,9 @@ public class MeetingExpert implements Serializable {
@ApiModelProperty("邀请类型") @ApiModelProperty("邀请类型")
private Integer inviteType; private Integer inviteType;


@ApiModelProperty("是否已确认名单")
private Boolean confirmedRoster;

private String submitKey; private String submitKey;


@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)


+ 28
- 0
pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/ConfirmedRosterReq.java View File

@@ -0,0 +1,28 @@
package com.ningdatech.pmapi.meeting.entity.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
* <p>
* 会议确认名单实体
* </p>
*
* @author WendyYang
* @since 10:43 2022/8/26
*/
@Data
@ApiModel("会议确认名单实体")
public class ConfirmedRosterReq {

@NotNull(message = "会议ID不能为空")
@ApiModelProperty("会议ID")
private Long meetingId;

@ApiModelProperty
private Boolean reconfirmed;

}

+ 18
- 1
pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingManage.java View File

@@ -716,6 +716,7 @@ public class MeetingManage {
} }
} }


@Transactional(rollbackFor = Exception.class)
public void expertRemove(ExpertRemoveReq req) { public void expertRemove(ExpertRemoveReq req) {
String key = "EXPERT_REMOVE:" + req.getExpertMeetingId(); String key = "EXPERT_REMOVE:" + req.getExpertMeetingId();
if (!distributedLock.lock(key, RETRY_TIMES)) { if (!distributedLock.lock(key, RETRY_TIMES)) {
@@ -736,6 +737,10 @@ public class MeetingManage {
if (!NOTICING.eq(expert.getStatus())) { if (!NOTICING.eq(expert.getStatus())) {
throw BizException.wrap("已确认过的专家不允许移除!"); throw BizException.wrap("已确认过的专家不允许移除!");
} }
LambdaUpdateWrapper<Meeting> mUpdate = Wrappers.lambdaUpdate(Meeting.class)
.set(Meeting::getConfirmedRoster, false)
.eq(Meeting::getId, req.getMeetingId());
meetingService.update(mUpdate);
meetingExpertService.removeById(req.getExpertMeetingId()); meetingExpertService.removeById(req.getExpertMeetingId());
} finally { } finally {
distributedLock.releaseLock(key); distributedLock.releaseLock(key);
@@ -791,7 +796,8 @@ public class MeetingManage {
} }
} }


public void confirmedRoster(Long meetingId) {
public void confirmedRoster(ConfirmedRosterReq req) {
Long meetingId = req.getMeetingId();
String key = "MEETING_RESEND_SMS:" + meetingId; String key = "MEETING_RESEND_SMS:" + meetingId;
if (!distributedLock.lock(key, RETRY_TIMES)) { if (!distributedLock.lock(key, RETRY_TIMES)) {
throw BizException.wrap("请刷新后重试!"); throw BizException.wrap("请刷新后重试!");
@@ -809,6 +815,17 @@ public class MeetingManage {
meetingService.update(update); meetingService.update(update);
} }
List<MeetingExpert> experts = meetingExpertService.listAgreedExperts(meetingId); List<MeetingExpert> experts = meetingExpertService.listAgreedExperts(meetingId);
List<MeetingExpert> expertNoticing = experts.stream()
.filter(w -> meeting.getConfirmedRoster() || !w.getConfirmedRoster())
.collect(Collectors.toList());
if (expertNoticing.isEmpty()) {
return;
}
List<Long> currConfirmedMeIds = CollUtils.fieldList(expertNoticing, MeetingExpert::getId);
LambdaUpdateWrapper<MeetingExpert> meUpdate = Wrappers.lambdaUpdate(MeetingExpert.class)
.in(MeetingExpert::getId, currConfirmedMeIds)
.set(MeetingExpert::getConfirmedRoster, Boolean.TRUE);
meetingExpertService.update(meUpdate);
// TODO 发送会议通知 // TODO 发送会议通知
} finally { } finally {
distributedLock.releaseLock(key); distributedLock.releaseLock(key);


+ 22
- 12
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java View File

@@ -1,5 +1,7 @@
package com.ningdatech.pmapi.projectlib.manage; package com.ningdatech.pmapi.projectlib.manage;


import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -260,13 +262,15 @@ public class ProjectLibManage {
* 新增一个新的项目 新的版本号 * 新增一个新的项目 新的版本号
*/ */
public Project newProjectWithVersion(ProjectDTO projecDto){ public Project newProjectWithVersion(ProjectDTO projecDto){
Project project = projectService.getById(projecDto.getId());
VUtils.isTrue(Objects.isNull(project))
Project oldProject = projectService.getById(projecDto.getId());
Project project = new Project();
VUtils.isTrue(Objects.isNull(oldProject))
.throwMessage("项目不存在!"); .throwMessage("项目不存在!");

project.setVersion(project.getVersion() + 1);
BeanUtils.copyProperties(projecDto,project);
BeanUtil.copyProperties(oldProject,project, CopyOptions.create()
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE));
BeanUtil.copyProperties(projecDto,project, CopyOptions.create()
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE));
project.setVersion(oldProject.getVersion() + 1);
project.setId(null); project.setId(null);
project.setCreateOn(LocalDateTime.now()); project.setCreateOn(LocalDateTime.now());
project.setUpdateOn(LocalDateTime.now()); project.setUpdateOn(LocalDateTime.now());
@@ -282,13 +286,15 @@ public class ProjectLibManage {
} }


public Project saveProjectWithVersionAndStatus(ProjectDTO projecDto,Integer stageCode,Integer statusCode){ public Project saveProjectWithVersionAndStatus(ProjectDTO projecDto,Integer stageCode,Integer statusCode){
Project project = projectService.getById(projecDto.getId());
VUtils.isTrue(Objects.isNull(project))
Project oldProject = projectService.getById(projecDto.getId());
Project project = new Project();
VUtils.isTrue(Objects.isNull(oldProject))
.throwMessage("项目不存在!"); .throwMessage("项目不存在!");

project.setVersion(project.getVersion() + 1);
BeanUtils.copyProperties(projecDto,project);
BeanUtil.copyProperties(oldProject,project, CopyOptions.create()
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE));
BeanUtil.copyProperties(projecDto,project, CopyOptions.create()
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE));
project.setVersion(oldProject.getVersion() + 1);
project.setId(null); project.setId(null);
project.setCreateOn(LocalDateTime.now()); project.setCreateOn(LocalDateTime.now());
project.setUpdateOn(LocalDateTime.now()); project.setUpdateOn(LocalDateTime.now());
@@ -448,4 +454,8 @@ public class ProjectLibManage {
} }
return user; return user;
} }

private void copyProperties(ProjectDTO projecDto, Project project) {

}
} }

+ 11
- 1
pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java View File

@@ -1,9 +1,9 @@
package com.ningdatech.pmapi.statemachine; package com.ningdatech.pmapi.statemachine;


import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ningdatech.pmapi.AppTests; import com.ningdatech.pmapi.AppTests;
import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.projectlib.service.IProjectService;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -32,4 +32,14 @@ public class StateMachineTest extends AppTests {
System.out.println(String.format("project:%s", JSON.toJSONString(project))); System.out.println(String.format("project:%s", JSON.toJSONString(project)));
projectService.updateById(project); projectService.updateById(project);
} }

@Test
public void yyyyyy(){
Project project = projectService.getById(400);
projectService.update(Wrappers.lambdaUpdate(Project.class)
.set(Project::getNewest,Boolean.FALSE)
.ne(Project::getId,project.getId())
.eq(Project::getProjectCode,project.getProjectCode()));
System.out.println(project);
}
} }

Loading…
Cancel
Save