编辑 | blame | 历史 | 原始文档

部门编码编辑功能说明

功能概述

在若依后台管理系统的部门管理界面中,新增了服务单编码和调度单编码的显示和编辑功能,方便管理员手动维护部门编码。

实现日期: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行)

<!-- 服务单编码列 -->
<el-table-column prop="serviceOrderClass" label="服务单编码" width="120" align="center">
  <template slot-scope="scope">
    <el-tag v-if="scope.row.serviceOrderClass" type="success" size="mini">
      {{ scope.row.serviceOrderClass }}
    </el-tag>
    <span v-else style="color: #909399;">-</span>
  </template>
</el-table-column>

<!-- 调度单编码列 -->
<el-table-column prop="dispatchOrderClass" label="调度单编码" width="120" align="center">
  <template slot-scope="scope">
    <el-tag v-if="scope.row.dispatchOrderClass" type="warning" size="mini">
      {{ scope.row.dispatchOrderClass }}
    </el-tag>
    <span v-else style="color: #909399;">-</span>
  </template>
</el-table-column>

2. 表单字段新增(第139-149行)

<el-row>
  <el-col :span="12">
    <el-form-item label="服务单编码" prop="serviceOrderClass">
      <el-input v-model="form.serviceOrderClass" placeholder="请输入服务单编码" maxlength="20" />
    </el-form-item>
  </el-col>
  <el-col :span="12">
    <el-form-item label="调度单编码" prop="dispatchOrderClass">
      <el-input v-model="form.dispatchOrderClass" placeholder="请输入调度单编码" maxlength="20" />
    </el-form-item>
  </el-col>
</el-row>

3. 表单数据初始化(第276-289行)

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中的编码示例:

服务单编码示例
- 中山: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,字段更新规则:

<if test="serviceOrderClass != null">service_order_class = #{serviceOrderClass},</if>
<if test="dispatchOrderClass != null">dispatch_order_class = #{dispatchOrderClass},</if>
  • 如果前端传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. 后续维护:主要通过手动编辑维护

相关文档


更新日期:2025-10-19
维护人:系统管理员