差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
公告:报销中心:风控_重复津贴计算 [2024/10/18 08:53] 张恒公告:报销中心:风控_重复津贴计算 [2024/10/31 09:53] (当前版本) 张恒
行 28: 行 28:
  
 ===识别=== ===识别===
-因出差申请中未作控制,故通过行程日期计算疑似重复计算的行程,在BI中对重复行程做可视化展示。+因出差申请中未作控制,故通过差旅行程日期计算疑似重复计算的行程,在BI中对重复行程做可视化展示。 
 + 
 +以下数据取自差旅费报销流程中的出行明细表字段。 
 +  * 取每次出差的最早出行时间和最晚结束时间,字段:公司名称,旅客姓名,请求号(代表一次出差),出发日期,到达日期 
 +  * 行程数据取火车票和飞机票信息,剔除退票 
 +  * 筛选行程有重叠的日期的行程,生成表 
 +  * 疑似重复计算时间需要进一步根据总行程出发日期和总行程结束日期核实。比如有可能住宿日期晚于火车票或飞机票中的到达日期。 
 +<code> 
 +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.请求号 
 +</code> 
  
 ^ 字段      ^ 类型  ^ ^ 字段      ^ 类型  ^
行 37: 行 71:
 | 结束日期  | 日期  | | 结束日期  | 日期  |
  
-<code> 
-M1 =  
  
-VAR A = CALENDAR([出发日期],[到达日期]) 
-VAR B = COUNTROWS(A) 
-VAR C = '7051_疑似重复津贴'[MAINID] 
-VAR E = '7051_疑似重复津贴'[旅客姓名] 
-VAR F = '7051_疑似重复津贴'[公司名称] 
-VAR D = FILTER( 
-        FILTER(ALL('7051_疑似重复津贴'), '7051_疑似重复津贴'[MAINID]<>C&&'7051_疑似重复津贴'[旅客姓名]=E&&'7051_疑似重复津贴'[公司名称]=F),        //迭代除当前行的其他行                        
-        COUNTROWS( 
-            EXCEPT(                   //从当前期间中,分别剔除表中其他行的期间 
-                A, 
-                CALENDAR([出发日期],[到达日期]) //每一行期间对应的日期列表 
-            ) 
-        )<                          //如果剔除后的天数小于B,表示该行与本行有重迭日期,筛选出来 
-    )  
-RETURN CONCATENATEX(D,[MAINID],"、" 
- 
-</code> 
  
 ===处置=== ===处置===
  • /var/services/web/dokuwiki/data/attic/公告/报销中心/风控_重复津贴计算.1729212806.txt.gz
  • 最后更改: 2024/10/18 08:53
  • 张恒