package com.ruoyi.web.controller.project; 
 | 
  
 | 
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; 
 | 
import com.ruoyi.common.enums.BusinessType; 
 | 
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.io.*; 
 | 
import java.util.*; 
 | 
  
 | 
/** 
 | 
 * 费用收款单Controller 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 * @date 2024-02-27 
 | 
 */ 
 | 
@Api("费用收款单") 
 | 
@RestController 
 | 
@RequestMapping("/project/donorpayment") 
 | 
public class ServiceDonorpaymentController extends BaseController { 
 | 
    @Autowired 
 | 
    private IServiceDonorpaymentService serviceDonorpaymentService; 
 | 
  
 | 
    private static Configuration configuration = null; 
 | 
  
 | 
    public ServiceDonorpaymentController() { 
 | 
        configuration = new Configuration(); 
 | 
        configuration.setDefaultEncoding("utf-8"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询费用收款单列表 
 | 
     */ 
 | 
    @ApiOperation("查询费用收款单列表") 
 | 
    @GetMapping("/list") 
 | 
    public TableDataInfo list(ServiceDonorpayment serviceDonorpayment) { 
 | 
        startPage(); 
 | 
        List<ServiceDonorpayment> list = serviceDonorpaymentService.queryList(serviceDonorpayment); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出费用收款单列表 
 | 
     */ 
 | 
    @ApiOperation("导出费用收款单列表") 
 | 
    @Log(title = "费用收款单", businessType = BusinessType.EXPORT) 
 | 
    @GetMapping("/export") 
 | 
    public AjaxResult export(ServiceDonorpayment serviceDonorpayment) { 
 | 
        List<ServiceDonorpayment> list = serviceDonorpaymentService.queryList(serviceDonorpayment); 
 | 
        ExcelUtil<ServiceDonorpayment> util = new ExcelUtil<ServiceDonorpayment>(ServiceDonorpayment.class); 
 | 
        return util.exportExcel(list, "费用收款单数据"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取费用收款单详细信息 
 | 
     */ 
 | 
    @ApiOperation("获取费用收款单详细信息") 
 | 
    @GetMapping(value = "/getInfo/{id}") 
 | 
    public AjaxResult getInfo(@PathVariable("id") Long id) { 
 | 
        return AjaxResult.success(serviceDonorpaymentService.getById(id)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增费用收款单 
 | 
     */ 
 | 
    @ApiOperation("新增费用收款单") 
 | 
    @Log(title = "费用收款单", businessType = BusinessType.INSERT) 
 | 
    @PostMapping("/add") 
 | 
    @RepeatSubmit 
 | 
    public AjaxResult add(@RequestBody ServiceDonorpayment serviceDonorpayment) { 
 | 
        boolean save = serviceDonorpaymentService.save(serviceDonorpayment); 
 | 
        return success(serviceDonorpayment.getId().toString()); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改费用收款单 
 | 
     */ 
 | 
    @ApiOperation("修改费用收款单") 
 | 
    @Log(title = "费用收款单", businessType = BusinessType.UPDATE) 
 | 
    @PostMapping("/edit") 
 | 
    @RepeatSubmit 
 | 
    public AjaxResult edit(@RequestBody ServiceDonorpayment serviceDonorpayment) { 
 | 
        return toAjax(serviceDonorpaymentService.updateById(serviceDonorpayment)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除费用收款单 
 | 
     */ 
 | 
    @ApiOperation("删除费用收款单") 
 | 
    // @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; 
 | 
    } 
 | 
  
 | 
} 
 |