liusheng
2023-12-22 52a0bf7637b725f0b6bf18a03962b0636f7074fb
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -1,59 +1,64 @@
package com.smartor.controller;
package com.ruoyi.web.controller.smartor;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.smartor.domain.PatArchive;
import com.smartor.service.IPatArchiveService;
import com.ruoyi.common.utils.poi.ExcelUtil;
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.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.*;
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;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
/**
 * 患者档案Controller
 *
 *
 * @author smartor
 * @date 2023-03-04
 */
@Api(description = "患者档案")
@RestController
@RequestMapping("/smartor/patarchive")
public class PatArchiveController extends BaseController
{
public class PatArchiveController extends BaseController {
    @Autowired
    private IPatArchiveService patArchiveService;
    /**
     * 查询患者档案列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatArchive patArchive)
    {
        startPage();
        List<PatArchive> list = patArchiveService.selectPatArchiveList(patArchive);
        return getDataTable(list);
    }
//
//    /**
//     * 查询患者档案列表
//     */
//    @ApiOperation("查询患者档案列表")
//    @PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
//   @PostMapping("/list")
//    public TableDataInfo list(@RequestBody PatArchive patArchive) {
//        startPage();
//        List<PatArchive> 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)
    {
    public void export(HttpServletResponse response, PatArchive patArchive) {
        List<PatArchive> list = patArchiveService.selectPatArchiveList(patArchive);
        ExcelUtil<PatArchive> util = new ExcelUtil<PatArchive>(PatArchive.class);
        util.exportExcel(response, list, "患者档案数据");
@@ -62,43 +67,118 @@
    /**
     * 获取患者档案详细信息
     */
    @ApiOperation("获取患者档案详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:query')")
    @GetMapping(value = "/{patid}")
    public AjaxResult getInfo(@PathVariable("patid") Long patid)
    {
    @GetMapping(value = "/getInfo/{patid}")
    @ApiImplicitParam(name = "patid", value = "患者id")
    public AjaxResult getInfo(@PathVariable(name = "patid") Long patid) {
        return success(patArchiveService.selectPatArchiveByPatid(patid));
    }
    /**
     * 新增患者档案
     */
    @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: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: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')")
    @Log(title = "患者档案", businessType = BusinessType.DELETE)
   @DeleteMapping("/{patids}")
    public AjaxResult remove(@PathVariable Long[] patids)
    {
    @GetMapping("/remove/{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) {
        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, "患者信息导入");
    }
    /**
     * 导出患者错误信息
     *
     * @param patArchiveList
     */
    @ApiOperation("导出患者错误信息")
    @PostMapping(value = "/exportErrPatInfo")
    public void exportErrPatInfo(HttpServletResponse response, @RequestBody List<PatImportInfoVO> 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());
        return getDataTable(patArchiveService.patInfoByContion(patArchive));
    }
    /**
     * 导出患者列表根据条件
     */
    @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, "患者档案数据");
    }
}