dengsixing 3 anni fa
parent
commit
2b12ff5a63

+ 6 - 0
4dkankan-center-manage/pom.xml

@@ -84,6 +84,12 @@
       <version>1.3.6</version>
     </dependency>
 
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>easyexcel</artifactId>
+      <version>3.1.0</version>
+    </dependency>
+
   </dependencies>
 
   <build>

+ 29 - 2
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/InvoiceController.java

@@ -4,9 +4,12 @@ package com.fdkankan.manage.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IExcelService;
 import com.fdkankan.manage.service.IInvoiceService;
+import com.fdkankan.manage.service.IOrderService;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceVO;
+import java.io.IOException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -31,6 +34,8 @@ public class InvoiceController extends BaseController {
 
     @Autowired
     private IInvoiceService invoiceService;
+    @Autowired
+    private IExcelService excelService;
 
     /**
      * <p>
@@ -46,6 +51,15 @@ public class InvoiceController extends BaseController {
         return invoiceService.pageInvoice(param);
     }
 
+    /**
+     * 开票登记
+     * @param id 发票申请id
+     * @param invoiceNum
+     * @param shipNum
+     * @param file
+     * @return
+     * @throws Exception
+     */
     @PostMapping("/invoiceRegister")
     public ResultData invoiceRegister(
         @RequestParam("id") Long id, @RequestParam("invoiceNum") String invoiceNum, String shipNum,
@@ -53,12 +67,25 @@ public class InvoiceController extends BaseController {
         return invoiceService.invoiceRegister(this.getUserId(), id, invoiceNum, shipNum, file);
     }
 
+    /**
+     * 开票详情
+     * @param id
+     * @return
+     * @throws Exception
+     */
     @PostMapping("/getInvoiceRegisterDetail")
     public ResultData getInvoiceRegisterDetail(@RequestParam("id") Long id) throws Exception{
         return invoiceService.getInvoiceRegisterDetail(id);
     }
 
-
-
+    /**
+     * 导出发票申请
+     * @param param
+     * @throws IOException
+     */
+    @PostMapping("/export")
+    public void export(@RequestBody InvoicePageParamVO param) throws IOException {
+        excelService.exportInvoice(request, response, param);
+    }
 }
 

+ 2 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IInvoiceMapper.java

@@ -1,10 +1,12 @@
 package com.fdkankan.manage.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.annotation.Dict;
 import com.fdkankan.manage.entity.Invoice;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceVO;
+import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 
 /**

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IExcelService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.vo.InvoicePageParamVO;
+import java.io.IOException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/6
+ **/
+public interface IExcelService {
+
+    public void exportInvoice(HttpServletRequest request, HttpServletResponse response, InvoicePageParamVO param)
+        throws IOException;
+
+}

+ 2 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IInvoiceService.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceVO;
 import java.io.IOException;
+import java.util.List;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
@@ -21,7 +22,7 @@ import org.springframework.web.multipart.MultipartFile;
  */
 public interface IInvoiceService extends IService<Invoice> {
 
-    Page<InvoiceVO> pageInvoice(@RequestBody InvoicePageParamVO param);
+    Page<InvoiceVO> pageInvoice(InvoicePageParamVO param);
 
     ResultData invoiceRegister(Long userId, Long id, String invoiceNum,
         String shipNum,MultipartFile file) throws IOException;

+ 60 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/ExcelServiceImpl.java

@@ -0,0 +1,60 @@
+package com.fdkankan.manage.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.util.DateExtUtil;
+import com.fdkankan.manage.service.IExcelService;
+import com.fdkankan.manage.service.IInvoiceService;
+import com.fdkankan.manage.vo.InvoicePageParamVO;
+import com.fdkankan.manage.vo.InvoiceVO;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.Calendar;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/6
+ **/
+@Service
+public class ExcelServiceImpl implements IExcelService {
+
+    @Autowired
+    private IInvoiceService invoiceService;
+
+    @Override
+    public void exportInvoice(HttpServletRequest request, HttpServletResponse response, InvoicePageParamVO param)
+        throws IOException {
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        String fileName = "开票申请数据" + DateUtil.format(Calendar.getInstance().getTime(), DateExtUtil.dateStyle6) + ".xlsx";
+        fileName = URLEncoder.encode(fileName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
+        try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), InvoiceVO.class).build()) {
+            // 这里注意 如果同一个sheet只要创建一次
+            WriteSheet writeSheet = EasyExcel.writerSheet("开票申请数据").build();
+            // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来
+            int pageNum = 1;
+            param.setPageSize(5000);
+            Page<InvoiceVO> invoiceVOPage;
+            do {
+                param.setPageNum(pageNum);
+                invoiceVOPage = invoiceService.pageInvoice(param);
+                excelWriter.write(invoiceVOPage.getRecords(), writeSheet);
+                ++pageNum;
+
+            }while (invoiceVOPage.hasNext());
+        }
+    }
+}

