Browse Source

开票登记

dengsixing 3 năm trước cách đây
mục cha
commit
337c69346f

+ 11 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/InvoiceController.java

@@ -2,6 +2,7 @@ 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.IInvoiceService;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
@@ -11,7 +12,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -23,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/service/manage/invoice")
-public class InvoiceController {
+public class InvoiceController extends BaseController {
 
     @Autowired
     private IInvoiceService invoiceService;
@@ -42,6 +45,13 @@ public class InvoiceController {
         return invoiceService.pageInvoice(param);
     }
 
+    @PostMapping("/invoiceRegister")
+    public ResultData invoiceRegister(
+        @RequestParam("id") Long id, @RequestParam("invoiceNum") String invoiceNum, String shipNum,
+        @RequestParam(value = "file", required = false) MultipartFile file) throws Exception{
+        return invoiceService.invoiceRegister(this.getUserId(), id, invoiceNum, shipNum, file);
+    }
+
 
 
 }

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Invoice.java

@@ -140,7 +140,7 @@ public class Invoice implements Serializable {
     /**
      * 记录的状态,A: 生效,I: 禁用
      */
-    @TableLogic
+    @TableLogic(value="A",delval = "I")
     @TableField("rec_status")
     private String recStatus;
 

+ 4 - 3
4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.generator.FastAutoGenerator;
 import com.baomidou.mybatisplus.generator.config.OutputFile;
 import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.fdkankan.db.base.BaseEntity;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -17,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
 
         generate(path,"manage", getTables(new String[]{
-                "t_invoice","t_order","t_increment_order","t_download_order",
+                "t_invoice_register",
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -77,9 +78,9 @@ public class AutoGenerate {
 
                             .entityBuilder()
                             .enableLombok()
-//                            .logicDeleteColumnName("tb_status")
+                            .logicDeleteColumnName("tb_status")
                             .enableTableFieldAnnotation()
-//                            .superClass(BaseEntity.class)
+                            .superClass(BaseEntity.class)
 
                             .controllerBuilder()
                             .formatFileName("%sController")

+ 6 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IInvoiceService.java

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

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

@@ -1,15 +1,31 @@
 package com.fdkankan.manage.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.annotation.Dict;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.InvoiceType;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.manage.entity.Invoice;
+import com.fdkankan.manage.entity.InvoiceRegister;
 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.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceVO;
+import java.io.File;
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Objects;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -19,12 +35,70 @@ import org.springframework.stereotype.Service;
  * @author 
  * @since 2022-05-31
  */
+@RefreshScope
 @Service
 public class InvoiceServiceImpl extends ServiceImpl<IInvoiceMapper, Invoice> implements IInvoiceService {
 
+    @Value("${oss.dir.invoice}")
+    private String invoiceOssDir;
+    @Value("${invoice.prefix}")
+    private String invoicePrefix;
+    @Value("${oss.prefix.url}")
+    private String ossPrefixUrl;
+
+
+
+    @Autowired
+    private IInvoiceRegisterService invoiceRegisterService;
+    @Autowired
+    private UploadToOssUtil uploadToOssUtil;
+
     @Dict
     @Override
     public Page<InvoiceVO> pageInvoice(InvoicePageParamVO param) {
         return baseMapper.pageInvoice(new Page(param.getPageNum(), param.getPageSize()), param);
     }
+
+    @Override
+    public ResultData invoiceRegister(
+        Long userId, Long id, String invoiceNum,
+        String shipNum, MultipartFile file) throws IOException {
+        Invoice invoice = this.getById(id);
+        if(Objects.isNull(invoice)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_9001);
+        }
+        Integer type = invoice.getType();
+        if(InvoiceType.NO_NEAD.code().equals(type)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_9002);
+        }
+
+        InvoiceRegister invoiceRegister = invoiceRegisterService.getByInvoiceId(id);
+        if(Objects.isNull(invoiceRegister)){
+            invoiceRegister = new InvoiceRegister();
+            invoiceRegister.setInvoiceId(invoice.getId());
+            invoiceRegister.setInvoiceNum(invoiceNum);
+            invoiceRegister.setCreaterId(userId);
+        }else{
+            invoiceRegister.setUpdaterId(userId);
+            invoiceRegister.setUpdateTime(new Date());
+        }
+        //普通发票
+        if(InvoiceType.ORDINARY.code().equals(type)){
+            if(Objects.isNull(file) || file.isEmpty()){
+                throw new BusinessException(ErrorCode.FAILURE_CODE_5048);
+            }
+            String fileName = invoicePrefix + invoice.getId() + ".jpg";
+            String ossFilePath = String.format(invoiceOssDir) + "/" + fileName;
+            uploadToOssUtil.upload(file.getBytes(), ossFilePath);
+            invoiceRegister.setInvoiceUrl(ossPrefixUrl + ossFilePath);
+        }else{//专用发票
+            if(StrUtil.isEmpty(shipNum)){
+                throw new BusinessException(ErrorCode.FAILURE_CODE_9003);
+            }
+            invoiceRegister.setShipNum(shipNum);
+        }
+        invoiceRegisterService.saveOrUpdate(invoiceRegister);
+
+        return ResultData.ok();
+    }
 }

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/entity/AgentAudit.java

@@ -130,7 +130,7 @@ public class AgentAudit implements Serializable {
     /**
      * 0正常,1删除
      */
-       @TableLogic(value="0",delval = "1")
+    @TableLogic(value="0",delval = "1")
     private Integer tbStatus;