Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -58,6 +58,7 @@ import java.time.ZoneId;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -414,15 +415,21 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
}
|
}
|
||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
Date checkDate = new Date();
|
Date checkDate = new Date();
|
||||||
|
// 从请求中提取退回原因(所有项目共享同一原因)
|
||||||
|
String backReason = performInfoList.stream()
|
||||||
|
.map(PerformInfoDto::getBackReason)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
if (!serviceRequestList.isEmpty()) {
|
if (!serviceRequestList.isEmpty()) {
|
||||||
// 更新服务请求状态待发送
|
// 更新服务请求状态待发送
|
||||||
serviceRequestService.updateDraftStatus(
|
serviceRequestService.updateDraftStatus(
|
||||||
serviceRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate, null);
|
serviceRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate, backReason);
|
||||||
}
|
}
|
||||||
if (!medRequestList.isEmpty()) {
|
if (!medRequestList.isEmpty()) {
|
||||||
// 更新药品请求状态待发送
|
// 更新药品请求状态待发送
|
||||||
medicationRequestService.updateDraftStatusBatch(
|
medicationRequestService.updateDraftStatusBatch(
|
||||||
medRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate, null);
|
medRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate, backReason);
|
||||||
}
|
}
|
||||||
return R.ok(null, "退回成功");
|
return R.ok(null, "退回成功");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,6 +226,25 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 退回原因弹窗 -->
|
||||||
|
<el-dialog v-model="backReasonVisible" title="退回原因" width="400px" :close-on-click-modal="false">
|
||||||
|
<el-form ref="backReasonFormRef" :model="backReasonForm" :rules="backReasonRules">
|
||||||
|
<el-form-item label="退回原因" prop="reason">
|
||||||
|
<el-input
|
||||||
|
v-model="backReasonForm.reason"
|
||||||
|
type="textarea"
|
||||||
|
:rows="4"
|
||||||
|
placeholder="请输入退回原因(必填)"
|
||||||
|
maxlength="500"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="backReasonVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="confirmCancel">确定退回</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ref, computed, getCurrentInstance} from 'vue';
|
import {ref, computed, getCurrentInstance} from 'vue';
|
||||||
@@ -238,6 +257,9 @@ const activeNames = ref([]);
|
|||||||
const prescriptionList = ref([]);
|
const prescriptionList = ref([]);
|
||||||
const deadline = ref(formatDateStr(new Date(), 'YYYY-MM-DD') + ' 23:59:59');
|
const deadline = ref(formatDateStr(new Date(), 'YYYY-MM-DD') + ' 23:59:59');
|
||||||
const type = ref(null);
|
const type = ref(null);
|
||||||
|
const backReasonVisible = ref(false);
|
||||||
|
const backReasonForm = ref({ reason: '' });
|
||||||
|
const backReasonFormRef = ref(null);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const chooseAll = ref(false);
|
const chooseAll = ref(false);
|
||||||
@@ -444,16 +466,33 @@ function handleCancel() {
|
|||||||
proxy.$message.error('该药品已由药房发放,请先执行退药处理,不可直接退回');
|
proxy.$message.error('该药品已由药房发放,请先执行退药处理,不可直接退回');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cancel(list).then((res) => {
|
// 显示退回原因弹窗
|
||||||
|
backReasonForm.value.reason = '';
|
||||||
|
backReasonVisible.value = true;
|
||||||
|
} else {
|
||||||
|
proxy.$message.warning('请先选择医嘱信息');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 确定退回 — 从弹窗获取原因后调用API */
|
||||||
|
function confirmCancel() {
|
||||||
|
if (!backReasonForm.value.reason.trim()) {
|
||||||
|
proxy.$message.warning('请输入退回原因');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let list = getSelectRows();
|
||||||
|
// 将退回原因附加到每个项目
|
||||||
|
let requestList = list.map(item => ({
|
||||||
|
...item,
|
||||||
|
backReason: backReasonForm.value.reason.trim()
|
||||||
|
}));
|
||||||
|
cancel(requestList).then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
proxy.$modal.msgSuccess(res.msg);
|
proxy.$modal.msgSuccess(res.msg);
|
||||||
handleGetPrescription();
|
handleGetPrescription();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log(list, 'list');
|
backReasonVisible.value = false;
|
||||||
} else {
|
|
||||||
proxy.$message.warning('请先选择医嘱信息');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelectRows() {
|
function getSelectRows() {
|
||||||
|
|||||||
Reference in New Issue
Block a user