96-门诊医生站会诊申请确认界面和97-门诊会诊申请管理界面全部功能。
This commit is contained in:
@@ -26,11 +26,11 @@ public class ClinicRoomAppServiceImpl implements IClinicRoomAppService {
|
||||
if (roomName != null && ObjectUtil.isNotEmpty(roomName)) {
|
||||
clinicRoom.setRoomName(roomName);
|
||||
}
|
||||
|
||||
|
||||
// 分页查询
|
||||
Page<ClinicRoom> page = new Page<>(pageNum, pageSize);
|
||||
Page<ClinicRoom> result = clinicRoomService.selectClinicRoomPage(page, clinicRoom);
|
||||
|
||||
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
@@ -58,12 +58,7 @@ public class ClinicRoomAppServiceImpl implements IClinicRoomAppService {
|
||||
if (clinicRoom.getRemarks() != null && clinicRoom.getRemarks().length() > 500) {
|
||||
return R.fail(400, "备注长度不能超过500个字符");
|
||||
}
|
||||
|
||||
// 检查诊室名称在同卫生机构下是否已存在
|
||||
if (clinicRoomService.existsByOrgNameAndRoomName(clinicRoom.getOrgName(), clinicRoom.getRoomName())) {
|
||||
return R.fail(400, "当前卫生机构下已存在该诊室名称");
|
||||
}
|
||||
|
||||
|
||||
// 新增诊室
|
||||
int result = clinicRoomService.insertClinicRoom(clinicRoom);
|
||||
if (result > 0) {
|
||||
@@ -91,18 +86,13 @@ public class ClinicRoomAppServiceImpl implements IClinicRoomAppService {
|
||||
if (clinicRoom.getRemarks() != null && clinicRoom.getRemarks().length() > 500) {
|
||||
return R.fail(400, "备注长度不能超过500个字符");
|
||||
}
|
||||
|
||||
|
||||
// 检查诊室是否存在
|
||||
ClinicRoom existingClinicRoom = clinicRoomService.selectClinicRoomById(clinicRoom.getId());
|
||||
if (existingClinicRoom == null) {
|
||||
return R.fail(404, "诊室不存在");
|
||||
}
|
||||
|
||||
// 检查诊室名称在同卫生机构下是否已存在(排除当前记录)
|
||||
if (clinicRoomService.existsByOrgNameAndRoomNameExcludeId(clinicRoom.getOrgName(), clinicRoom.getRoomName(), clinicRoom.getId())) {
|
||||
return R.fail(400, "当前卫生机构下已存在该诊室名称");
|
||||
}
|
||||
|
||||
|
||||
// 更新诊室
|
||||
int result = clinicRoomService.updateClinicRoom(clinicRoom);
|
||||
if (result > 0) {
|
||||
@@ -119,7 +109,7 @@ public class ClinicRoomAppServiceImpl implements IClinicRoomAppService {
|
||||
if (existingClinicRoom == null) {
|
||||
return R.fail(404, "诊室不存在");
|
||||
}
|
||||
|
||||
|
||||
// 删除诊室
|
||||
int result = clinicRoomService.deleteClinicRoomById(id);
|
||||
if (result > 0) {
|
||||
|
||||
@@ -87,6 +87,30 @@ public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService {
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public R<?> getTodayMySchedule() {
|
||||
// 获取今天的日期
|
||||
LocalDate today = LocalDate.now();
|
||||
DayOfWeek dayOfWeek = today.getDayOfWeek();
|
||||
|
||||
// 将 Java 的 DayOfWeek 转换为字符串表示
|
||||
String weekdayStr = convertDayOfWeekToString(dayOfWeek);
|
||||
|
||||
// 获取当前登录医生的ID(需要从SecurityUtils获取)
|
||||
// 如果没有SecurityUtils,可以从参数传入或使用其他方式获取
|
||||
// Long currentDoctorId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||
|
||||
// 查询当前医生今天的排班
|
||||
LambdaQueryWrapper<DoctorSchedule> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(DoctorSchedule::getWeekday, weekdayStr) // 根据星期几查询
|
||||
// .eq(DoctorSchedule::getDoctorId, currentDoctorId) // 只查询当前医生的排班
|
||||
.eq(DoctorSchedule::getIsStopped, false); // 只查询未停止的排班
|
||||
|
||||
List<DoctorSchedule> list = doctorScheduleService.list(queryWrapper);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 DayOfWeek 转换为字符串表示
|
||||
* @param dayOfWeek DayOfWeek枚举
|
||||
@@ -113,44 +137,6 @@ public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<?> getTodayMySchedule() {
|
||||
try {
|
||||
// 获取当前登录用户信息
|
||||
com.core.common.core.domain.model.LoginUser loginUser = com.core.common.utils.SecurityUtils.getLoginUser();
|
||||
Long doctorId = loginUser.getPractitionerId();
|
||||
|
||||
// 如果没有获取到医生ID,尝试使用用户ID
|
||||
if (doctorId == null || doctorId == 0) {
|
||||
doctorId = loginUser.getUserId();
|
||||
System.out.println("Using userId as doctorId: " + doctorId);
|
||||
} else {
|
||||
System.out.println("Using practitionerId as doctorId: " + doctorId);
|
||||
}
|
||||
|
||||
// 获取今天的日期
|
||||
LocalDate today = LocalDate.now();
|
||||
System.out.println("Querying schedule for date: " + today);
|
||||
|
||||
// 查询当前医生今天的排班信息(从SchedulePool表)
|
||||
LambdaQueryWrapper<SchedulePool> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SchedulePool::getScheduleDate, today) // 根据具体日期查询
|
||||
.eq(SchedulePool::getDoctorId, doctorId) // 根据医生ID查询
|
||||
.eq(SchedulePool::getStatus, 1); // 只查询可用的排班
|
||||
|
||||
List<SchedulePool> list = schedulePoolService.list(queryWrapper);
|
||||
System.out.println("Found " + list.size() + " schedules for doctorId: " + doctorId);
|
||||
|
||||
// 为了支持多种日程类型,我们可以在这里整合来自不同数据源的信息
|
||||
// 目前只返回排班信息,但为以后扩展预留空间
|
||||
return R.ok(list);
|
||||
} catch (Exception e) {
|
||||
System.err.println("Error getting today's schedule: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
return R.fail("获取排班信息失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<?> addDoctorSchedule(DoctorSchedule doctorSchedule) {
|
||||
if (ObjectUtil.isEmpty(doctorSchedule)) {
|
||||
|
||||
@@ -71,39 +71,10 @@ public class TicketAppServiceImpl implements ITicketAppService {
|
||||
}
|
||||
|
||||
try {
|
||||
// 3. 号源列表来自排班表(adm_doctor_schedule),需确保clinical_ticket中存在对应记录
|
||||
Ticket existingTicket = ticketService.selectTicketById(ticketId);
|
||||
if (existingTicket == null) {
|
||||
DoctorSchedule schedule = doctorScheduleMapper.selectById(slotId);
|
||||
if (schedule == null) {
|
||||
return R.fail("排班记录不存在");
|
||||
}
|
||||
Ticket newTicket = new Ticket();
|
||||
newTicket.setId(slotId);
|
||||
newTicket.setDoctor(schedule.getDoctor());
|
||||
newTicket.setDepartment(String.valueOf(schedule.getDeptId()));
|
||||
newTicket.setDoctorId(schedule.getDoctorId());
|
||||
newTicket.setDepartmentId(schedule.getDeptId());
|
||||
String registerItem = schedule.getRegisterItem();
|
||||
if (registerItem != null && registerItem.contains("专家")) {
|
||||
newTicket.setTicketType("expert");
|
||||
} else {
|
||||
newTicket.setTicketType("general");
|
||||
}
|
||||
newTicket.setStatus("unbooked");
|
||||
int totalFee = (schedule.getRegisterFee() != null ? schedule.getRegisterFee() : 0)
|
||||
+ (schedule.getDiagnosisFee() != null ? schedule.getDiagnosisFee() : 0);
|
||||
newTicket.setFee(String.valueOf(totalFee));
|
||||
String timeRange = schedule.getStartTime() + "-" + schedule.getEndTime();
|
||||
newTicket.setTime(LocalDate.now() + " " + timeRange);
|
||||
// 使用MyBatis-Plus的save方法,支持手动设置ID
|
||||
ticketService.save(newTicket);
|
||||
}
|
||||
|
||||
// 4. 执行预约逻辑
|
||||
// 3. 执行原有的预约逻辑
|
||||
int result = ticketService.bookTicket(params);
|
||||
if (result > 0) {
|
||||
// 5. 预约成功后,更新排班表状态
|
||||
// 4. 预约成功后,更新排班表状态
|
||||
DoctorSchedule schedule = new DoctorSchedule();
|
||||
schedule.setId(slotId); // 对应 XML 中的 WHERE id = #{id}
|
||||
schedule.setIsStopped(true); // 设置为已预约
|
||||
@@ -115,12 +86,14 @@ public class TicketAppServiceImpl implements ITicketAppService {
|
||||
if (updateCount > 0) {
|
||||
return R.ok("预约成功并已更新排班状态");
|
||||
} else {
|
||||
// 如果更新失败,可能需要根据业务逻辑决定是否回滚预约
|
||||
return R.ok("预约成功,但排班状态更新失败");
|
||||
}
|
||||
} else {
|
||||
return R.fail("预约失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
log.error(e.getMessage());
|
||||
return R.fail("系统异常:" + e.getMessage());
|
||||
}
|
||||
|
||||
@@ -89,13 +89,4 @@ public class DoctorScheduleController {
|
||||
return R.ok(doctorScheduleAppService.getTodayDoctorScheduleList());
|
||||
}
|
||||
|
||||
/*
|
||||
* 获取当前登录医生今日排班List
|
||||
*
|
||||
* */
|
||||
@GetMapping("/today-my-schedule")
|
||||
public R<?> getTodayMySchedule() {
|
||||
return doctorScheduleAppService.getTodayMySchedule();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,14 +2,11 @@ package com.openhis.web.clinicalmanage.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.core.domain.model.LoginUser;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.openhis.web.clinicalmanage.appservice.ISurgicalScheduleAppService;
|
||||
import com.openhis.web.clinicalmanage.dto.OpCreateScheduleDto;
|
||||
import com.openhis.web.clinicalmanage.dto.OpScheduleDto;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.catalina.User;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -101,29 +98,4 @@ public class SurgicalScheduleController {
|
||||
surgicalScheduleAppService.exportSurgerySchedule(opScheduleDto, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证密码
|
||||
* @param password 密码
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping(value = "/checkPassword")
|
||||
public R<?> checkPassword(@RequestParam String password) {
|
||||
try {
|
||||
//获取当前登录用户信息
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser == null) {
|
||||
return R.fail("用户未登录");
|
||||
}
|
||||
// 直接使用 SecurityUtils.matchesPassword 进行密码验证
|
||||
boolean isMatch = SecurityUtils.matchesPassword(password, loginUser.getPassword());
|
||||
if (isMatch) {
|
||||
return R.ok(true);
|
||||
} else {
|
||||
return R.fail("密码错误");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return R.fail("密码验证失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
package com.openhis.web.consultation.controller;
|
||||
|
||||
import com.core.common.core.controller.BaseController;
|
||||
import com.core.common.core.domain.AjaxResult;
|
||||
import com.core.common.annotation.Log;
|
||||
import com.core.common.enums.BusinessType;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.consultation.domain.ConsultationConfirmation;
|
||||
import com.openhis.consultation.service.IConsultationConfirmationService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会诊确认 Controller
|
||||
*
|
||||
* @author his
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/consultation/confirmation")
|
||||
public class ConsultationConfirmationController extends BaseController {
|
||||
@Autowired
|
||||
private IConsultationConfirmationService consultationConfirmationService;
|
||||
|
||||
/**
|
||||
* 查询会诊确认列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:confirmation:list')")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(ConsultationConfirmation consultationConfirmation,
|
||||
@RequestParam(defaultValue = "1") Integer pageNum,
|
||||
@RequestParam(defaultValue = "10") Integer pageSize) {
|
||||
LambdaQueryWrapper<ConsultationConfirmation> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(consultationConfirmation.getConsultationRequestId() != null,
|
||||
ConsultationConfirmation::getConsultationRequestId,
|
||||
consultationConfirmation.getConsultationRequestId())
|
||||
.eq(consultationConfirmation.getConfirmationStatus() != null,
|
||||
ConsultationConfirmation::getConfirmationStatus,
|
||||
consultationConfirmation.getConfirmationStatus())
|
||||
.orderByDesc(ConsultationConfirmation::getCreateTime);
|
||||
|
||||
Page<ConsultationConfirmation> page = new Page<>(pageNum, pageSize);
|
||||
Page<ConsultationConfirmation> result = consultationConfirmationService.page(page, queryWrapper);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会诊确认详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:confirmation:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(consultationConfirmationService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增会诊确认
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:confirmation:add')")
|
||||
@Log(title = "会诊确认", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ConsultationConfirmation consultationConfirmation) {
|
||||
consultationConfirmation.setCreatorId(getUserId());
|
||||
consultationConfirmation.setCreatorName(getUsername());
|
||||
return toAjax(consultationConfirmationService.save(consultationConfirmation));
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认会诊(同意或拒绝)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:confirmation:confirm')")
|
||||
@Log(title = "会诊确认", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/confirm")
|
||||
public AjaxResult confirm(@RequestBody ConsultationConfirmation consultationConfirmation) {
|
||||
// 设置确认日期
|
||||
consultationConfirmation.setConfirmationDate(LocalDateTime.now());
|
||||
consultationConfirmation.setUpdaterId(getUserId());
|
||||
consultationConfirmation.setUpdaterName(getUsername());
|
||||
return toAjax(consultationConfirmationService.updateById(consultationConfirmation));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除会诊确认
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:confirmation:remove')")
|
||||
@Log(title = "会诊确认", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(consultationConfirmationService.removeByIds(java.util.Arrays.asList(ids)));
|
||||
}
|
||||
}
|
||||
@@ -41,12 +41,10 @@ public class ConsultationController {
|
||||
@ApiParam("就诊ID(可选,不传则查询当前医生的所有会诊申请)")
|
||||
@RequestParam(required = false) Long encounterId) {
|
||||
try {
|
||||
log.info("获取会诊列表,encounterId: {}", encounterId);
|
||||
List<ConsultationRequestDto> list = consultationAppService.getConsultationList(encounterId);
|
||||
log.info("获取会诊列表成功,共 {} 条记录", list != null ? list.size() : 0);
|
||||
return R.ok(list);
|
||||
} catch (Exception e) {
|
||||
log.error("获取会诊列表失败,encounterId: {}", encounterId, e);
|
||||
log.error("获取会诊列表失败", e);
|
||||
return R.fail("获取会诊列表失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
package com.openhis.web.consultation.controller;
|
||||
|
||||
import com.core.common.core.controller.BaseController;
|
||||
import com.core.common.core.domain.AjaxResult;
|
||||
import com.core.common.annotation.Log;
|
||||
import com.core.common.enums.BusinessType;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.consultation.domain.ConsultationRecord;
|
||||
import com.openhis.consultation.service.IConsultationRecordService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会诊记录 Controller
|
||||
*
|
||||
* @author his
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/consultation/record")
|
||||
public class ConsultationRecordController extends BaseController {
|
||||
@Autowired
|
||||
private IConsultationRecordService consultationRecordService;
|
||||
|
||||
/**
|
||||
* 查询会诊记录列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:record:list')")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(ConsultationRecord consultationRecord,
|
||||
@RequestParam(defaultValue = "1") Integer pageNum,
|
||||
@RequestParam(defaultValue = "10") Integer pageSize) {
|
||||
LambdaQueryWrapper<ConsultationRecord> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(consultationRecord.getConsultationRequestId() != null,
|
||||
ConsultationRecord::getConsultationRequestId,
|
||||
consultationRecord.getConsultationRequestId())
|
||||
.eq(consultationRecord.getParticipantDoctorId() != null,
|
||||
ConsultationRecord::getParticipantDoctorId,
|
||||
consultationRecord.getParticipantDoctorId())
|
||||
.orderByDesc(ConsultationRecord::getRecordDate);
|
||||
|
||||
Page<ConsultationRecord> page = new Page<>(pageNum, pageSize);
|
||||
Page<ConsultationRecord> result = consultationRecordService.page(page, queryWrapper);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会诊记录详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:record:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(consultationRecordService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增会诊记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:record:add')")
|
||||
@Log(title = "会诊记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ConsultationRecord consultationRecord) {
|
||||
consultationRecord.setCreatorId(getUserId());
|
||||
consultationRecord.setCreatorName(getUsername());
|
||||
return toAjax(consultationRecordService.save(consultationRecord));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改会诊记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:record:edit')")
|
||||
@Log(title = "会诊记录", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ConsultationRecord consultationRecord) {
|
||||
consultationRecord.setUpdaterId(getUserId());
|
||||
consultationRecord.setUpdaterName(getUsername());
|
||||
return toAjax(consultationRecordService.updateById(consultationRecord));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除会诊记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:record:remove')")
|
||||
@Log(title = "会诊记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(consultationRecordService.removeByIds(java.util.Arrays.asList(ids)));
|
||||
}
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
package com.openhis.web.consultation.controller;
|
||||
|
||||
import com.core.common.core.controller.BaseController;
|
||||
import com.core.common.core.domain.AjaxResult;
|
||||
import com.core.common.annotation.Log;
|
||||
import com.core.common.enums.BusinessType;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.consultation.domain.ConsultationRequest;
|
||||
import com.openhis.consultation.service.IConsultationRequestService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会诊申请 Controller
|
||||
*
|
||||
* @author his
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/consultation/request")
|
||||
public class ConsultationRequestController extends BaseController {
|
||||
@Autowired
|
||||
private IConsultationRequestService consultationRequestService;
|
||||
|
||||
/**
|
||||
* 查询会诊申请列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:list')")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(ConsultationRequest consultationRequest,
|
||||
@RequestParam(defaultValue = "1") Integer pageNum,
|
||||
@RequestParam(defaultValue = "10") Integer pageSize) {
|
||||
LambdaQueryWrapper<ConsultationRequest> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.like(consultationRequest.getPatientName() != null, ConsultationRequest::getPatientName, consultationRequest.getPatientName())
|
||||
.eq(consultationRequest.getConsultationStatus() != null, ConsultationRequest::getConsultationStatus, consultationRequest.getConsultationStatus())
|
||||
.eq(consultationRequest.getConsultationActivityId() != null, ConsultationRequest::getConsultationActivityId, consultationRequest.getConsultationActivityId())
|
||||
.orderByDesc(ConsultationRequest::getConsultationRequestDate);
|
||||
|
||||
Page<ConsultationRequest> page = new Page<>(pageNum, pageSize);
|
||||
Page<ConsultationRequest> result = consultationRequestService.page(page, queryWrapper);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会诊申请详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(consultationRequestService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:add')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ConsultationRequest consultationRequest) {
|
||||
// 自动生成申请单号
|
||||
String consultationId = "CS" + LocalDateTime.now().toString().replaceAll("[^0-9]", "").substring(0, 14) + String.format("%04d", (int)(Math.random() * 10000));
|
||||
consultationRequest.setConsultationId(consultationId);
|
||||
|
||||
consultationRequest.setCreateBy(getUsername());
|
||||
consultationRequest.setConsultationRequestDate(LocalDateTime.now());
|
||||
consultationRequest.setConsultationStatus(0); // 新开状态
|
||||
return toAjax(consultationRequestService.save(consultationRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:edit')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ConsultationRequest consultationRequest) {
|
||||
consultationRequest.setUpdateBy(getUsername());
|
||||
return toAjax(consultationRequestService.updateById(consultationRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:remove')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(consultationRequestService.removeByIds(java.util.Arrays.asList(ids)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:submit')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/submit/{id}")
|
||||
public AjaxResult submit(@PathVariable Long id) {
|
||||
int result = consultationRequestService.submitConsultation(id, getUserId(), getUsername());
|
||||
return result > 0 ? AjaxResult.success("提交成功") : AjaxResult.error("提交失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消提交会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:cancelSubmit')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/cancelSubmit/{id}")
|
||||
public AjaxResult cancelSubmit(@PathVariable Long id) {
|
||||
int result = consultationRequestService.cancelSubmitConsultation(id);
|
||||
return result > 0 ? AjaxResult.success("取消提交成功") : AjaxResult.error("取消提交失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:end')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/end/{id}")
|
||||
public AjaxResult end(@PathVariable Long id) {
|
||||
int result = consultationRequestService.endConsultation(id, getUserId(), getUsername());
|
||||
return result > 0 ? AjaxResult.success("结束成功") : AjaxResult.error("结束失败,请确保会诊已签名");
|
||||
}
|
||||
|
||||
/**
|
||||
* 作废会诊申请
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:cancel')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/cancel/{id}")
|
||||
public AjaxResult cancel(@PathVariable Long id) {
|
||||
int result = consultationRequestService.cancelConsultation(id, getUserId(), getUsername());
|
||||
return result > 0 ? AjaxResult.success("作废成功") : AjaxResult.error("作废失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认会诊
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:confirm')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/confirm")
|
||||
public AjaxResult confirm(@RequestBody ConsultationRequest request) {
|
||||
int result = consultationRequestService.confirmConsultation(
|
||||
request.getId(),
|
||||
request.getConfirmingPhysicianName(),
|
||||
String.valueOf(request.getConfirmingPhysicianId()),
|
||||
request.getConsultationOpinion()
|
||||
);
|
||||
return result > 0 ? AjaxResult.success("确认成功") : AjaxResult.error("确认失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 签名会诊
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('consultation:request:sign')")
|
||||
@Log(title = "会诊申请", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/sign")
|
||||
public AjaxResult sign(@RequestBody ConsultationRequest request) {
|
||||
int result = consultationRequestService.signConsultation(
|
||||
request.getId(),
|
||||
request.getSignature(),
|
||||
getUserId(),
|
||||
getUsername()
|
||||
);
|
||||
return result > 0 ? AjaxResult.success("签名成功") : AjaxResult.error("签名失败,请确保会诊已确认");
|
||||
}
|
||||
}
|
||||
@@ -3,20 +3,18 @@ package com.openhis.web.consultation.domain;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 会诊申请单实体类
|
||||
*
|
||||
*
|
||||
* @author system
|
||||
* @date 2026-01-29
|
||||
*/
|
||||
@Data
|
||||
@TableName("consultation_request")
|
||||
@Alias("webConsultationRequest")
|
||||
public class ConsultationRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.openhis.web.consultation.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.openhis.web.consultation.domain.ConsultationRequest;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 会诊申请Mapper接口
|
||||
*
|
||||
* @author system
|
||||
* @date 2026-01-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface ConsultationRequestMapper extends BaseMapper<ConsultationRequest> {
|
||||
|
||||
}
|
||||
|
||||
@@ -629,16 +629,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
chargeItem.setId(adviceSaveDto.getChargeItemId()); // 费用项id
|
||||
chargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue()); // 收费状态
|
||||
chargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(medicationRequest.getBusNo()));
|
||||
// 生成来源:如果前端指定了生成来源,使用前端值;否则使用默认的医生开立
|
||||
if (adviceSaveDto.getGenerateSourceEnum() != null) {
|
||||
chargeItem.setGenerateSourceEnum(adviceSaveDto.getGenerateSourceEnum());
|
||||
} else {
|
||||
chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||
}
|
||||
// 来源业务单据号:如果前端指定了来源业务单据号,设置该字段
|
||||
if (adviceSaveDto.getSourceBillNo() != null) {
|
||||
chargeItem.setSourceBillNo(adviceSaveDto.getSourceBillNo());
|
||||
}
|
||||
chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||
chargeItem.setPrescriptionNo(adviceSaveDto.getPrescriptionNo()); // 处方号
|
||||
chargeItem.setPatientId(adviceSaveDto.getPatientId()); // 患者
|
||||
chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); // 类型
|
||||
@@ -768,16 +759,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
|
||||
// 保存耗材费用项
|
||||
chargeItem = new ChargeItem();
|
||||
// 生成来源:如果前端指定了生成来源,使用前端值;否则使用默认的医生开立
|
||||
if (adviceSaveDto.getGenerateSourceEnum() != null) {
|
||||
chargeItem.setGenerateSourceEnum(adviceSaveDto.getGenerateSourceEnum());
|
||||
} else {
|
||||
chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||
}
|
||||
// 来源业务单据号:如果前端指定了来源业务单据号,设置该字段
|
||||
if (adviceSaveDto.getSourceBillNo() != null) {
|
||||
chargeItem.setSourceBillNo(adviceSaveDto.getSourceBillNo());
|
||||
}
|
||||
chargeItem.setId(adviceSaveDto.getChargeItemId()); // 费用项id
|
||||
chargeItem.setTenantId(tenantId); // 补全租户ID
|
||||
chargeItem.setCreateBy(currentUsername); // 补全创建人
|
||||
@@ -919,16 +900,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
// 保存时保存诊疗费用项
|
||||
if (is_save) {
|
||||
chargeItem = new ChargeItem();
|
||||
// 生成来源:如果前端指定了生成来源,使用前端值;否则使用默认的医生开立
|
||||
if (adviceSaveDto.getGenerateSourceEnum() != null) {
|
||||
chargeItem.setGenerateSourceEnum(adviceSaveDto.getGenerateSourceEnum());
|
||||
} else {
|
||||
chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||
}
|
||||
// 来源业务单据号:如果前端指定了来源业务单据号,设置该字段
|
||||
if (adviceSaveDto.getSourceBillNo() != null) {
|
||||
chargeItem.setSourceBillNo(adviceSaveDto.getSourceBillNo());
|
||||
}
|
||||
chargeItem.setId(adviceSaveDto.getChargeItemId()); // 费用项id
|
||||
chargeItem.setTenantId(tenantId); // 补全租户ID
|
||||
chargeItem.setCreateBy(currentUsername); // 补全创建人
|
||||
|
||||
@@ -1,161 +0,0 @@
|
||||
package com.openhis.web.doctorstation.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.openhis.clinical.domain.InfectiousCard;
|
||||
import com.openhis.clinical.service.IInfectiousCardService;
|
||||
import com.core.common.utils.StringUtils;
|
||||
import com.core.common.utils.poi.ExcelUtil;
|
||||
import com.core.common.core.domain.AjaxResult;
|
||||
import com.core.common.core.page.PageDomain;
|
||||
import com.core.common.core.page.TableDataInfo;
|
||||
import com.core.common.core.page.TableSupport;
|
||||
import com.core.common.utils.PageUtils;
|
||||
import com.core.common.core.controller.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.core.common.utils.PageUtils.startPage;
|
||||
|
||||
/**
|
||||
* 传染病报告卡 Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/doctor-station/diagnosis")
|
||||
public class InfectiousDiseaseReportController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IInfectiousCardService infectiousCardService;
|
||||
|
||||
/**
|
||||
* 获取下一个卡片编号
|
||||
*/
|
||||
@GetMapping("/next-card-no")
|
||||
public AjaxResult getNextCardNo(@RequestParam String orgCode) {
|
||||
if (StringUtils.isEmpty(orgCode)) {
|
||||
return AjaxResult.error("机构编码不能为空");
|
||||
}
|
||||
try {
|
||||
String nextCardNo = infectiousCardService.generateNextCardNo(orgCode);
|
||||
return AjaxResult.success("获取成功", nextCardNo);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("获取卡片编号失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存传染病报告卡
|
||||
*/
|
||||
@PostMapping("/save-infectious-disease-report")
|
||||
public AjaxResult saveInfectiousDiseaseReport(@RequestBody InfectiousCard infectiousCard) {
|
||||
// 验证必要参数
|
||||
if (infectiousCard == null) {
|
||||
return AjaxResult.error("请求数据不能为空");
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(infectiousCard.getCardNo())) {
|
||||
return AjaxResult.error("卡片编号不能为空");
|
||||
}
|
||||
|
||||
if (infectiousCard.getPatId() == null) {
|
||||
return AjaxResult.error("患者ID不能为空");
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(infectiousCard.getDiseaseCode())) {
|
||||
return AjaxResult.error("疾病编码不能为空");
|
||||
}
|
||||
|
||||
// 验证年龄和家长姓名的关系
|
||||
if (infectiousCard.getAge() != null && infectiousCard.getAgeUnit() != null &&
|
||||
infectiousCard.getAgeUnit().equals("1") && infectiousCard.getAge() <= 14) {
|
||||
if (StringUtils.isEmpty(infectiousCard.getParentName())) {
|
||||
return AjaxResult.error("14岁及以下患者必须填写家长姓名");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
boolean result = infectiousCardService.saveInfectiousCard(infectiousCard);
|
||||
if (result) {
|
||||
return AjaxResult.success("传染病报告卡保存成功");
|
||||
} else {
|
||||
return AjaxResult.error("传染病报告卡保存失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("保存过程中发生异常:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据卡片编号查询传染病报告卡
|
||||
*/
|
||||
@GetMapping("/get-infectious-card/{cardNo}")
|
||||
public AjaxResult getInfectiousCardByCardNo(@PathVariable String cardNo) {
|
||||
if (StringUtils.isEmpty(cardNo)) {
|
||||
return AjaxResult.error("卡片编号不能为空");
|
||||
}
|
||||
|
||||
try {
|
||||
InfectiousCard infectiousCard = infectiousCardService.getById(cardNo);
|
||||
if (infectiousCard != null) {
|
||||
return AjaxResult.success(infectiousCard);
|
||||
} else {
|
||||
return AjaxResult.error("未找到对应的传染病报告卡");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("查询过程中发生异常:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交传染病报告卡(更新状态为已提交)
|
||||
*/
|
||||
@PutMapping("/submit-infectious-card/{cardNo}")
|
||||
public AjaxResult submitInfectiousCard(@PathVariable String cardNo) {
|
||||
if (StringUtils.isEmpty(cardNo)) {
|
||||
return AjaxResult.error("卡片编号不能为空");
|
||||
}
|
||||
|
||||
try {
|
||||
InfectiousCard infectiousCard = infectiousCardService.getById(cardNo);
|
||||
if (infectiousCard == null) {
|
||||
return AjaxResult.error("未找到对应的传染病报告卡");
|
||||
}
|
||||
|
||||
// 只有暂存状态的卡片才能提交
|
||||
if (infectiousCard.getStatus() != 0) {
|
||||
return AjaxResult.error("只有暂存状态的卡片才能提交");
|
||||
}
|
||||
|
||||
infectiousCard.setStatus(1); // 设置为已提交状态
|
||||
boolean result = infectiousCardService.updateById(infectiousCard);
|
||||
if (result) {
|
||||
return AjaxResult.success("传染病报告卡提交成功");
|
||||
} else {
|
||||
return AjaxResult.error("传染病报告卡提交失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("提交过程中发生异常:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询传染病报告卡列表
|
||||
*/
|
||||
@GetMapping("/list-infectious-cards")
|
||||
public TableDataInfo listInfectiousCards(InfectiousCard infectiousCard) {
|
||||
startPage();
|
||||
List<InfectiousCard> list = infectiousCardService.list(new LambdaQueryWrapper<>(infectiousCard));
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出传染病报告卡列表
|
||||
*/
|
||||
@PostMapping("/export-infectious-cards")
|
||||
public AjaxResult exportInfectiousCards(InfectiousCard infectiousCard) {
|
||||
List<InfectiousCard> list = infectiousCardService.list(new LambdaQueryWrapper<>(infectiousCard));
|
||||
ExcelUtil<InfectiousCard> util = new ExcelUtil<>(InfectiousCard.class);
|
||||
return util.exportExcel(list, "传染病报告卡数据");
|
||||
}
|
||||
}
|
||||
@@ -190,15 +190,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
@Override
|
||||
public R<?> prePayment(PrePaymentDto prePaymentDto) {
|
||||
logger.info("预结算:参数:" + JSON.toJSONString(prePaymentDto));
|
||||
// 查收费项(支持手术计费)
|
||||
List<ChargeItem> chargeItemList;
|
||||
if (prePaymentDto.getGenerateSourceEnum() != null && prePaymentDto.getGenerateSourceEnum() == 2) {
|
||||
// 手术计费:根据generateSourceEnum和sourceBillNo过滤
|
||||
chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds(), prePaymentDto.getGenerateSourceEnum(), prePaymentDto.getSourceBillNo());
|
||||
} else {
|
||||
// 普通门诊划价
|
||||
chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds());
|
||||
}
|
||||
// 查收费项
|
||||
List<ChargeItem> chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds());
|
||||
if (chargeItemList.isEmpty()) {
|
||||
return R.fail("未选择收费项");
|
||||
}
|
||||
@@ -1906,13 +1899,11 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
: outpatientRegistrationAddParam.getYbMdtrtCertType());
|
||||
iAccountService.save(accountZf);
|
||||
}
|
||||
String accountContractNo = outpatientRegistrationAddParam.getAccountFormData().getContractNo();
|
||||
if (!CommonConstants.BusinessName.DEFAULT_CONTRACT_NO
|
||||
.equals(accountContractNo)
|
||||
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo())
|
||||
&& !CommonConstants.BusinessName.DEFAULT_STUDENT_CONTRACT_NO
|
||||
.equals(accountContractNo)
|
||||
&& accountContractNo.length() > 11
|
||||
&& accountContractNo.startsWith("STUDENT")) {
|
||||
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo())
|
||||
&& outpatientRegistrationAddParam.getAccountFormData().getContractNo().length() > 11) {
|
||||
// 建立学生自费ACCOUNT
|
||||
Account accountStudentZf = new Account();
|
||||
BeanUtils.copyProperties(accountFormData, accountStudentZf);
|
||||
@@ -1922,9 +1913,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
: outpatientRegistrationAddParam.getYbMdtrtCertType());
|
||||
iAccountService.save(accountStudentZf);
|
||||
|
||||
// 截取医保合同号时,先验证是否以"STUDENT"开头
|
||||
String ybContractNo = accountContractNo.substring("STUDENT".length());
|
||||
Contract contractYb = contractService.getContract(ybContractNo);
|
||||
Contract contractYb = contractService.getContract(
|
||||
outpatientRegistrationAddParam.getAccountFormData().getContractNo().substring("STUDENT".length()));
|
||||
if (contractYb != null && 1 == contractYb.getYbFlag()) {
|
||||
// 建立纯医保ACCOUNT
|
||||
Account accountYb = new Account();
|
||||
@@ -2103,24 +2093,6 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
return chargeItemService.list(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收费项集合(支持手术计费)
|
||||
*
|
||||
* @param chargeItemIds 收费项id集合
|
||||
* @param generateSourceEnum 账单生成来源(2:手术计费)
|
||||
* @param sourceBillNo 来源业务单据号(手术单号)
|
||||
* @return 收费项集合
|
||||
*/
|
||||
private List<ChargeItem> getChargeItems(List<Long> chargeItemIds, Integer generateSourceEnum, String sourceBillNo) {
|
||||
LambdaQueryWrapper<ChargeItem> wrapper = new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIds);
|
||||
// 如果是手术计费,需要额外过滤条件
|
||||
if (generateSourceEnum != null && generateSourceEnum == 2 && sourceBillNo != null) {
|
||||
wrapper.eq(ChargeItem::getGenerateSourceEnum, 2)
|
||||
.eq(ChargeItem::getSourceBillNo, sourceBillNo);
|
||||
}
|
||||
return chargeItemService.list(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 类型转换:收费项chargeItem转成PaymentedItemModel
|
||||
*
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
package com.openhis.web.ybmanage.controller;
|
||||
|
||||
import com.core.common.core.domain.AjaxResult;
|
||||
import com.core.common.core.domain.PageResult;
|
||||
import com.core.common.core.page.TableDataInfo;
|
||||
import com.core.common.core.controller.BaseController;
|
||||
import com.openhis.yb.domain.DayEndMedicalInsuranceSettlement;
|
||||
import com.openhis.yb.service.IDayEndMedicalInsuranceSettlementService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 日结医保结算Controller
|
||||
*
|
||||
* @author
|
||||
* @date 2026-02-02
|
||||
*/
|
||||
@Api(tags = "日结医保结算")
|
||||
@RestController
|
||||
@RequestMapping("/ybmanage/dayEndMedicalInsuranceSettlement")
|
||||
public class DayEndMedicalInsuranceSettlementController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IDayEndMedicalInsuranceSettlementService dayEndMedicalInsuranceSettlementService;
|
||||
|
||||
/**
|
||||
* 查询日结医保结算列表
|
||||
*/
|
||||
@ApiOperation("查询日结医保结算列表")
|
||||
@PreAuthorize("@ss.hasPermi('ybmanage:dayEndMedicalInsuranceSettlement:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement) {
|
||||
startPage();
|
||||
List<DayEndMedicalInsuranceSettlement> list = dayEndMedicalInsuranceSettlementService.selectDayEndMedicalInsuranceSettlementList(dayEndMedicalInsuranceSettlement);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询日结医保结算列表
|
||||
*/
|
||||
@ApiOperation("分页查询日结医保结算列表")
|
||||
@PreAuthorize("@ss.hasPermi('ybmanage:dayEndMedicalInsuranceSettlement:list')")
|
||||
@GetMapping("/page")
|
||||
public PageResult<DayEndMedicalInsuranceSettlement> page(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement,
|
||||
@RequestParam(defaultValue = "1") int pageNum,
|
||||
@RequestParam(defaultValue = "10") int pageSize) {
|
||||
return dayEndMedicalInsuranceSettlementService.selectDayEndMedicalInsuranceSettlementPage(dayEndMedicalInsuranceSettlement, pageNum, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取日结医保结算详细信息
|
||||
*/
|
||||
@ApiOperation("获取日结医保结算详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('ybmanage:dayEndMedicalInsuranceSettlement:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return AjaxResult.success(dayEndMedicalInsuranceSettlementService.selectDayEndMedicalInsuranceSettlementById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增日结医保结算
|
||||
*/
|
||||
@ApiOperation("新增日结医保结算")
|
||||
@PreAuthorize("@ss.hasPermi('ybmanage:dayEndMedicalInsuranceSettlement:add')")
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement) {
|
||||
return toAjax(dayEndMedicalInsuranceSettlementService.insertDayEndMedicalInsuranceSettlement(dayEndMedicalInsuranceSettlement));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改日结医保结算
|
||||
*/
|
||||
@ApiOperation("修改日结医保结算")
|
||||
@PreAuthorize("@ss.hasPermi('ybmanage:dayEndMedicalInsuranceSettlement:edit')")
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement) {
|
||||
return toAjax(dayEndMedicalInsuranceSettlementService.updateDayEndMedicalInsuranceSettlement(dayEndMedicalInsuranceSettlement));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除日结医保结算
|
||||
*/
|
||||
@ApiOperation("删除日结医保结算")
|
||||
@PreAuthorize("@ss.hasPermi('ybmanage:dayEndMedicalInsuranceSettlement:remove')")
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(dayEndMedicalInsuranceSettlementService.deleteDayEndMedicalInsuranceSettlementByIds(ids));
|
||||
}
|
||||
}
|
||||
@@ -90,15 +90,4 @@ server:
|
||||
port: 18080
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /openhis
|
||||
|
||||
# 开发环境日志配置
|
||||
logging:
|
||||
level:
|
||||
com.openhis: info
|
||||
com.baomidou.mybatisplus: info
|
||||
com.openhis.mapper: info
|
||||
com.openhis.domain: info
|
||||
org.springframework.jdbc.core: info
|
||||
com.alibaba.druid: info
|
||||
com.alibaba.druid.sql: info
|
||||
context-path: /openhis
|
||||
@@ -32,17 +32,16 @@ server:
|
||||
# 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.openhis: debug
|
||||
com.openhis: info
|
||||
org.springframework: warn
|
||||
# MyBatis和MyBatis-Plus日志
|
||||
com.baomidou.mybatisplus: debug
|
||||
com.openhis.mapper: debug
|
||||
com.openhis.domain: debug
|
||||
com.openhis.web.regdoctorstation.mapper: info
|
||||
# JDBC日志
|
||||
org.springframework.jdbc.core: debug
|
||||
org.springframework.jdbc.core: info
|
||||
# Druid SQL日志
|
||||
com.alibaba.druid: debug
|
||||
com.alibaba.druid.sql: debug
|
||||
com.alibaba.druid: info
|
||||
com.alibaba.druid.sql: info
|
||||
|
||||
# 用户配置
|
||||
user:
|
||||
@@ -92,9 +91,6 @@ mybatis-plus:
|
||||
mapperLocations: classpath*:mapper/**/*Mapper.xml
|
||||
# 加载全局的配置文件
|
||||
configLocation: classpath:mybatis/mybatis-config.xml
|
||||
configuration:
|
||||
# 开启 SQL 日志输出
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
global-config:
|
||||
db-config:
|
||||
logic-delete-field: validFlag # 全局逻辑删除的实体字段名
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
cs.apply_dept_id,
|
||||
cs.apply_dept_name,
|
||||
cs.org_id,
|
||||
cs.encounter_id,
|
||||
o.name AS org_name,
|
||||
cs.main_surgeon_name AS surgeon_name
|
||||
FROM op_schedule os
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.consultation.mapper.ConsultationRequestMapper">
|
||||
<mapper namespace="com.openhis.web.consultation.mapper.ConsultationRequestMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.openhis.consultation.domain.ConsultationRequest">
|
||||
<resultMap id="BaseResultMap" type="com.openhis.web.consultation.domain.ConsultationRequest">
|
||||
<id column="id" property="id" />
|
||||
<result column="consultation_id" property="consultationId" />
|
||||
<result column="patient_id" property="patientId" />
|
||||
@@ -22,6 +22,8 @@
|
||||
<result column="requesting_physician_id" property="requestingPhysicianId" />
|
||||
<result column="consultation_request_date" property="consultationRequestDate" />
|
||||
<result column="invited_object" property="invitedObject" />
|
||||
<result column="invited_department_id" property="invitedDepartmentId" />
|
||||
<result column="invited_physician_id" property="invitedPhysicianId" />
|
||||
<result column="consultation_date" property="consultationDate" />
|
||||
<result column="consultation_purpose" property="consultationPurpose" />
|
||||
<result column="provisional_diagnosis" property="provisionalDiagnosis" />
|
||||
@@ -43,11 +45,6 @@
|
||||
<result column="tenant_id" property="tenantId" />
|
||||
<result column="is_deleted" property="isDeleted" />
|
||||
<result column="remark" property="remark" />
|
||||
<result column="consultation_activity_id" property="consultationActivityId" />
|
||||
<result column="consultation_activity_name" property="consultationActivityName" />
|
||||
<result column="confirming_physician_name" property="confirmingPhysicianName" />
|
||||
<result column="confirming_department_name" property="confirmingDepartmentName" />
|
||||
<result column="confirming_physician_participation" property="confirmingPhysicianParticipation" />
|
||||
</resultMap>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
|
||||
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
|
||||
outagedetection=true
|
||||
outagedetectioninterval=2000
|
||||
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
|
||||
Reference in New Issue
Block a user