yxh
3 天以前 68b49efb4da346edb42a5d8ebb39af47207402bd
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
@@ -1,19 +1,23 @@
package com.ruoyi.web.controller.project;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.NotRepeatCommit;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.HttpStatus;
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.enums.OrganEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
import com.ruoyi.project.domain.ServiceDonateorgan;
import com.ruoyi.project.domain.vo.DonationCompletionVO;
import com.ruoyi.project.service.IServiceDonatecompletioninfoService;
import com.ruoyi.project.service.IServiceDonatecomporganService;
import com.ruoyi.project.service.IServiceDonateorganService;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -47,6 +51,9 @@
    @Autowired
    private IServiceDonateorganService serviceDonateorganService;
    @Autowired
    private IServiceDonatecomporganService serviceDonatecomporganService;
    private static Configuration configuration = null;
    public ServiceDonatecompletioninfoController() {
@@ -58,7 +65,7 @@
     * 查询捐献完成列表
     */
    @ApiOperation("查询捐献完成列表")
    //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:list')")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
        log.info("查询捐献完成列表:{}", serviceDonatecompletioninfo);
@@ -82,7 +89,7 @@
     * 导出捐献完成列表
     */
    @ApiOperation("导出捐献完成列表")
    //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:export')")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:export')")
    @Log(title = "捐献完成", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
@@ -96,7 +103,7 @@
     * 获取捐献完成详细信息
     */
    @ApiOperation("通过id获取某一条捐献完成信息")
    //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:query')")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        log.info("通过id获取某一条捐献完成信息:{}", id);
@@ -107,14 +114,60 @@
     * 新增捐献完成
     */
    @ApiOperation("新增捐献完成")
    //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:add')")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:add')")
    @Log(title = "捐献完成", businessType = BusinessType.INSERT)
    @PostMapping
    @PostMapping("/add")
    @RepeatSubmit(interval = 5000)
    public AjaxResult add(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
        log.info("新增捐献完成:{}", serviceDonatecompletioninfo);
        serviceDonatecompletioninfoService.delDuplicateDonateCompletioninfo(serviceDonatecompletioninfo.getInfoid(), serviceDonatecompletioninfo.getCreateBy());
        return toAjax(serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo));
        boolean save = serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo);
        log.info("新增捐献完成serviceDonatecompletioninfo的ID:{}", serviceDonatecompletioninfo.getId());
        return AjaxResult.success(serviceDonatecompletioninfo);
    }
//    /**
//     * 新增捐献完成详情
//     */
//    @ApiOperation("新增捐献完成详情")
//    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:add')")
//    @Log(title = "新增捐献完成详情", businessType = BusinessType.INSERT)
//    @PostMapping
//    @RepeatSubmit(interval = 5000)
//    public AjaxResult addDetail(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
//        log.info("新增捐献完成:{}", serviceDonatecompletioninfo);
//        serviceDonatecompletioninfoService.delDuplicateDonateCompletioninfo(serviceDonatecompletioninfo.getInfoid(), serviceDonatecompletioninfo.getCreateBy());
//        //新增donatecomporgan数据
//        if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfo.getServiceDonatecomporganList())) {
//            for (ServiceDonatecomporgan serviceDonatecomporgan : serviceDonatecompletioninfo.getServiceDonatecomporganList()) {
//                if (serviceDonatecomporgan.getInfoid() == null) {
//                    throw new BaseException("请检查捐献器官移植信息,是否与捐献基础表进行关联");
//                }
//                serviceDonatecomporganService.save(serviceDonatecomporgan);
//            }
//        }
//        return toAjax(serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo));
//    }
    @RepeatSubmit
    @ApiOperation("新增或修改捐献完成")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')")
    @Log(title = "捐献完成", businessType = BusinessType.UPDATE)
    @PostMapping("/saveOrUpdateDonatecompletioninfo")
    public AjaxResult saveOrUpdateDonatecompletioninfo(@RequestBody List<ServiceDonatecompletioninfo> serviceDonatecompletioninfoList) {
        if (CollectionUtils.isEmpty(serviceDonatecompletioninfoList)) {
            throw new BaseException("请检查需要新增或修改的捐献完成参数是否完整");
        }
        Boolean i = null;
        for (ServiceDonatecompletioninfo serviceDonatecompletioninfo : serviceDonatecompletioninfoList) {
            log.info("捐献完成id是否为空 : {},基础表的id为 : {}", serviceDonatecompletioninfo.getId(), serviceDonatecompletioninfo.getInfoid());
            if (serviceDonatecompletioninfo.getId() == null) {
                i = serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo);
            } else {
                i = serviceDonatecompletioninfoService.updateById(serviceDonatecompletioninfo);
            }
        }
        return toAjax(i);
    }
    /**
@@ -122,7 +175,7 @@
     */
    @RepeatSubmit
    @ApiOperation("修改捐献完成")
    //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')")
    @Log(title = "捐献完成", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
@@ -140,7 +193,7 @@
     * 删除捐献完成
     */
    @ApiOperation("删除捐献完成")
    //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:remove')")
    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:remove')")
    @Log(title = "捐献完成", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
@@ -170,21 +223,20 @@
        String name = "人体器官捐献完成结果登记表_" + dataMap.get("XM") + "_" + newTime;
        //输出文档路径及名称
        File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc");
        Writer out = null;
        try {
            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        if (t == null) {
            throw new ServiceException("模板加载失败,请检查模板文件是否存在", HttpStatus.NO_CONTENT);
        }
        try {
        // Writer 必须关闭/刷新:BufferedWriter 带缓冲,不关闭会造成文件句柄泄漏且内容可能不完整
        try (Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"))) {
            t.process(dataMap, out);
        } catch (TemplateException e) {
            e.printStackTrace();
        } catch (TemplateException | IOException e) {
            log.error("生成模板文档失败, name={}", name, e);
            throw new ServiceException("生成文档失败", HttpStatus.ERROR);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
        map.put("downloadName", name + ".doc");
        return map;
    }