泛微OA - E9 常用SQL梳理
往期精选
20 - 10 2025
第一弹:
第二弹:
第三弹:
前言
在日常办公中,我们经常遇到各种系统流程问题:流程卡住、需要查询意见、统计节点耗时等等。
在Ecology9系统的维护人员或管理员,掌握一些实用的SQL专用脚本能极大提高工作效率。本文将分享一些经过实战检验的Ecology9系统,帮您快速解决常见问题。
一、流程管理与优化
1
流程超时处理
当流程因超时卡住时,可使用以下脚本清除超时标记,使其能被重新扫描。
update workflow_currentoperator
set isprocessed = null, overtime = null
where requestid = '您的流程请求id';
注意:执行后需使用oasysadmin账号清理SQL缓存,确保变更生效。
2
查询流程所有签字意见
需要查看指定流程的全部意见记录时:
SELECT * FROM workflow_requestlog
WHERE requestid = '您的流程请求ID';
此查询能帮助管理员全面了解流程审批过程中的所有意见记录。
3
删除错误的流转意见
发现错误意见需要删除时(请先通过上述查询确认logid):
DELETE FROM workflow_requestlog
WHERE logid = '您的意见记录ID'
AND requestid = '您的流程请求ID';
重要提示:执行删除操作前务必备份相关数据,并确保条件准确性。
4
流程节点耗时分析
统计某个流程所有请求的节点操作耗时(分钟),帮助优化流程效率:
SELECT
wc.requestid AS 请求ID,
(SELECT requestname FROM workflow_requestbase wr WHERE wr.requestid = wc.requestid) AS 请求标题,
wc.nodeid AS 节点ID,
(SELECT nodename FROM workflow_nodebase WHERE id = wc.nodeid) AS 节点名称,
wc.userid AS 操作者ID,
(SELECT lastname
FROM HrmResource
WHERE id = wc.userid) AS 操作者姓名,
-- 计算耗时:操作时间 - 接收时间(转换为分钟)- 使用MySQL的TIMESTAMPDIFF函数
TIMESTAMPDIFF(MINUTE,
STR_TO_DATE(CONCAT(wc.receivedate, ' ', wc.receivetime), '%Y-%m-%d %H:%i:%s'),
CASE
WHEN wc.operatedate <> ''
THEN STR_TO_DATE(CONCAT(wc.operatedate, ' ', wc.operatetime), '%Y-%m-%d %H:%i:%s')
ELSE NOW()
END
) AS 操作耗时_分钟,
CONCAT(wc.receivedate, ' ', wc.receivetime) AS 接收时间,
CONCAT(wc.operatedate, ' ', wc.operatetime) AS 操作时间
FROM workflow_currentoperator wc
WHERE wc.workflowid = '您的流程模板ID';
5
查询某人退回的流程清单
查找特定人员退回的所有流程(logtype=3表示退回操作):
SELECT
a.requestid AS 流程ID,
a.requestname AS 流程标题,
b.remark AS 退回原因,
b.operatedate AS 操作日期
FROM workflow_requestbase a
JOIN workflow_requestlog b ON a.requestid = b.requestid
WHERE b.logtype = '3' AND b.operator = '您的人员ID';
二、人员与账号管理
1
查询主账号关联的次账号
SELECT * FROM HrmResource
WHERE accounttype = '1'
AND belongto = '主账号ID';
2
查询离职人员
SELECT lastname
FROM hrmresource
WHERE status = 5;
其中,status = 5表示离职状态。
3
统计在职人员信息
全面统计在职用户的姓名、工号、岗位及部门信息:
SELECT
t1.lastname AS 姓名,
t1.workcode AS 工号,
t1.loginid AS 登录名,
t2.jobtitlename AS 岗位名称,
t3.subcompanyname AS 所在分部,
t4.departmentname AS 所在部门
FROM HrmResource t1
LEFT JOIN HrmJobTitles t2 ON t1.jobtitle = t2.id
LEFT JOIN HrmSubCompany t3 ON t1.subcompanyid1 = t3.id
LEFT JOIN HrmDepartment t4 ON t1.departmentid = t4.id
WHERE t1.status IN (0, 1, 2, 3) -- 筛选在职人员
ORDER BY t1.id;
4
用户账号解锁
当用户因密码输入错误次数过多导致账号锁定时:
-- 步骤1:查询账号锁定状态
SELECT passwordlock, sumpasswordwrong
FROM HrmResource
WHERE loginid = '您的用户登录名';
-- 步骤2:若passwordlock=1,执行解锁
UPDATE HrmResource
SET passwordlock = 0, sumpasswordwrong = 0
WHERE loginid = '您的用户登录名';
5
管理员账号密码重置
针对MySQL数据库的管理员密码重置:
-- 密码"1"的MD5加密值
UPDATE hrmresourcemanager
SET password = 'C4CA4238A0B923820DCC509A6F75849B',
passwordlock = 0,
sumpasswordwrong = 0,
passwordlockreason = '',
salt = ''
WHERE loginid = 'sysadmin';
三、其他
1
动态获取会签领导名单
在审批流程中动态展示所有参与会签的分管领导:
SELECT * FROM workflow_requestlog
WHERE requestid = '您的流程请求ID';
0
2
表单字段映射查询
查询表单字段的数据库名与中文显示名:
SELECT * FROM workflow_requestlog
WHERE requestid = '您的流程请求ID';
1
重要操作规范
在使用以上SQL脚本时,请务必遵守以下规范:
①执行UPDATE/DELETE操作前,务必通过SELECT语句验证条件准确性,避免误操作
②重要操作前请备份相关数据表,防止数据丢失
③涉及权限变更或流程修改后,建议清理系统缓存(使用管理员账号)
④所有SQL语句需根据实际业务数据替换占位符(如[流程请求ID]等)
⑤确保操作符合系统安全规范,在专业人员指导下进行敏感操作
END
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...