package com.ruoyi.web.controller.smartor; 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.domain.model.LoginUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.PatArchive; import com.smartor.domain.PatArchiveReq; import com.smartor.domain.PatImportInfoVO; import com.smartor.domain.PatUpInfoVO; import com.smartor.service.IPatArchiveService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 患者档案Controller * * @author smartor * @date 2023-03-04 */ @Api(description = "患者档案") @RestController @RequestMapping("/smartor/patarchive") public class PatArchiveController extends BaseController { @Autowired private IPatArchiveService patArchiveService; /** * 查询患者档案列表 */ @ApiOperation("查询患者档案列表") @PreAuthorize("@ss.hasPermi('smartor:patarchive:list')") @GetMapping("/list") public TableDataInfo list(PatArchive patArchive) { startPage(); List list = patArchiveService.selectPatArchiveList(patArchive); return getDataTable(list); } /** * 导出患者档案列表 */ @ApiOperation("导出患者档案列表") @PreAuthorize("@ss.hasPermi('smartor:patarchive:export')") @Log(title = "患者档案", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, PatArchive patArchive) { List list = patArchiveService.selectPatArchiveList(patArchive); ExcelUtil util = new ExcelUtil(PatArchive.class); util.exportExcel(response, list, "患者档案数据"); } /** * 获取患者档案详细信息 */ @ApiOperation("获取患者档案详细信息") @PreAuthorize("@ss.hasPermi('smartor:patarchive:query')") @GetMapping(value = "/{patid}") @ApiImplicitParam(name = "patid", value = "患者id") public AjaxResult getInfo(@PathVariable(name = "patid") Long patid) { return success(patArchiveService.selectPatArchiveByPatid(patid)); } /** * 新增患者档案 */ @ApiOperation("新增患者档案") @PreAuthorize("@ss.hasPermi('smartor:patarchive:add')") @Log(title = "患者档案", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody PatArchive patArchive) { return toAjax(patArchiveService.insertPatArchive(patArchive)); } /** * 修改患者档案 */ @ApiOperation("修改患者档案") @PreAuthorize("@ss.hasPermi('smartor:patarchive:edit')") @Log(title = "患者档案", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody PatArchive patArchive) { return toAjax(patArchiveService.updatePatArchive(patArchive)); } /** * 删除患者档案 */ @ApiOperation("删除患者档案") @PreAuthorize("@ss.hasPermi('smartor:patarchive:remove')") @Log(title = "患者档案", businessType = BusinessType.DELETE) @DeleteMapping("/{patids}") @ApiImplicitParam(name = "patids", value = "患者id集合", dataType = "long", dataTypeClass = Long.class) public AjaxResult remove(@PathVariable Long[] patids) { return toAjax(patArchiveService.deletePatArchiveByPatids(patids)); } /** * 导入患者文件处理 * * @param multipartFile */ @ApiOperation("导入患者文件处理") @PostMapping("/importFilehandle") @ApiImplicitParams({@ApiImplicitParam(name = "tags", value = "标签"), @ApiImplicitParam(name = "multipartFile", value = "上传文件")}) public AjaxResult importFilehandle(@RequestParam("tags") String tags, @RequestParam("multipartFile") MultipartFile multipartFile) { //获取当前登陆人 LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); PatUpInfoVO patUpInfoVO = patArchiveService.importFilehandle(user, tags, multipartFile); return success(patUpInfoVO); } /** * 导入患者信息模板 * * @param response */ @ApiOperation("患者信息导入模板") @PostMapping("/patImportTemplate") public void patImportTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(PatImportInfoVO.class); util.importTemplateExcel(response, "患者信息导入"); } /** * 导出患者错误信息 * * @param patArchiveList */ @ApiOperation("导出患者错误信息") @PostMapping(value = "/exportErrPatInfo") public void exportErrPatInfo(HttpServletResponse response, @RequestBody List patArchiveList) { ExcelUtil util = new ExcelUtil(PatImportInfoVO.class); util.exportExcel(response, patArchiveList, "导出患者错误信息"); } /** * 查询患者列表 */ @ApiOperation("查询患者列表") @PostMapping("/patInfoByContion") public TableDataInfo patInfoByCondition(@RequestBody PatArchiveReq patArchive) { startPage(); return getDataTable(patArchiveService.patInfoByContion(patArchive)); } // /** // * 患者标签管理 // */ // @ApiOperation("患者标签管理") // @PostMapping("/patTagByContion") // public TableDataInfo patTagByContion(@RequestBody List tagids) { // startPage(); // return getDataTable(patArchiveService.patTagByContion(tagids)); // } /** * 导出患者列表根据条件 */ @ApiOperation("导出患者列表根据条件") @PostMapping("/exportPatInfo") public void exportPpatInfo(HttpServletResponse response, @RequestBody PatArchiveReq patArchive) { startPage(); List patArchives = patArchiveService.patInfoByContion(patArchive); if (!CollectionUtils.isEmpty(patArchives)) { for (int i = 0; i < patArchives.size(); i++) { patArchives.get(i).setTag(patArchives.get(i).getTagList().toString()); } } ExcelUtil util = new ExcelUtil(PatArchive.class); util.exportExcel(response, patArchives, "患者档案数据"); } }