飞书推送待办不推送发起节点
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.vo.Result;
|
||||
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.InstanceDto;
|
||||
import com.jero.modules.docking.feishu.service.IFeiShuDockingService;
|
||||
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
|
||||
import com.jero.modules.docking.hiwork.mapper.LawsUnifiedTodoLogMapper;
|
||||
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -89,9 +92,12 @@ public class LawsUnifiedTodoLogServiceImpl extends ServiceImpl<LawsUnifiedTodoLo
|
||||
BotMessageDto botMessageDto = JSON.parseObject(jsonStr, BotMessageDto.class);
|
||||
feiShuDockingService.sendHrefMessageByBot(botMessageDto);
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaUpdateWrapper<LawsUnifiedTodoLog> queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>();
|
||||
queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId());
|
||||
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1);
|
||||
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getCreateBy,sysUser.getUsername());
|
||||
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getUpdateTime,new Date());
|
||||
update(queryLawsUnifiedTodoLog);
|
||||
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.modules.activiti.entity.ProcessAll;
|
||||
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.service.ProcessAllService;
|
||||
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.service.IFeiShuDockingService;
|
||||
import com.jero.modules.docking.hiwork.service.ISendFeiShuService;
|
||||
@@ -45,6 +47,8 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
||||
private ISysUserService sysUserService;
|
||||
@Resource
|
||||
private IFeiShuDockingService feiShuDockingService;
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
|
||||
@Value("${feishu.isSendStatus}")
|
||||
private boolean isSendStatus;
|
||||
@@ -81,15 +85,33 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
||||
ProcessApprovalRecord processApprovalRecord =
|
||||
processApprovalRecordService.getById(unifiedTodoVO.getRecordId());
|
||||
if(Objects.isNull(processApprovalRecord)){
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
||||
queryProcessAll.eq(ProcessAll::getProcessDefinitionId,unifiedTodoVO.getProcessDefinitionId());
|
||||
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
||||
ProcessAll processAll = processAllService.getOne(queryProcessAll,false);
|
||||
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;
|
||||
if (StringUtils.isEmpty(unifiedTodoVO.getToUserId())){
|
||||
userId = processApprovalRecord.getUserId();
|
||||
@@ -129,7 +151,6 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService {
|
||||
instanceDto.setTaskStatus(status);
|
||||
instanceDto.setPromoterPcLink(promoterPcLink);
|
||||
instanceDto.setReviewPcLink(reviewPcLink);
|
||||
// todo 移动端跳转地址
|
||||
instanceDto.setPromoterMobileLink(promoterMobileLink);
|
||||
instanceDto.setReviewMobileLink(reviewMobileLink);
|
||||
feiShuDockingService.synchronizeApprovalInstance(instanceDto);
|
||||
|
||||
+4
-3
@@ -107,9 +107,10 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
||||
}
|
||||
try {
|
||||
List<UnifiedTodo> unifiedTodoList = getHiworkTodos(unifiedTodoVOList);
|
||||
String reqJsonString = JSONObject.toJSONString(unifiedTodoVOList);
|
||||
String jsonString = JSONObject.toJSONString(unifiedTodoList);
|
||||
log.info("统一待办推送入参" + jsonString);
|
||||
push(ip + todoUrl,jsonString, unifiedTodoList.get(0).getRequestname());
|
||||
push(ip + todoUrl,jsonString,reqJsonString, unifiedTodoList.get(0).getRequestname());
|
||||
}catch (Exception e){
|
||||
log.error("统一待办推送异常",e);
|
||||
}
|
||||
@@ -121,7 +122,7 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
||||
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;
|
||||
// 当前重试次数
|
||||
@@ -168,7 +169,7 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
||||
}
|
||||
}
|
||||
lawsUnifiedTodoLog.setUrl(url);
|
||||
lawsUnifiedTodoLog.setJsonStr(jsonString);
|
||||
lawsUnifiedTodoLog.setJsonStr(reqJsonString);
|
||||
lawsUnifiedTodoLog.setMessageType(1);
|
||||
lawsUnifiedTodoLog.setTitle(title);
|
||||
if(Objects.isNull(lawsUnifiedTodoLog.getState())){
|
||||
|
||||
Reference in New Issue
Block a user