Fun_GetHumpDiff (function)
获取驼峰之间的差值
- Type: FUNCTION
-
Returns:
varchar(255) - Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | p_sData |
longtext |
Body
Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTIONFunGetHumpDiff'._
Narrative
Business context: "Hump" (峰) difference — 获取驼峰之间的差值. Takes a comma-separated integer time-series and sums the rise heights of every monotonically increasing run (peak − trough), then totals them. Used by the production-dashboard reports to derive output-counter deltas from monotonically-resetting machine counters.
What it does: two-pass. Pass 1 normalizes the series — for each comma-token, if the value drops vs. previous, inserts a 0 between them; this re-anchors each rising run to start from 0. Pass 2 walks the normalized series tracking current p_min and p_max; on each descent or at end-of-series, adds max-min to p_diff. Returns p_diff.
Invocation: widely used by the production-board (bd_ = 报表板/business dashboard) family — Sp_Bd_bi16…bi24, Sp_Bd_cq_workshop_* (车间 workshop boards: hh/mt/pj/pm/sy/ys), Sp_Bd_hy_workshop_oy, Sp_bd_MachinePlanTemplate* (机台计划 templates), Sp_bd_McPlanConter, Sp_bd_McPlanRate, Sp_bd_TmComplianceRate*, Sp_bd_TmSpeed*, Sp_bd_TmYield*. Customer override exists at script/客户/.../Sp_Bd_Cqzy_Report* (前一天/今天 白班/晚班).