本文档记录了MySQL sys_dept表与SQL Server dictionary表中订单编码的映射关系。
更新日期:2025-10-19
版本:v1.0
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| dept_id | BIGINT | 部门ID(主键) | 200 |
| dept_name | VARCHAR(30) | 部门名称 | 中山分公司 |
| parent_id | BIGINT | 父部门ID | 100 |
| service_order_class | VARCHAR(20) | 服务单编码 | JA |
| dispatch_order_class | VARCHAR(20) | 调度单编码 | JA01 |
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| vtext | VARCHAR(50) | 编码文本 | 中山服务单 |
| vOrder2 | VARCHAR(20) | 编码值 | JA |
| vtitle | VARCHAR(50) | 编码标题 | OrderClass |
| vType | INT | 编码类型 | 1-服务单,2-调度单 |
对应MySQL表的service_order_class字段
查询SQL:sql SELECT vtext, vOrder2 FROM dictionary WHERE vtitle = 'OrderClass' AND vType = 1 ORDER BY vOrder2;
对应MySQL表的dispatch_order_class字段
查询SQL:sql SELECT vtext, vOrder2 FROM dictionary WHERE vtitle = 'OrderClass' AND vType = 2 ORDER BY vOrder2;
| vtext | vOrder2 | 说明 |
|---|---|---|
| 中山服务单 | JA | 中山地区服务单 |
| 广州服务单 | GZ | 广州地区服务单 |
| 湛江服务单 | ZJ | 湛江地区服务单 |
| 珠海服务单 | ZH | 珠海地区服务单 |
| 佛山服务单 | FS | 佛山地区服务单 |
| vtext | vOrder2 | 说明 |
|---|---|---|
| 中山调度单 | JA01 | 中山地区调度单 |
| 广州调度单 | GZ01 | 广州地区调度单 |
| 湛江调度单 | ZJ01 | 湛江地区调度单 |
| 珠海调度单 | ZH01 | 珠海地区调度单 |
| 佛山调度单 | FS01 | 佛山地区调度单 |
输入:分公司名称(如:湛江--护士)
↓
步骤1:提取城市名(湛江)
↓
步骤2:在vtext中查找包含该城市名的记录
↓
步骤3:返回对应的vOrder2值
| 分公司名称 | 提取城市名 | 匹配vtext | 服务单编码 | 调度单编码 |
|---|---|---|---|---|
| 中山--护士 | 中山 | 中山服务单/中山调度单 | JA | JA01 |
| 广州--车队 | 广州 | 广州服务单/广州调度单 | GZ | GZ01 |
| 湛江--客服 | 湛江 | 湛江服务单/湛江调度单 | ZJ | ZJ01 |
| 珠海--办公室 | 珠海 | 珠海服务单/珠海调度单 | ZH | ZH01 |
在部门同步过程中,系统会自动:
1. 从SQL Server查询最新的编码列表
2. 根据分公司名称提取城市名
3. 匹配对应的编码
4. 填充到service_order_class和dispatch_order_class字段
在向旧系统同步数据时,可以使用这些编码:
// 查询部门信息
SysDept dept = sysDeptMapper.selectDeptById(deptId);
// 获取编码
String serviceOrderClass = dept.getServiceOrderClass(); // 如:JA
String dispatchOrderClass = dept.getDispatchOrderClass(); // 如:JA01
// 传递给旧系统
params.put("orderClass", serviceOrderClass);
params.put("dispatchClass", dispatchOrderClass);
在前端部门管理页面,可以展示这些编码:
{
deptId: 200,
deptName: '中山分公司',
serviceOrderClass: 'JA',
dispatchOrderClass: 'JA01'
}
在SQL Server的dictionary表中添加:
-- 添加服务单编码
INSERT INTO dictionary (vtitle, vtext, vOrder2, vType)
VALUES ('OrderClass', '深圳服务单', 'SZ', 1);
-- 添加调度单编码
INSERT INTO dictionary (vtitle, vtext, vOrder2, vType)
VALUES ('OrderClass', '深圳调度单', 'SZ01', 2);
-- 修改服务单编码
UPDATE dictionary
SET vOrder2 = 'NEW_CODE'
WHERE vtitle = 'OrderClass'
AND vtext = '中山服务单'
AND vType = 1;
-- 删除编码
DELETE FROM dictionary
WHERE vtitle = 'OrderClass'
AND vtext = '中山服务单'
AND vType = 1;
检查是否所有分公司都有对应的编码:
-- MySQL查询
SELECT
d.dept_id,
d.dept_name,
d.service_order_class,
d.dispatch_order_class,
CASE
WHEN d.service_order_class IS NULL THEN '缺少服务单编码'
WHEN d.dispatch_order_class IS NULL THEN '缺少调度单编码'
ELSE '完整'
END AS status
FROM sys_dept d
WHERE d.parent_id = 100
AND d.dept_name LIKE '%分公司'
ORDER BY d.dept_name;
检查MySQL中的编码是否在SQL Server中存在:
-- 在SQL Server中验证
SELECT
d.dept_name,
d.service_order_class,
d.dispatch_order_class,
(SELECT COUNT(*) FROM dictionary
WHERE vtitle = 'OrderClass'
AND vOrder2 = d.service_order_class
AND vType = 1) AS service_exists,
(SELECT COUNT(*) FROM dictionary
WHERE vtitle = 'OrderClass'
AND vOrder2 = d.dispatch_order_class
AND vType = 2) AS dispatch_exists
FROM mysql_sys_dept d
WHERE d.parent_id = 100;
{城市名}服务单 或 {城市名}调度单vOrder2字段最大长度:20个字符SQL Server查询:sql SELECT vtext, vOrder2, vType FROM dictionary WHERE vtitle = 'OrderClass' ORDER BY vType, vOrder2;
UPDATE sys_dept
SET service_order_class = 'JA',
dispatch_order_class = 'JA01'
WHERE dept_name = '中山分公司';
维护人:系统管理员
更新频率:按需更新
最后更新:2025-10-19