package com.ruoyi.outpatientvisit.controller;
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.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospProvisional;
import com.ruoyi.outpatientvisit.service.OuthospProvisionalService;
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.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 患者门诊记录(过渡)Controller —— 从 {@code ruoyi-admin} 的
* {@code PatMedOuthospProvisionalController} 整体迁入。
*
*
⚠️ URL 一个都不能变
* 类级路径仍是 {@code /smartor/provisional},6 个方法级路径逐字照抄:
*
* POST /smartor/provisional/list
* POST /smartor/provisional/export
* GET /smartor/provisional/getInfo/{id}
* POST /smartor/provisional/add
* POST /smartor/provisional/edit
* GET /smartor/provisional/remove/{ids}
*
* 由 {@code sql/_probe/verify_outhosp_url_equivalence.py} 把关(全集判定 + 重复映射检查)。
*
* 迁入时同步删除
* 原 {@code PatMedOuthospProvisionalController} 必须整体删除,
* 否则两个类都映射同一路径,Spring 会因 {@code Ambiguous mapping} 直接启动失败。
*
* 与原实现的两处等价改写(已登记)
*
* - 不再经 smartor 的 Service 接口:原来注入
* {@code com.smartor.service.IPatMedOuthospProvisionalService},
* 现改为本模块的 {@link OuthospProvisionalService}
* —— 该 Service 原本只依赖本模块的 Mapper,属纯 CRUD,已整体迁入;
* - 分页方式不变:{@code list} 仍用 {@code startPage()}(pageHelper),
* 与原实现一致,不要改成 {@code PageUtils.startPageByPost}。
*
*
* 开关
* 本类不挂开关拦截器:属基础数据 CRUD(前端"过渡记录"管理页在用),
* {@code outpatientvisit.enabled} 只该控制"要不要生成门诊随访"。
*/
@Slf4j
@Api("患者门诊记录(过渡)")
@RestController
@RequestMapping("/smartor/provisional")
public class OuthospProvisionalController extends BaseController {
@Autowired
private OuthospProvisionalService service;
/**
* 查询患者门诊记录(过渡)列表。
*/
@ApiOperation("查询患者门诊记录(过渡)列表")
//@PreAuthorize("@ss.hasPermi('smartor:provisional:list')")
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("list")
public TableDataInfo list(@RequestBody PatMedOuthospProvisional patMedOuthospProvisional) {
startPage();
List list = service.selectList(patMedOuthospProvisional);
return getDataTable(list);
}
/**
* 导出患者门诊记录(过渡)列表。
*/
@ApiOperation("导出患者门诊记录(过渡)列表")
//@PreAuthorize("@ss.hasPermi('smartor:provisional:export')")
@Log(title = "患者门诊记录(过渡)", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, PatMedOuthospProvisional patMedOuthospProvisional) {
List list = service.selectList(patMedOuthospProvisional);
ExcelUtil util = new ExcelUtil(PatMedOuthospProvisional.class);
util.exportExcel(response, list, "患者门诊记录(过渡)数据");
}
/**
* 获取患者门诊记录(过渡)详细信息。
*/
@ApiOperation("获取患者门诊记录(过渡)详细信息")
//@PreAuthorize("@ss.hasPermi('smartor:provisional:query')")
@GetMapping(value = "/getInfo/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(service.selectById(id));
}
/**
* 新增患者门诊记录(过渡)。
*/
@ApiOperation("新增患者门诊记录(过渡)")
//@PreAuthorize("@ss.hasPermi('smartor:provisional:add')")
@Log(title = "患者门诊记录(过渡)", businessType = BusinessType.INSERT)
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/add")
public AjaxResult add(@RequestBody PatMedOuthospProvisional patMedOuthospProvisional) {
return toAjax(service.insert(patMedOuthospProvisional));
}
/**
* 修改患者门诊记录(过渡)。
*/
@ApiOperation("修改患者门诊记录(过渡)")
//@PreAuthorize("@ss.hasPermi('smartor:provisional:edit')")
@Log(title = "患者门诊记录(过渡)", businessType = BusinessType.UPDATE)
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody PatMedOuthospProvisional patMedOuthospProvisional) {
return toAjax(service.update(patMedOuthospProvisional));
}
/**
* 删除患者门诊记录(过渡)。
*/
@ApiOperation("删除患者门诊记录(过渡)")
//@PreAuthorize("@ss.hasPermi('smartor:provisional:remove')")
@Log(title = "患者门诊记录(过渡)", businessType = BusinessType.DELETE)
@GetMapping("/remove/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(service.deleteByIds(ids));
}
}