飞书推送待办不推送发起节点
This commit is contained in:
+6
@@ -11,16 +11,19 @@ import com.jero.common.api.PushWorkflowIntegrationAPI;
|
|||||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.system.query.QueryGenerator;
|
import com.jero.common.system.query.QueryGenerator;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
import com.jero.modules.docking.feishu.dto.BotMessageDto;
|
import com.jero.modules.docking.feishu.dto.BotMessageDto;
|
||||||
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.entity.LawsUnifiedTodoLog;
|
||||||
import com.jero.modules.docking.hiwork.mapper.LawsUnifiedTodoLogMapper;
|
import com.jero.modules.docking.hiwork.mapper.LawsUnifiedTodoLogMapper;
|
||||||
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
|
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -89,9 +92,12 @@ public class LawsUnifiedTodoLogServiceImpl extends ServiceImpl<LawsUnifiedTodoLo
|
|||||||
BotMessageDto botMessageDto = JSON.parseObject(jsonStr, BotMessageDto.class);
|
BotMessageDto botMessageDto = JSON.parseObject(jsonStr, BotMessageDto.class);
|
||||||
feiShuDockingService.sendHrefMessageByBot(botMessageDto);
|
feiShuDockingService.sendHrefMessageByBot(botMessageDto);
|
||||||
}
|
}
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
LambdaUpdateWrapper<LawsUnifiedTodoLog> queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<LawsUnifiedTodoLog> queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>();
|
||||||
queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId());
|
queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId());
|
||||||
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1);
|
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1);
|
||||||
|
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getCreateBy,sysUser.getUsername());
|
||||||
|
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getUpdateTime,new Date());
|
||||||
update(queryLawsUnifiedTodoLog);
|
update(queryLawsUnifiedTodoLog);
|
||||||
return Result.OK("操作成功");
|
return Result.OK("操作成功");
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-3
@@ -8,9 +8,11 @@ import com.jero.common.exception.JeroBootException;
|
|||||||
import com.jero.common.system.api.ISysBaseAPI;
|
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.entity.ProcessNode;
|
||||||
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
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.activiti.service.ProcessNodeService;
|
||||||
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.service.ISendFeiShuService;
|
import com.jero.modules.docking.hiwork.service.ISendFeiShuService;
|
||||||
@@ -45,6 +47,8 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
|||||||
private ISysUserService sysUserService;
|
private ISysUserService sysUserService;
|
||||||
@Resource
|
@Resource
|
||||||
private IFeiShuDockingService feiShuDockingService;
|
private IFeiShuDockingService feiShuDockingService;
|
||||||
|
@Resource
|
||||||
|
private ProcessNodeService processNodeService;
|
||||||
|
|
||||||
@Value("${feishu.isSendStatus}")
|
@Value("${feishu.isSendStatus}")
|
||||||
private boolean isSendStatus;
|
private boolean isSendStatus;
|
||||||
@@ -81,15 +85,33 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
|||||||
ProcessApprovalRecord processApprovalRecord =
|
ProcessApprovalRecord processApprovalRecord =
|
||||||
processApprovalRecordService.getById(unifiedTodoVO.getRecordId());
|
processApprovalRecordService.getById(unifiedTodoVO.getRecordId());
|
||||||
if(Objects.isNull(processApprovalRecord)){
|
if(Objects.isNull(processApprovalRecord)){
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
||||||
queryProcessAll.eq(ProcessAll::getProcessDefinitionId,unifiedTodoVO.getProcessDefinitionId());
|
queryProcessAll.eq(ProcessAll::getProcessDefinitionId,unifiedTodoVO.getProcessDefinitionId());
|
||||||
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
||||||
ProcessAll processAll = processAllService.getOne(queryProcessAll,false);
|
ProcessAll processAll = processAllService.getOne(queryProcessAll,false);
|
||||||
if(Objects.isNull(processAll)){
|
if(Objects.isNull(processAll)){
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
|
// 验证是否为发起节点 && 没有退回操作
|
||||||
|
LambdaQueryWrapper<ProcessNode> queryProcessNode = new LambdaQueryWrapper<>();
|
||||||
|
queryProcessNode.eq(ProcessNode::getProcessDefinitionId,unifiedTodoVO.getProcessDefinitionId());
|
||||||
|
queryProcessNode.orderByAsc(ProcessNode::getSort);
|
||||||
|
queryProcessNode.select(ProcessNode::getXmlNodeId);
|
||||||
|
queryProcessNode.last(" limit 1");
|
||||||
|
ProcessNode processNode = processNodeService.getOne(queryProcessNode,false);
|
||||||
|
if(Objects.isNull(processNode)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
LambdaQueryWrapper<ProcessApprovalRecord> queryProcessApprovalRecord = new LambdaQueryWrapper<>();
|
||||||
|
queryProcessApprovalRecord.eq(ProcessApprovalRecord::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
||||||
|
queryProcessApprovalRecord.eq(ProcessApprovalRecord::getNodeId,processApprovalRecord.getNodeId());
|
||||||
|
long l = processApprovalRecordService.count(queryProcessApprovalRecord);
|
||||||
|
if(l == 1 && Objects.equals(processApprovalRecord.getNodeId(),processNode.getXmlNodeId())){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
String userId;
|
String userId;
|
||||||
if (StringUtils.isEmpty(unifiedTodoVO.getToUserId())){
|
if (StringUtils.isEmpty(unifiedTodoVO.getToUserId())){
|
||||||
userId = processApprovalRecord.getUserId();
|
userId = processApprovalRecord.getUserId();
|
||||||
@@ -129,7 +151,6 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
|||||||
instanceDto.setTaskStatus(status);
|
instanceDto.setTaskStatus(status);
|
||||||
instanceDto.setPromoterPcLink(promoterPcLink);
|
instanceDto.setPromoterPcLink(promoterPcLink);
|
||||||
instanceDto.setReviewPcLink(reviewPcLink);
|
instanceDto.setReviewPcLink(reviewPcLink);
|
||||||
// todo 移动端跳转地址
|
|
||||||
instanceDto.setPromoterMobileLink(promoterMobileLink);
|
instanceDto.setPromoterMobileLink(promoterMobileLink);
|
||||||
instanceDto.setReviewMobileLink(reviewMobileLink);
|
instanceDto.setReviewMobileLink(reviewMobileLink);
|
||||||
feiShuDockingService.synchronizeApprovalInstance(instanceDto);
|
feiShuDockingService.synchronizeApprovalInstance(instanceDto);
|
||||||
|
|||||||
+4
-3
@@ -107,9 +107,10 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
List<UnifiedTodo> unifiedTodoList = getHiworkTodos(unifiedTodoVOList);
|
List<UnifiedTodo> unifiedTodoList = getHiworkTodos(unifiedTodoVOList);
|
||||||
|
String reqJsonString = JSONObject.toJSONString(unifiedTodoVOList);
|
||||||
String jsonString = JSONObject.toJSONString(unifiedTodoList);
|
String jsonString = JSONObject.toJSONString(unifiedTodoList);
|
||||||
log.info("统一待办推送入参" + jsonString);
|
log.info("统一待办推送入参" + jsonString);
|
||||||
push(ip + todoUrl,jsonString, unifiedTodoList.get(0).getRequestname());
|
push(ip + todoUrl,jsonString,reqJsonString, unifiedTodoList.get(0).getRequestname());
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("统一待办推送异常",e);
|
log.error("统一待办推送异常",e);
|
||||||
}
|
}
|
||||||
@@ -121,7 +122,7 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
sendFeiShuService.sendTodoTask(unifiedTodoVOList);
|
sendFeiShuService.sendTodoTask(unifiedTodoVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void push(String url, String jsonString, String title) {
|
private void push(String url, String jsonString,String reqJsonString, String title) {
|
||||||
// 设置最大重试次数
|
// 设置最大重试次数
|
||||||
int maxRetries = 3;
|
int maxRetries = 3;
|
||||||
// 当前重试次数
|
// 当前重试次数
|
||||||
@@ -168,7 +169,7 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
lawsUnifiedTodoLog.setUrl(url);
|
lawsUnifiedTodoLog.setUrl(url);
|
||||||
lawsUnifiedTodoLog.setJsonStr(jsonString);
|
lawsUnifiedTodoLog.setJsonStr(reqJsonString);
|
||||||
lawsUnifiedTodoLog.setMessageType(1);
|
lawsUnifiedTodoLog.setMessageType(1);
|
||||||
lawsUnifiedTodoLog.setTitle(title);
|
lawsUnifiedTodoLog.setTitle(title);
|
||||||
if(Objects.isNull(lawsUnifiedTodoLog.getState())){
|
if(Objects.isNull(lawsUnifiedTodoLog.getState())){
|
||||||
|
|||||||
Reference in New Issue
Block a user