+ 8 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/InvoiceServiceImpl.java

@@ -1,6 +1,10 @@
 package com.fdkankan.manage.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.annotation.Dict;
 import com.fdkankan.common.constant.ErrorCode;
@@ -8,6 +12,7 @@ import com.fdkankan.common.constant.InvoiceType;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.Result;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.DateExtUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.manage.entity.Invoice;
 import com.fdkankan.manage.entity.InvoiceRegister;
@@ -15,6 +20,7 @@ import com.fdkankan.manage.mapper.IInvoiceMapper;
 import com.fdkankan.manage.service.IInvoiceRegisterService;
 import com.fdkankan.manage.service.IInvoiceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.service.IOrderService;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceRegisterDetailVO;
 import com.fdkankan.manage.vo.InvoiceVO;
@@ -22,6 +28,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -123,4 +130,5 @@ public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> imp
             .shipNum(invoiceRegister.getShipNum())
             .build());
     }
+
 }

+ 19 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/InvoiceVO.java

@@ -1,9 +1,11 @@
 package com.fdkankan.manage.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.fdkankan.common.annotation.Dict;
 import com.fdkankan.common.constant.InvoiceType;
 import java.util.Date;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * <p>
@@ -14,6 +16,7 @@ import lombok.Data;
  * @since 2022/6/1
  **/
 @Data
+@EqualsAndHashCode
 public class InvoiceVO {
 
     private Long id;
@@ -21,21 +24,25 @@ public class InvoiceVO {
     /**
      * 订单号
      */
+    @ExcelProperty("订单编号")
     private String orderSn;
 
     /**
      * 支付时间
      */
+    @ExcelProperty("支付时间")
     private Date payTime;
 
     /**
      * 开票时间
      */
+    @ExcelProperty("开票申请时间")
     private Date invoiceTime;
 
     /**
      * 开票金额
      */
+    @ExcelProperty("开票金额")
     private Double money;
 
     /**
@@ -44,61 +51,73 @@ public class InvoiceVO {
     @Dict(enumClazz = InvoiceType.class)
     private Integer type;
 
+    @ExcelProperty("开票类型")
     private String typeStr;
 
     /**
      * 发票抬头
      */
+    @ExcelProperty("发票抬头")
     private String title;
 
     /**
      * 纳税人识别号
      */
+    @ExcelProperty("纳税人识别号")
     private String code;
 
     /**
      * 注册地址
      */
+    @ExcelProperty("注册地址")
     private String organizedAddress;
 
     /**
      * 注册电话
      */
+    @ExcelProperty("注册电话")
     private String registerPhone;
 
     /**
      * 开户银行
      */
+    @ExcelProperty("开户银行")
     private String bankName;
 
     /**
      * 银行账号
      */
+    @ExcelProperty("银行账号")
     private String bankAccount;
 
     /**
      * 收件人姓名
      */
+    @ExcelProperty("收件人姓名")
     private String shipName;
 
     /**
      * 收件人手机号码
      */
+    @ExcelProperty("收件人电话")
     private String shipMobile;
 
     /**
      * 收货地址
      */
+    @ExcelProperty("收货地址")
     private String shipAddress;
 
     /**
      * 邮箱
      */
+    @ExcelProperty("邮箱")
     private String email;
 
     /**
      * 开票状态(0-否,1-是)
      */
+    @ExcelProperty("状态")
     private Integer invoiced;
 
 

+ 0 - 2
4dkankan-center-manage/src/main/resources/mapper/manage/InvoiceMapper.xml

@@ -2,7 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.manage.mapper.IInvoiceMapper">
 
-
   <select id="pageInvoice" resultType="com.fdkankan.manage.vo.InvoiceVO">
     select * from(
       /*配件订单发票*/
@@ -126,5 +125,4 @@
     order by ${param.orderBy} ${param.sortBy}
   </select>
 
-
 </mapper>

+ 12 - 0
4dkankan-center-platform/pom.xml

@@ -92,6 +92,18 @@
           <version>1.3.6</version>
       </dependency>
 
+      <dependency>
+          <groupId>org.apache.poi</groupId>
+          <artifactId>poi</artifactId>
+          <version>3.8</version>
+      </dependency>
+
+      <dependency>
+          <groupId>org.apache.poi</groupId>
+          <artifactId>poi-ooxml</artifactId>
+          <version>3.8</version>
+      </dependency>
+
 
   </dependencies>
 

+ 0 - 12
4dkankan-common/pom.xml

@@ -102,18 +102,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi</artifactId>
-            <version>3.8</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-            <version>3.8</version>
-        </dependency>
-
-        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>

+ 3 - 0
4dkankan-common/src/main/java/com/fdkankan/common/interceptor/DictAspect.java

@@ -9,7 +9,10 @@ import java.util.List;
 import java.util.Objects;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.After;
 import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
 import org.springframework.core.annotation.Order;