liusheng
2024-09-21 d3bf339bd64d7b7efddc0afdd4beb1866b8b5a04
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.smartor;
import com.github.pagehelper.ISelect;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -7,9 +8,9 @@
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.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.PatArchive;
import com.smartor.domain.PatUpInfoVO;
import com.smartor.domain.*;
import com.smartor.service.IPatArchiveService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -17,11 +18,14 @@
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;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
/**
 * 患者档案Controller
@@ -29,7 +33,7 @@
 * @author smartor
 * @date 2023-03-04
 */
@Api("患者档案")
@Api(description = "患者档案")
@RestController
@RequestMapping("/smartor/patarchive")
public class PatArchiveController extends BaseController {
@@ -40,9 +44,9 @@
     * 查询患者档案列表
     */
    @ApiOperation("查询患者档案列表")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatArchive patArchive) {
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody PatArchive patArchive) {
        startPage();
        List<PatArchive> list = patArchiveService.selectPatArchiveList(patArchive);
        return getDataTable(list);
@@ -52,7 +56,7 @@
     * 导出患者档案列表
     */
    @ApiOperation("导出患者档案列表")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:export')")
    @Log(title = "患者档案", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatArchive patArchive) {
@@ -65,43 +69,54 @@
     * 获取患者档案详细信息
     */
    @ApiOperation("获取患者档案详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:query')")
    @GetMapping(value = "/{patid}")
    @ApiImplicitParam(name = "patid",value = "患者id")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:query')")
    @GetMapping(value = "/getInfo/{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("/add")
//    public AjaxResult add(@RequestBody PatArchive patArchive) {
//        return toAjax(patArchiveService.insertPatArchive(patArchive));
//    }
    /**
     * 新增患者档案
     */
    @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:update')")
    @Log(title = "患者档案", businessType = BusinessType.UPDATE)
    @PostMapping("/update")
    public AjaxResult update(@RequestBody PatArchive patArchive) {
        return toAjax(patArchiveService.update(patArchive));
    }
    /**
     * 修改患者档案
     * 新增或修改患者档信息
     */
    @ApiOperation("修改患者档案")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:edit')")
    @ApiOperation("新增或修改患者档信息")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:edit')")
    @Log(title = "患者档案", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody PatArchive patArchive) {
        return toAjax(patArchiveService.updatePatArchive(patArchive));
    @PostMapping("/saveOrUpdatePatInfo")
    public AjaxResult saveOrUpdatePatInfo(@RequestBody PatArchiveVO patArchiveVO) {
        return toAjax(patArchiveService.saveOrUpdatePatInfo(patArchiveVO));
    }
    /**
     * 删除患者档案
     */
    @ApiOperation("删除患者档案")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:remove')")
    @Log(title = "患者档案", businessType = BusinessType.DELETE)
    @DeleteMapping("/{patids}")
    @ApiImplicitParam(name = "patids",value = "患者id集合", dataType = "long", dataTypeClass = Long.class)
    @GetMapping("/remove/{patids}")
    @ApiImplicitParam(name = "patids", value = "患者id集合", dataType = "long", dataTypeClass = Long.class)
    public AjaxResult remove(@PathVariable Long[] patids) {
        return toAjax(patArchiveService.deletePatArchiveByPatids(patids));
    }
@@ -114,18 +129,27 @@
     */
    @ApiOperation("导入患者文件处理")
    @PostMapping("/importFilehandle")
    @ApiImplicitParams({
           @ApiImplicitParam(name = "tags", value = "标签"),
            @ApiImplicitParam(name = "multipartFile", value = "上传文件")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "tags", value = "标签"), @ApiImplicitParam(name = "multipartFile", value = "上传文件")})
    public AjaxResult importFilehandle(@RequestParam("tags") String tags, @RequestParam("multipartFile") MultipartFile multipartFile) {
        Executor executor = Executors.newFixedThreadPool(3);
        //获取当前登陆人
        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<PatImportInfoVO> util = new ExcelUtil<PatImportInfoVO>(PatImportInfoVO.class);
        ExcelUtil<PatArchive> util = new ExcelUtil<PatArchive>(PatArchive.class);
        util.importTemplateExcel(response, "患者信息导入");
    }
    /**
@@ -134,10 +158,75 @@
     * @param patArchiveList
     */
    @ApiOperation("导出患者错误信息")
    @PostMapping("/exportErrPatInfo")
    public AjaxResult exportErrPatInfo(@RequestBody List<PatArchive> patArchiveList) {
    @PostMapping(value = "/exportErrPatInfo")
    public void exportErrPatInfo(HttpServletResponse response, @RequestBody List<PatImportInfoVO> patArchiveList) {
        return success(patArchiveService.exportErrPatInfo(patArchiveList));
        ExcelUtil<PatImportInfoVO> util = new ExcelUtil<PatImportInfoVO>(PatImportInfoVO.class);
        util.exportExcel(response, patArchiveList, "导出患者错误信息");
    }
    /**
     * 查询患者列表
     */
    @ApiOperation("查询患者列表")
    @PostMapping("/patInfoByContion")
    public TableDataInfo patInfoByCondition(@RequestBody PatArchiveReq patArchive) {
        PageUtils.startPageByPost(patArchive.getPageNum(), patArchive.getPageSize());
        if (CollectionUtils.isEmpty(patArchive.getLeavehospitaldistrictcodes()) || patArchive.getLeavehospitaldistrictcodes().size() == 0) {
            patArchive.setLeavehospitaldistrictcodes(null);
        }
        if (CollectionUtils.isEmpty(patArchive.getLeaveldeptcodes()) || patArchive.getLeaveldeptcodes().size() == 0) {
            patArchive.setLeaveldeptcodes(null);
        }
        List<PatArchive> patArchives = patArchiveService.patInfoByContion(patArchive);
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
                patArchiveService.patInfoByContion(patArchive);
            }
        });
        return getDataTable2(count, patArchives);
    }
    /**
     * 导出患者列表根据条件
     */
    @ApiOperation("导出患者列表根据条件")
    @PostMapping("/exportPatInfo")
    public void exportPpatInfo(HttpServletResponse response, @RequestBody PatArchiveReq patArchive) {
        startPage();
        List<PatArchive> 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<PatArchive> util = new ExcelUtil<PatArchive>(PatArchive.class);
        util.exportExcel(response, patArchives, "患者档案数据");
    }
    /**
     * 获取患者信息
     */
    @ApiOperation("获取患者信息")
    @PostMapping("/getPatientInfo")
    public TableDataInfo getPatientInfo(@RequestBody PatArchiveReq patArchiveReq) {
        PageUtils.startPageByPost(patArchiveReq.getPageNum(), patArchiveReq.getPageSize());
        if (CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) || patArchiveReq.getLeavehospitaldistrictcodes().size() == 0) {
            patArchiveReq.setLeavehospitaldistrictcodes(null);
        }
        if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) {
            patArchiveReq.setLeaveldeptcodes(null);
        }
        List<PatArchiveOthreInfo> patientInfo = patArchiveService.getPatientInfo(patArchiveReq);
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
                patArchiveService.getPatientInfo(patArchiveReq);
            }
        });
        return getDataTable2(count, patientInfo);
    }