商旅行程重复有4种场景,重复场景可能会重复计算津贴。 假设行程单据A和B,1为行程出发日期,2为行程结束日期,出发日期取行程单中的日期最小值,结束日期取行程单中的最大值。 则:
因出差申请中未作控制,故通过差旅行程日期计算疑似重复计算的行程,在BI中对重复行程做可视化展示。
以下数据取自差旅费报销流程中的出行明细表字段。
select taba.请求号 as 请求号a,taba.mainid as mainida,taba.旅客姓名, CAST(taba.出行时间 AS DATE) as 出行时间A ,CAST(taba.到达时间 AS DATE) as 到达时间A, tabb.请求号 as 请求号b,taba.mainid as mainidb, CAST(tabb.出行时间 AS DATE) as 出行时间B ,CAST(tabb.到达时间 AS DATE) as 到达时间B from (select dt.请求号,dt.mainid,dt.旅客姓名,main.公司名称, min(dt.出行时间)as 出行时间,max(dt.到达时间) as 到达时间 from FACT_OAE10_FSSC07_DT6 dt left join FACT_OAE10_FSSC07 main on main.id = dt.mainid where dt.预订时间 is not null and dt.产品类型 in ('国内机票','火车票')and dt.订单状态 != '差额退款' group by dt.请求号,dt.mainid,dt.旅客姓名,main.公司名称 ) taba left join (select dt.请求号,dt.mainid,dt.旅客姓名,main.公司名称, min(dt.出行时间)as 出行时间,max(dt.到达时间) as 到达时间 from FACT_OAE10_FSSC07_DT6 dt left join FACT_OAE10_FSSC07 main on main.id = dt.mainid where dt.预订时间 is not null and dt.产品类型 in ('国内机票','火车票')and dt.订单状态 != '差额退款' group by dt.请求号,dt.mainid,dt.旅客姓名,main.公司名称) tabb on taba.公司名称 = tabb.公司名称 and taba.旅客姓名 = tabb.旅客姓名 where ( (CAST(tabb.出行时间 AS DATE) >= CAST(taba.出行时间 AS DATE) and CAST(tabb.出行时间 AS DATE) <= CAST(taba.到达时间 AS DATE)) --A/B/D or(CAST(tabb.到达时间 AS DATE) >= CAST(taba.出行时间 AS DATE) and CAST(tabb.到达时间 AS DATE) <= CAST(taba.到达时间 AS DATE))--C or(CAST(taba.出行时间 AS DATE) >= CAST(tabb.出行时间 AS DATE) and CAST(taba.出行时间 AS DATE) <= CAST(tabb.到达时间 AS DATE)) or(CAST(taba.到达时间 AS DATE) >= CAST(tabb.出行时间 AS DATE) and CAST(taba.到达时间 AS DATE) <= CAST(tabb.到达时间 AS DATE))) and taba.请求号 != tabb.请求号
字段 | 类型 |
---|---|
MainID | 文本 |
公司名称 | 文本 |
姓名 | 文本 |
出发日期 | 日期 |
结束日期 | 日期 |
各单位财务关键用户是疑似行程的处置和闭环负责人,当关键用户无法协调资源时,由财务部门负责人、财务负责人负责处置,直至闭环。
共享中心在审核流程中进行监控,并对确认重复计算需退回的款项进行跟踪闭环。