fix(inpatient): 修复就诊位置更新逻辑
- 修改就诊位置表更新方式,直接更新指定ID的记录 - 添加位置ID设置功能 - 使用updateById方法替代saveOrUpdate方法提高准确性
This commit is contained in:
@@ -265,16 +265,19 @@ public class PatientHomeAppServiceImpl implements IPatientHomeAppService {
|
||||
encounterService.saveOrUpdateEncounter(encounter);
|
||||
|
||||
// 2.就诊位置表变更
|
||||
// 就诊位置ID变更
|
||||
// 直接更新指定ID的就诊位置记录
|
||||
EncounterLocation encounterLocation = new EncounterLocation();
|
||||
encounterLocation.setId(encounterLocationId)
|
||||
// 设置就诊ID
|
||||
.setEncounterId(encounterId)
|
||||
// 设置位置ID
|
||||
.setLocationId(locationId)
|
||||
// 设置状态枚举
|
||||
.setStatusEnum(EncounterActivityStatus.COMPLETED.getValue())
|
||||
// 设置物理枚举为 8:病床
|
||||
.setFormEnum(LocationForm.BED.getValue());
|
||||
encounterLocationService.saveOrUpdateEncounterLocation(encounterLocation);
|
||||
// 直接更新指定ID的记录
|
||||
encounterSuccess = encounterLocationService.updateById(encounterLocation);
|
||||
|
||||
// 3.位置表
|
||||
// 旧病床状态变更(空闲)
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
v-for="(item, index) in tableData"
|
||||
:key="index"
|
||||
:class="{ 'editing-row': item.editing, 'child-row': item.row.includes('.') }"
|
||||
@click="handleRowClick(index)"
|
||||
>
|
||||
<td>{{ item.row }}</td>
|
||||
<td>
|
||||
@@ -967,6 +968,14 @@ async function loadMenuData(menu) {
|
||||
}
|
||||
}
|
||||
|
||||
// 处理行点击进入编辑状态
|
||||
function handleRowClick(index) {
|
||||
const item = tableData.value[index];
|
||||
if (!item.editing) {
|
||||
item.editing = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 处理编辑按钮点击
|
||||
function handleEdit(index) {
|
||||
const item = tableData.value[index];
|
||||
@@ -982,6 +991,25 @@ function handleCancelEdit(index) {
|
||||
// 处理确认按钮点击
|
||||
async function handleConfirm(index) {
|
||||
const item = tableData.value[index];
|
||||
|
||||
// 必填字段验证
|
||||
if (!item.code || item.code.trim() === '') {
|
||||
ElMessage.error('编码不能为空');
|
||||
return;
|
||||
}
|
||||
if (!item.name || item.name.trim() === '') {
|
||||
ElMessage.error('名称不能为空');
|
||||
return;
|
||||
}
|
||||
if (!item.type || item.type.trim() === '') {
|
||||
ElMessage.error('检查类型不能为空');
|
||||
return;
|
||||
}
|
||||
if (!item.department || item.department.trim() === '') {
|
||||
ElMessage.error('执行科室不能为空');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// 根据当前激活的菜单调用不同的API
|
||||
if (activeMenu.value === '检查方法') {
|
||||
@@ -1212,9 +1240,24 @@ function handleAddNewRow() {
|
||||
function handleAdd(index) {
|
||||
const parentRow = tableData.value[index];
|
||||
|
||||
// 查找该父行的所有现有子行,确定下一个子行号
|
||||
const parentRowPrefix = parentRow.row + '.';
|
||||
let maxChildNum = 0;
|
||||
|
||||
tableData.value.forEach((item, idx) => {
|
||||
if (item.row.startsWith(parentRowPrefix) && idx > index) {
|
||||
const childNum = parseInt(item.row.split('.').pop());
|
||||
if (childNum > maxChildNum) {
|
||||
maxChildNum = childNum;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const nextChildNum = maxChildNum + 1;
|
||||
|
||||
// 创建子行数据,继承父行的编码
|
||||
const childRow = {
|
||||
row: parentRow.row + '.1', // 子行编号
|
||||
row: parentRow.row + '.' + nextChildNum, // 子行编号
|
||||
code: parentRow.code, // 继承父行编码
|
||||
name: '',
|
||||
type: '',
|
||||
|
||||
Reference in New Issue
Block a user