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

分公司默认出发地配置功能说明

功能概述

为创建转运任务页面增加了出发地输入功能,支持从分公司配置中自动加载默认出发地,用户也可以手动修改。

数据库变更

sys_dept 表新增字段

sys_dept 表中新增了3个字段用于存储分公司的默认出车地址:

字段名 类型 说明
departure_address VARCHAR(500) 默认出车地址
departure_longitude DECIMAL(10, 6) 出车地址经度
departure_latitude DECIMAL(10, 6) 出车地址纬度

SQL脚本位置: sql/sys_dept_add_departure_fields.sql

后端修改

1. SysDept 实体类 (SysDept.java)

新增属性:
java private String departureAddress; private java.math.BigDecimal departureLongitude; private java.math.BigDecimal departureLatitude;

2. SysDeptMapper.xml

  • 更新 resultMap,增加新字段映射
  • 更新 selectDeptVo,查询时包含新字段
  • 更新 insertDept,插入时支持新字段
  • 更新 updateDept,更新时支持新字段

前端修改

1. OrganizationSelector 组件

修改 emitChange 方法,在选择归属机构时返回出发地信息:

this.$emit('change', {
  deptId: organization.deptId,
  deptName: organization.deptName,
  serviceOrderClass: organization.serviceOrderClass || '',
  region: region,
  // 出发地信息
  departureAddress: organization.departureAddress || '',
  departureLongitude: organization.departureLongitude || null,
  departureLatitude: organization.departureLatitude || null
})

2. create-emergency.vue 页面

新增数据字段

data() {
  return {
    departureAddress: '', // 出发地地址
    departureLongitude: null, // 出发地经度
    departureLatitude: null, // 出发地纬度
    // ... 其他字段
  }
}

归属机构变化处理

onOrganizationChange 方法中自动填充出发地:

onOrganizationChange(orgData) {
  this.selectedOrganizationId = orgData.deptId
  this.selectedOrganizationServiceOrderClass = orgData.serviceOrderClass
  this.selectedRegion = orgData.region
  
  // 自动填充出发地信息
  this.departureAddress = orgData.departureAddress || ''
  this.departureLongitude = orgData.departureLongitude || null
  this.departureLatitude = orgData.departureLatitude || null
}

界面新增出发地输入框

在归属机构选择器之后增加:

<view class="form-item">
  <view class="form-label">出发地</view>
  <input 
    class="form-input" 
    placeholder="请输入出发地地址" 
    v-model="departureAddress"
  />
  <view class="form-tip" v-if="departureAddress">
    <text>提示:可修改默认出发地地址</text>
  </view>
</view>

提交数据处理

buildSubmitData 方法中:

const submitData = {
  // 优先使用自定义的出发地,如果为空则使用转出医院地址
  departureAddress: this.departureAddress || this.taskForm.hospitalOut.address || '',
  // ... 其他字段
}

// 出发地GPS坐标(优先使用自定义的出发地坐标)
if (this.departureLongitude && this.departureLatitude) {
  submitData.departureLongitude = this.departureLongitude
  submitData.departureLatitude = this.departureLatitude
} else if (this.addressCoordinates.hospitalOutAddress) {
  // 兜底:使用转出医院的坐标
  submitData.departureLongitude = this.addressCoordinates.hospitalOutAddress.lng
  submitData.departureLatitude = this.addressCoordinates.hospitalOutAddress.lat
}

使用流程

1. 配置分公司默认出发地

在后台管理系统的部门管理中,为各分公司配置默认出车地址及GPS坐标:

  1. 进入"系统管理" -> "部门管理"
  2. 选择需要配置的分公司(parent_id=100的部门)
  3. 点击"修改"
  4. 填写以下信息:
  • 默认出车地址: 如"广州市天河区XXX路XXX号"
  • 出车地址经度: 如 113.123456
  • 出车地址纬度: 如 23.123456

2. 创建转运任务时使用

  1. 在APP端打开"创建转运任务"页面
  2. 选择"归属机构"(分公司)
  3. 系统自动填充该分公司配置的默认出发地
  4. 用户可以手动修改出发地地址
  5. 提交时,优先使用自定义的出发地,如为空则使用转出医院地址

优先级规则

出发地的优先级从高到低为:

  1. 用户手动修改的出发地 - 最高优先级
  2. 分公司配置的默认出发地 - 选择归属机构时自动填充
  3. 转出医院地址 - 如果前两者都为空,使用转出医院地址

GPS坐标的优先级:

  1. 分公司配置的出发地坐标 - 如果有配置
  2. 转出医院地址的坐标 - 兜底方案

注意事项

  1. 数据库升级: 首次部署需要执行 sql/sys_dept_add_departure_fields.sql 脚本
  2. 权限配置: 确保部门管理的编辑权限包含新增的字段
  3. 兼容性: 未配置出发地的分公司,系统会自动使用转出医院地址,不影响现有功能
  4. 数据校验: 经纬度字段支持NULL,可以只填写地址不填写坐标

相关文件

数据库脚本

  • sql/sys_dept_add_departure_fields.sql

后端文件

  • ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
  • ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml

前端文件

  • app/components/OrganizationSelector.vue
  • app/pages/task/create-emergency.vue

后续优化建议

  1. 可在后台管理系统的部门编辑页面增加地图选点功能,方便配置经纬度
  2. 可增加出发地的地址建议功能,类似医院地址输入
  3. 可考虑为每个分公司配置多个常用出发地,供用户快速选择