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.enums.OrganEnum; 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.IServiceDonateorganService; 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.web.bind.annotation.*; import java.io.*; import java.text.SimpleDateFormat; import java.util.*; /** * 捐献完成Controller * * @author ruoyi * @date 2021-11-19 */ @Api("捐献完成登记管理") @RestController @RequestMapping("/project/donatecompletioninfo") public class ServiceDonatecompletioninfoController extends BaseController { @Autowired private IServiceDonatecompletioninfoService serviceDonatecompletioninfoService; @Autowired private IServiceDonateorganService serviceDonateorganService; private static Configuration configuration = null; public ServiceDonatecompletioninfoController() { configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); } /** * 查询捐献完成列表 */ @ApiOperation("查询捐献完成列表") //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:list')") @GetMapping("/list") public TableDataInfo list(ServiceDonatecompletioninfo serviceDonatecompletioninfo) { startPage(); List list = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo); return getDataTable(list); } @ApiOperation("查询捐献完成列表(新)") @GetMapping("/listnew") @Log(title = "查询捐献完成列表(新)", businessType = BusinessType.OTHER) public TableDataInfo listnew (DonationCompletionVO donationCompletionVO) { startPage(); List list = serviceDonatecompletioninfoService.selectVOList(donationCompletionVO); return getDataTable(list); } /** * 导出捐献完成列表 */ @ApiOperation("导出捐献完成列表") //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:export')") @Log(title = "捐献完成", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceDonatecompletioninfo serviceDonatecompletioninfo) { List list = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo); ExcelUtil util = new ExcelUtil(ServiceDonatecompletioninfo.class); return util.exportExcel(list, "捐献完成数据"); } /** * 获取捐献完成详细信息 */ @ApiOperation("通过id获取某一条捐献完成信息") //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(serviceDonatecompletioninfoService.getById(id)); } /** * 新增捐献完成 */ @ApiOperation("新增捐献完成") //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:add')") @Log(title = "捐献完成", businessType = BusinessType.INSERT) @PostMapping @RepeatSubmit(interval = 5000) public AjaxResult add(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) { serviceDonatecompletioninfoService.delDuplicateDonateCompletioninfo(serviceDonatecompletioninfo.getInfoid(),serviceDonatecompletioninfo.getCreateBy()); return toAjax(serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo)); } /** * 修改捐献完成 */ @RepeatSubmit @ApiOperation("修改捐献完成") //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')") @Log(title = "捐献完成", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) { return toAjax(serviceDonatecompletioninfoService.updateById(serviceDonatecompletioninfo)); } /** * 删除捐献完成 */ @ApiOperation("删除捐献完成") //@PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:remove')") @Log(title = "捐献完成", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(serviceDonatecompletioninfoService.removeByIds(Arrays.asList(ids))); } /** * 下载人体器官捐献完成结果登记表 */ @ApiOperation("通过donorno下载人体器官捐献完成结果登记表") @GetMapping(value = "/download/{id}") public Map downloadInfo(@PathVariable Long id) throws IOException { Map dataMap = new HashMap(); getData(dataMap, id); String filePath = getClass().getResource("/template/").getPath(); System.out.println(filePath); //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载, configuration.setDirectoryForTemplateLoading(new File(filePath)); Template t=null; try { //捐献表.ftl为要装载的模板 t = configuration.getTemplate("人体器官捐献完成结果登记表.ftl"); } catch (IOException e) { e.printStackTrace(); } String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis()); 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(); } try { t.process(dataMap, out); } catch (TemplateException e) { e.printStackTrace(); } Map map = new HashMap<>(); map.put("downloadUrl","/profile/download/wordtemplate/"+name+".doc"); return map; } /** * 注意dataMap里存放的数据Key值要与模板中的参数相对应 * @param dataMap */ private void getData(Map dataMap, Long id){ DonationCompletionVO donationCompletionVO = new DonationCompletionVO(); //donationCompletionVO.setDonorno(serviceDonatecompletioninfo.getDonorno()); List list = serviceDonatecompletioninfoService.selectVOList(donationCompletionVO); DonationCompletionVO donationCompletion = new DonationCompletionVO(); for(DonationCompletionVO v : list){ if(v.getDcid() != null && v.getDcid().longValue() == id){ donationCompletion = v; } } dataMap.put("JXBH",donationCompletion.getDcdonorno()); dataMap.put("XM",donationCompletion.getName()); dataMap.put("HQZZ",donationCompletion.getTreatmenthospitalname() == null ? "" : donationCompletion.getTreatmenthospitalname()); if(donationCompletion.getDonateorgan().contains("C22")){ dataMap.put("GZ",(char) 8730); }else{ dataMap.put("GZ","□"); } if(donationCompletion.getDonateorgan().contains("C64L")){ dataMap.put("ZS",(char) 8730); }else{ dataMap.put("ZS","□"); } if(donationCompletion.getDonateorgan().contains("C64R")){ dataMap.put("YS",(char) 8730); }else{ dataMap.put("YS","□"); } if(donationCompletion.getDonateorgan().contains("C38")){ dataMap.put("XZ",(char) 8730); }else{ dataMap.put("XZ","□"); } if(donationCompletion.getDonateorgan().contains("C34")){ dataMap.put("FZ",(char) 8730); }else{ dataMap.put("FZ","□"); } if(donationCompletion.getDonateorgan().contains("C25")){ dataMap.put("YX",(char) 8730); }else{ dataMap.put("YX","□"); } if(donationCompletion.getDonateorgan().contains("C17")){ dataMap.put("XC",(char) 8730); }else{ dataMap.put("XC","□"); } if(donationCompletion.getDonateorgan().contains("C69L")){ dataMap.put("ZYZZ",(char) 8730); }else{ dataMap.put("ZYZZ","□"); } if(donationCompletion.getDonateorgan().contains("C69R")){ dataMap.put("YYZZ",(char) 8730); }else{ dataMap.put("YYZZ","□"); } ServiceDonateorgan serviceDonateorgan = new ServiceDonateorgan(); serviceDonateorgan.setInfoid(donationCompletion.getInfoid()); List donateorganList = serviceDonateorganService.queryList(serviceDonateorgan); //List donateorganList = serviceDonateorganService.selectServiceDonateorganListNotAbandon(serviceDonateorgan); Boolean xz = false; Boolean qg = false; Boolean zg = false; Boolean yg = false; Boolean zs = false; Boolean ys = false; Boolean zf = false; Boolean yf = false; Boolean qf = false; Boolean yx = false; Boolean xc = false; Boolean zyjm = false; Boolean yyjm = false; SimpleDateFormat sformat = new SimpleDateFormat("yyyy-MM-dd"); if(donateorganList.size() > 0){ for(int i = 0; i