liusheng
2024-07-22 9e99e7e192c62c2274f8f5362b354cbf55c3d80f
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorpaymentController.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -9,14 +10,17 @@
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.ServiceDonorpayment;
import com.ruoyi.project.service.IServiceDonorpaymentService;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.io.*;
import java.util.*;
/**
 * 费用收款单Controller
@@ -31,11 +35,17 @@
    @Autowired
    private IServiceDonorpaymentService serviceDonorpaymentService;
    private static Configuration configuration = null;
    public ServiceDonorpaymentController() {
        configuration = new Configuration();
        configuration.setDefaultEncoding("utf-8");
    }
    /**
     * 查询费用收款单列表
     */
    @ApiOperation("查询费用收款单列表")
    @PreAuthorize("@ss.hasPermi('system:donorpayment:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceDonorpayment serviceDonorpayment) {
        startPage();
@@ -47,7 +57,6 @@
     * 导出费用收款单列表
     */
    @ApiOperation("导出费用收款单列表")
    @PreAuthorize("@ss.hasPermi('system:donorpayment:export')")
    @Log(title = "费用收款单", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceDonorpayment serviceDonorpayment) {
@@ -60,7 +69,6 @@
     * 获取费用收款单详细信息
     */
    @ApiOperation("获取费用收款单详细信息")
    @PreAuthorize("@ss.hasPermi('system:donorpayment:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return AjaxResult.success(serviceDonorpaymentService.getById(id));
@@ -70,19 +78,18 @@
     * 新增费用收款单
     */
    @ApiOperation("新增费用收款单")
    @PreAuthorize("@ss.hasPermi('system:donorpayment:add')")
    @Log(title = "费用收款单", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceDonorpayment serviceDonorpayment) {
        return toAjax(serviceDonorpaymentService.save(serviceDonorpayment));
        boolean save = serviceDonorpaymentService.save(serviceDonorpayment);
        return success(serviceDonorpayment.getId().toString());
    }
    /**
     * 修改费用收款单
     */
    @ApiOperation("修改费用收款单")
    @PreAuthorize("@ss.hasPermi('system:donorpayment:edit')")
    @Log(title = "费用收款单", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
@@ -94,10 +101,54 @@
     * 删除费用收款单
     */
    @ApiOperation("删除费用收款单")
    @PreAuthorize("@ss.hasPermi('system:donorpayment:remove')")
    // @PreAuthorize("@ss.hasPermi('system:donorpayment:remove')")
    @Log(title = "费用收款单", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceDonorpaymentService.removeByIds(Arrays.asList(ids)));
    }
    /**
     * 下载浙江省OPO收款结算单统计表
     */
    @ApiOperation("下载浙江省OPO收款结算单")
    @GetMapping(value = "/downloadInfo/{id}")
    public Map downloadInfo(@PathVariable("id") Long id) throws IOException {
        Map dataMap = new HashMap();
        serviceDonorpaymentService.getDataById(dataMap, id);
        String filePath = getClass().getResource("/template/").getPath();
        System.out.println(filePath);
        //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
        configuration.setDirectoryForTemplateLoading(new File(filePath));
        Template t = null;
        try {
//            t = configuration.getTemplate("浙江省OPO收款结算单.ftl");
            t = configuration.getTemplate("浙江省接收器官结算表.ftl");
        } catch (IOException e) {
            e.printStackTrace();
        }
        String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
        String name = "浙江省接收器官结算表_"+ 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();
        }
        try {
            t.process(dataMap, out);
        } catch (TemplateException e) {
            e.printStackTrace();
        }
        Map<String, Object> map = new HashMap<>();
        map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
        map.put("downloadName", name + ".doc");
        return map;
    }
}