From 56cad570a5d652988ff8af9cb4a1f1eb58f9d06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 2 Aug 2024 15:01:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E4=B9=A6=E6=8E=A8=E9=80=81=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E4=B8=8D=E6=8E=A8=E9=80=81=E5=8F=91=E8=B5=B7=E8=8A=82?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LawsUnifiedTodoLogServiceImpl.java | 6 +++++ .../service/impl/SendFeiShuServiceImpl.java | 27 ++++++++++++++++--- .../service/impl/UnifiedTodoServiceImpl.java | 7 ++--- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java index 7b3565ee..8119b2a6 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java @@ -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 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("操作成功"); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java index b4aac60e..081db2cb 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java @@ -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 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 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 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); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java index 9b995f38..55db0453 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java @@ -107,9 +107,10 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI { } try { List 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())){