挂号补单功能的完善

This commit is contained in:
2026-01-14 12:56:39 +08:00
parent e8783d9f8f
commit d8080fa22d
4 changed files with 663 additions and 34 deletions

View File

@@ -547,47 +547,21 @@ function formatDateTime(date) {
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
// 计算流水号:格式为 YYYYMMDD-XXX其中 XXX 为后端按"科室+医生+当日"自增的 displayOrder
// 确保同一科室同一医生同一天内是 001、002、003... 递增
// 计算流水号:直接使用挂号记录表的主键IDencounterId
function calculateSerialNo(row) {
if (!row) {
return '-';
}
// 获取挂号日期YYYYMMDD格式
let dateStr = '';
if (row.registerTime) {
const date = new Date(row.registerTime);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
dateStr = `${year}${month}${day}`;
// 直接使用主键ID作为流水号
if (row.encounterId != null && row.encounterId !== undefined) {
return String(row.encounterId);
} else if (row.id != null && row.id !== undefined) {
// 兼容其他可能的ID字段名
return String(row.id);
} else {
// 如果没有挂号时间,使用当前日期
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
dateStr = `${year}${month}${day}`;
return '-';
}
// 获取序号部分3位数字001-999
// 直接使用后端返回的 displayOrder自增逻辑在后端按"科室+医生+当日"保证
let serialNum = 1;
if (row.displayOrder != null && row.displayOrder !== undefined) {
const num = Number(row.displayOrder) || 0;
serialNum = num > 0 ? num : 1;
} else if (row.serialNo) {
// 兼容旧数据:如果有已有的 serialNo 字段
const num = Number(row.serialNo) || 0;
serialNum = num > 0 ? num : 1;
} else {
// 兜底:没有任何序号信息时,给 1
serialNum = 1;
}
// 格式YYYYMMDD-XXX例如20250113-001
return `${dateStr}-${String(serialNum).padStart(3, '0')}`;
}
// 提交补打挂号