# `Fun_GetBarId` (function)

> 生成27位纯数字的ID 模仿后台Java代码生成


- **Type:** FUNCTION
- **Returns:** `varchar(32)`
- **Deterministic:** NO
- **SQL data access:** CONTAINS SQL

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `iIndex` | `int` |

## Body

_Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `Fun_GetBarId`'`._

## Narrative

**Business context:** Numeric ID generator — header comment `生成27位纯数字的ID 模仿后台Java代码生成` ("27-digit numeric ID, mimics the Java backend"). The xly Java code mints all-numeric IDs by stitching together a timestamp and a counter; this is the SQL equivalent for procs that need to allocate IDs without a round-trip.

**What it does:** returns `DATE_FORMAT(NOW(),'%y%m%d%H%i%s')` (12 digits, yyMMddHHmmss) concatenated with `LPAD(iIndex,2,'0')`. Final length is 14 — not 27 as the comment claims. Caller is expected to supply a monotonically increasing `iIndex` per second to avoid collisions.

**Invocation:** Status: appears orphaned. No caller found in any channel (form-master sSqlStr, gdsmodule hooks, other routines, exhaustive xly-src grep, dynamic-dispatch search) — candidate for maintainer audit. Production ID minting happens Java-side via `IdWorker`/`SnowflakeId`, leaving this as a stale convenience.
