From 4ce99ca39a716debfe4d06f663ba9a2e3c5393f0 Mon Sep 17 00:00:00 2001
From: zhouyuan <1069065057@qq.com>
Date: Wed, 18 May 2022 16:50:45 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E8=AE=AE=E5=AE=A1=E6=89=B9=E5=8A=A0?=
=?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../boot/modules/rddb/entity/Message.java | 4 +-
.../boot/modules/rddb/entity/bo/ReviewBo.java | 3 ++
.../modules/rddb/service/ReviewService.java | 43 ++++++++++++++++---
3 files changed, 42 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ydool/boot/modules/rddb/entity/Message.java b/src/main/java/com/ydool/boot/modules/rddb/entity/Message.java
index 598e2b6..c13a18d 100644
--- a/src/main/java/com/ydool/boot/modules/rddb/entity/Message.java
+++ b/src/main/java/com/ydool/boot/modules/rddb/entity/Message.java
@@ -43,6 +43,8 @@ public class Message extends BaseEntity {
public static final Integer TYPE_ACTIVITY_PASS = 10;
//所有人的通知公告
public static final Integer TYPE_NOTICE = 11;
+ //通知评议审核
+ public static final Integer TYPE_REVIEW = 12;
//未读
public static final Integer STATUS_UNREAD = 0;
@@ -74,7 +76,7 @@ public class Message extends BaseEntity {
/**
* 消息类型
*/
- @ApiModelProperty(value = "消息类型 1通知文件轮阅 2通知会议 3通知督事 4通知文件审批 5选民建议 6联系人大 7乡镇选民建议 8活动审核 9活动拒绝 10活动通过 11所有人的通知公告")
+ @ApiModelProperty(value = "消息类型 1通知文件轮阅 2通知会议 3通知督事 4通知文件审批 5选民建议 6联系人大 7乡镇选民建议 8活动审核 9活动拒绝 10活动通过 11所有人的通知公告 12通知评议审核")
private Integer type;
/**
diff --git a/src/main/java/com/ydool/boot/modules/rddb/entity/bo/ReviewBo.java b/src/main/java/com/ydool/boot/modules/rddb/entity/bo/ReviewBo.java
index b5eeec5..a91077a 100644
--- a/src/main/java/com/ydool/boot/modules/rddb/entity/bo/ReviewBo.java
+++ b/src/main/java/com/ydool/boot/modules/rddb/entity/bo/ReviewBo.java
@@ -3,6 +3,8 @@ package com.ydool.boot.modules.rddb.entity.bo;
import com.ydool.boot.modules.rddb.entity.Review;
import lombok.Data;
+import javax.validation.constraints.NotBlank;
+
/**
*
* 上报
@@ -18,6 +20,7 @@ public class ReviewBo extends Review {
String opinionAttachmentArrStr;
String resultAttachmentArrStr;
+ @NotBlank(message = "请选择审批人员")
String inReportAudit1Ids;
String inReportAudit2Ids;
String checkUserIds;
diff --git a/src/main/java/com/ydool/boot/modules/rddb/service/ReviewService.java b/src/main/java/com/ydool/boot/modules/rddb/service/ReviewService.java
index 983c266..63a3a3d 100644
--- a/src/main/java/com/ydool/boot/modules/rddb/service/ReviewService.java
+++ b/src/main/java/com/ydool/boot/modules/rddb/service/ReviewService.java
@@ -1,6 +1,7 @@
package com.ydool.boot.modules.rddb.service;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
@@ -21,6 +22,7 @@ import com.ydool.boot.modules.rddb.mapper.ReviewMapper;
import com.ydool.boot.modules.rddb.wrapper.ReviewWrapper;
import com.ydool.boot.modules.sys.entity.User;
import com.ydool.boot.modules.sys.service.UserService;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -52,6 +54,8 @@ public class ReviewService extends BaseService {
ReviewUserService reviewUserService;
@Autowired
UserService userService;
+ @Autowired
+ MessageService messageService;
/*后台*/
@Transactional
@@ -69,6 +73,7 @@ public class ReviewService extends BaseService {
@Transactional
public Ret adminSaveOrUpdate(ReviewBo reviewBo, User loginUser) {
+ Boolean isNew = false;
Review review = BeanUtil.copyProperties(reviewBo, Review.class);
if (StrUtil.isNotBlank(review.getId())) {
review.setUpdatedId(loginUser.getId());
@@ -76,6 +81,7 @@ public class ReviewService extends BaseService {
review.setState(Review.STATE_IN_REPORT);
review.setStatus(0);
review.setCreatedId(loginUser.getId());
+ isNew = true;
}
saveOrUpdate(review);
reviewBo.setId(review.getId());
@@ -93,9 +99,28 @@ public class ReviewService extends BaseService {
saveReviewAttachment(reviewBo.getId(), reviewBo.getCheckAttachmentArrStr(), loginUser, Review.STATE_CHECK);
saveReviewAttachment(reviewBo.getId(), reviewBo.getOpinionAttachmentArrStr(), loginUser, Review.STATE_OPINION);
saveReviewAttachment(reviewBo.getId(), reviewBo.getResultAttachmentArrStr(), loginUser, Review.STATE_RESULT);
+
+ if (isNew) {
+ sendMsg(review, loginUser, reviewBo.getInReportAudit1Ids().split(",")[0]);
+ }
return Ret.ok();
}
+ private void sendMsg(Review review, User loginUser, String userId) {
+ //一个人一个人审核,当手机端有通过操作时,找到下一个人发消息
+ if (StringUtils.isNotBlank(userId)) {
+ Message message = new Message();
+ message.setActionId(review.getId());
+ message.setTitle("您有一个评议需审批,请前往查看!");
+ message.setContent(review.getReviewSubject());
+ message.setType(Message.TYPE_REVIEW);
+ message.setCreatedId(loginUser != null ? loginUser.getId() : "");
+ message.setStatus(Message.STATUS_UNREAD);
+ message.setUserId(userId);
+ messageService.save(message);
+ }
+ }
+
/*接口*/
public Ret comment(ReviewCommentRequest reviewCommentRequest, User loginUser) {
@@ -152,15 +177,19 @@ public class ReviewService extends BaseService {
saveOrUpdate(review);
}
//如果没有待审批的,进入下一阶段
- int waitAuditCount = reviewAuditService.count(new LambdaQueryWrapper()
+ List waitAuditList = reviewAuditService.list(new LambdaQueryWrapper()
.eq(ReviewAudit::getReviewId, reviewAuditRequest.getReviewId())
- .eq(ReviewAudit::getStatus, 0));
- if (waitAuditCount == 0) {
+ .eq(ReviewAudit::getStatus, 0)
+ .orderByAsc(ReviewAudit::getSortNo));
+ if (CollectionUtil.isEmpty(waitAuditList)) {
review.setStatus(1);
// review.setState(Review.STATE_REPORT); 直接跳过
// review.setState(Review.STATE_ASK); 直接跳过
review.setState(Review.STATE_CHECK);
saveOrUpdate(review);
+ } else {
+ ReviewAudit nextReviewAudit = waitAuditList.get(0);
+ sendMsg(review, null, nextReviewAudit.getUserId());
}
return !flag ? Ret.fail("操作失败") : Ret.ok();
}
@@ -169,7 +198,7 @@ public class ReviewService extends BaseService {
public Review stateCheckSave(ReviewCheckStateRequest reviewCheckStateRequest, User loginUser) {
Review review = getById(reviewCheckStateRequest.getReviewId());
Assert.notNull(review, "未找到该记录");
- if(Review.STATE_CHECK!=review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
+ if (Review.STATE_CHECK != review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(reviewCheckStateRequest, review);
saveOrUpdate(review);
@@ -196,7 +225,7 @@ public class ReviewService extends BaseService {
public Ret checkEnd(String id, User loginUser) {
Review review = getById(id);
Assert.notNull(review, "未找到该记录");
- if(Review.STATE_CHECK!=review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
+ if (Review.STATE_CHECK != review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
if (!loginUser.getId().equals(review.getCreatedId())) return Ret.fail("您不是创建人,不能操作");
review.setState(Review.STATE_OPINION);
boolean flag = saveOrUpdate(review);
@@ -206,7 +235,7 @@ public class ReviewService extends BaseService {
public Review stateOpinionSave(ReviewOpinionStateRequest reviewOpinionStateRequest, User loginUser) {
Review review = getById(reviewOpinionStateRequest.getReviewId());
Assert.notNull(review, "未找到该记录");
- if(Review.STATE_OPINION!=review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
+ if (Review.STATE_OPINION != review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(reviewOpinionStateRequest, review);
review.setState(Review.STATE_RESULT);
saveOrUpdate(review);
@@ -218,7 +247,7 @@ public class ReviewService extends BaseService {
public Review stateResultSave(ReviewResultStateRequest reviewResultStateRequest, User loginUser) {
Review review = getById(reviewResultStateRequest.getReviewId());
Assert.notNull(review, "未找到该记录");
- if(Review.STATE_RESULT!=review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
+ if (Review.STATE_RESULT != review.getState()) throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(reviewResultStateRequest, review);
review.setState(Review.STATE_PUBLIC);
saveOrUpdate(review);