package com.ruoyi.order.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.WebUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.order.api.model.TOrderInvoice; import com.ruoyi.order.api.query.TOrderInvoiceQuery; import com.ruoyi.order.api.vo.TOrderInvoiceVO; import com.ruoyi.order.dto.AddOrderInvoice; import com.ruoyi.order.dto.GetOrderInvoiceList; import com.ruoyi.order.dto.MyOrderInvoiceInfo; import com.ruoyi.order.dto.OrderInvoiceList; import com.ruoyi.order.export.OrderInvoiceExport; import com.ruoyi.order.service.TOrderInvoiceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author xiaochen * @since 2024-08-07 */ @Api(tags = "订单开票") @RestController @RequestMapping("/t-order-invoice") public class TOrderInvoiceController { @Resource private TOrderInvoiceService orderInvoiceService; @ResponseBody @PostMapping("/addOrderInvoice") @ApiOperation(value = "添加开票申请", tags = {"小程序-充电发票"}) public AjaxResult addOrderInvoice(@RequestBody AddOrderInvoice addOrderInvoice){ return orderInvoiceService.addOrderInvoice(addOrderInvoice); } @PostMapping("/pageList") @ApiOperation(value = "查询开票分页列表", tags = {"管理后台-发票管理"}) public AjaxResult> pageList(@RequestBody TOrderInvoiceQuery query){ return AjaxResult.success(orderInvoiceService.pageList(query)); } @GetMapping("/uploadPdf") @ApiOperation(value = "上传发票", tags = {"管理后台-发票管理"}) public AjaxResult uploadPdf(@RequestParam("id") Long id, @RequestParam("invoiceUrl") String invoiceUrl){ TOrderInvoice orderInvoice = orderInvoiceService.getById(id); orderInvoice.setInvoiceUrl(invoiceUrl); orderInvoiceService.updateById(orderInvoice); return AjaxResult.success(); } @PostMapping("/statusCount") @ApiOperation(value = "查询开票状态数量", tags = {"管理后台-发票管理"}) public AjaxResult> statusCount(@RequestBody TOrderInvoiceQuery query){ return AjaxResult.success(orderInvoiceService.statusCount(query)); } /** * 发票管理导出 */ @ApiOperation(value = "发票管理导出") @Log(title = "发票管理导出", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(@RequestBody TOrderInvoiceQuery query) { List list = orderInvoiceService.export(query); List orderInvoiceExports = new ArrayList<>(); for (TOrderInvoiceVO orderInvoiceVO : list) { OrderInvoiceExport orderInvoiceExport = new OrderInvoiceExport(); BeanUtils.copyProperties(orderInvoiceVO,orderInvoiceExport); orderInvoiceExport.setBillingTime(DateUtils.localDateTimeToString(orderInvoiceVO.getBillingTime())); orderInvoiceExports.add(orderInvoiceExport); } Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), OrderInvoiceExport.class, orderInvoiceExports); HttpServletResponse response = WebUtils.response(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); ServletOutputStream outputStream = null; try { String fileName = URLEncoder.encode("发票导出.xls", "utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); outputStream = response.getOutputStream(); workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } finally { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } @ResponseBody @GetMapping("/getMyOrderInvoiceList") @ApiOperation(value = "获取开票记录列表", tags = {"小程序-充电发票"}) public AjaxResult> getMyOrderInvoiceList(GetOrderInvoiceList query){ List myOrderInvoiceList = orderInvoiceService.getMyOrderInvoiceList(query); return AjaxResult.success(myOrderInvoiceList); } @ResponseBody @GetMapping("/getMyOrderInvoiceInfo/{id}") @ApiOperation(value = "获取开票记录详情", tags = {"小程序-充电发票"}) public AjaxResult getMyOrderInvoiceInfo(@PathVariable String id){ MyOrderInvoiceInfo myOrderInvoiceInfo = orderInvoiceService.getMyOrderInvoiceInfo(id); return AjaxResult.success(myOrderInvoiceInfo); } }