feat(biz): 新增风险隐患待办取消功能- 在 IPortalTodoService 接口中新增 pushCancelRiskHazardWorkflow 方法

- 在 PortalTodoController 中新增 DELETE 接口用于取消待办推送
- 在 PortalTodoServiceImpl 中实现待办取消逻辑,包括参数构建与异常处理
- 引入 DeleteRequestInfoDTO用于封装删除请求参数
- 对接 PortalRequest 删除接口,实现待办信息的取消推送- 增加对风险隐患数据存在性和 PortalRequest 配置的校验逻辑
This commit is contained in:
2025-10-21 15:44:29 +08:00
parent 3029f8f2de
commit 07b9e113ad
3 changed files with 45 additions and 2 deletions

View File

@@ -39,4 +39,16 @@ public class PortalTodoController extends BaseController {
return CommonResult.success(portalTodoService.pushDoneRiskHazardWorkflow(workflowId));
}
/**
* 风险隐患推送待办取消
*
* @param workflowId 待办id
* @return boolean 推送结果
*/
@Operation(summary = "风险隐患推送待办取消")
@RequestMapping(value = "/risk-hazard/{workflowId}", method = RequestMethod.DELETE)
public CommonResult<Boolean> pushCancelRiskHazardWorkflow(@PathVariable("workflowId") Long workflowId) {
return CommonResult.success(portalTodoService.pushCancelRiskHazardWorkflow(workflowId));
}
}

View File

@@ -10,9 +10,17 @@ public interface IPortalTodoService {
/**
* 风险隐患推送待办完成
*
* @param workflowId 流程id
* @param id 流程id
* @return boolean 推送结果
*/
boolean pushDoneRiskHazardWorkflow(Long workflowId);
boolean pushDoneRiskHazardWorkflow(Long id);
/**
* 风险隐患推送待办取消
*
* @param id 待办id
* @return boolean 推送结果
*/
boolean pushCancelRiskHazardWorkflow(Long id);
}

View File

@@ -9,6 +9,7 @@ import com.jeelowcode.framework.utils.tool.spring.SpringUtils;
import com.jeelowcode.module.biz.service.IPortalTodoService;
import com.jeelowcode.module.biz.service.IRiskService;
import com.jeelowcode.service.bpm.config.framework.portal.core.PortalRequest;
import com.jeelowcode.service.bpm.config.framework.portal.core.dto.DeleteRequestInfoDTO;
import com.jeelowcode.service.bpm.config.framework.portal.core.dto.ReceiveRequestInfoDTO;
import com.jeelowcode.service.system.api.IApiAdminUserApi;
import com.jeelowcode.service.system.dto.AdminUserRespDTO;
@@ -109,4 +110,26 @@ public class PortalTodoServiceImpl implements IPortalTodoService {
return true;
}
@Override
public boolean pushCancelRiskHazardWorkflow(Long id) {
// 0.1.查找风险隐患数据,如果查不到则放弃推送
Map<String, Object> risk = riskService.getRiskById(id);
if (MapUtil.isEmpty(risk)) return false;
// 0.2.从容器中获取 PortalRequest 对象,如果没有配置则放弃通知
PortalRequest portalRequest = SpringUtils.getBean(PortalRequest.class);
if (ObjectUtil.isNull(portalRequest)) return false;
// 1.构建请求参数,准备推送待办信息
DeleteRequestInfoDTO deleteRequestInfoDTO = new DeleteRequestInfoDTO()
.setFlowId(Base64.encode(String.valueOf(id)));
// 2.推送待办信息使用try-catch避免影响上层调用方法的事务回滚
try {
portalRequest.deleteRequestInfo(deleteRequestInfoDTO);
} catch (Exception e) {
log.error("删除待办信息失败", e);
return false;
}
return true;
}
}