Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

tags/24080901
PoffyZhang 1 yıl önce
ebeveyn
işleme
41ec80453c
4 değiştirilmiş dosya ile 91 ekleme ve 9 silme
  1. +3
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/controller/MeetingExpertJudgeController.java
  2. +49
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/enumeration/ExpertJudgeEnum.java
  3. +26
    -8
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/MeetingExpertJudgeReq.java
  4. +13
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingExpertJudgeManage.java

+ 3
- 1
pmapi/src/main/java/com/ningdatech/pmapi/meeting/controller/MeetingExpertJudgeController.java Dosyayı Görüntüle

@@ -2,10 +2,12 @@ package com.ningdatech.pmapi.meeting.controller;


import com.ningdatech.pmapi.meeting.entity.req.MeetingExpertJudgeReq;
import com.ningdatech.pmapi.meeting.entity.req.MeetingExpertJudgeReq.Basic;
import com.ningdatech.pmapi.meeting.manage.MeetingExpertJudgeManage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
@@ -28,7 +30,7 @@ public class MeetingExpertJudgeController {

@ApiOperation("保存履职评价")
@PostMapping("/submit")
public void saveExpertJudge(@Valid @RequestBody MeetingExpertJudgeReq req) {
public void saveExpertJudge(@Validated(Basic.class) @RequestBody MeetingExpertJudgeReq req) {
expertJudgeManage.saveExpertJudge(req);
}



+ 49
- 0
pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/enumeration/ExpertJudgeEnum.java Dosyayı Görüntüle

@@ -0,0 +1,49 @@
package com.ningdatech.pmapi.meeting.entity.enumeration;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
* <p>
* ExpertJudgeEnum
* </p>
*
* @author WendyYang
* @since 2023/8/3
**/
public class ExpertJudgeEnum {

private ExpertJudgeEnum() {
}

@Getter
@AllArgsConstructor
public enum AttendStatus {
ON_TIME(1, "准时"),
BE_LATE(2, "迟到"),
ABSENT(3, "缺席");

private final Integer code;
private final String value;

public boolean eq(Integer code) {
return this.code.equals(code);
}
}

@Getter
@AllArgsConstructor
public enum Performance {

POSITIVE(1, "积极"),
NEGATIVE(2, "消极");

private final Integer code;
private final String value;

public boolean eq(Integer code) {
return this.code.equals(code);
}
}

}

+ 26
- 8
pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/req/MeetingExpertJudgeReq.java Dosyayı Görüntüle

@@ -7,6 +7,9 @@ import lombok.Data;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

import com.ningdatech.pmapi.meeting.entity.enumeration.ExpertJudgeEnum;
import org.hibernate.validator.constraints.Range;

/**
* <p>
* MeetingExpertJudgeReq
@@ -20,34 +23,41 @@ public class MeetingExpertJudgeReq {

private Long id;

@NotNull(message = "会议ID不能为空")
@NotNull(message = "会议ID不能为空", groups = Basic.class)
private Long meetingId;

@NotNull(message = "会议专家ID不能为空")
@NotNull(message = "会议专家ID不能为空", groups = Basic.class)
private Long meetingExpertId;

@ApiModelProperty("评分(1~10)")
@NotNull(message = "评分不能为空")
@NotNull(message = "评分不能为空", groups = Basic.class)
@Range(min = 1, max = 10, message = "评分范围为:1~10")
private Integer score;

/**
* @see ExpertJudgeEnum.AttendStatus
*/
@ApiModelProperty("是否参加:1 准时、2 迟到、3 缺席")
@NotNull(message = "是否参加不能为空")
@NotNull(message = "是否参加不能为空", groups = Basic.class)
private Integer attended;

/**
* @see ExpertJudgeEnum.Performance
*/
@ApiModelProperty("参与程度:1 积极、2 消极")
@NotNull(message = "参与度不能为空")
@NotNull(message = "参与度不能为空", groups = Attend.class)
private Integer performance;

@ApiModelProperty("是否提出建议:true 是、false 否")
@NotNull(message = "是否提出建议不能为空")
@NotNull(message = "是否提出建议不能为空", groups = Attend.class)
private Boolean advised;

@ApiModelProperty("是否早退:true 早退、false 未早退")
@NotNull(message = "是否早退不能为空")
@NotNull(message = "是否早退不能为空", groups = Attend.class)
private Boolean leaveEarly;

@ApiModelProperty("是否违规:true 是、false 否")
@NotNull(message = "是否违规不能为空")
@NotNull(message = "是否违规不能为空", groups = Attend.class)
private Boolean brokeRule;

@ApiModelProperty("违规内容")
@@ -56,4 +66,12 @@ public class MeetingExpertJudgeReq {
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createOn;

//==================================================================================================================

public interface Attend {
}

public interface Basic {
}

}

+ 13
- 0
pmapi/src/main/java/com/ningdatech/pmapi/meeting/manage/MeetingExpertJudgeManage.java Dosyayı Görüntüle

@@ -4,19 +4,25 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.basic.util.ValidUtil;
import com.ningdatech.cache.lock.DistributedLock;
import com.ningdatech.pmapi.meeting.entity.domain.Meeting;
import com.ningdatech.pmapi.meeting.entity.domain.MeetingExpert;
import com.ningdatech.pmapi.meeting.entity.domain.MeetingExpertJudge;
import com.ningdatech.pmapi.meeting.entity.enumeration.ExpertAttendStatusEnum;
import com.ningdatech.pmapi.meeting.entity.enumeration.ExpertJudgeEnum;
import com.ningdatech.pmapi.meeting.entity.enumeration.MeetingStatusEnum;
import com.ningdatech.pmapi.meeting.entity.req.MeetingExpertJudgeReq;
import com.ningdatech.pmapi.meeting.entity.req.MeetingExpertJudgeReq.Attend;
import com.ningdatech.pmapi.meeting.service.IMeetingExpertJudgeService;
import com.ningdatech.pmapi.meeting.service.IMeetingExpertService;
import com.ningdatech.pmapi.meeting.service.IMeetingService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
* <p>
* MeetingExpertJudgeManage
@@ -46,6 +52,13 @@ public class MeetingExpertJudgeManage {
throw BizException.wrap("履职评价失败,请重试");
}
try {
if (!ExpertJudgeEnum.AttendStatus.ABSENT.eq(req.getAttended())) {
Map<String, String> validMap = ValidUtil.valid(req, Attend.class);
if (!validMap.isEmpty()) {
String errMsg = CollUtils.joinByComma(validMap.values());
throw BizException.wrap(errMsg);
}
}
// 会议状态校验
Meeting meeting = meetingService.getById(req.getMeetingId());
if (meeting == null || MeetingStatusEnum.CANCELED.eq(meeting.getStatus())) {


Yükleniyor…
İptal
Kaydet