Sfoglia il codice sorgente

新增财务管理 导出开票记录

y 2 anni fa
parent
commit
aecb606537

+ 41 - 0
src/main/java/com/ydtech/constants/enums/inv/InvoiceTypeEnum.java

@@ -0,0 +1,41 @@
+package com.ydtech.constants.enums.inv;
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.utils.StringUtils;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author jianlong
+ * @date 2024-01-26 15:20
+ */
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "InvAccountIncoice", desc = "发票类型")
+public enum InvoiceTypeEnum {
+    //支付方式(0现金 1微信 2转账 3其他)
+
+    CASH("1", "电子普票"),
+
+    WECHAT("2","电子专票"),
+
+
+    TRANSFER("3","纸质普票"),
+
+    QITA("4","纸质专票");
+
+    private final String code;
+
+    private final String desc;
+    public static String getNameByCode(String code) {
+        if (StringUtils.isEmpty(code)) {
+            return null;
+        }
+        for (InvoiceTypeEnum value : values()) {
+            if (value.getCode().equals(code)) {
+                return value.getDesc();
+            }
+        }
+        return code;
+    }
+}

+ 6 - 0
src/main/java/com/ydtech/modules/inv/controller/InvAccountIncoiceController.java

@@ -38,6 +38,12 @@ public class InvAccountIncoiceController {
     private InvAccountIncoiceService invAccountIncoiceService;
 
 
+    @PostMapping("excel")
+    @ApiOperation("导出开票记录表")
+    public HttpResult selectAccountIncoiceExcel(@RequestBody InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
+        return HttpResult.ok("",invAccountIncoiceService.excel(invAccountIncoiceQueryVo));
+    }
+
     /**
      * 分页查询所有数据
      *

+ 2 - 0
src/main/java/com/ydtech/modules/inv/model/InvAccountIncoice.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.inv.model;
 
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -23,6 +24,7 @@ import java.util.Date;
  */
 @TableName(value ="inv_account_incoice")
 @Data
+@ExcelIgnoreUnannotated
 public class InvAccountIncoice implements Serializable{
 
     //发票序号

+ 3 - 0
src/main/java/com/ydtech/modules/inv/service/InvAccountIncoiceService.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.inv.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.inv.model.InvAccountIncoice;
+import com.ydtech.modules.inv.model.vo.InvAccountIncoiceQueryVo;
 
 
 /**
@@ -19,4 +20,6 @@ public interface InvAccountIncoiceService extends IService<InvAccountIncoice> {
 
     HttpResult delInvAccountIncoice(InvAccountIncoice invAccountIncoice);
 
+    String excel(InvAccountIncoiceQueryVo invAccountIncoiceQueryVo);
+
 }

+ 48 - 5
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountIncoiceServiceImpl.java

@@ -2,21 +2,29 @@ package com.ydtech.modules.inv.service.impl;
 
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.enums.inv.InvoiceTypeEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.inv.dao.InvAccountIncoiceMapper;
 import com.ydtech.modules.inv.model.InvAccountCard;
 import com.ydtech.modules.inv.model.InvAccountIncoice;
 import com.ydtech.modules.inv.model.InvAccountOperate;
+import com.ydtech.modules.inv.model.vo.InvAccountIncoiceQueryVo;
 import com.ydtech.modules.inv.service.InvAccountCardService;
 import com.ydtech.modules.inv.service.InvAccountIncoiceService;
 import com.ydtech.modules.inv.service.InvAccountOperateService;
+import com.ydtech.modules.inv.utils.EasyExcelUtils;
+import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.List;
 
 import static com.ydtech.modules.inv.utils.TransferUtils.*;
 
@@ -36,6 +44,9 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
     @Autowired
     private InvAccountOperateService invAccountOperateService;
 
+    @Value("${upload.file.path}")
+    String uploadFilePath;
+
     @Override
     public HttpResult insertInvAccountIncoice(InvAccountIncoice invAccountIncoice) {
         BigDecimal tax = getBigDecimal(invAccountIncoice);
@@ -48,10 +59,6 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
         //不含税金额
         invAccountIncoice.setNoHasTax(tax.toString());
 
-
-
-
-
         return  HttpResult.ok(invAccountIncoiceMapper.insert(invAccountIncoice));
     }
 
@@ -74,7 +81,7 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
         String payoutMoney = new BigDecimal(invAccountIncoice.getPayoutMoney()).add(new BigDecimal(invAccountIncoice1.getPayoutMoney())).toString();
         invAccountIncoice1.setPayoutMoney(payoutMoney);
         invAccountIncoice1.setNotPayoutMoney(new BigDecimal(invAccountIncoice1.getInvoiceMoney()).subtract(new BigDecimal(payoutMoney)).toString());
-
+        invAccountIncoice1.setPayoutTime(invAccountIncoice.getPayoutTime());
 
 
         //修改发票增加卡的收入
@@ -139,5 +146,41 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
         return HttpResult.ok("撤销成功");
     }
 
+    @Override
+    public String excel(InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
+        LambdaQueryWrapper<InvAccountIncoice> lambdaQuery = new LambdaQueryWrapper<>();
+        lambdaQuery
+                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getBiller()), InvAccountIncoice::getBiller, invAccountIncoiceQueryVo.getBiller())
+                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
+                        invAccountIncoiceQueryVo.getInvoiceBy())
+                .eq(InvAccountIncoice::getDelFlag, "0")
+                .eq(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceType()), InvAccountIncoice::getInvoiceType,
+                        invAccountIncoiceQueryVo.getInvoiceType())
+                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getOtherUnit()), InvAccountIncoice::getOtherUnit,invAccountIncoiceQueryVo.getOtherUnit());
+
+
+        if (!ObjectUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceTime())) {
+            lambdaQuery.eq(InvAccountIncoice::getInvoiceTime, invAccountIncoiceQueryVo.getInvoiceTime().toString());
+        }
+        List<InvAccountIncoice> invAccountIncoices = invAccountIncoiceMapper.selectList(lambdaQuery);
+
+        //解决时间格式报错问题
+        invAccountIncoices.forEach(invAccountIncoice -> {
+            if (invAccountIncoice.getPayoutTime() != null){
+                invAccountIncoice.setPayoutDate(invAccountIncoice.getPayoutTime().toString());
+            }
+            if (invAccountIncoice.getInvoiceTime() != null){
+                invAccountIncoice.setInvoiceDate(invAccountIncoice.getInvoiceTime().toString());
+            }
+            if (invAccountIncoice.getInvoiceType() != null){
+                invAccountIncoice.setInvoiceType(InvoiceTypeEnum.getNameByCode(invAccountIncoice.getInvoiceType()));
+            }
+            if (invAccountIncoice.getRate() != null){
+                invAccountIncoice.setRate(invAccountIncoice.getRate()+"%");
+            }
+        });
+        return EasyExcelUtils.downExcel(uploadFilePath,InvAccountIncoice.class,invAccountIncoices);
+    }
+
 }