审批流(二)

本文详细解析公文审批流程,从打草稿、发起审批到公文起草、待发、待办公文、已办公文等环节,提供操作指南。通过整合数据库和界面展示,确保审批流程顺畅无阻。



一.回顾


上篇说到了一个无法确定当前节点到底轮到谁的问题.

更加完整的数据库:

checkFlow:

baseProjecct:


上篇到每个流程必定为一个发文所有,对应的就是baseProject的一行数据.

解释一下baseProject各列的含义:

checkState:当前审批到了哪个节点了,记录的是上一个完成的节点

delete:当前发文是否已经删除了

isDone:当前发文审批是不是通过了


有了baseProject的checkState,这样2个表结合起来查找,就能够找到现在应该轮到哪个节点来处理了//


二.具体的审批流怎么走

1.打草稿

2.发起审批

3.发起人:查看审批状态

审核人:查看需要自己审批的流程

4.查看已完结的审批(如果审批被完全打回了,则回到草稿状态,待发)

界面如下(泄漏一下某公司的部分OA界面应该没问题把...):


三.公文起草

增加一个project而已,具体的project有个叫做baseProjectId的外键,关系图:


这一步做了两件事:

1.往baseProject插入一条数据

2,往发文表插入一条数据,同时2个表相关联

此时baseProject字段的值:checkState=null



四.待发公文:

首先列出待发的公文,这里待发的公文有2:

1.从公文起草过来的刚起草的公文

2.审批不通过,被完全打回来的公文,这里后面再说

反正就是查找 baseProject中checkState=null的project,

所以说如果被完全打回来了,要记得把checkState设置为null,这个放后面说

发公文就是找到发文中对应的流程id,然后把一整套东西从flow拷贝到checkFlow中去(从模版复制到实际的项)



五.待办公文

这里的意思其实就是查看作为发起人,我发起的,正在审批中的发文

那么只要查看checkstate is not null 而且 isDone ! = 1的


六.已办公文

查找isDone=1的



七.待办发文


这个要求session中有个user,通过user我能够得到user的部门


checkFlow是通过部门来审批的,所以知道了部门我就能够知道哪些是轮到我该审批的项,把它们列出来.


这里的项包括:

1.正常流程往前走的

2.我同意了后,后面的人不同意,被打回来,要求我修改或者往回打的

3.我也往回打了以后,发文经修改后再次需要我审批的


列出了所有的需要处理的项,然后对当前节点进行修改.


最后需要通过baseProject的数据

如果我是第一个审批的人,我不同意了,那就要把checkState设置为null,这样发起人就能够在待发公文中看到

如果我是最后一个审批的人,我同意了,那就要把isDone设置为1




更多细节,后面再说


<think>好的,我现在需要帮用户解决关于钉钉审批ID的问题。首先,用户提到想查找与审批ID相关的技术信息或操作方法,具体是使用说明和获取方式。根据用户提供的三个引用,我需要从这些资料中提取有用的信息来构建回答。 首先看引用1,里面提到了钉钉审批回调的问题和解决方案,可能涉及审批的处理程,但不确定是否有直接关于ID的信息。不过解决方案中的代码部分可能包含获取ID的方法。引用2是关于Python获取钉钉审批数据的,其中提到了准备条件和引入库,可能详细说明了如何通过API获取审批数据,包括ID。引用3是PHP获取钉钉审批的例子,里面直接出现了ProcessCode,也就是审批的唯一标识,这可能就是用户需要的ID。在代码示例中,ProcessCode被赋值了一个具体的字符串,说明这个参数是用来指定审批模板的,用户可能需要知道如何获取这个ProcessCode。 接下来需要明确审批ID的定义。钉钉的审批ID可能指的是审批模板的唯一标识,也就是Process Code。根据引用3中的代码,审批的ID是通过ProcessCode参数传递的,用户需要在设置审批模板的URL中找到这个ID。比如在审批模板的URL中可能包含类似PROC-XXXX的字符串,这就是审批ID。 然后考虑如何获取这个ID。引用2中提到了使用Python调用钉钉API的步骤,包括准备条件如创建应用、获取access_token等。获取审批ID可能需要调用获取审批模板列表的API,比如dingtalk.oapi.process.listbyuserid,这个接口可以返回用户有权限的审批模板列表,其中每个模板都有process_code,也就是审批ID。引用3中的PHP代码也展示了如何设置ProcessCode,说明这个值需要预先获取到。 用户可能需要具体的步骤,比如登录开发者后台,创建应用,配置权限,然后调用相应的API。此外,审批模板的URL中也可能直接显示ProcessCode,用户可以直接从那里复制。例如,进入审批模板的编辑页面,URL中的参数可能包含这个ID。 还需要注意权限问题,引用的资料中都提到需要审批相关的接口权限,比如ApprovalAPI。因此,在回答中要提醒用户确保应用已经添加了这些权限,否则无法调用接口获取数据。 总结下来,回答的结构应该包括审批ID的定义、获取方式(后台查看和API调用)、代码示例(如Python和PHP)、注意事项(权限和版本)。同时根据用户提供的引用,引用3中的ProcessCode示例可以直接作为例子,引用2中的Python步骤可以作为获取方法的参考,而引用1中的解决方案可能涉及处理回调时的ID使用。 最后,生成相关问题时要围绕用户可能进一步需要的信息,比如如何调用API、如何处理回调中的ID、如何确保权限正确等。</think>关于钉钉审批ID的使用说明与获取方式,以下是技术实现层面的详细说明: ### 一、审批ID的定义 钉钉审批ID(ProcessCode)是每个审批模板的唯一标识符,格式为`PROC-XXXX-XXXX-XXXX`[^3],用于通过API操作特定审批程。 ### 、获取方式 #### 1. 开发者后台直接查看 在审批模板的编辑URL中,参数包含ProcessCode: ``` https://oa.dingtalk.com/process/approval/update.htm?processCode=PROC-13AFD98D-97F7-4793-8C5D-E612B750BBBC ``` 此处`processCode=`后的字符串即为审批ID[^3]。 #### 2. 通过API获取 调用`dingtalk.oapi.process.listbyuserid`接口获取用户可见的审批模板列表: ```python # Python示例(需安装dingtalk SDK) from dingtalk.client.api import AttendanceApi, SmartworkApi client = SmartworkApi(access_token='your_token') response = client.dingtalk_oapi_process_listbyuserid( userid='manager123', offset=0, size=50 ) print(response.process_list) # 输出包含process_code字段[^2] ``` ### 三、代码调用示例 PHP设置审批ID的案例: ```php $request = new DingTalkRequest(); $request->method = 'dingtalk.smartwork.bpms.processinstance.create'; $request->ProcessCode = "PROC-13AFD98D-97F7-4793-8C5D-E612B750BBBC"; // 审批ID ``` ### 四、注意事项 1. **接口权限**:需在开发者后台添加"审批API"权限 2. **版本要求**:企业需开通专业版才可使用高级审批功能 3. **数据安全**:审批ID属于敏感信息,需按ISV安全规范存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值