在部门同步时,自动从SQL Server读取服务单和调度单编码,并根据分公司名称中的地名自动匹配。
示例:
- 分公司:湛江--护士 → 提取城市名:湛江
- SQL Server查询:湛江服务单 → 编码:ZJ
- SQL Server查询:湛江调度单 → 编码:ZJ01
- 结果:分公司的service_order_class设为ZJ,dispatch_order_class设为ZJ01
# 添加服务单和调度单编码字段
mysql -u root -p ry-vue < sql/add_dept_order_class_fields.sql
cd d:\project\急救转运\code\Api\RuoYi-Vue-master
mvn clean package -DskipTests
cd ruoyi-admin
java -jar target/ruoyi-admin.jar
POST http://localhost:8080/system/dept/sync/branch
Headers:
Authorization: Bearer {你的token}
curl -X POST http://localhost:8080/system/dept/sync/branch \
-H "Authorization: Bearer {你的token}"
SELECT
dept_id AS '部门ID',
dept_name AS '部门名称',
service_order_class AS '服务单编码',
dispatch_order_class AS '调度单编码'
FROM sys_dept
WHERE parent_id = 100 AND dept_name LIKE '%分公司'
ORDER BY dept_name;
预期结果示例:
| 部门ID | 部门名称 | 服务单编码 | 调度单编码 |
|---|---|---|---|
| 200 | 中山分公司 | JA | JA01 |
| 201 | 广州分公司 | GZ | GZ01 |
| 202 | 湛江分公司 | ZJ | ZJ01 |
连接到SQL Server数据库,执行:
-- 查看服务单编码
SELECT vtext, vOrder2
FROM dictionary
WHERE vtitle='OrderClass' AND vType=1
ORDER BY vOrder2;
-- 查看调度单编码
SELECT vtext, vOrder2
FROM dictionary
WHERE vtitle='OrderClass' AND vType=2
ORDER BY vOrder2;
{
"code": 200,
"msg": "同步完成!创建分公司: 3, 更新分公司: 0, 创建部门: 12, 更新部门: 0",
"data": {
"createdBranch": 3,
"updatedBranch": 0,
"createdDept": 12,
"updatedDept": 0,
"totalProcessed": 12
}
}
启动服务后,查看日志文件中的编码匹配信息:
INFO DepartmentSyncServiceImpl - 匹配到服务单编码 - 城市: 中山, 编码: JA
INFO DepartmentSyncServiceImpl - 匹配到调度单编码 - 城市: 中山, 编码: JA01
INFO DepartmentSyncServiceImpl - 创建新分公司: 中山分公司, ID: 200, 服务单编码: JA, 调度单编码: JA01
原因:SQL Server中没有匹配的城市名称
解决方案:
1. 检查SQL Server的dictionary表中是否有对应城市的编码
2. 确认vtext字段是否包含分公司名称中的城市名(如:中山、广州)
可以直接在MySQL中更新:
UPDATE sys_dept
SET service_order_class = 'JA',
dispatch_order_class = 'JA01'
WHERE dept_name = '中山分公司';
SELECT
dept_id,
dept_name,
service_order_class,
dispatch_order_class
FROM sys_dept
WHERE parent_id = 100
AND dept_name LIKE '%分公司'
AND (service_order_class IS NULL OR dispatch_order_class IS NULL)
ORDER BY dept_name;
sql/add_dept_order_class_fields.sql - 数据库脚本ruoyi-system/src/main/java/com/ruoyi/system/domain/OrderClassDTO.java - DTOruoyi-system/src/main/java/com/ruoyi/system/mapper/OrderClassMapper.java - Mapper接口ruoyi-system/src/main/resources/mapper/system/OrderClassMapper.xml - Mapper XMLruoyi-system/src/main/java/com/ruoyi/system/service/IOrderClassDataService.java - 服务接口ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderClassDataServiceImpl.java - 服务实现prd/部门编码同步功能说明.md - 详细文档ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.javaruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xmlruoyi-system/src/main/java/com/ruoyi/system/service/impl/DepartmentSyncServiceImpl.java部门编码同步功能已完成,接下来可以:
详细说明请查看:部门编码同步功能说明.md