package com.huimv.farm.damsubsidy.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.UUID; import com.huimv.farm.damsubsidy.common.utils.Result; import com.huimv.farm.damsubsidy.common.utils.UploadImage; import com.huimv.farm.damsubsidy.entity.BillSubsidy; import com.huimv.farm.damsubsidy.service.IBillSubsidyService; import com.huimv.farm.damsubsidy.common.utils.PdfUtil; import com.huimv.farm.test.Print; import com.spire.xls.FileFormat; import com.spire.xls.Workbook; import org.apache.tomcat.util.http.fileupload.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Date; import java.util.HashMap; import java.util.Map; /** *

* 补贴信息表 前端控制器 *

* * @author author * @since 2023-04-26 */ @RestController @RequestMapping("/bill-subsidy") @CrossOrigin public class BillSubsidyController { @Autowired private IBillSubsidyService iBillSubsidyService; @PostMapping("/addApplication") public Result addApplication(HttpServletRequest httpServletRequest, @RequestBody BillSubsidy billSubsidy){ return iBillSubsidyService.addApplication(httpServletRequest,billSubsidy); } @PostMapping("/saveApplication") public Result saveApplication(HttpServletRequest httpServletRequest, @RequestBody BillSubsidy billSubsidy){ return iBillSubsidyService.saveApplication(httpServletRequest,billSubsidy); } @Autowired private IBillSubsidyService subsidyService; @RequestMapping("/list") public Result list(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) { return subsidyService.list(httpServletRequest, paramsMap); } @RequestMapping("/listById") public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) { return subsidyService.listById(httpServletRequest, paramsMap); } @RequestMapping("/edit") public Result edit(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) { return subsidyService.edit(httpServletRequest, paramsMap); } @RequestMapping("/edit2") public Result edit2(HttpServletRequest httpServletRequest, @RequestParam("workImg") MultipartFile workImg, @RequestParam("id") String id, @RequestParam("type") String type, @RequestParam("rejectReason") String rejectReason) { String imgname = "成功"; String originalFilename = workImg.getOriginalFilename(); String filenameExtension = StringUtils.getFilenameExtension(originalFilename); String path = DateUtil.format(new Date(), "yyyy-MM"); try { InputStream inputStream = workImg.getInputStream(); BufferedInputStream in = new BufferedInputStream(inputStream); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); byte[] temp = new byte[1024]; int size = 0; while ((size = in.read(temp)) != -1) { out.write(temp, 0, size); } in.close(); byte[] content = out.toByteArray(); imgname = UUID.randomUUID() + "." + filenameExtension; UploadImage.sshSftp(content, path, imgname); } catch (Exception e) { e.printStackTrace(); } String content = "https://img.ifarmcloud.com/images/" + path + "/" + imgname; Map map = new HashMap<>(); map.put("id", id); map.put("type", type); map.put("rejectReason", rejectReason); map.put("workAccptUrl", content); return subsidyService.edit2(httpServletRequest, map); } @RequestMapping("/appeal") public Result appeal(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) { return subsidyService.appeal(httpServletRequest, paramsMap); } @PostMapping("/editApplication") public Result editApplication(HttpServletRequest httpServletRequest, @RequestBody Map parasMap){ return iBillSubsidyService.editApplication(httpServletRequest,parasMap); } @PostMapping("/listApplication") public Result listApplication(HttpServletRequest httpServletRequest, @RequestBody Map parasMap){ return iBillSubsidyService.listApplication(httpServletRequest,parasMap); } @PostMapping("/getLast") public Result getLast(HttpServletRequest httpServletRequest, @RequestBody Map parasMap){ return iBillSubsidyService.getLast(httpServletRequest,parasMap); } @PostMapping("/listPcSub") public Result listPcSub(HttpServletRequest httpServletRequest, @RequestBody Map parasMap){ return subsidyService.listPcSub(httpServletRequest,parasMap); } @PostMapping("/listFlow") public Result listFlow(@RequestBody Map parasMap){ return iBillSubsidyService.listFlow(parasMap); } //打印 @GetMapping("/print") public void print(HttpServletResponse response, HttpServletRequest httpServletRequest,@RequestParam(name = "id", required = true) Integer id) throws Exception { // Integer id=Integer.parseInt(parasMap.get("id")); BillSubsidy subsidy = subsidyService.getById(id); Print.print(subsidy); String path = "/opt/subsidy/order_contract.xls"; //加载Excel文档 Workbook wb = new Workbook(); wb.loadFromFile(path); //调用方法保存为PDF格式 String pdfPath = "/opt/subsidy/"+subsidy.getFarmerName()+".pdf"; wb.saveToFile(pdfPath, FileFormat.PDF); // wb.getConverterSetting().setSheetFitToPage(true); // OutputStream outputStream = null; // wb.saveToStream(outputStream); PdfUtil.returnPdfStream2(response,pdfPath,subsidy.getFarmerName()); //文件删除 TODO // File file = new File("G://"+subsidy.getFarmerName() + ".pdf"); // // FileUtils.forceDelete(file); // Path path1 = Paths.get("/opt/subsidy/"+subsidy.getFarmerName()+".pdf"); // Files.delete(path1); // Path path2 = Paths.get("/opt/subsidy/"+"order_contract"+".xls"); // Files.delete(path2); } }