package com.ruoyi.inhospvisit.controller; import com.github.pagehelper.ISelect; import com.github.pagehelper.PageInfo; import com.ruoyi.common.annotation.AddOrgId; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.service.dto.PatMedReq; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.inhospvisit.api.InhospVisitFacade; import com.ruoyi.inhospvisit.domain.PatMedInhosp; import com.ruoyi.inhospvisit.domain.PatMedInhospDTO; import com.ruoyi.inhospvisit.domain.PatMedInhospVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 基础出入院信息查询 / CRUD 端点 —— 从 {@code ruoyi-admin} 的 * {@code PatMedInhospController} 迁入("其它模块只能从本模块调用出入院信息"的落地点之一)。 * *
* ⚠️ 注入门面而不是 {@code PatMedInhospMapper}:门面永远存在, * 不会因开关状态或装配差异导致本 Controller 启动失败。 */ @Autowired private InhospVisitFacade inhospVisitFacade; /** * 查询患者住院记录列表。 *
* 原 {@code PatMedInhospController#selectPatMedInhosplist}(L77-87)逐行对应。
*/
@ApiOperation("查询患者住院记录列表")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/selectPatMedInhospList")
public TableDataInfo selectPatMedInhosplist(@RequestBody PatMedInhosp patMedInhosp) {
PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
SysUser user = getLoginUser().getUser();
patMedInhosp.setOrgid(user.getOrgid());
List
* 原 {@code PatMedInhospController#selectPatMedInhospListByCondition}(L126-142)逐行对应。
*
* ⚠️ 原实现里两个分支调用的是同一个方法(只是条件不同),此处原样保留 ——
* 合并分支会改变"两个条件都为空时 list 保持 null"这一既有行为。
*/
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@ApiOperation("查询当前登陆人自己(病区、部门)的患者住院记录列表")
@PostMapping("/selectPatMedInhospListByCondition")
public TableDataInfo selectPatMedInhospListByCondition(@RequestBody PatMedInhospVO patMedInhospVO) {
PageUtils.startPageByPost(patMedInhospVO.getPageNum(), patMedInhospVO.getPageSize());
List
* 原 {@code PatMedInhospController#selectPatMedInhospByApplication} 逐行对应
* (含分页、{@code @AddOrgId}、以及 count 用的 {@code ISelect})。
*
* ⚠️ 本端点原有的反向判断缺陷被原样保留(见 {@code InhospVisitDataService}
* 对该方法的说明):查到记录时服务层返回 {@code null},所以本端点实际恒返回空数据。
* 前端当前没有调用它(已核对 {@code smartor-web/src})。
* 按"原实现怪癖一律原样保留、只在注释标注"的纪律,本步不修它。
*/
@ApiOperation("查询患者住院记录通过入院申请单信息")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/selectPatMedInhospByApplication")
public TableDataInfo selectPatMedInhospByApplication(@RequestBody PatMedInhosp patMedInhosp) {
PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
SysUser user = getLoginUser().getUser();
patMedInhosp.setOrgid(user.getOrgid());
List
* 原 {@code PatMedInhospController#selectPatMedInhospListCount}(L153-160)逐行对应。
* 前端首页 ECharts 在用({@code src/api/AiCentre/EChartsdata.js}),地址不可变。
*/
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/selectPatMedInhospListCount")
@ApiOperation("查询出、入院看病人次和人数")
public AjaxResult selectPatMedInhospListCount(@RequestBody PatMedReq patMedReq) {
SysUser user = getLoginUser().getUser();
patMedReq.setOrgid(user.getOrgid());
return success(inhospVisitFacade.selectPatMedInhospCount(patMedReq));
}
/**
* 导出患者住院记录列表。
*
* 原 {@code PatMedInhospController#export}(L165-173)逐行对应。
*/
@ApiOperation("导出患者住院记录列表")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:export')")
@Log(title = "患者住院记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, PatMedInhosp patMedInhosp) {
List
* 原 {@code PatMedInhospController#getInfo}(L178-183)逐行对应。
*/
@ApiOperation("获取患者住院记录详细信息")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:query')")
@GetMapping(value = "/getInfo/{inhospid}")
public AjaxResult getInfo(@PathVariable("inhospid") Long inhospid) {
return success(inhospVisitFacade.selectPatMedInhospByInhospid(inhospid));
}
/**
* 新增患者住院记录。
*
* 原 {@code PatMedInhospController#add}(L188-197)逐行对应。
*/
@ApiOperation("新增患者住院记录")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:add')")
@Log(title = "患者住院记录", businessType = BusinessType.INSERT)
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/add")
public AjaxResult add(@RequestBody PatMedInhosp patMedInhosp) {
SysUser user = getLoginUser().getUser();
patMedInhosp.setOrgid(user.getOrgid());
return toAjax(inhospVisitFacade.insertPatMedInhosp(patMedInhosp));
}
/**
* 修改患者住院记录。
*
* 原 {@code PatMedInhospController#edit}(L202-209)逐行对应。
*/
@ApiOperation("修改患者住院记录")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:edit')")
@Log(title = "患者住院记录", businessType = BusinessType.UPDATE)
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody PatMedInhosp patMedInhosp) {
return toAjax(inhospVisitFacade.updatePatMedInhosp(patMedInhosp));
}
/**
* 删除患者住院记录。
*
* 原 {@code PatMedInhospController#remove}(L214-220)逐行对应。
*/
@ApiOperation("删除患者住院记录")
//@PreAuthorize("@ss.hasPermi('smartor:patinhosp:remove')")
@Log(title = "患者住院记录", businessType = BusinessType.DELETE)
@GetMapping("/remove/{inhospids}")
public AjaxResult remove(@PathVariable Long[] inhospids) {
return toAjax(inhospVisitFacade.deletePatMedInhospByInhospids(inhospids));
}
}