逻辑
根据IS_SPLIT判断是否已经拆分,是执行步骤2,否则执行步骤5;
根据ALLOCATION_SCHEME判断,<br>是NULL则为立项流程办结,执行步骤3,否则为通知流程办结,执行步骤4;
比较督办通知类型INFORM_TYPE,为0(目前只有这种情况),<br>使用督办转通知类型转换,设置为标准拆分,执行步骤5;
比较ALLOCATION_SCHEME
1(接收),无需处理
2(转主办部门处理),立项转通知,重新设置督办责任人,承办人电话
3(任务下发),立项转通知,标准拆分
4(任务分解),立项转通知,子项目拆分
5(部门内多人处理),通知转通知
6(部门内处理),通知转通知
任务拆分<br>send<br>
获取转换规则
根据拆分规则获取督办数据
标准拆分
select * from g_db where ID = '主键';
子项目拆分
select * from g_db where RELATIONID = '主键';
根据承办方式分别处理
按单位承办<br>splitByDept<br>
1、遍历督办数据
2、根据','拆分主办单位
3、转换前获取转换时公式需要的数据<br>beforeConvert->expressionExpand->getConvertDic<br>
根据单位查询首个督办专员角色作为督办责任人
该单位作为督办责任单位信息
立项信息中主办、协办单位作为通知中承办单位
4、类型转换,获取通知主键<br>doRcvModuleConvert
5、如果是子任务分解,设置通知的FID=立项ID,并生成反馈周期
6、如果主办单位只有一个并且有协办单位则进行次级拆分,过程同一级拆分
按人承办<br>splitByPerson<br>
主流程与按单位拆分一致,区别是类型转换前准备数据<br>beforeConvertPerson->expressionExpandPerson->getConvertDicByPerson<br>
承办人作为督办责任人
承办人所在单位作为承办单位
退回处理
更新督办红绿灯状态<br>renderTrafficLight<br>
详情见下面单独模块
生成首个反馈周期
一次性任务<br>generateIrregularPeriodical<br>
周期性任务<br>generateFirstPeriodical<br>
刷新督办立项红绿灯状态<br>refreshApprovalTrafficLight<br>