流程集成飞书推送待办
This commit is contained in:
+2
@@ -23,6 +23,8 @@ public class UnifiedTodoVO {
|
|||||||
private String processDefinitionId;
|
private String processDefinitionId;
|
||||||
@ApiModelProperty(value = "0:待办,2:已办,4:办结,8:待阅,10:已阅")
|
@ApiModelProperty(value = "0:待办,2:已办,4:办结,8:待阅,10:已阅")
|
||||||
private String isRemark;
|
private String isRemark;
|
||||||
|
@ApiModelProperty(value = "0:待办,2:已办,3:转办,4:办结")
|
||||||
|
private String isStatus;
|
||||||
@ApiModelProperty(value = "转办时用")
|
@ApiModelProperty(value = "转办时用")
|
||||||
private String toUserId;
|
private String toUserId;
|
||||||
@ApiModelProperty(value = "发送时的时间")
|
@ApiModelProperty(value = "发送时的时间")
|
||||||
|
|||||||
@@ -349,6 +349,9 @@ public class CommonConstant {
|
|||||||
public static final String TODO_TYPE_0 = "0";
|
public static final String TODO_TYPE_0 = "0";
|
||||||
//已办
|
//已办
|
||||||
public static final String TODO_TYPE_2 = "2";
|
public static final String TODO_TYPE_2 = "2";
|
||||||
|
//转办
|
||||||
|
public static final String TODO_TYPE_3 = "3";
|
||||||
//办结
|
//办结
|
||||||
public static final String TODO_TYPE_4 = "4";
|
public static final String TODO_TYPE_4 = "4";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-20
@@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||||
import com.jero.common.constant.CommonConstant;
|
import com.jero.common.constant.CommonConstant;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||||
@@ -11,13 +13,12 @@ import com.jero.modules.activiti.service.ProcessAllService;
|
|||||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
import com.jero.modules.docking.feishu.dto.InstanceDto;
|
import com.jero.modules.docking.feishu.dto.InstanceDto;
|
||||||
import com.jero.modules.docking.feishu.service.IFeiShuDockingService;
|
import com.jero.modules.docking.feishu.service.IFeiShuDockingService;
|
||||||
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
|
|
||||||
import com.jero.modules.docking.hiwork.service.ISendFeiShuService;
|
import com.jero.modules.docking.hiwork.service.ISendFeiShuService;
|
||||||
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
|
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -35,22 +36,28 @@ import java.util.Objects;
|
|||||||
@Service
|
@Service
|
||||||
public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ISysUserService sysUserService;
|
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessApprovalRecordService processApprovalRecordService;
|
private ProcessApprovalRecordService processApprovalRecordService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessAllService processAllService;
|
private ProcessAllService processAllService;
|
||||||
@Resource
|
@Resource
|
||||||
private LawsUnifiedTodoLogService unifiedTodoLogService;
|
private ISysUserService sysUserService;
|
||||||
@Resource
|
@Resource
|
||||||
private IFeiShuDockingService feiShuDockingService;
|
private IFeiShuDockingService feiShuDockingService;
|
||||||
|
@Resource
|
||||||
|
private ISysBaseAPI sysBaseAPI;
|
||||||
|
|
||||||
@Value("${feishu.isSendStatus}")
|
@Value("${feishu.isSendStatus}")
|
||||||
private boolean isSendStatus;
|
private boolean isSendStatus;
|
||||||
|
|
||||||
@Value("${feishu.redirect_prefix}")
|
@Value("${feishu.promoter_pc_link}")
|
||||||
private String redirectPrefix;
|
private String promoterPcLink;
|
||||||
|
@Value("${feishu.review_pc_link}")
|
||||||
|
private String reviewPcLink;
|
||||||
|
@Value("${feishu.promoter_mobile_link}")
|
||||||
|
private String promoterMobileLink;
|
||||||
|
@Value("${feishu.review_mobile_link}")
|
||||||
|
private String reviewMobileLink;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
@@ -66,6 +73,10 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
|||||||
if(CollectionUtils.isEmpty(unifiedTodoVOList)){
|
if(CollectionUtils.isEmpty(unifiedTodoVOList)){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
sendData(unifiedTodoVOList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendData(List<UnifiedTodoVO> unifiedTodoVOList){
|
||||||
|
|
||||||
for (UnifiedTodoVO unifiedTodoVO : unifiedTodoVOList) {
|
for (UnifiedTodoVO unifiedTodoVO : unifiedTodoVOList) {
|
||||||
ProcessApprovalRecord processApprovalRecord =
|
ProcessApprovalRecord processApprovalRecord =
|
||||||
@@ -81,21 +92,21 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
String userId;
|
String userId;
|
||||||
if (unifiedTodoVO.getToUserId() == null){
|
if (StringUtils.isEmpty(unifiedTodoVO.getToUserId())){
|
||||||
userId = processApprovalRecord.getUserId();
|
userId = processApprovalRecord.getUserId();
|
||||||
}else {
|
}else {
|
||||||
userId = unifiedTodoVO.getToUserId();
|
userId = unifiedTodoVO.getToUserId();
|
||||||
}
|
}
|
||||||
String date = DateUtil.formatDateTime(new Date());
|
String transferTaskId = processApprovalRecord.getTransferTaskId();
|
||||||
SysUser sysUser = sysUserService.getById(userId);
|
|
||||||
String noticeTitle = processApprovalRecord.getTaskName() + "(" + sysUser.getRealname() + " " + date + ")";
|
|
||||||
String taskId = processApprovalRecord.getTaskId();
|
String taskId = processApprovalRecord.getTaskId();
|
||||||
InstanceDto instanceDto = new InstanceDto();
|
InstanceDto instanceDto = new InstanceDto();
|
||||||
instanceDto.setPromoterUserId(processAll.getCreateUserId());
|
instanceDto.setPromoterUserId(processAll.getCreateUserId());
|
||||||
instanceDto.setReviewedIds(userId);
|
instanceDto.setReviewedIds(userId);
|
||||||
instanceDto.setTitle(noticeTitle);
|
String title = sysBaseAPI.translateDict("prc_type",String.valueOf(processAll.getPrcType()));
|
||||||
|
instanceDto.setTitle(title);
|
||||||
|
instanceDto.setProcessType(processAll.getPrcType());
|
||||||
instanceDto.setProcessInstanceId(processApprovalRecord.getProcessInstanceId());
|
instanceDto.setProcessInstanceId(processApprovalRecord.getProcessInstanceId());
|
||||||
instanceDto.setTaskIds(taskId);
|
instanceDto.setTaskIds(StringUtils.isBlank(transferTaskId) ? taskId : transferTaskId);
|
||||||
|
|
||||||
// PENDING: 审批中 APPROVED: 审批流程结束,结果为同意 REJECTED: 审批流程结束,结果为拒绝
|
// PENDING: 审批中 APPROVED: 审批流程结束,结果为同意 REJECTED: 审批流程结束,结果为拒绝
|
||||||
// CANCELED: 审批发起人撤回 DELETED: 审批被删除 HIDDEN: 状态隐藏(不显示状态) TERMINATED:审批终止
|
// CANCELED: 审批发起人撤回 DELETED: 审批被删除 HIDDEN: 状态隐藏(不显示状态) TERMINATED:审批终止
|
||||||
@@ -103,21 +114,23 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
|||||||
String status = "";
|
String status = "";
|
||||||
String instanceStatus = "";
|
String instanceStatus = "";
|
||||||
//PENDING:待审批 APPROVED:任务同意 REJECTED:任务拒绝 TRANSFERRED:任务转交
|
//PENDING:待审批 APPROVED:任务同意 REJECTED:任务拒绝 TRANSFERRED:任务转交
|
||||||
switch (unifiedTodoVO.getIsRemark()){
|
switch (unifiedTodoVO.getIsStatus()){
|
||||||
// 0待办,2已办,4办结
|
// 0待办,2已办,4办结
|
||||||
case CommonConstant.TODO_TYPE_0: status = instanceStatus = "PENDING"; break;
|
case CommonConstant.TODO_TYPE_0: status = instanceStatus = "PENDING";
|
||||||
|
break;
|
||||||
default: status = instanceStatus =
|
default: status = instanceStatus =
|
||||||
Objects.equals(processApprovalRecord.getCommitFlag(),
|
Objects.equals(processApprovalRecord.getCommitFlag(),
|
||||||
CommitFlagEnum.PASS.getValue()) ? "APPROVED" : "REJECTED"; break;
|
CommitFlagEnum.PASS.getValue()) ? "APPROVED" : "REJECTED";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
instanceDto.setInstanceStatus(instanceStatus);
|
instanceDto.setInstanceStatus(instanceStatus);
|
||||||
instanceDto.setTaskStatus(status);
|
instanceDto.setTaskStatus(status);
|
||||||
instanceDto.setPromoterPcLink(redirectPrefix + "/workCenter/processCenter/processCenter");
|
instanceDto.setPromoterPcLink(promoterPcLink);
|
||||||
instanceDto.setReviewPcLink(redirectPrefix + "/workCenter/processCenter/processCenter");
|
instanceDto.setReviewPcLink(reviewPcLink);
|
||||||
// todo 移动端跳转地址
|
// todo 移动端跳转地址
|
||||||
instanceDto.setPromoterMobileLink(redirectPrefix + "/workCenter/processCenter/processCenter");
|
instanceDto.setPromoterMobileLink(promoterMobileLink);
|
||||||
instanceDto.setReviewMobileLink(redirectPrefix + "/workCenter/processCenter/processCenter");
|
instanceDto.setReviewMobileLink(reviewMobileLink);
|
||||||
feiShuDockingService.synchronizeApprovalInstance(instanceDto);
|
feiShuDockingService.synchronizeApprovalInstance(instanceDto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -204,10 +204,11 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
if (StrUtil.isNotBlank(processAll.getProjectId())){
|
if (StrUtil.isNotBlank(processAll.getProjectId())){
|
||||||
projectId = processAll.getProjectId();
|
projectId = processAll.getProjectId();
|
||||||
}
|
}
|
||||||
|
String transferTaskId = processApprovalRecord.getTransferTaskId();
|
||||||
String url = hiworkFontUrl
|
String url = hiworkFontUrl
|
||||||
.replace("{projectId}",projectId)
|
.replace("{projectId}",projectId)
|
||||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||||
.replace("{taskId}", taskId)
|
.replace("{taskId}", StringUtils.isBlank(transferTaskId) ? taskId : transferTaskId)
|
||||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||||
// 跳转链接
|
// 跳转链接
|
||||||
@@ -217,7 +218,7 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
String appUrl = hiworkFontAppUrl
|
String appUrl = hiworkFontAppUrl
|
||||||
.replace("{projectId}",projectId)
|
.replace("{projectId}",projectId)
|
||||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||||
.replace("{taskId}", taskId)
|
.replace("{taskId}", StringUtils.isBlank(transferTaskId) ? taskId : transferTaskId)
|
||||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||||
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
||||||
|
|||||||
@@ -213,4 +213,12 @@ public class ProcessApprovalRecord {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "快照Id")
|
@ApiModelProperty(value = "快照Id")
|
||||||
private String snapshotId;
|
private String snapshotId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转办任务id
|
||||||
|
*/
|
||||||
|
@TableField(value = "transfer_task_id")
|
||||||
|
@ApiModelProperty(value = "转办任务id")
|
||||||
|
private String transferTaskId;
|
||||||
}
|
}
|
||||||
+10
@@ -192,6 +192,7 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
|
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
|
||||||
|
unifiedTodoVO.setIsStatus(CommonConstant.TODO_TYPE_0);
|
||||||
list.add(unifiedTodoVO);
|
list.add(unifiedTodoVO);
|
||||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||||
}
|
}
|
||||||
@@ -221,14 +222,21 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||||
|
unifiedTodoVO.setIsStatus(CommonConstant.TODO_TYPE_3);
|
||||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||||
list.add(unifiedTodoVO);
|
list.add(unifiedTodoVO);
|
||||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||||
|
|
||||||
|
//更新转办任务id
|
||||||
|
LambdaUpdateWrapper<ProcessApprovalRecord> update = new LambdaUpdateWrapper<>();
|
||||||
|
update.eq(ProcessApprovalRecord::getTaskId,taskId);
|
||||||
|
update.set(ProcessApprovalRecord::getTransferTaskId,taskId+"_"+System.currentTimeMillis());
|
||||||
|
recordService.update(update);
|
||||||
// 生成被转办人的待办
|
// 生成被转办人的待办
|
||||||
list.clear();
|
list.clear();
|
||||||
unifiedTodoVO.setToUserId(assignee);
|
unifiedTodoVO.setToUserId(assignee);
|
||||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
|
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
|
||||||
|
unifiedTodoVO.setIsStatus(CommonConstant.TODO_TYPE_0);
|
||||||
list.add(unifiedTodoVO);
|
list.add(unifiedTodoVO);
|
||||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||||
}
|
}
|
||||||
@@ -315,6 +323,7 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||||
|
unifiedTodoVO.setIsStatus(CommonConstant.TODO_TYPE_2);
|
||||||
list.add(unifiedTodoVO);
|
list.add(unifiedTodoVO);
|
||||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||||
}
|
}
|
||||||
@@ -445,6 +454,7 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||||
|
unifiedTodoVO.setIsStatus(CommonConstant.TODO_TYPE_2);
|
||||||
list.add(unifiedTodoVO);
|
list.add(unifiedTodoVO);
|
||||||
}
|
}
|
||||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||||
|
|||||||
-1
@@ -80,7 +80,6 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
|
|||||||
private SendMessageAPI sendMessageAPI;
|
private SendMessageAPI sendMessageAPI;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = JeroBootException.class)
|
|
||||||
public void startProcess(ProcessInfoVO<ProcessMarketStandardRelease> processInfoVO) {
|
public void startProcess(ProcessInfoVO<ProcessMarketStandardRelease> processInfoVO) {
|
||||||
// 验证是否已发起流程
|
// 验证是否已发起流程
|
||||||
checkProcessStatus(processInfoVO.getBusinessInfoDTO().getManifestId());
|
checkProcessStatus(processInfoVO.getBusinessInfoDTO().getManifestId());
|
||||||
|
|||||||
-1
@@ -80,7 +80,6 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
|
|||||||
private ProcessEngine processEngine;
|
private ProcessEngine processEngine;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = JeroBootException.class)
|
|
||||||
public void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
|
public void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
|
||||||
// 流程Key
|
// 流程Key
|
||||||
String processDefinitionKey = ProcessType.NEW_STANDARD_IMPORT.getProcessKey();
|
String processDefinitionKey = ProcessType.NEW_STANDARD_IMPORT.getProcessKey();
|
||||||
|
|||||||
Reference in New Issue
Block a user