审批超期办件解决办法
  1. Posts/

审批超期办件解决办法

问题背景
#

在政务审批业务中,办件在审批环节流转时,系统会根据设定的时限(LIMIT_TIME)进行监控。当办件因流程异常、环节卡顿等原因导致审批时间超过设定时限时,系统会将其标记为超期办件。超期办件会影响整体办件效率指标,需要及时处理。

本文档提供了一套完整的超期办件处理流程,涵盖从环节删除申请、数据库时限修正到数据重新推送的全过程。

处理流程概览
#

整个处理流程分为三个主要步骤:

步骤操作内容执行位置
1提交删除环节申请综合窗口(综窗)
2修改数据库时限(LIMIT_TIME数据库客户端(如 PL/SQL Developer)
3清空推送表并重新推送数据数据库客户端 + HTTP 接口调用

详细操作步骤
#

第一步:在综窗提交删除环节申请
#

进入综合窗口系统,针对超期的办件提交删除环节申请。此操作的目的是将卡住的审批环节从当前流程中移除,为后续的时限修正和数据重推创造条件。

注意:提交申请时需要准确填写办件信息,确保删除的是超期的目标环节,避免误删其他正常环节。

第二步:收集办件编号
#

删除环节申请提交成功后,将涉及超期的办件编号(RECEIVE_NUMBER)收集整理好。这些办件编号将用于后续的数据库操作和重新推送。

办件编号示例:

11152624MB156923114152023009000202604170011
11152624MB156923114152023009000202604160010

第三步:执行 SQL 更新办件时限
#

使用数据库客户端(如 PL/SQL Developer、SQL*Plus 等)连接到审批系统数据库,执行以下 SQL 语句,将超期办件的时限(LIMIT_TIME)延长一天:

UPDATE APPROVE_BUSINESS_COURSE b 
SET LIMIT_TIME = CASE 
    WHEN SEND_TIME = LAST_DAY(SEND_TIME) THEN 
        TRUNC(SEND_TIME + 1) + (SEND_TIME - TRUNC(SEND_TIME))
    ELSE 
        SEND_TIME + 1
END 
WHERE BSNUM IN ( 
    SELECT a.BSNUM 
    FROM APPROVE_BUSINESS_INDEX a 
    WHERE a.RECEIVE_NUMBER IN ( 
        -- 在此粘贴需要处理的办件编号
        '11152624MB156923114152023009000202604170011', 
        '11152624MB156923114152023009000202604160010'
    ) 
);

SQL 逻辑说明
#

条件处理方式说明
SEND_TIME = LAST_DAY(SEND_TIME)TRUNC(SEND_TIME + 1) + (SEND_TIME - TRUNC(SEND_TIME))如果发送时间为当月最后一天,先将日期加一天跳到下个月1号,再拼上原有的时分秒,避免跨月计算错误
其他情况SEND_TIME + 1普通日期直接加1天,时分秒保持不变

此 SQL 的核心逻辑是:LIMIT_TIME 在原有基础上增加24小时,从而消除超期状态。其中对月末日期做了特殊处理,确保跨月时日期计算的准确性。

执行步骤
#

  1. 将上述 SQL 复制到数据库查询窗口
  2. RECEIVE_NUMBER IN (...) 括号中粘贴需要处理的办件编号(注意编号之间用逗号分隔)
  3. 选中 SQL 并执行(F8 或点击执行按钮)
  4. 确认影响行数与实际处理的办件数量一致

第四步:清空并重新推送办件数据
#

SQL 执行成功后,需要将办件数据重新推送到审批流转系统,以确保更新后的时限生效。

4.1 清空推送数据表
#

执行以下语句清空 NMGZC_REPUSH 表:

TRUNCATE TABLE NMGZC_REPUSH;

TRUNCATE 操作不可回滚,执行前请务必确认已备份必要数据或确认不再需要表中原有数据。

4.2 插入办件编号
#

将需要重新推送的办件编号粘贴到 NMGZC_REPUSH 表的 RECEIVE_NUMBER 列中。可以通过以下方式实现:

  • 方式一(推荐):使用 SQL 插入语句批量插入
  • 方式二:使用数据库客户端工具直接编辑表数据,逐行粘贴

4.3 调用重新推送接口
#

数据准备好后,通过浏览器或 HTTP 客户端工具(如 Postman)调用重新推送接口:

http://审批地址/Inspur.Dzzw.WebApproval/web/ngmzcRePush/repush

将上述 URL 中的"审批地址"替换为实际的服务地址(向运维人员获取)。

调用成功后,系统会自动读取 NMGZC_REPUSH 表中的办件编号,将更新后的办件数据重新推送到审批流转系统。

4.4 等待执行完成
#

接口调用后,系统会在后台异步处理数据推送。等待片刻,观察推送日志或返回结果,确认所有办件均已成功推送。

第五步:验证处理结果
#

处理完成后,建议进行以下验证:

  1. 查询办件状态:在审批系统中查看原超期办件的状态,确认超期标记已消除
  2. 核对时限:检查办件的 LIMIT_TIME 是否已更新为延长后的时间
  3. 确认推送记录:查看推送日志,确认数据已成功推送至目标系统

注意事项
#

  1. SQL 执行前请确认环境:在执行 UPDATE 语句前,建议先使用 SELECT 语句确认将要修改的数据范围是否正确,避免误更新
  2. 办件编号去重:如需处理大量办件,建议先对编号进行去重,避免重复处理
  3. 接口调用频率:如需处理大量办件,建议分批调用推送接口,避免一次性推送过多数据导致系统压力过大
  4. 月末日期处理:SQL 中已对月末日期做了特殊处理,但如果遇到2月(28天/29天)等特殊月份,同样适用 LAST_DAY 函数自动识别
Weidong's Blog 伟东
Weidong’s Blog 伟东
欢迎访问我的技术博客,记录工具、踩坑、系统运维经验。