BillSubsidyController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. package com.huimv.farm.damsubsidy.controller;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.lang.UUID;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.huimv.farm.damsubsidy.common.token.TokenSign;
  6. import com.huimv.farm.damsubsidy.common.utils.Result;
  7. import com.huimv.farm.damsubsidy.common.utils.UploadImage;
  8. import com.huimv.farm.damsubsidy.entity.AreaAll;
  9. import com.huimv.farm.damsubsidy.entity.BillSubsidy;
  10. import com.huimv.farm.damsubsidy.entity.SysUser;
  11. import com.huimv.farm.damsubsidy.service.IAreaAllService;
  12. import com.huimv.farm.damsubsidy.service.IBillSubsidyService;
  13. import com.huimv.farm.damsubsidy.common.utils.PdfUtil;
  14. import com.huimv.farm.damsubsidy.service.ISysUserService;
  15. import com.huimv.farm.damsubsidy.test.QrCodeExcelPrinter;
  16. import com.huimv.farm.test.Print;
  17. import com.huimv.farm.test.Print2;
  18. import com.spire.xls.*;
  19. import org.apache.tomcat.util.http.fileupload.FileUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.util.StringUtils;
  22. import org.springframework.web.bind.annotation.*;
  23. import org.springframework.web.multipart.MultipartFile;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.io.*;
  27. import java.util.*;
  28. /**
  29. * <p>
  30. * 补贴信息表 前端控制器
  31. * </p>
  32. *
  33. * @author author
  34. * @since 2023-04-26
  35. */
  36. @RestController
  37. @RequestMapping("/bill-subsidy")
  38. @CrossOrigin
  39. public class BillSubsidyController {
  40. @Autowired
  41. private IBillSubsidyService iBillSubsidyService;
  42. @Autowired
  43. private IAreaAllService iAreaAllService;
  44. @Autowired
  45. private ISysUserService iSysUserService;
  46. @PostMapping("/addApplication")
  47. public Result addApplication(HttpServletRequest httpServletRequest, @RequestBody BillSubsidy billSubsidy) {
  48. return iBillSubsidyService.addApplication(httpServletRequest, billSubsidy);
  49. }
  50. @PostMapping("/saveApplication")
  51. public Result saveApplication(HttpServletRequest httpServletRequest, @RequestBody BillSubsidy billSubsidy) {
  52. return iBillSubsidyService.saveApplication(httpServletRequest, billSubsidy);
  53. }
  54. @Autowired
  55. private IBillSubsidyService subsidyService;
  56. @RequestMapping("/list")
  57. public Result list(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
  58. return subsidyService.list(httpServletRequest, paramsMap);
  59. }
  60. @RequestMapping("/listById")
  61. public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
  62. return subsidyService.listById(httpServletRequest, paramsMap);
  63. }
  64. @RequestMapping("/edit")
  65. public Result edit(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
  66. return subsidyService.edit(httpServletRequest, paramsMap);
  67. }
  68. @RequestMapping("/edit2")
  69. public Result edit2(HttpServletRequest httpServletRequest,
  70. @RequestParam("workImg") MultipartFile workImg,
  71. @RequestParam("id") String id,
  72. @RequestParam("type") String type,
  73. @RequestParam("rejectReason") String rejectReason) {
  74. String imgname = "成功";
  75. String originalFilename = workImg.getOriginalFilename();
  76. String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
  77. String path = DateUtil.format(new Date(), "yyyy-MM");
  78. try {
  79. InputStream inputStream = workImg.getInputStream();
  80. BufferedInputStream in = new BufferedInputStream(inputStream);
  81. ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
  82. byte[] temp = new byte[1024];
  83. int size = 0;
  84. while ((size = in.read(temp)) != -1) {
  85. out.write(temp, 0, size);
  86. }
  87. in.close();
  88. byte[] content = out.toByteArray();
  89. imgname = UUID.randomUUID() + "." + filenameExtension;
  90. UploadImage.sshSftp(content, path, imgname);
  91. } catch (Exception e) {
  92. e.printStackTrace();
  93. }
  94. String content = "https://img.ifarmcloud.com/images/" + path + "/" + imgname;
  95. Map<String, String> map = new HashMap<>();
  96. map.put("id", id);
  97. map.put("type", type);
  98. map.put("rejectReason", rejectReason);
  99. map.put("workAccptUrl", content);
  100. return subsidyService.edit2(httpServletRequest, map);
  101. }
  102. @RequestMapping("/appeal")
  103. public Result appeal(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
  104. return subsidyService.appeal(httpServletRequest, paramsMap);
  105. }
  106. @PostMapping("/editApplication")
  107. public Result editApplication(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> parasMap) {
  108. return iBillSubsidyService.editApplication(httpServletRequest, parasMap);
  109. }
  110. @PostMapping("/listApplication")
  111. public Result listApplication(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> parasMap) {
  112. return iBillSubsidyService.listApplication(httpServletRequest, parasMap);
  113. }
  114. @PostMapping("/getLast")
  115. public Result getLast(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> parasMap) {
  116. return iBillSubsidyService.getLast(httpServletRequest, parasMap);
  117. }
  118. @PostMapping("/listPcSub")
  119. public Result listPcSub(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> parasMap) {
  120. return subsidyService.listPcSub(httpServletRequest, parasMap);
  121. }
  122. @PostMapping("/listFlow")
  123. public Result listFlow(@RequestBody Map<String, String> parasMap) {
  124. return iBillSubsidyService.listFlow(parasMap);
  125. }
  126. //打印
  127. @GetMapping("/print")
  128. public void print(HttpServletResponse response, HttpServletRequest httpServletRequest, @RequestParam(name = "id", required = true) Integer id) throws Exception {
  129. // Integer id=Integer.parseInt(parasMap.get("id"));
  130. BillSubsidy subsidy = subsidyService.getById(id);
  131. QrCodeExcelPrinter codeExcelPrinter = new QrCodeExcelPrinter();
  132. codeExcelPrinter.test();
  133. Print.print(subsidy);
  134. String path = "/opt/subsidy/order_contract.xls";
  135. //加载Excel文档
  136. Workbook wb = new Workbook();
  137. wb.loadFromFile(path);
  138. Worksheet sheet = wb.getWorksheets().get(0);
  139. //添加图片
  140. ExcelPicture picture = sheet.getPictures().add(37, 10, "/opt/subsidy/a.png");
  141. picture.setHeight(70);//设置图片高度
  142. picture.setWidth(75);//设置图片宽度
  143. Worksheet worksheet = wb.getWorksheets().get(0);
  144. worksheet.getRange().get("E3").getStyle().setWrapText(true);//地址自动换行
  145. worksheet.getRange().get("C3").getStyle().setWrapText(true);//名字自动换行
  146. worksheet.getRange().get("C18").getStyle().setWrapText(true);//耳标号
  147. //调用方法保存为PDF格式
  148. String pdfPath = "/opt/subsidy/" + subsidy.getFarmerName() + ".pdf";
  149. wb.saveToFile(pdfPath, FileFormat.PDF);
  150. wb.dispose();
  151. PdfUtil.returnPdfStream2(response, pdfPath, subsidy.getFarmerName());
  152. //文件删除 TODO
  153. File file = new File(pdfPath);
  154. //
  155. FileUtils.forceDelete(file);
  156. }
  157. @PostMapping("/updatePayStatus")
  158. public Result updatePayStatus(@RequestBody Map<String, String> paramsMap) {
  159. String ids = paramsMap.get("ids");
  160. String[] split = ids.split(",");
  161. List list = new ArrayList();
  162. for (String s : split) {
  163. BillSubsidy billSubsidy = new BillSubsidy();
  164. billSubsidy.setId(Long.parseLong(s));
  165. billSubsidy.setIsPay(2);
  166. list.add(billSubsidy);
  167. }
  168. subsidyService.updateBatchById(list);
  169. return new Result(10000, "批量修改成功", true);
  170. }
  171. @PostMapping("/printPay2")
  172. public Result printPay(HttpServletResponse response, @RequestBody Map<String, String> paramsMap) throws IOException {
  173. return subsidyService.printPay(response, paramsMap);
  174. }
  175. @GetMapping("/printPay")
  176. public void printPay2(HttpServletResponse response, @RequestParam(name = "startDate", required = false) String startDate,
  177. @RequestParam(name = "endDate", required = false) String endDate
  178. ) throws IOException {
  179. subsidyService.printPay2(response, startDate, endDate);
  180. }
  181. //阶段性统计表
  182. @GetMapping("/printAmount")
  183. public void printAmount(HttpServletResponse response, HttpServletRequest httpServletRequest, @RequestParam(name = "country", required = false) String country
  184. , @RequestParam(name = "startDate", required = true) String startDate, @RequestParam(name = "endDate", required = true) String endDate,
  185. @RequestParam(name = "type", required = true) Integer type, @RequestParam(name = "id", required = false) String id
  186. ) throws Exception {
  187. if (type == 0) {
  188. //畜牧中心
  189. if (country == null || "".equals(country)) {
  190. //打印县
  191. Map<String, String> map = new HashMap<>();
  192. map.put("start", startDate);
  193. map.put("end", endDate);
  194. map.put("code", "1");
  195. iBillSubsidyService.printAmount(response, map);
  196. String path = "/opt/subsidy/xian.xls";
  197. PdfUtil.returnPdfStream3(response, path, "县阶段性统计表");
  198. } else {
  199. //打印镇
  200. Map<String, String> map = new HashMap<>();
  201. map.put("start", startDate);
  202. map.put("end", endDate);
  203. map.put("code", country);
  204. iBillSubsidyService.printAmount(response, map);
  205. String path = "/opt/subsidy/amount.xls";
  206. PdfUtil.returnPdfStream3(response, path, "镇阶段性统计表");
  207. }
  208. } else {
  209. //专干
  210. SysUser user = iSysUserService.getById(id);
  211. country = user.getBriefAddressCode();//镇的编码
  212. Map<String, String> map = new HashMap<>();
  213. map.put("start", startDate);
  214. map.put("end", endDate);
  215. map.put("code", country);
  216. iBillSubsidyService.printAmount(response, map);
  217. String path = "/opt/subsidy/amount.xls";
  218. PdfUtil.returnPdfStream3(response, path, "镇阶段性统计表");
  219. }
  220. }
  221. //阶段性待支付统计表
  222. @GetMapping("/printWaitPay")
  223. public void printWaitPay(HttpServletResponse response, @RequestParam(name = "country", required = false) String country
  224. , @RequestParam(name = "startDate", required = true) String startDate, @RequestParam(name = "endDate", required = true) String endDate,
  225. @RequestParam(name = "id", required = false) String id, @RequestParam(name = "type", required = false) Integer type
  226. ) throws Exception {
  227. if (type == 0) {
  228. //畜牧中心
  229. Map<String, String> map = new HashMap<>();
  230. map.put("start", startDate);
  231. map.put("end", endDate);
  232. map.put("code", country);
  233. iBillSubsidyService.printWaitPay(response, map);
  234. String path = "/opt/subsidy/pay.xls";
  235. PdfUtil.returnPdfStream3(response, path, "待支付表");
  236. } else {
  237. //专干
  238. SysUser byId = iSysUserService.getById(id);
  239. Map<String, String> map = new HashMap<>();
  240. map.put("start", startDate);
  241. map.put("end", endDate);
  242. map.put("code", byId.getBriefAddressCode());
  243. iBillSubsidyService.printWaitPay(response, map);
  244. String path = "/opt/subsidy/pay.xls";
  245. PdfUtil.returnPdfStream3(response, path, "待支付表");
  246. }
  247. //文件删除 TODO
  248. }
  249. //阶段性统计表展示
  250. @PostMapping("/listCount")
  251. public Result listCount(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> parasMap) {
  252. return iBillSubsidyService.countState(httpServletRequest, parasMap);
  253. }
  254. //阶段性待支付统计表展示
  255. @PostMapping("/listCountPay")
  256. public Result listCountPay(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> parasMap) {
  257. return iBillSubsidyService.countPay(httpServletRequest, parasMap);
  258. }
  259. }