Przeglądaj źródła

对接计费系统开票申请

lzm 2 lat temu
rodzic
commit
d0554f1557

+ 17 - 3
sp-admin/sa-view/tb-invoice-info/online-invioce.html

@@ -71,7 +71,7 @@
                                     </template>
                                 </el-table-column>
                                 <sa-td name="发票预览" prop="imageUrl" type="img"></sa-td>
-                                <el-table-column label="操作"  width="240px">
+                                <el-table-column label="操作"  width="140px">
                                     <template slot-scope="s">
                                         <el-button class="c-btn" type="success"  @click="showFee(s.row.id)">费用详情</el-button>
                                     </template>
@@ -87,7 +87,7 @@
     </div>
     <!-- ------- 底部按钮 ------- -->
     <div class="s-foot">
-        <el-button v-if="m.isApply!=1&&m.isApply!=2&&comfirmButton==0&&m.status==0&&currentCustomerId==1" type="success" @click="comfirmFn">确定开票</el-button>
+        <el-button v-if="m.applyAble!=1&&m.isApply!=1&&m.isApply!=2&&comfirmButton==0&&m.status==0&&currentCustomerId==1" type="success" @click="comfirmFn">确定开票</el-button>
         <el-button @click="sa.closeCurrIframe()">取消</el-button>
     </div>
     <el-dialog title="费用明细" :visible.sync="showFeeDate.visible" width="90%">
@@ -165,7 +165,21 @@
                 }.bind(this))
             },
             comfirmFn() {
-                this.drawerDate.visible = true;
+                // this.drawerDate.visible = true;
+                this.$confirm('    点击确定开始开票', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: ''
+                }).then(() => {
+                    sa.ajax('/InvoiceApply/applyInvoice?infoId='+this.infoId, function(resp) {
+                        if(resp.code == 200){
+                            this.comfirmButton = 1;
+                            sa.alert('开票成功', this.close);
+                        }else{
+                            sa.alert('开票失败', this.close);
+                        }
+                    }.bind(this));
+                });
             },
             comfirm() {
                 sa.checkNull(this.drawerDate.form.drawer, '输入 [开票人]');

+ 8 - 5
sp-server/src/main/java/com/pj/api/invoice/api/InvoiceApplyController.java

@@ -1,9 +1,8 @@
 package com.pj.api.invoice.api;
 
 import cn.hutool.core.codec.Base64;
-import cn.hutool.core.util.XmlUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
-import cn.hutool.log.StaticLog;
 import com.pj.api.invoice.bo.InvoiceApplyCallBack;
 import com.pj.api.invoice.service.InvoiceApplyService;
 import com.pj.utils.sg.AjaxJson;
@@ -34,9 +33,13 @@ public class InvoiceApplyController {
     public AjaxJson applyInvoice(){
         SoMap so = SoMap.getRequestSoMap();
         String infoId = so.getString("infoId");
-        String drawer = so.getString("drawer");
-        invoiceApplyService.applyInvoice(infoId, drawer);
-        return AjaxJson.getSuccess();
+        String code = invoiceApplyService.applyInvoice(infoId);
+        if(StrUtil.equals("200", code)){
+            return AjaxJson.getSuccess();
+        }else{
+            return AjaxJson.getError();
+        }
+
     }
 
     @RequestMapping(value = "applyCallBack")

+ 11 - 20
sp-server/src/main/java/com/pj/api/invoice/service/InvoiceApplyService.java

@@ -77,27 +77,16 @@ public class InvoiceApplyService {
     private static final String sellerTaxpayerId = "915003006188392540";
     private static final String sellerName = "金蝶软件(中国)有限公司";
 
-    public void applyInvoice(String infoId, String drawer){
-        String code = this.preApply(infoId, drawer);
-        if(!StrUtil.equals("SUCCESS", code)) {
+    public String applyInvoice(String infoId){
+        String code = this.preApply(infoId);
+        if(!StrUtil.equals("200", code)) {
             throw new BusinessException("开票申请推送失败!");
         }
-//        TbInvoiceInfo info = tbInvoiceInfoService.getById(infoId);
-//        if(info.getIsApply() == 0){
-//            info.setIsApply(1);
-//            tbInvoiceInfoService.updateById(info);
-//        }
-//        List<TbInvoiceDetails> invoiceDetails = tbInvoiceDetailsService.findByInfoId(infoId);
-//        for (TbInvoiceDetails invoiceDetail : invoiceDetails) {
-//            if(invoiceDetail.getIsApply() == 0){
-//                invoiceDetail.setIsApply(1);
-//            }
-//        }
-//        tbInvoiceDetailsService.updateBatchById(invoiceDetails);
+        return code;
     }
 
 
-    public String preApply(String infoId, String drawer){
+    public String preApply(String infoId){
         Date now = new Date();
         Map<String, String> param = new HashMap<>();
         param.put("action",invoiceConfig.getApplyAction());
@@ -133,9 +122,9 @@ public class InvoiceApplyService {
                     .setTextField1(info.getCustomerName())
                     .setSellerName(invoiceConfig.getSellerName())
                     .setSellerTaxpayerId(invoiceConfig.getSellerTaxpayerId())
-
                     .setTaxationStyle(0)
-                    .setDrawer(drawer);
+                    .setDrawer(invoiceConfig.getDrawer())
+                    .setPayee(invoiceConfig.getPayee()).setReviewer(invoiceConfig.getReviewer());
 
             //将所有开票订单的收费明细放在一个集合中,并对其分组
             List<TbInvoiceOrder> orders = tbInvoiceOrderService.findByDetailId(invoiceDetail.getId());
@@ -179,9 +168,11 @@ public class InvoiceApplyService {
         log.info("invoice apply result:" + result);
         JSONObject jsonResult = JSONUtil.parseObj(result);
         if( StrUtil.equals("0", jsonResult.getStr("code"))){
-            return "SUCCESS";
+            info.setApplyAble(1);
+            tbInvoiceInfoService.updateById(info);
+            return "200";
         }else {
-            return "FAIl";
+            return "500";
         }
     }
 

+ 12 - 0
sp-server/src/main/java/com/pj/current/config/InvoiceConfig.java

@@ -36,5 +36,17 @@ public class InvoiceConfig {
      * 销售方名称
      * */
     private String sellerName;
+    /**
+     * 开票人
+     * */
+    private String drawer;
+    /**
+     * 收款人
+     * */
+    private String payee;
+    /**
+     * 复核人
+     * */
+    private String reviewer;
 
 }

+ 4 - 0
sp-server/src/main/java/com/pj/project/tb_invoice_info/TbInvoiceInfo.java

@@ -135,6 +135,10 @@ public class TbInvoiceInfo implements Serializable {
      */
     private Integer isApply;
 
+    /**
+     * 能否申请开票(0=能,1=不能)
+     */
+    private Integer applyAble;
 
     @TableField(exist = false)
     private List<TbFeeDetails> feeDetails = new ArrayList<>();

+ 4 - 1
sp-server/src/main/resources/application-dev.yml

@@ -96,4 +96,7 @@ invoice-config:
     business-tax-rate-code: 3040408000000000000
     car-tax-rate-code: 3040502020200000000
     seller-taxpayer-id: 915003006188392540
-    seller-name: 金蝶软件(中国)有限公司
+    seller-name: 金蝶软件(中国)有限公司
+    drawer: 白翠云
+    payee: 沈丕莹
+    reviewer: 沈丕莹