1、 需求及效果
1.1 需求
想要查看U8的审批流程,查看流程在哪个节点或人停留的时间,这个单据整个流程走下来需要的时间。可以更加直观方便的查看审批效率
1.2 效果
采用了SSRS上面的明细表折叠,点击+可以进行展开
2、 思路及SQL语句
1、在U8数据库中审批相关的表有WFAudit和Table_Task。根据这两张表中的内容观察,可以从Table_Task中取待审批的消息,从WFAudit中取其他的内容
2、VoucherType的含义: 01为销售发货单、0301为其他入库单、0302为其他出库单、0304为调拨单、0305为形态转换单、0324为调拨申请单、0412为材料出库单、17为销售订单、24为采购入库单、26为采购到货单、27为请购单、88为采购订单、AP40为应付付款申请单、BO11为物料清单、BO19为委外商物料清单、MO21为生产订单、om01为委外订单、OM26为委外到货单、PU01为供应商资格审批表、pu03为供应商存货调价单、SA19为客户调价单、SR01为服务单、U870_0003为存货申请
3、Action审批动作的意义:0为提交,1为批准,3为转签,5为撤销,6为不同意(可以退回给任何人),7为弃审,8为重新提交,11为会签给谁、12为会签同意、13为会签不同意
4、有MessageId代表的是在提交人节点
5、Table_Task表中creatime和endtime相同为待操作
6、流程状态、制单人、制单时间、当前审批人需要关联以上23种单据类型(通过单据编号进行关联)
7、VoucherCode一样代表是一个完整的审批过程
/*
U8审批效率
VoucherCode是工单
1.VoucherType的含义: 01为销售发货单、0301为其他入库单、0302为其他出库单、0304为调拨单、0305为形态转换单、0324为调拨申请单
0412为材料出库单、17为销售订单、24为采购入库单、26为采购到货单、27为请购单、88为采购订单、AP40为应付付款申请单
BO11为物料清单、BO19为委外商物料清单、MO21为生产订单、om01为委外订单、OM26为委外到货单、PU01为供应商资格审批表
pu03为供应商存货调价单、SA19为客户调价单、SR01为服务单、U870_0003为存货申请
2.Action审批动作0、1、3、5、6、7、8、11、12、13
0为提交,1为批准,3为转签,5为撤销,6为不同意(可以退回给任何人),7为弃审,8为重新提交,11为会签给谁、12为会签同意、13为会签不同意
会签给别人,是需要会签的人同意才能进入下一步,转签和会签有来源和来自哪里
有MessageId代表的是在提交人节点
关联各个单子对应的iverifystateex:-1是终审不同意,0是未提交,1是已提交,2是终审同意(终审同意就是归档)
3.VoucherCode一样代表是一个完整的审批过程,order by时间则为具体的时间
4.table_task中creatime和endtime相同为待操作
5.cMaker制单人.dcreatesytime制单时间,cCurrentAuditor当前审批人
*/
SELECT * FROM (
SELECT *,
DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) AS 流程总耗时,
CASE
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 0 AND 1440 THEN '1天之内'
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 1441 AND 4320 THEN '2-3天'
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 4321 AND 10080 THEN '4-7天'
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 10081 AND 20160 THEN '8-14天'
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 20161 AND 43200 THEN '15-30天'
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 43201 AND 86400 THEN '31-60天'
WHEN DATEDIFF(MINUTE, MIN(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号),
MAX(节点操作时间) OVER (PARTITION BY 单据类型, 单据编号)) BETWEEN 86401 AND 129600 THEN '61-90天'
ELSE '90天以上'
END AS 总耗时标识
FROM(
SELECT DISTINCT * FROM(
SELECT
CASE WHEN VoucherType='01' THEN '销售发货单'
WHEN VoucherType='0301' THEN '其他入库单'
WHEN VoucherType='0302' THEN '其他出库单'
WHEN VoucherType='0304' THEN '调拨单'
WHEN VoucherType='0305' THEN '形态转换单'
WHEN VoucherType='0324' THEN '调拨申请单'
WHEN VoucherType='0412' THEN '材料出库单'
WHEN VoucherType='17' THEN '销售订单'
WHEN VoucherType='24' THEN '采购入库单'
WHEN VoucherType='26' THEN '采购到货单'
WHEN VoucherType='27' THEN '请购单'
WHEN VoucherType='88' THEN '采购订单'
WHEN VoucherType='AP40' THEN '应付付款申请单'
WHEN VoucherType='BO11' THEN '物料清单'
WHEN VoucherType='BO19' THEN '委外商物料清单'
WHEN VoucherType='MO21' THEN '生产订单'
WHEN VoucherType='om01' THEN '委外订单'
WHEN VoucherType='OM26' THEN '委外到货单'
WHEN VoucherType='PU01' THEN '供应商资格审批表'
WHEN VoucherType='pu03' THEN '供应商存货调价单'
WHEN VoucherType='SA19' THEN '客户调价单'
WHEN VoucherType='SR01' THEN '服务单'
WHEN VoucherType='U870_0003' THEN '存货申请'
END AS 单据类型,
Vouchercode AS 单据编号,
OperatorName AS 节点操作人,
--操作类型
--0为提交,1为批准,3为转签,5为撤销,6为不同意(可以退回给任何人),7为弃审,8为重新提交,11为会签给谁、12为会签同意、13为会签不同意
CASE WHEN Action='0' THEN '提交'
WHEN Action='1' THEN '同意'
WHEN Action='3' THEN '转签'
WHEN Action='5' THEN '撤销'
WHEN Action='6' THEN '不同意'
WHEN Action='7' THEN '弃审'
WHEN Action='8' THEN '重新提交'
WHEN Action='11' THEN '会签'
WHEN Action='12' THEN '会签同意'
WHEN Action='13' THEN '会签不同意'
END AS 操作类型,
-- 使用LAG函数获取同一张单子的上一个审批操作时间
LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS 接收时间,
OperationDate AS 节点操作时间,
DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) AS 节点耗时,
dbo.CONCAT_ALL_6(
(CONVERT(NVARCHAR(10),(DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(COALESCE(OperationDate, GETDATE()) AS DATETIME) ))) / 1440), '天',
(CONVERT(NVARCHAR(10),((DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(COALESCE(OperationDate, GETDATE()) AS DATETIME) ))) % 1440) / 60),'小时',
(CONVERT(NVARCHAR(10),((DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(COALESCE(OperationDate, GETDATE()) AS DATETIME) ))))% 60) ,'分钟') AS 操作时长,
CASE
WHEN Action<>'0' THEN
CASE
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 0 AND 1440 THEN '1天之内'
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 1441 AND 4320 THEN '2-3天'
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 4321 AND 10080 THEN '4-7天'
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 10081 AND 20160 THEN '8-14天'
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 20161 AND 43200 THEN '15-30天'
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 43201 AND 86400 THEN '31-60天'
WHEN DATEDIFF(MINUTE, CAST(LAG(OperationDate) OVER (PARTITION BY VoucherType, VoucherCode ORDER BY OperationDate) AS DATETIME),
CAST(OperationDate AS DATETIME) ) BETWEEN 86401 AND 129600 THEN '61-90天'
ELSE '90天以上'
END
END AS 标识,
--是否归档,需要关联所有的表
--iverifystat:-1是终审不同意,0是未提交,1是已提交,2是终审结束
CASE
--A为销售发货单
WHEN dbo.WFAudit.VoucherType ='01' THEN
CASE WHEN A.iverifystate='-1' THEN '终审不同意'
WHEN A.iverifystate='0' THEN '未提交'
WHEN A.iverifystate='1' THEN '已提交'
WHEN A.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--B为其他入库单
WHEN dbo.WFAudit.VoucherType='0301' THEN
CASE WHEN B.iverifystate='-1' THEN '终审不同意'
WHEN B.iverifystate='0' THEN '未提交'
WHEN B.iverifystate='1' THEN '已提交'
WHEN B.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--C为其他出库单
WHEN WFAudit.VoucherType='0302' THEN
CASE WHEN C.iverifystate='-1' THEN '终审不同意'
WHEN C.iverifystate='0' THEN '未提交'
WHEN C.iverifystate='1' THEN '已提交'
WHEN C.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN WFAudit.VoucherType='0304' THEN
CASE WHEN D.iverifystate='-1' THEN '终审不同意'
WHEN D.iverifystate='0' THEN '未提交'
WHEN D.iverifystate='1' THEN '已提交'
WHEN D.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0305关联形态转换单AssemVouch
WHEN dbo.WFAudit.VoucherType='0305' THEN
CASE WHEN E.iverifystate='-1' THEN '终审不同意'
WHEN E.iverifystate='0' THEN '未提交'
WHEN E.iverifystate='1' THEN '已提交'
WHEN E.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN dbo.WFAudit.VoucherType='0324' THEN
CASE WHEN F.iverifystate='-1' THEN '终审不同意'
WHEN F.iverifystate='0' THEN '未提交'
WHEN F.iverifystate='1' THEN '已提交'
WHEN F.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0412关联材料出库单rdrecord11
WHEN dbo.WFAudit.VoucherType='0412' THEN
CASE WHEN G.iverifystate='-1' THEN '终审不同意'
WHEN G.iverifystate='0' THEN '未提交'
WHEN G.iverifystate='1' THEN '已提交'
WHEN G.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=17关联销售订单SO_SOMain
WHEN dbo.WFAudit.VoucherType='17' THEN
CASE WHEN H.iverifystate='-1' THEN '终审不同意'
WHEN H.iverifystate='0' THEN '未提交'
WHEN H.iverifystate='1' THEN '已提交'
WHEN H.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=24关联采购入库单RdRecord01
WHEN dbo.WFAudit.VoucherType='24' THEN
CASE WHEN I.iverifystate='-1' THEN '终审不同意'
WHEN I.iverifystate='0' THEN '未提交'
WHEN I.iverifystate='1' THEN '已提交'
WHEN I.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='26' THEN
CASE WHEN J.iverifystateex='-1' THEN '终审不同意'
WHEN J.iverifystateex='0' THEN '未提交'
WHEN J.iverifystateex='1' THEN '已提交'
WHEN J.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='OM26' THEN
CASE WHEN J.iverifystateex='-1' THEN '终审不同意'
WHEN J.iverifystateex='0' THEN '未提交'
WHEN J.iverifystateex='1' THEN '已提交'
WHEN J.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=27关联请购单PU_AppVouch
WHEN dbo.WFAudit.VoucherType='27' THEN
CASE WHEN K.iverifystateex='-1' THEN '终审不同意'
WHEN K.iverifystateex='0' THEN '未提交'
WHEN K.iverifystateex='1' THEN '已提交'
WHEN K.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=88关联采购订单PO_Pomain
WHEN dbo.WFAudit.VoucherType='88' THEN
CASE WHEN L.iverifystateex='-1' THEN '终审不同意'
WHEN L.iverifystateex='0' THEN '未提交'
WHEN L.iverifystateex='1' THEN '已提交'
WHEN L.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN dbo.WFAudit.VoucherType='AP40' THEN
CASE WHEN M.iverifystate='-1' THEN '终审不同意'
WHEN M.iverifystate='0' THEN '未提交'
WHEN M.iverifystate='1' THEN '已提交'
WHEN M.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=BO11关联物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO11' THEN
CASE WHEN N.iVerifyState='-1' THEN '终审不同意'
WHEN N.iVerifyState='0' THEN '未提交'
WHEN N.iVerifyState='1' THEN '已提交'
WHEN N.iVerifyState='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO19' THEN
CASE WHEN N.iVerifyState='-1' THEN '终审不同意'
WHEN N.iVerifyState='0' THEN '未提交'
WHEN N.iVerifyState='1' THEN '已提交'
WHEN N.iVerifyState='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN dbo.WFAudit.VoucherType='MO21' THEN
CASE WHEN O.iVerifyState='-1' THEN '终审不同意'
WHEN O.iVerifyState='0' THEN '未提交'
WHEN O.iVerifyState='1' THEN '已提交'
WHEN O.iVerifyState='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=om01关联委外订单OM_MOMain
WHEN dbo.WFAudit.VoucherType='om01' THEN
CASE WHEN P.iVerifyStateNew='-1' THEN '终审不同意'
WHEN P.iVerifyStateNew='0' THEN '未提交'
WHEN P.iVerifyStateNew='1' THEN '已提交'
WHEN P.iVerifyStateNew='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=PU01关联供应商资格审批表pu_vendorverify
WHEN dbo.WFAudit.VoucherType='PU01' THEN
CASE WHEN Q.iverifystate='-1' THEN '终审不同意'
WHEN Q.iverifystate='0' THEN '未提交'
WHEN Q.iverifystate='1' THEN '已提交'
WHEN Q.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN dbo.WFAudit.VoucherType='pu03' THEN
CASE WHEN R.iverifystate='-1' THEN '终审不同意'
WHEN R.iverifystate='0' THEN '未提交'
WHEN R.iverifystate='1' THEN '已提交'
WHEN R.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN dbo.WFAudit.VoucherType='SA19' THEN
CASE WHEN S.iverifystate='-1' THEN '终审不同意'
WHEN S.iverifystate='0' THEN '未提交'
WHEN S.iverifystate='1' THEN '已提交'
WHEN S.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN dbo.WFAudit.VoucherType='SR01' THEN
CASE WHEN T.iverifystateex='-1' THEN '终审不同意'
WHEN T.iverifystateex='0' THEN '未提交'
WHEN T.iverifystateex='1' THEN '已提交'
WHEN T.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN dbo.WFAudit.VoucherType='U870_0003' THEN
CASE WHEN U.iverifystate='-1' THEN '终审不同意'
WHEN U.iverifystate='0' THEN '未提交'
WHEN U.iverifystate='1' THEN '已提交'
WHEN U.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
END AS 流程状态,
CASE
--A为销售发货单
WHEN dbo.WFAudit.VoucherType ='01' THEN
A.cMaker
--B为其他入库单
WHEN dbo.WFAudit.VoucherType='0301' THEN
B.cMaker
--C为其他出库单
WHEN WFAudit.VoucherType='0302' THEN
C.cMaker
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN WFAudit.VoucherType='0304' THEN
D.cMaker
--VoucherType=0305关联形态转换单AssemVouch
WHEN dbo.WFAudit.VoucherType='0305' THEN
E.cMaker
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN dbo.WFAudit.VoucherType='0324' THEN
F.cMaker
--VoucherType=0412关联材料出库单rdrecord11
WHEN dbo.WFAudit.VoucherType='0412' THEN
G.cMaker
--VoucherType=17关联销售订单SO_SOMain
WHEN dbo.WFAudit.VoucherType='17' THEN
H.cMaker
--VoucherType=24关联采购入库单RdRecord01
WHEN dbo.WFAudit.VoucherType='24' THEN
I.cMaker
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='26' THEN
J.cMaker
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='OM26' THEN
J.cMaker
--VoucherType=27关联请购单PU_AppVouch
WHEN dbo.WFAudit.VoucherType='27' THEN
K.cMaker
--VoucherType=88关联采购订单PO_Pomain
WHEN dbo.WFAudit.VoucherType='88' THEN
L.cMaker
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN dbo.WFAudit.VoucherType='AP40' THEN
M.cOperator
--VoucherType=BO11关联物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO11' THEN
N.CreateUser
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO19' THEN
N.CreateUser
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN dbo.WFAudit.VoucherType='MO21' THEN
O.CreateUser
--VoucherType=om01关联委外订单OM_MOMain
WHEN dbo.WFAudit.VoucherType='om01' THEN
P.cMaker
--VoucherType=PU01关联供应商资格审批表pu_v orverify
WHEN dbo.WFAudit.VoucherType='PU01' THEN
Q.cmaker
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN dbo.WFAudit.VoucherType='pu03' THEN
R.cmaker
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN dbo.WFAudit.VoucherType='SA19' THEN
S.cmaker
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN dbo.WFAudit.VoucherType='SR01' THEN
T.cCreator
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN dbo.WFAudit.VoucherType='U870_0003' THEN
U.cMaker
END AS 制单人,
CASE
--A为销售发货单
WHEN dbo.WFAudit.VoucherType ='01' THEN
A.dcreatesystime
--B为其他入库单
WHEN dbo.WFAudit.VoucherType='0301' THEN
B.dnmaketime
--C为其他出库单
WHEN WFAudit.VoucherType='0302' THEN
C.dnmaketime
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN WFAudit.VoucherType='0304' THEN
D.dnmaketime
--VoucherType=0305关联形态转换单AssemVouch
WHEN dbo.WFAudit.VoucherType='0305' THEN
E.dnmaketime
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN dbo.WFAudit.VoucherType='0324' THEN
F.dnmaketime
--VoucherType=0412关联材料出库单rdrecord11
WHEN dbo.WFAudit.VoucherType='0412' THEN
G.dnmaketime
--VoucherType=17关联销售订单SO_SOMain
WHEN dbo.WFAudit.VoucherType='17' THEN
H.dcreatesystime
--VoucherType=24关联采购入库单RdRecord01
WHEN dbo.WFAudit.VoucherType='24' THEN
I.dnmaketime
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='26' THEN
J.cMakeTime
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='OM26' THEN
J.cMakeTime
--VoucherType=27关联请购单PU_AppVouch
WHEN dbo.WFAudit.VoucherType='27' THEN
K.cMakeTime
--VoucherType=88关联采购订单PO_Pomain
WHEN dbo.WFAudit.VoucherType='88' THEN
L.cmaketime
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN dbo.WFAudit.VoucherType='AP40' THEN
M.dcreatesystime
--VoucherType=BO11关联物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO11' THEN
N.CreateTime
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO19' THEN
N.CreateTime
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN dbo.WFAudit.VoucherType='MO21' THEN
O.CreateTime
--VoucherType=om01关联委外订单OM_MOMain
WHEN dbo.WFAudit.VoucherType='om01' THEN
P.dCreateTime
--VoucherType=PU01关联供应商资格审批表pu_v orverify
WHEN dbo.WFAudit.VoucherType='PU01' THEN
Q.cMakeTime
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN dbo.WFAudit.VoucherType='pu03' THEN
R.cMakeTime
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN dbo.WFAudit.VoucherType='SA19' THEN
S.dcreatesystime
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN dbo.WFAudit.VoucherType='SR01' THEN
T.dCreatedDate
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN dbo.WFAudit.VoucherType='U870_0003' THEN
U.dMakeDateTime
END AS 制单时间,
CASE
--A为销售发货单
WHEN dbo.WFAudit.VoucherType ='01' THEN
A.cCurrentAuditor
--B为其他入库单
WHEN dbo.WFAudit.VoucherType='0301' THEN
B.cCurrentAuditor
--C为其他出库单
WHEN WFAudit.VoucherType='0302' THEN
C.cCurrentAuditor
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN WFAudit.VoucherType='0304' THEN
D.cCurrentAuditor
--VoucherType=0305关联形态转换单AssemVouch
WHEN dbo.WFAudit.VoucherType='0305' THEN
E.cCurrentAuditor
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN dbo.WFAudit.VoucherType='0324' THEN
F.cCurrentAuditor
--VoucherType=0412关联材料出库单rdrecord11
WHEN dbo.WFAudit.VoucherType='0412' THEN
G.cCurrentAuditor
--VoucherType=17关联销售订单SO_SOMain
WHEN dbo.WFAudit.VoucherType='17' THEN
H.cCurrentAuditor
--VoucherType=24关联采购入库单RdRecord01
WHEN dbo.WFAudit.VoucherType='24' THEN
I.cCurrentAuditor
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='26' THEN
J.cCurrentAuditor
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN dbo.WFAudit.VoucherType='OM26' THEN
J.cCurrentAuditor
--VoucherType=27关联请购单PU_AppVouch
WHEN dbo.WFAudit.VoucherType='27' THEN
K.cCurrentAuditor
--VoucherType=88关联采购订单PO_Pomain
WHEN dbo.WFAudit.VoucherType='88' THEN
L.cCurrentAuditor
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN dbo.WFAudit.VoucherType='AP40' THEN
M.cCurrentAuditor
--VoucherType=BO11关联物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO11' THEN
N.cCurrentAuditor
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN dbo.WFAudit.VoucherType='BO19' THEN
N.cCurrentAuditor
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN dbo.WFAudit.VoucherType='MO21' THEN
O.cCurrentAuditor
--VoucherType=om01关联委外订单OM_MOMain
WHEN dbo.WFAudit.VoucherType='om01' THEN
P.cCurrentAuditor
--VoucherType=PU01关联供应商资格审批表pu_v orverify
WHEN dbo.WFAudit.VoucherType='PU01' THEN
Q.cCurrentAuditor
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN dbo.WFAudit.VoucherType='pu03' THEN
R.cCurrentAuditor
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN dbo.WFAudit.VoucherType='SA19' THEN
S.cCurrentAuditor
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN dbo.WFAudit.VoucherType='SR01' THEN
'NULL'
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN dbo.WFAudit.VoucherType='U870_0003' THEN
U.cApproved
END AS 当前审批人
FROM dbo.WFAudit
--VoucherType=01关联销售发货单主表DispatchList 作为A
LEFT JOIN(SELECT cDLCode,iverifystate,cMaker,dcreatesystime,cCurrentAuditor FROM dbo.DispatchList) AS A ON A.cDLCode=dbo.WFAudit.VoucherCode
--VoucherType=0301关联其他入库单RdRecord08 作为B
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.RdRecord08) AS B ON B.cCode=dbo.WFAudit.VoucherCode
--VoucherType=0302关联其他出库单RdRecord09 作为C
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.RdRecord09) AS C ON C.cCode=dbo.WFAudit.VoucherCode
--VoucherType=0304关联调拨单TransVouch 作为D
LEFT JOIN(SELECT cTVCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.TransVouch) AS D ON D.cTVCode=dbo.WFAudit.VoucherCode
--VoucherType=0305关联形态转换单AssemVouch
LEFT JOIN(SELECT cAVCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.AssemVouch) AS E ON E.cAVCode=dbo.WFAudit.VoucherCode
--VoucherType=0324关联调拨申请单ST_AppTransVouch
LEFT JOIN(SELECT cTVCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.ST_AppTransVouch) AS F ON F.cTVCode=dbo.WFAudit.VoucherCode
--VoucherType=0412关联材料出库单rdrecord11
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.rdrecord11) AS G ON G.cCode=dbo.WFAudit.VoucherCode
--VoucherType=17关联销售订单SO_SOMain
LEFT JOIN(SELECT cSOCode,iverifystate,cMaker,dcreatesystime,cCurrentAuditor FROM dbo.SO_SOMain) AS H ON H.cSOCode=dbo.WFAudit.VoucherCode
--VoucherType=24关联采购入库单RdRecord01
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.RdRecord01) AS I ON I.cCode=dbo.WFAudit.VoucherCode
--VoucherType=26关联采购到货单PU_ArrivalVouch
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
LEFT JOIN(SELECT cCode,iverifystateex,cMaker,cMakeTime,cCurrentAuditor FROM dbo.PU_ArrivalVouch) AS J ON J.cCode=dbo.WFAudit.VoucherCode
--VoucherType=27关联请购单PU_AppVouch
LEFT JOIN(SELECT cCode,iverifystateex,cMaker,cMakeTime,cCurrentAuditor FROM dbo.PU_AppVouch) AS K ON K.cCode=dbo.WFAudit.VoucherCode
--VoucherType=88关联采购订单PO_Pomain
LEFT JOIN(SELECT cPOID,iverifystateex,cMaker,cmaketime,cCurrentAuditor FROM dbo.PO_Pomain) AS L ON L.cPOID=dbo.WFAudit.VoucherCode
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
LEFT JOIN(SELECT cVouchID,iverifystate,cOperator,dcreatesystime,cCurrentAuditor FROM dbo.AP_ApplyPayVouch) AS M ON M.cVouchID=dbo.WFAudit.VoucherCode
--VoucherType=BO11关联物料清单bom_bom
--VoucherType=BO19关联委外商物料清单bom_bom
LEFT JOIN(SELECT BomId,iVerifyState,CreateUser,CreateTime,cCurrentAuditor FROM dbo.bom_bom) AS N ON CAST(N.BomId AS NVARCHAR(512))=dbo.WFAudit.VoucherCode
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
LEFT JOIN(SELECT IG.CreateTime,mom_orderdetail.cCurrentAuditor,IG.CreateUser,mom_orderdetail.MoId,mom_orderdetail.iVerifyState,
SUBSTRING(mom_orderdetail.cbSysBarCode,CHARINDEX( '|',mom_orderdetail.cbSysBarCode, CHARINDEX( '|',mom_orderdetail.cbSysBarCode, CHARINDEX('|', mom_orderdetail.cbSysBarCode) + 1) + 1) + 1, CHARINDEX('|',mom_orderdetail.cbSysBarCode, CHARINDEX('|',mom_orderdetail.cbSysBarCode, CHARINDEX( '|',mom_orderdetail.cbSysBarCode,CHARINDEX('|', mom_orderdetail.cbSysBarCode) + 1) + 1) + 1 )- CHARINDEX( '|',mom_orderdetail.cbSysBarCode,CHARINDEX('|',mom_orderdetail.cbSysBarCode,CHARINDEX('|', mom_orderdetail.cbSysBarCode) + 1 ) + 1 ) - 1 ) AS ExtractedCode
FROM mom_orderdetail LEFT JOIN (SELECT MoId,CreateUser,CreateTime FROM dbo.mom_order) AS IG ON IG.MoId = mom_orderdetail.MoId) AS O ON O.ExtractedCode=dbo.WFAudit.VoucherCode
--VoucherType=om01关联委外订单OM_MOMain
LEFT JOIN(SELECT cCode,iVerifyStateNew,cMaker,dCreateTime,cCurrentAuditor FROM dbo.OM_MOMain) AS P ON P.cCode=dbo.WFAudit.VoucherCode
--VoucherType=PU01关联供应商资格审批表pu_vendorverify
LEFT JOIN(SELECT ccode,iverifystate,cmaker,cMakeTime,cCurrentAuditor FROM dbo.pu_vendorverify) AS Q ON Q.ccode=dbo.WFAudit.VoucherCode
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
LEFT JOIN(SELECT ccode,iverifystate,cmaker,cMakeTime,cCurrentAuditor FROM dbo.PU_PriceJustMain) AS R ON R.ccode=dbo.WFAudit.VoucherCode
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
LEFT JOIN(SELECT ccode,iverifystate,cmaker,dcreatesystime,cCurrentAuditor FROM dbo.SA_CusPriceJustMain) AS S ON S.ccode=dbo.WFAudit.VoucherCode
--VoucherType=SR01关联服务单SR_ServiceBill
LEFT JOIN(SELECT cSerBillCode,iverifystateex,cCreator,dCreatedDate FROM dbo.SR_ServiceBill) AS T ON T.cSerBillCode=dbo.WFAudit.VoucherCode
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
LEFT JOIN(SELECT cNewInvenAppCode,iverifystate,cMaker,dMakeDateTime,cApproved FROM dbo.AA_NewInvenApp) AS U ON U.cNewInvenAppCode=dbo.WFAudit.VoucherCode
UNION ALL
SELECT
单据类型,单据编号,节点操作人,操作类型,接收时间,节点操作时间,
DATEDIFF(MINUTE, 接收时间,节点操作时间) AS 节点耗时, --节点耗时
dbo.CONCAT_ALL_6(
(CONVERT(NVARCHAR(10),DATEDIFF(MINUTE, 接收时间,节点操作时间 )) / 1440), '天',
(CONVERT(NVARCHAR(10),(DATEDIFF(MINUTE, 接收时间,节点操作时间 )) % 1440) / 60),'小时',
(CONVERT(NVARCHAR(10),((DATEDIFF(MINUTE, 接收时间,节点操作时间 ))))% 60) ,'分钟') AS 操作时长, --操作时长
CASE
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 0 AND 1440 THEN '1天之内'
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 1441 AND 4320 THEN '2-3天'
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 4321 AND 10080 THEN '4-7天'
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 10081 AND 20160 THEN '8-14天'
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 20161 AND 43200 THEN '15-30天'
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 43201 AND 86400 THEN '31-60天'
WHEN DATEDIFF(MINUTE, 接收时间,节点操作时间) BETWEEN 86401 AND 129600 THEN '61-90天'
ELSE '90天以上'
END AS 标识,
流程状态,制单人,制单时间,当前审批人
FROM (
SELECT
CASE WHEN cVoucherType='01' THEN '销售发货单'
WHEN cVoucherType='0301' THEN '其他入库单'
WHEN cVoucherType='0302' THEN '其他出库单'
WHEN cVoucherType='0304' THEN '调拨单'
WHEN cVoucherType='0305' THEN '形态转换单'
WHEN cVoucherType='0324' THEN '调拨申请单'
WHEN cVoucherType='0412' THEN '材料出库单'
WHEN cVoucherType='17' THEN '销售订单'
WHEN cVoucherType='24' THEN '采购入库单'
WHEN cVoucherType='26' THEN '采购到货单'
WHEN cVoucherType='27' THEN '请购单'
WHEN cVoucherType='88' THEN '采购订单'
WHEN cVoucherType='AP40' THEN '应付付款申请单'
WHEN cVoucherType='BO11' THEN '物料清单'
WHEN cVoucherType='BO19' THEN '委外商物料清单'
WHEN cVoucherType='MO21' THEN '生产订单'
WHEN cVoucherType='om01' THEN '委外订单'
WHEN cVoucherType='OM26' THEN '委外到货单'
WHEN cVoucherType='PU01' THEN '供应商资格审批表'
WHEN cVoucherType='pu03' THEN '供应商存货调价单'
WHEN cVoucherType='SA19' THEN '客户调价单'
WHEN cVoucherType='SR01' THEN '服务单'
WHEN cVoucherType='U870_0003' THEN '存货申请'
END AS 单据类型,
ExtendField3 单据编号,
HR.cPsn_Name 节点操作人,
'未操作' 操作类型, --操作类型
cCreateTime 接收时间,
CASE WHEN cCreateTime = cEndTime THEN GETDATE()
ELSE cEndTime
END AS 节点操作时间,
CASE
--A为销售发货单
WHEN cVoucherType ='01' THEN
CASE WHEN A.iverifystate='-1' THEN '终审不同意'
WHEN A.iverifystate='0' THEN '未提交'
WHEN A.iverifystate='1' THEN '已提交'
WHEN A.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--B为其他入库单
WHEN cVoucherType='0301' THEN
CASE WHEN B.iverifystate='-1' THEN '终审不同意'
WHEN B.iverifystate='0' THEN '未提交'
WHEN B.iverifystate='1' THEN '已提交'
WHEN B.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--C为其他出库单
WHEN cVoucherType='0302' THEN
CASE WHEN C.iverifystate='-1' THEN '终审不同意'
WHEN C.iverifystate='0' THEN '未提交'
WHEN C.iverifystate='1' THEN '已提交'
WHEN C.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN cVoucherType='0304' THEN
CASE WHEN D.iverifystate='-1' THEN '终审不同意'
WHEN D.iverifystate='0' THEN '未提交'
WHEN D.iverifystate='1' THEN '已提交'
WHEN D.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0305关联形态转换单AssemVouch
WHEN cVoucherType='0305' THEN
CASE WHEN E.iverifystate='-1' THEN '终审不同意'
WHEN E.iverifystate='0' THEN '未提交'
WHEN E.iverifystate='1' THEN '已提交'
WHEN E.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN cVoucherType='0324' THEN
CASE WHEN F.iverifystate='-1' THEN '终审不同意'
WHEN F.iverifystate='0' THEN '未提交'
WHEN F.iverifystate='1' THEN '已提交'
WHEN F.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=0412关联材料出库单rdrecord11
WHEN cVoucherType='0412' THEN
CASE WHEN G.iverifystate='-1' THEN '终审不同意'
WHEN G.iverifystate='0' THEN '未提交'
WHEN G.iverifystate='1' THEN '已提交'
WHEN G.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=17关联销售订单SO_SOMain
WHEN cVoucherType='17' THEN
CASE WHEN H.iverifystate='-1' THEN '终审不同意'
WHEN H.iverifystate='0' THEN '未提交'
WHEN H.iverifystate='1' THEN '已提交'
WHEN H.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=24关联采购入库单RdRecord01
WHEN cVoucherType='24' THEN
CASE WHEN I.iverifystate='-1' THEN '终审不同意'
WHEN I.iverifystate='0' THEN '未提交'
WHEN I.iverifystate='1' THEN '已提交'
WHEN I.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN cVoucherType='26' THEN
CASE WHEN J.iverifystateex='-1' THEN '终审不同意'
WHEN J.iverifystateex='0' THEN '未提交'
WHEN J.iverifystateex='1' THEN '已提交'
WHEN J.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN cVoucherType='OM26' THEN
CASE WHEN J.iverifystateex='-1' THEN '终审不同意'
WHEN J.iverifystateex='0' THEN '未提交'
WHEN J.iverifystateex='1' THEN '已提交'
WHEN J.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=27关联请购单PU_AppVouch
WHEN cVoucherType='27' THEN
CASE WHEN K.iverifystateex='-1' THEN '终审不同意'
WHEN K.iverifystateex='0' THEN '未提交'
WHEN K.iverifystateex='1' THEN '已提交'
WHEN K.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=88关联采购订单PO_Pomain
WHEN cVoucherType='88' THEN
CASE WHEN L.iverifystateex='-1' THEN '终审不同意'
WHEN L.iverifystateex='0' THEN '未提交'
WHEN L.iverifystateex='1' THEN '已提交'
WHEN L.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN cVoucherType='AP40' THEN
CASE WHEN M.iverifystate='-1' THEN '终审不同意'
WHEN M.iverifystate='0' THEN '未提交'
WHEN M.iverifystate='1' THEN '已提交'
WHEN M.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=BO11关联物料清单bom_bom
WHEN cVoucherType='BO11' THEN
CASE WHEN N.iVerifyState='-1' THEN '终审不同意'
WHEN N.iVerifyState='0' THEN '未提交'
WHEN N.iVerifyState='1' THEN '已提交'
WHEN N.iVerifyState='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN cVoucherType='BO19' THEN
CASE WHEN N.iVerifyState='-1' THEN '终审不同意'
WHEN N.iVerifyState='0' THEN '未提交'
WHEN N.iVerifyState='1' THEN '已提交'
WHEN N.iVerifyState='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN cVoucherType='MO21' THEN
CASE WHEN O.iVerifyState='-1' THEN '终审不同意'
WHEN O.iVerifyState='0' THEN '未提交'
WHEN O.iVerifyState='1' THEN '已提交'
WHEN O.iVerifyState='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=om01关联委外订单OM_MOMain
WHEN cVoucherType='om01' THEN
CASE WHEN P.iVerifyStateNew='-1' THEN '终审不同意'
WHEN P.iVerifyStateNew='0' THEN '未提交'
WHEN P.iVerifyStateNew='1' THEN '已提交'
WHEN P.iVerifyStateNew='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=PU01关联供应商资格审批表pu_vendorverify
WHEN cVoucherType='PU01' THEN
CASE WHEN Q.iverifystate='-1' THEN '终审不同意'
WHEN Q.iverifystate='0' THEN '未提交'
WHEN Q.iverifystate='1' THEN '已提交'
WHEN Q.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN cVoucherType='pu03' THEN
CASE WHEN R.iverifystate='-1' THEN '终审不同意'
WHEN R.iverifystate='0' THEN '未提交'
WHEN R.iverifystate='1' THEN '已提交'
WHEN R.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN cVoucherType='SA19' THEN
CASE WHEN S.iverifystate='-1' THEN '终审不同意'
WHEN S.iverifystate='0' THEN '未提交'
WHEN S.iverifystate='1' THEN '已提交'
WHEN S.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN cVoucherType='SR01' THEN
CASE WHEN T.iverifystateex='-1' THEN '终审不同意'
WHEN T.iverifystateex='0' THEN '未提交'
WHEN T.iverifystateex='1' THEN '已提交'
WHEN T.iverifystateex='2' THEN '终审结束'
ELSE 'NULL'
END
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN cVoucherType='U870_0003' THEN
CASE WHEN U.iverifystate='-1' THEN '终审不同意'
WHEN U.iverifystate='0' THEN '未提交'
WHEN U.iverifystate='1' THEN '已提交'
WHEN U.iverifystate='2' THEN '终审结束'
ELSE 'NULL'
END
END AS 流程状态,
CASE
--A为销售发货单
WHEN cVoucherType ='01' THEN
A.cMaker
--B为其他入库单
WHEN cVoucherType='0301' THEN
B.cMaker
--C为其他出库单
WHEN cVoucherType='0302' THEN
C.cMaker
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN cVoucherType='0304' THEN
D.cMaker
--VoucherType=0305关联形态转换单AssemVouch
WHEN cVoucherType='0305' THEN
E.cMaker
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN cVoucherType='0324' THEN
F.cMaker
--VoucherType=0412关联材料出库单rdrecord11
WHEN cVoucherType='0412' THEN
G.cMaker
--VoucherType=17关联销售订单SO_SOMain
WHEN cVoucherType='17' THEN
H.cMaker
--VoucherType=24关联采购入库单RdRecord01
WHEN cVoucherType='24' THEN
I.cMaker
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN cVoucherType='26' THEN
J.cMaker
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN cVoucherType='OM26' THEN
J.cMaker
--VoucherType=27关联请购单PU_AppVouch
WHEN cVoucherType='27' THEN
K.cMaker
--VoucherType=88关联采购订单PO_Pomain
WHEN cVoucherType='88' THEN
L.cMaker
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN cVoucherType='AP40' THEN
M.cOperator
--VoucherType=BO11关联物料清单bom_bom
WHEN cVoucherType='BO11' THEN
N.CreateUser
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN cVoucherType='BO19' THEN
N.CreateUser
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN cVoucherType='MO21' THEN
O.CreateUser
--VoucherType=om01关联委外订单OM_MOMain
WHEN cVoucherType='om01' THEN
P.cMaker
--VoucherType=PU01关联供应商资格审批表pu_v orverify
WHEN cVoucherType='PU01' THEN
Q.cmaker
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN cVoucherType='pu03' THEN
R.cmaker
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN cVoucherType='SA19' THEN
S.cmaker
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN cVoucherType='SR01' THEN
T.cCreator
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN cVoucherType='U870_0003' THEN
U.cMaker
END AS 制单人,
CASE
--A为销售发货单
WHEN cVoucherType ='01' THEN
A.dcreatesystime
--B为其他入库单
WHEN cVoucherType='0301' THEN
B.dnmaketime
--C为其他出库单
WHEN cVoucherType='0302' THEN
C.dnmaketime
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN cVoucherType='0304' THEN
D.dnmaketime
--VoucherType=0305关联形态转换单AssemVouch
WHEN cVoucherType='0305' THEN
E.dnmaketime
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN cVoucherType='0324' THEN
F.dnmaketime
--VoucherType=0412关联材料出库单rdrecord11
WHEN cVoucherType='0412' THEN
G.dnmaketime
--VoucherType=17关联销售订单SO_SOMain
WHEN cVoucherType='17' THEN
H.dcreatesystime
--VoucherType=24关联采购入库单RdRecord01
WHEN cVoucherType='24' THEN
I.dnmaketime
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN cVoucherType='26' THEN
J.cMakeTime
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN cVoucherType='OM26' THEN
J.cMakeTime
--VoucherType=27关联请购单PU_AppVouch
WHEN cVoucherType='27' THEN
K.cMakeTime
--VoucherType=88关联采购订单PO_Pomain
WHEN cVoucherType='88' THEN
L.cmaketime
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN cVoucherType='AP40' THEN
M.dcreatesystime
--VoucherType=BO11关联物料清单bom_bom
WHEN cVoucherType='BO11' THEN
N.CreateTime
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN cVoucherType='BO19' THEN
N.CreateTime
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN cVoucherType='MO21' THEN
O.CreateTime
--VoucherType=om01关联委外订单OM_MOMain
WHEN cVoucherType='om01' THEN
P.dCreateTime
--VoucherType=PU01关联供应商资格审批表pu_v orverify
WHEN cVoucherType='PU01' THEN
Q.cMakeTime
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN cVoucherType='pu03' THEN
R.cMakeTime
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN cVoucherType='SA19' THEN
S.dcreatesystime
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN cVoucherType='SR01' THEN
T.dCreatedDate
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN cVoucherType='U870_0003' THEN
U.dMakeDateTime
END AS 制单时间,
CASE
--A为销售发货单
WHEN cVoucherType ='01' THEN
A.cCurrentAuditor
--B为其他入库单
WHEN cVoucherType='0301' THEN
B.cCurrentAuditor
--C为其他出库单
WHEN cVoucherType='0302' THEN
C.cCurrentAuditor
--VoucherType=0304关联调拨单TransVouch 作为D
WHEN cVoucherType='0304' THEN
D.cCurrentAuditor
--VoucherType=0305关联形态转换单AssemVouch
WHEN cVoucherType='0305' THEN
E.cCurrentAuditor
--VoucherType=0324关联调拨申请单ST_AppTransVouch
WHEN cVoucherType='0324' THEN
F.cCurrentAuditor
--VoucherType=0412关联材料出库单rdrecord11
WHEN cVoucherType='0412' THEN
G.cCurrentAuditor
--VoucherType=17关联销售订单SO_SOMain
WHEN cVoucherType='17' THEN
H.cCurrentAuditor
--VoucherType=24关联采购入库单RdRecord01
WHEN cVoucherType='24' THEN
I.cCurrentAuditor
--VoucherType=26关联采购到货单PU_ArrivalVouch
WHEN cVoucherType='26' THEN
J.cCurrentAuditor
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
WHEN cVoucherType='OM26' THEN
J.cCurrentAuditor
--VoucherType=27关联请购单PU_AppVouch
WHEN cVoucherType='27' THEN
K.cCurrentAuditor
--VoucherType=88关联采购订单PO_Pomain
WHEN cVoucherType='88' THEN
L.cCurrentAuditor
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
WHEN cVoucherType='AP40' THEN
M.cCurrentAuditor
--VoucherType=BO11关联物料清单bom_bom
WHEN cVoucherType='BO11' THEN
N.cCurrentAuditor
--VoucherType=BO19关联委外商物料清单bom_bom
WHEN cVoucherType='BO19' THEN
N.cCurrentAuditor
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
WHEN cVoucherType='MO21' THEN
O.cCurrentAuditor
--VoucherType=om01关联委外订单OM_MOMain
WHEN cVoucherType='om01' THEN
P.cCurrentAuditor
--VoucherType=PU01关联供应商资格审批表pu_v orverify
WHEN cVoucherType='PU01' THEN
Q.cCurrentAuditor
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
WHEN cVoucherType='pu03' THEN
R.cCurrentAuditor
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
WHEN cVoucherType='SA19' THEN
S.cCurrentAuditor
--VoucherType=SR01关联服务单SR_ServiceBill
WHEN cVoucherType='SR01' THEN
'NULL'
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
WHEN cVoucherType='U870_0003' THEN
U.cApproved
END AS 当前审批人
--流程状态
FROM Table_Task
LEFT JOIN(SELECT cPsn_Num,cPsn_Name FROM hr_hi_person) AS HR ON HR.cPsn_Num=dbo.Table_Task.cUserID
LEFT JOIN(SELECT TaskId,Action,VoucherCode FROM dbo.WFAudit) AS SPXX ON SPXX.TaskId=UPPER(dbo.Table_Task.cTK_ID)
--VoucherType=01关联销售发货单主表DispatchList 作为A
LEFT JOIN(SELECT cDLCode,iverifystate,cMaker,dcreatesystime,cCurrentAuditor FROM dbo.DispatchList) AS A ON A.cDLCode=Table_Task.ExtendField3
--VoucherType=0301关联其他入库单RdRecord08 作为B
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.RdRecord08) AS B ON B.cCode=Table_Task.ExtendField3
--VoucherType=0302关联其他出库单RdRecord09 作为C
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.RdRecord09) AS C ON C.cCode=Table_Task.ExtendField3
--VoucherType=0304关联调拨单TransVouch 作为D
LEFT JOIN(SELECT cTVCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.TransVouch) AS D ON D.cTVCode=Table_Task.ExtendField3
--VoucherType=0305关联形态转换单AssemVouch
LEFT JOIN(SELECT cAVCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.AssemVouch) AS E ON E.cAVCode=Table_Task.ExtendField3
--VoucherType=0324关联调拨申请单ST_AppTransVouch
LEFT JOIN(SELECT cTVCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.ST_AppTransVouch) AS F ON F.cTVCode=Table_Task.ExtendField3
--VoucherType=0412关联材料出库单rdrecord11
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.rdrecord11) AS G ON G.cCode=Table_Task.ExtendField3
--VoucherType=17关联销售订单SO_SOMain
LEFT JOIN(SELECT cSOCode,iverifystate,cMaker,dcreatesystime,cCurrentAuditor FROM dbo.SO_SOMain) AS H ON H.cSOCode=Table_Task.ExtendField3
--VoucherType=24关联采购入库单RdRecord01
LEFT JOIN(SELECT cCode,iverifystate,cMaker,dnmaketime,cCurrentAuditor FROM dbo.RdRecord01) AS I ON I.cCode=Table_Task.ExtendField3
--VoucherType=26关联采购到货单PU_ArrivalVouch
--VoucherType=OM26关联委外到货单PU_ArrivalVouch
LEFT JOIN(SELECT cCode,iverifystateex,cMaker,cMakeTime,cCurrentAuditor FROM dbo.PU_ArrivalVouch) AS J ON J.cCode=Table_Task.ExtendField3
--VoucherType=27关联请购单PU_AppVouch
LEFT JOIN(SELECT cCode,iverifystateex,cMaker,cMakeTime,cCurrentAuditor FROM dbo.PU_AppVouch) AS K ON K.cCode=Table_Task.ExtendField3
--VoucherType=88关联采购订单PO_Pomain
LEFT JOIN(SELECT cPOID,iverifystateex,cMaker,cmaketime,cCurrentAuditor FROM dbo.PO_Pomain) AS L ON L.cPOID=Table_Task.ExtendField3
--VoucherType=AP40关联应付付款申请单AP_ApplyPayVouch
LEFT JOIN(SELECT cVouchID,iverifystate,cOperator,dcreatesystime,cCurrentAuditor FROM dbo.AP_ApplyPayVouch) AS M ON M.cVouchID=Table_Task.ExtendField3
--VoucherType=BO11关联物料清单bom_bom
--VoucherType=BO19关联委外商物料清单bom_bom
LEFT JOIN(SELECT BomId,iVerifyState,CreateUser,CreateTime,cCurrentAuditor FROM dbo.bom_bom) AS N ON CAST(N.BomId AS NVARCHAR(512))=Table_Task.ExtendField3
--VoucherType=MO21关联生产订单PP_ProductPO,这个cbSysBarCode格式为 ||MO21|0000024390|6 作为O
LEFT JOIN(SELECT IG.CreateTime,mom_orderdetail.cCurrentAuditor,IG.CreateUser,mom_orderdetail.MoId,mom_orderdetail.iVerifyState,
SUBSTRING(mom_orderdetail.cbSysBarCode,CHARINDEX( '|',mom_orderdetail.cbSysBarCode, CHARINDEX( '|',mom_orderdetail.cbSysBarCode, CHARINDEX('|', mom_orderdetail.cbSysBarCode) + 1) + 1) + 1, CHARINDEX('|',mom_orderdetail.cbSysBarCode, CHARINDEX('|',mom_orderdetail.cbSysBarCode, CHARINDEX( '|',mom_orderdetail.cbSysBarCode,CHARINDEX('|', mom_orderdetail.cbSysBarCode) + 1) + 1) + 1 )- CHARINDEX( '|',mom_orderdetail.cbSysBarCode,CHARINDEX('|',mom_orderdetail.cbSysBarCode,CHARINDEX('|', mom_orderdetail.cbSysBarCode) + 1 ) + 1 ) - 1 ) AS ExtractedCode
FROM mom_orderdetail LEFT JOIN (SELECT MoId,CreateUser,CreateTime FROM dbo.mom_order) AS IG ON IG.MoId = mom_orderdetail.MoId) AS O ON O.ExtractedCode=Table_Task.ExtendField3
--VoucherType=om01关联委外订单OM_MOMain
LEFT JOIN(SELECT cCode,iVerifyStateNew,cMaker,dCreateTime,cCurrentAuditor FROM dbo.OM_MOMain) AS P ON P.cCode=Table_Task.ExtendField3
--VoucherType=PU01关联供应商资格审批表pu_vendorverify
LEFT JOIN(SELECT ccode,iverifystate,cmaker,cMakeTime,cCurrentAuditor FROM dbo.pu_vendorverify) AS Q ON Q.ccode=Table_Task.ExtendField3
--VoucherType=pu03关联供应商存货调价单PU_PriceJustMain
LEFT JOIN(SELECT ccode,iverifystate,cmaker,cMakeTime,cCurrentAuditor FROM dbo.PU_PriceJustMain) AS R ON R.ccode=Table_Task.ExtendField3
--VoucherType=SA19关联客户调价单SA_CusPriceJustMain
LEFT JOIN(SELECT ccode,iverifystate,cmaker,dcreatesystime,cCurrentAuditor FROM dbo.SA_CusPriceJustMain) AS S ON S.ccode=Table_Task.ExtendField3
--VoucherType=SR01关联服务单SR_ServiceBill
LEFT JOIN(SELECT cSerBillCode,iverifystateex,cCreator,dCreatedDate FROM dbo.SR_ServiceBill) AS T ON T.cSerBillCode=Table_Task.ExtendField3
--VoucherType=U870_0003关联存货申请AA_NewInvenApp
LEFT JOIN(SELECT cNewInvenAppCode,iverifystate,cMaker,dMakeDateTime,cApproved FROM dbo.AA_NewInvenApp) AS U ON U.cNewInvenAppCode=Table_Task.ExtendField3 WHERE cCreateTime=cEndTime
) T1
) T2
) T3
) T4
3、实现折叠明细表
1、添加行父组
2、勾选组头,这个分组依据是加号所在位置的字段
3、删除因为添加父组多出来的那一列,最终呈现这种形式的表格
4、单据类型->组属性
5、将非折叠的所有字段添加到组表达式中
6、可见性设置为显示
7.详细信息->组属性
8、可见性设置为隐藏,切换显示(为加号所在位置的字段)
9、其他多余的表格可以设置为隐藏,更加美观
10、列组->高级模式
11、详细信息上下静态需要设置:Hidden:true;Toggleitem:单据类型1
12、最终呈现的就是这种效果了
4、结语
U8的查询语句存在多个函数,查询较慢,我采用根据单据类型进行分开做表(类似与以下图)。生产订单的语句有些问题,还未进行修改。
SQL语句可以一层一层的看,注释写的也比较清楚,UNION ALL下面的只是用来取待办。如有问题请和我探讨,感谢。