# 部门编码编辑功能说明
## 功能概述
在若依后台管理系统的部门管理界面中,新增了服务单编码和调度单编码的显示和编辑功能,方便管理员手动维护部门编码。
**实现日期**:2025-10-19
**版本**:v1.0
## 界面变更
### 1. 部门列表展示
在部门列表表格中新增两列:
| 列名 | 字段名 | 宽度 | 显示样式 | 说明 |
|------|--------|------|----------|------|
| 服务单编码 | serviceOrderClass | 120px | 绿色标签 | 显示分公司的服务单编码 |
| 调度单编码 | dispatchOrderClass | 120px | 橙色标签 | 显示分公司的调度单编码 |
**显示效果**:
- 有编码值:显示为彩色标签(服务单-绿色,调度单-橙色)
- 无编码值:显示为灰色"-"
**列顺序**:
```
部门名称 -> SQL Server部门ID -> 服务单编码 -> 调度单编码 -> 排序 -> 状态 -> 创建时间 -> 操作
```
### 2. 部门编辑表单
在"添加/修改部门"对话框中新增编码编辑字段:
**表单布局**:
```
[ 上级部门 ] (全宽)
[ 部门名称 ] [ 显示排序 ] (左右分栏)
[ SQL Server部门ID ] (半宽,只读)
[ 服务单编码 ] [ 调度单编码 ] (左右分栏,可编辑)
[ 负责人 ] [ 联系电话 ] (左右分栏)
[ 邮箱 ] [ 部门状态 ] (左右分栏)
```
**字段说明**:
| 字段名 | 类型 | 最大长度 | 是否必填 | 说明 |
|--------|------|----------|----------|------|
| 服务单编码 | 文本 | 20字符 | 否 | 对应SQL Server dictionary表vType=1 |
| 调度单编码 | 文本 | 20字符 | 否 | 对应SQL Server dictionary表vType=2 |
## 代码变更
### 修改文件
**文件路径**:`ruoyi-ui/src/views/system/dept/index.vue`
#### 1. 表格列新增(第58-69行)
```vue
{{ scope.row.serviceOrderClass }}
-
{{ scope.row.dispatchOrderClass }}
-
```
#### 2. 表单字段新增(第139-149行)
```vue
```
#### 3. 表单数据初始化(第276-289行)
```javascript
this.form = {
deptId: undefined,
parentId: undefined,
deptName: undefined,
departmentId: undefined,
serviceOrderClass: undefined, // 新增
dispatchOrderClass: undefined, // 新增
orderNum: undefined,
leader: undefined,
phone: undefined,
email: undefined,
status: "0"
};
```
## 使用说明
### 查看编码
1. 登录若依后台管理系统
2. 进入 **系统管理 -> 部门管理**
3. 在部门列表中可以看到每个分公司的服务单编码和调度单编码
**显示效果**:
- ✅ 有编码:显示为彩色标签
- 服务单编码:绿色标签
- 调度单编码:橙色标签
- ⚠️ 无编码:显示为灰色"-"
### 手动编辑编码
#### 场景1:新增分公司时设置编码
1. 点击"新增"按钮
2. 填写部门名称等基本信息
3. 在"服务单编码"和"调度单编码"字段输入对应编码
4. 点击"确定"保存
#### 场景2:修改已有分公司的编码
1. 在部门列表中找到要修改的分公司
2. 点击该行的"修改"按钮
3. 在弹出的对话框中修改编码字段
4. 点击"确定"保存
#### 场景3:自动同步后手动修正
如果自动同步的编码不正确,可以手动修正:
1. 找到编码错误的分公司
2. 点击"修改"
3. 输入正确的编码
4. 保存
### 编码规范
参考[部门编码映射表.md](./部门编码映射表.md)中的编码示例:
**服务单编码示例**:
- 中山:JA
- 广州:GZ
- 湛江:ZJ
- 珠海:ZH
**调度单编码示例**:
- 中山:JA01
- 广州:GZ01
- 湛江:ZJ01
- 珠海:ZH01
## 数据流转
### 手动编辑流程
```
管理员在界面编辑
↓
提交表单
↓
调用 updateDept API
↓
后端验证数据
↓
更新 sys_dept 表
├─ service_order_class
└─ dispatch_order_class
↓
返回成功消息
↓
刷新部门列表
```
### 自动同步 + 手动修正流程
```
自动同步(定时任务)
↓
根据地名匹配编码
↓
写入数据库
↓
管理员检查
↓
发现错误 → 手动修正
↓
更新数据库
```
## 权限控制
编辑编码功能使用与部门管理相同的权限:
| 操作 | 权限标识 | 说明 |
|------|----------|------|
| 查看编码 | system:dept:list | 查看部门列表权限 |
| 编辑编码 | system:dept:edit | 修改部门权限 |
| 新增时设置编码 | system:dept:add | 新增部门权限 |
## 字段验证
### 前端验证
- **最大长度**:20个字符
- **格式**:无特殊格式要求,支持字母、数字、符号
- **必填**:非必填,可以为空
### 后端验证
后端使用MyBatis动态SQL,字段更新规则:
```xml
service_order_class = #{serviceOrderClass},
dispatch_order_class = #{dispatchOrderClass},
```
- 如果前端传null,则不更新该字段
- 如果前端传空字符串,则更新为空字符串
## 测试场景
### 测试用例1:查看编码
**步骤**:
1. 登录后台
2. 进入部门管理
3. 查看部门列表
**预期结果**:
- 已有编码的分公司显示为彩色标签
- 未设置编码的显示为灰色"-"
### 测试用例2:新增分公司并设置编码
**步骤**:
1. 点击"新增"按钮
2. 输入部门名称"深圳分公司"
3. 输入服务单编码"SZ"
4. 输入调度单编码"SZ01"
5. 点击"确定"
**预期结果**:
- 保存成功
- 列表中显示新增的分公司及其编码
### 测试用例3:修改编码
**步骤**:
1. 找到"中山分公司"
2. 点击"修改"
3. 将服务单编码改为"JA2"
4. 将调度单编码改为"JA02"
5. 点击"确定"
**预期结果**:
- 保存成功
- 列表中显示更新后的编码
### 测试用例4:清空编码
**步骤**:
1. 修改某个分公司
2. 清空服务单编码和调度单编码
3. 保存
**预期结果**:
- 保存成功
- 列表中显示为灰色"-"
## 界面截图说明
### 部门列表
```
┌──────────────────────────────────────────────────────────────────────┐
│ 部门管理 │
├──────────────────────────────────────────────────────────────────────┤
│ 部门名称 SQL Server 服务单编码 调度单编码 排序 状态 创建时间 │
│ 部门ID │
├──────────────────────────────────────────────────────────────────────┤
│ 合作单位 - - - 1 正常 2025-01-01│
│ ├─中山分公司 2001 [JA] [JA01] 1 正常 2025-01-01│
│ ├─广州分公司 2002 [GZ] [GZ01] 2 正常 2025-01-01│
│ └─湛江分公司 2003 [ZJ] [ZJ01] 3 正常 2025-01-01│
└──────────────────────────────────────────────────────────────────────┘
注:[JA] 表示绿色标签,[JA01] 表示橙色标签
```
### 编辑对话框
```
┌────────────────────────────────────┐
│ 修改部门 [X] │
├────────────────────────────────────┤
│ 上级部门:[合作单位 ▼] │
│ │
│ 部门名称:[中山分公司] │
│ 显示排序:[ 1 ] │
│ │
│ SQL Server部门ID:[2001] (只读) │
│ │
│ 服务单编码:[JA ] │
│ 调度单编码:[JA01 ] │
│ │
│ 负责人:[张三 ] │
│ 联系电话:[13800138000] │
│ │
│ 邮箱:[zhangsan@example.com] │
│ 部门状态:(·) 正常 ( ) 停用 │
│ │
│ [确定] [取消] │
└────────────────────────────────────┘
```
## 注意事项
1. **编码长度**:建议使用2-10个字符的简短编码
2. **编码唯一性**:系统不强制编码唯一,但建议每个分公司使用不同的编码
3. **编码规范**:建议遵循统一的命名规范(如城市拼音首字母)
4. **同步关系**:手动修改的编码不会被自动同步覆盖(除非重新执行同步)
5. **数据一致性**:修改编码后建议同时在SQL Server的dictionary表中更新
## 与自动同步的关系
| 特性 | 自动同步 | 手动编辑 |
|------|----------|----------|
| 触发时机 | 部门同步任务执行时 | 管理员主动修改 |
| 数据来源 | SQL Server dictionary表 | 管理员输入 |
| 适用场景 | 批量初始化、定期更新 | 修正错误、特殊配置 |
| 优先级 | 低 | 高 |
**建议流程**:
1. 首次配置:使用自动同步批量设置编码
2. 检查验证:管理员检查自动匹配结果
3. 手动修正:对匹配错误或未匹配的进行手动修正
4. 后续维护:主要通过手动编辑维护
## 相关文档
- [部门编码同步功能说明](./部门编码同步功能说明.md) - 自动同步技术文档
- [部门编码映射表](./部门编码映射表.md) - 编码参考表
- [部门编码同步-快速开始](./部门编码同步-快速开始.md) - 快速开始指南
---
**更新日期**:2025-10-19
**维护人**:系统管理员