package com.huimv.farm.damsubsidy.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.UUID; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.huimv.farm.damsubsidy.common.token.TokenSign; import com.huimv.farm.damsubsidy.common.utils.Result; import com.huimv.farm.damsubsidy.common.utils.UploadImage; import com.huimv.farm.damsubsidy.entity.AreaAll; import com.huimv.farm.damsubsidy.entity.BillSubsidy; import com.huimv.farm.damsubsidy.entity.SysUser; import com.huimv.farm.damsubsidy.service.IAreaAllService; import com.huimv.farm.damsubsidy.service.IBillSubsidyService; import com.huimv.farm.damsubsidy.common.utils.PdfUtil; import com.huimv.farm.damsubsidy.service.ISysUserService; import com.huimv.farm.damsubsidy.test.QrCodeExcelPrinter; import com.huimv.farm.test.Print; import com.huimv.farm.test.Print2; import com.spire.xls.*; 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.util.*; /** *

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

* * @author author * @since 2023-04-26 */ @RestController @RequestMapping("/bill-subsidy") @CrossOrigin public class BillSubsidyController { @Autowired private IBillSubsidyService iBillSubsidyService; @Autowired private IAreaAllService iAreaAllService; @Autowired private ISysUserService iSysUserService; @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); QrCodeExcelPrinter codeExcelPrinter = new QrCodeExcelPrinter(); codeExcelPrinter.test(); Print.print(subsidy); String path = "/opt/subsidy/order_contract.xls"; //加载Excel文档 Workbook wb = new Workbook(); wb.loadFromFile(path); Worksheet sheet = wb.getWorksheets().get(0); //添加图片 ExcelPicture picture = sheet.getPictures().add(37, 10, "/opt/subsidy/a.png"); picture.setHeight(70);//设置图片高度 picture.setWidth(75);//设置图片宽度 Worksheet worksheet = wb.getWorksheets().get(0); worksheet.getRange().get("E3").getStyle().setWrapText(true);//地址自动换行 worksheet.getRange().get("C3").getStyle().setWrapText(true);//名字自动换行 worksheet.getRange().get("C18").getStyle().setWrapText(true);//耳标号 //调用方法保存为PDF格式 String pdfPath = "/opt/subsidy/" + subsidy.getFarmerName() + ".pdf"; wb.saveToFile(pdfPath, FileFormat.PDF); wb.dispose(); PdfUtil.returnPdfStream2(response, pdfPath, subsidy.getFarmerName()); //文件删除 TODO File file = new File(pdfPath); // FileUtils.forceDelete(file); } @PostMapping("/updatePayStatus") public Result updatePayStatus(@RequestBody Map paramsMap) { String ids = paramsMap.get("ids"); String[] split = ids.split(","); List list = new ArrayList(); for (String s : split) { BillSubsidy billSubsidy = new BillSubsidy(); billSubsidy.setId(Long.parseLong(s)); billSubsidy.setIsPay(2); list.add(billSubsidy); } subsidyService.updateBatchById(list); return new Result(10000, "批量修改成功", true); } @PostMapping("/printPay2") public Result printPay(HttpServletResponse response, @RequestBody Map paramsMap) throws IOException { return subsidyService.printPay(response, paramsMap); } @GetMapping("/printPay") public void printPay2(HttpServletResponse response, @RequestParam(name = "startDate", required = false) String startDate, @RequestParam(name = "endDate", required = false) String endDate ) throws IOException { subsidyService.printPay2(response, startDate, endDate); } //阶段性统计表 @GetMapping("/printAmount") public void printAmount(HttpServletResponse response, HttpServletRequest httpServletRequest, @RequestParam(name = "country", required = false) String country , @RequestParam(name = "startDate", required = true) String startDate, @RequestParam(name = "endDate", required = true) String endDate, @RequestParam(name = "type", required = true) Integer type, @RequestParam(name = "id", required = false) String id ) throws Exception { if (type == 0) { //畜牧中心 if (country == null || "".equals(country)) { //打印县 Map map = new HashMap<>(); map.put("start", startDate); map.put("end", endDate); map.put("code", "1"); iBillSubsidyService.printAmount(response, map); String path = "/opt/subsidy/xian.xls"; PdfUtil.returnPdfStream3(response, path, "县阶段性统计表"); } else { //打印镇 Map map = new HashMap<>(); map.put("start", startDate); map.put("end", endDate); map.put("code", country); iBillSubsidyService.printAmount(response, map); String path = "/opt/subsidy/amount.xls"; PdfUtil.returnPdfStream3(response, path, "镇阶段性统计表"); } } else { //专干 SysUser user = iSysUserService.getById(id); country = user.getBriefAddressCode();//镇的编码 Map map = new HashMap<>(); map.put("start", startDate); map.put("end", endDate); map.put("code", country); iBillSubsidyService.printAmount(response, map); String path = "/opt/subsidy/amount.xls"; PdfUtil.returnPdfStream3(response, path, "镇阶段性统计表"); } } //阶段性待支付统计表 @GetMapping("/printWaitPay") public void printWaitPay(HttpServletResponse response, @RequestParam(name = "country", required = false) String country , @RequestParam(name = "startDate", required = true) String startDate, @RequestParam(name = "endDate", required = true) String endDate, @RequestParam(name = "id", required = false) String id, @RequestParam(name = "type", required = false) Integer type ) throws Exception { if (type == 0) { //畜牧中心 Map map = new HashMap<>(); map.put("start", startDate); map.put("end", endDate); map.put("code", country); iBillSubsidyService.printWaitPay(response, map); String path = "/opt/subsidy/pay.xls"; PdfUtil.returnPdfStream3(response, path, "待支付表"); } else { //专干 SysUser byId = iSysUserService.getById(id); Map map = new HashMap<>(); map.put("start", startDate); map.put("end", endDate); map.put("code", byId.getBriefAddressCode()); iBillSubsidyService.printWaitPay(response, map); String path = "/opt/subsidy/pay.xls"; PdfUtil.returnPdfStream3(response, path, "待支付表"); } //文件删除 TODO } //阶段性统计表展示 @PostMapping("/listCount") public Result listCount(HttpServletRequest httpServletRequest, @RequestBody Map parasMap) { return iBillSubsidyService.countState(httpServletRequest, parasMap); } //阶段性待支付统计表展示 @PostMapping("/listCountPay") public Result listCountPay(HttpServletRequest httpServletRequest, @RequestBody Map parasMap) { return iBillSubsidyService.countPay(httpServletRequest, parasMap); } }