|
@@ -7,9 +7,12 @@ import (
|
|
"fmt"
|
|
"fmt"
|
|
"github.com/robfig/cron"
|
|
"github.com/robfig/cron"
|
|
"io/ioutil"
|
|
"io/ioutil"
|
|
|
|
+ "math/rand"
|
|
"net/http"
|
|
"net/http"
|
|
"spirit/redis"
|
|
"spirit/redis"
|
|
"spirit/web/core"
|
|
"spirit/web/core"
|
|
|
|
+ "strings"
|
|
|
|
+ "time"
|
|
"util"
|
|
"util"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -21,51 +24,56 @@ var (
|
|
|
|
|
|
// 发票开具
|
|
// 发票开具
|
|
func (u *InvoiceService) InvoiceAdd(solgan *entity.Invoice) (string, int, interface{}) {
|
|
func (u *InvoiceService) InvoiceAdd(solgan *entity.Invoice) (string, int, interface{}) {
|
|
|
|
+ rand.Seed(time.Now().Unix())
|
|
|
|
+ solgan.Swno=strings.Replace(fmt.Sprintln(solgan.Swno+fmt.Sprintln(rand.Intn(1000000))), "\n", "", -1)
|
|
|
|
+ solgan.SaleTax = entity.SaleTax
|
|
|
|
+ solgan.InvType =entity.InvType
|
|
|
|
+ solgan.BillType =entity.BillType
|
|
|
|
+ solgan.Kpy=entity.Kpr
|
|
|
|
+ solgan.SpecialRedFlag = entity.SpecialRedFlag
|
|
|
|
+ solgan.OperationCode = entity.OperationCode
|
|
|
|
+ solgan.Verified = entity.Verified
|
|
|
|
+ now := time.Now()
|
|
|
|
+ solgan.BillDate=now.Format("2006-01-02 15:04:05")
|
|
url := entity.Url + "?build_invoice"
|
|
url := entity.Url + "?build_invoice"
|
|
bytesData, _ := json.Marshal(solgan)
|
|
bytesData, _ := json.Marshal(solgan)
|
|
- fmt.Println("json", string(bytesData))
|
|
|
|
reader := bytes.NewReader(bytesData)
|
|
reader := bytes.NewReader(bytesData)
|
|
- request, err := http.NewRequest("POST", url, reader)
|
|
|
|
- fmt.Println(err)
|
|
|
|
|
|
+ request, _ := http.NewRequest("POST", url, reader)
|
|
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
|
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
|
|
client := http.Client{}
|
|
client := http.Client{}
|
|
|
|
+
|
|
resp, err := client.Do(request)
|
|
resp, err := client.Do(request)
|
|
respBytes, err := ioutil.ReadAll(resp.Body)
|
|
respBytes, err := ioutil.ReadAll(resp.Body)
|
|
|
|
+ fmt.Sprint(err)
|
|
data := make(map[string]interface{})
|
|
data := make(map[string]interface{})
|
|
if err := json.Unmarshal([]byte(respBytes), &data); err == nil {
|
|
if err := json.Unmarshal([]byte(respBytes), &data); err == nil {
|
|
fmt.Println("==============json str 转map=======================", data)
|
|
fmt.Println("==============json str 转map=======================", data)
|
|
}
|
|
}
|
|
- util.Loger.Println("开具发票:数据", solgan)
|
|
|
|
|
|
+ util.Loger.Println("开具发票:数据", string(bytesData))
|
|
util.Loger.Println("开具发票:结果", data)
|
|
util.Loger.Println("开具发票:结果", data)
|
|
- if (data["returnCode"] == entity.SuccessCode) {
|
|
|
|
- pdfData,code,msg:=u.InvoiceDownload(solgan.Swno, solgan.SaleTax,0)
|
|
|
|
- if(code==0){
|
|
|
|
- data["fpdm"]=pdfData["fpdm"]
|
|
|
|
- data["fphm"]=pdfData["fphm"]
|
|
|
|
- return fmt.Sprintln(data["returnMsg"]), 0, data
|
|
|
|
- }else if(code==1){
|
|
|
|
- return msg, 1, data
|
|
|
|
- }else{
|
|
|
|
- return msg, 2, data
|
|
|
|
- }
|
|
|
|
- return fmt.Sprintln(data["returnMsg"]), 0, data
|
|
|
|
- } else if (data["returnCode"] == entity.LineUpCode || data["returnCode"] == entity.SealCode) {
|
|
|
|
- pdfData,code,msg:=u.InvoiceDownload(solgan.Swno, solgan.SaleTax,0)
|
|
|
|
- if(code==0){
|
|
|
|
- data["fpdm"]=pdfData["fpdm"]
|
|
|
|
- data["fphm"]=pdfData["fphm"]
|
|
|
|
- return fmt.Sprintln(data["returnMsg"]), 0, data
|
|
|
|
- }else if(code==1){
|
|
|
|
- return msg, 1, data
|
|
|
|
- }else{
|
|
|
|
- return msg, 2, data
|
|
|
|
|
|
+ //开票正常时
|
|
|
|
+ if (data["returnCode"] == entity.LineUpCode || data["returnCode"] == entity.SealCode || data["returnCode"] == entity.SuccessCode) {
|
|
|
|
+ pdfData, code, msg := u.InvoiceDownload(solgan.Swno, solgan.SaleTax, 0)
|
|
|
|
+ if (fmt.Sprint(code) == entity.SuccessCode) {
|
|
|
|
+ data1 := make(map[string]interface{})
|
|
|
|
+ data1["fpdm"] = pdfData["fpdm"]
|
|
|
|
+ data1["fphm"] = pdfData["fphm"]
|
|
|
|
+ data1["swno"] = solgan.Swno
|
|
|
|
+ data1["path"]=pdfData["path"]
|
|
|
|
+ return msg, 0, data1
|
|
|
|
+ } else {
|
|
|
|
+ data1 := make(map[string]interface{})
|
|
|
|
+ data1["fpdm"] = pdfData["fpdm"]
|
|
|
|
+ data1["fphm"] = pdfData["fphm"]
|
|
|
|
+ data1["swno"] = solgan.Swno
|
|
|
|
+ data1["path"]=pdfData["path"]
|
|
|
|
+ return msg, code, data1
|
|
}
|
|
}
|
|
-
|
|
|
|
- } else {
|
|
|
|
|
|
+ }else{
|
|
return fmt.Sprintln(data["returnMsg"]), 1, data
|
|
return fmt.Sprintln(data["returnMsg"]), 1, data
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
// 发票下载
|
|
// 发票下载
|
|
func (u *InvoiceService) InvoiceDownload(swno string, saleTax string,model int) (map[string]interface{}, int, string) {
|
|
func (u *InvoiceService) InvoiceDownload(swno string, saleTax string,model int) (map[string]interface{}, int, string) {
|
|
@@ -116,11 +124,13 @@ func (u *InvoiceService) InvoiceDownload(swno string, saleTax string,model int)
|
|
// 发票是否存在
|
|
// 发票是否存在
|
|
//noinspection ALL
|
|
//noinspection ALL
|
|
func (u *InvoiceService) InvoiceSee(swno string, saleTax string) (int, interface{}, string) {
|
|
func (u *InvoiceService) InvoiceSee(swno string, saleTax string) (int, interface{}, string) {
|
|
- fool := util.Exists("./static/res/" + saleTax + "/")
|
|
|
|
|
|
+ fool := util.Exists("./static/res/" + saleTax + "/"+swno + ".pdf")
|
|
msg := "发票地址"
|
|
msg := "发票地址"
|
|
if fool {
|
|
if fool {
|
|
pdfData:=make(map[string]interface{})
|
|
pdfData:=make(map[string]interface{})
|
|
- pdfData["path"] = entity.PdfUrl+"/static/res/" +saleTax+"/" + swno + ".pdf"
|
|
|
|
|
|
+ pdfData["path"] = entity.PdfUrl+"/static/res/" + saleTax + "/" + swno + ".pdf"
|
|
|
|
+ pdfData["fpdm"]=""
|
|
|
|
+ pdfData["fphm"]=""
|
|
return 0, pdfData, msg
|
|
return 0, pdfData, msg
|
|
} else {
|
|
} else {
|
|
path, numb, _ := u.InvoiceDownload(swno, saleTax,0)
|
|
path, numb, _ := u.InvoiceDownload(swno, saleTax,0)
|
|
@@ -168,6 +178,8 @@ func (u *InvoiceService) InvoiceReplace(solgan *entity.Invoice) (string, int, in
|
|
if (code == 1) {
|
|
if (code == 1) {
|
|
return msg, code, dataMap
|
|
return msg, code, dataMap
|
|
}
|
|
}
|
|
|
|
+ solgan.Yfphm=""
|
|
|
|
+ solgan.Yfpdm=""
|
|
msg, code, datamap := u.InvoiceAdd(solgan)
|
|
msg, code, datamap := u.InvoiceAdd(solgan)
|
|
return msg, code, datamap
|
|
return msg, code, datamap
|
|
}
|
|
}
|