WH01243 5 years ago
parent
commit
fb8fb9fa9a

+ 1 - 2
invoice/src/api/InvoiceController.go

@@ -66,8 +66,7 @@ func InvoiceDownload(context *gin.Context) {
 func InvoiceSee(context *gin.Context) {
 	result := &model.BaseResult{}
 	swno := context.Request.FormValue("swno")
-	saleTax := context.Request.FormValue("saleTax")
-	code,path,msg:=InvoiceService.InvoiceSee(swno,saleTax)
+	code,path,msg:=InvoiceService.InvoiceSee(swno,entity.SaleTax)
 	result.Data=path
 	result.Msg=msg
 	result.Code=code

+ 8 - 1
invoice/src/config.json

@@ -11,5 +11,12 @@
     "TimingCron1": "* */1 * * * ?",
     "TimingCron":"0 0/1 * * * ?",
     "Url": "http://218.249.166.20:8113/eisp-zk/jsonToBillEntityController.do",
-    "PdfUrl": "127.0.0.1:7070"
+    "PdfUrl": "127.0.0.1:7080",
+    "SaleTax":"110101999999447",
+    "InvType": "3",
+    "BillType": "1",
+    "SpecialRedFlag":"0",
+    "OperationCode": "10",
+    "Verified": "0",
+    "Kpr": "梁艺晓"
 }

+ 7 - 3
invoice/src/entity/Invoice.go

@@ -116,6 +116,10 @@ var SealCode string
 var PdfUrl string
 
 
-
-
-
+var SaleTax string
+var InvType string
+var BillType string
+var SpecialRedFlag string
+var OperationCode string
+var Verified string
+var Kpr string

+ 7 - 1
invoice/src/main.go

@@ -40,7 +40,6 @@ func Init() {
 	entity.Sender = fmt.Sprint(Config["Sender"])
 	entity.SPassword = fmt.Sprint(Config["SPassword"])
 	entity.SMTPAddr = fmt.Sprint(Config["SMTPAddr"])
-
 	SMTPPortint := util.SafeConvert2Int(Config["SMTPPort"])
 	entity.SMTPPort = SMTPPortint
 	entity.SuccessCode = fmt.Sprint(Config["SuccessCode"])
@@ -49,6 +48,13 @@ func Init() {
 	entity.Url = fmt.Sprint(Config["Url"])
 	entity.SealCode = fmt.Sprint(Config["SealCode"])
 	entity.PdfUrl = fmt.Sprint(Config["PdfUrl"])
+	entity.SaleTax = fmt.Sprint(Config["SaleTax"])
+	entity.InvType = fmt.Sprint(Config["InvType"])
+	entity.BillType = fmt.Sprint(Config["BillType"])
+	entity.SpecialRedFlag = fmt.Sprint(Config["SpecialRedFlag"])
+	entity.OperationCode = fmt.Sprint(Config["OperationCode"])
+	entity.Verified = fmt.Sprint(Config["Verified"])
+	entity.Kpr=fmt.Sprint(Config["Kpr"])
 	keys := redis.GetKeys(core.GetConfiguration().Redis.Modules, "fp_*")
 	invoiceService := service.InvoiceService{}
 	for numb, _ := range keys {

+ 43 - 31
invoice/src/service/InvoiceService.go

@@ -7,9 +7,12 @@ import (
 	"fmt"
 	"github.com/robfig/cron"
 	"io/ioutil"
+	"math/rand"
 	"net/http"
 	"spirit/redis"
 	"spirit/web/core"
+	"strings"
+	"time"
 	"util"
 )
 
@@ -21,51 +24,56 @@ var (
 
 // 发票开具
 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"
 	bytesData, _ := json.Marshal(solgan)
-	fmt.Println("json", string(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")
 	client := http.Client{}
+
 	resp, err := client.Do(request)
 	respBytes, err := ioutil.ReadAll(resp.Body)
+	fmt.Sprint(err)
 	data := make(map[string]interface{})
 	if err := json.Unmarshal([]byte(respBytes), &data); err == nil {
 		fmt.Println("==============json str 转map=======================", data)
 	}
-	util.Loger.Println("开具发票:数据", solgan)
+	util.Loger.Println("开具发票:数据",  string(bytesData))
 	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
 	}
+	}
 
-}
 
 // 发票下载
 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
 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 := "发票地址"
 	if fool {
 		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
 	} else {
 		path, numb, _ := u.InvoiceDownload(swno, saleTax,0)
@@ -168,6 +178,8 @@ func (u *InvoiceService) InvoiceReplace(solgan *entity.Invoice) (string, int, in
 	if (code == 1) {
 		return msg, code, dataMap
 	}
+	solgan.Yfphm=""
+	solgan.Yfpdm=""
 	msg, code, datamap := u.InvoiceAdd(solgan)
 	return msg, code, datamap
 }

+ 16 - 0
invoice/src/static/logs/2020420.txt

@@ -0,0 +1,16 @@
+[logger]2020/04/20 02:07:42 InvoiceService.go:51: 开具发票:数据 {"swno":"11-2020041508507036","saleTax":"110101999999447","store":"","custName":"剑鱼","custTaxNo":"","custAddr":"","custTelephone":"","custPhone":"","custEmail":"","custBankAccount":"","custType":"03","invoMemo":"","invType":"3","billDate":"2019-05-30 09:18:13","thdh":"","billType":"1","oilIdentification":"","specialRedFlag":"0","operationCode":"10","verified":"0","secretKey":"","kpy":"张三","submissionTime":"","yfpdm":"","yfphm":"","chyy":"","spare1":"","spare2":"","spare3":"","spare4":"","spare5":"","orders":[{"billNo":"99","items":[{"name":"苹果手机","code":"3070202000000000000","lineType":"2","spec":"","unit":"","taxRate":"0.13","quantity":"1","taxPrice":"800","totalAmount":"800.00","yhzcnr":"","yhzcbs":"0","lslbs":"","zxbm":"","kce":"","itemSpare1":"","itemSpare2":"","itemSpare3":"","itemSpare4":"","itemSpare5":""},{"name":"苹果手机","code":"3070202000000000000","lineType":"1","spec":"","unit":"","taxRate":"0.13","quantity":"","taxPrice":"","totalAmount":"-80.00","yhzcnr":"","yhzcbs":"0","lslbs":"","zxbm":"","kce":"","itemSpare1":"","itemSpare2":"","itemSpare3":"","itemSpare4":"","itemSpare5":""}]}]}
+[logger]2020/04/20 02:07:42 InvoiceService.go:52: 开具发票:结果 map[returnCode:0000 returnMsg:流水号[11-2020041508507036]保存成功!]
+[logger]2020/04/20 02:07:43 InvoiceService.go:97: 发票下载: 流水号: 11-2020041508507036 发票开具方税号: 110101999999447 结果: &{[] {流水号[11-2020041508507036]对应的发票正在排队开票 1089} 11-2020041508507036}
+[logger]2020/04/20 02:08:00 InvoiceService.go:187: 定时任务开始: 流水号: 11-2020041508507036 发票开具方税号: 110101999999447
+[logger]2020/04/20 02:08:14 InvoiceService.go:97: 发票下载: 流水号: 11-2020041508507036 发票开具方税号: 110101999999447 结果: &{[0xc000320080] {发票数据全部下载成功! 0000} 11-2020041508507036}
+[logger]2020/04/20 02:08:14 InvoiceService.go:190: 定时开票成功: 流水号: 11-2020041508507036 发票开具方税号: 110101999999447
+[logger]2020/04/20 02:08:14 InvoiceService.go:192: 定时任务结束: 流水号: 11-2020041508507036 发票开具方税号: 110101999999447
+[logger]2020/04/20 02:11:18 InvoiceService.go:51: 开具发票:数据 {"swno":"11-2020041508776033","saleTax":"110101999999447","store":"","custName":"剑鱼","custTaxNo":"","custAddr":"","custTelephone":"","custPhone":"","custEmail":"","custBankAccount":"","custType":"03","invoMemo":"","invType":"3","billDate":"","thdh":"","billType":"1","oilIdentification":"","specialRedFlag":"0","operationCode":"10","verified":"0","secretKey":"","kpy":"张三","submissionTime":"","yfpdm":"","yfphm":"","chyy":"","spare1":"","spare2":"","spare3":"","spare4":"","spare5":"","orders":[{"billNo":"99","items":[{"name":"苹果手机","code":"3070202000000000000","lineType":"2","spec":"","unit":"","taxRate":"0.13","quantity":"1","taxPrice":"800","totalAmount":"800.00","yhzcnr":"","yhzcbs":"0","lslbs":"","zxbm":"","kce":"","itemSpare1":"","itemSpare2":"","itemSpare3":"","itemSpare4":"","itemSpare5":""},{"name":"苹果手机","code":"3070202000000000000","lineType":"1","spec":"","unit":"","taxRate":"0.13","quantity":"","taxPrice":"","totalAmount":"-80.00","yhzcnr":"","yhzcbs":"0","lslbs":"","zxbm":"","kce":"","itemSpare1":"","itemSpare2":"","itemSpare3":"","itemSpare4":"","itemSpare5":""}]}]}
+[logger]2020/04/20 02:11:18 InvoiceService.go:52: 开具发票:结果 map[returnCode:1039 returnMsg:请求报文参数错误]
+[logger]2020/04/20 02:13:12 InvoiceService.go:51: 开具发票:数据 {"swno":"11-2020041508425365","saleTax":"110101999999447","store":"","custName":"剑鱼","custTaxNo":"","custAddr":"","custTelephone":"","custPhone":"","custEmail":"","custBankAccount":"","custType":"03","invoMemo":"","invType":"3","billDate":"2019-05-30 09:18:13","thdh":"","billType":"1","oilIdentification":"","specialRedFlag":"0","operationCode":"10","verified":"0","secretKey":"","kpy":"张三","submissionTime":"","yfpdm":"","yfphm":"","chyy":"","spare1":"","spare2":"","spare3":"","spare4":"","spare5":"","orders":[{"billNo":"99","items":[{"name":"苹果手机","code":"3070202000000000000","lineType":"2","spec":"","unit":"","taxRate":"0.13","quantity":"1","taxPrice":"800","totalAmount":"800.00","yhzcnr":"","yhzcbs":"0","lslbs":"","zxbm":"","kce":"","itemSpare1":"","itemSpare2":"","itemSpare3":"","itemSpare4":"","itemSpare5":""},{"name":"苹果手机","code":"3070202000000000000","lineType":"1","spec":"","unit":"","taxRate":"0.13","quantity":"","taxPrice":"","totalAmount":"-80.00","yhzcnr":"","yhzcbs":"0","lslbs":"","zxbm":"","kce":"","itemSpare1":"","itemSpare2":"","itemSpare3":"","itemSpare4":"","itemSpare5":""}]}]}
+[logger]2020/04/20 02:13:12 InvoiceService.go:52: 开具发票:结果 map[returnCode:0000 returnMsg:流水号[11-2020041508425365]保存成功!]
+[logger]2020/04/20 02:13:13 InvoiceService.go:97: 发票下载: 流水号: 11-2020041508425365 发票开具方税号: 110101999999447 结果: &{[0xc0002a2400] {发票开具成功签章失败!流水号11-2020041508425365开票成功,9098-报文(afaa5c10f3ab46d2824debabc6125144)数据格式错误,Content获取为空!; 4002} 11-2020041508425365}
+[logger]2020/04/20 02:14:00 InvoiceService.go:187: 定时任务开始: 流水号: 11-2020041508425365 发票开具方税号: 110101999999447
+[logger]2020/04/20 02:14:04 InvoiceService.go:97: 发票下载: 流水号: 11-2020041508425365 发票开具方税号: 110101999999447 结果: &{[0xc0000fe100] {发票数据全部下载成功! 0000} 11-2020041508425365}
+[logger]2020/04/20 02:14:04 InvoiceService.go:190: 定时开票成功: 流水号: 11-2020041508425365 发票开具方税号: 110101999999447
+[logger]2020/04/20 02:14:04 InvoiceService.go:192: 定时任务结束: 流水号: 11-2020041508425365 发票开具方税号: 110101999999447

+ 6 - 6
invoice/src/util/push.go

@@ -5,7 +5,6 @@ import (
 	"encoding/base64"
 	"entity"
 	"fmt"
-	"io/ioutil"
 	loger "log"
 	"os"
 	"time"
@@ -15,13 +14,14 @@ var Loger *loger.Logger
 
 //文件是否存在
 func Exists(path string) (bool) {
-	fmt.Println(path)
-	dir, _ := ioutil.ReadDir(path)
-	if len(dir) == 0 {
-		return false
-	} else {
+	_, err := os.Stat(path)
+	if err == nil {
 		return true
 	}
+	if os.IsNotExist(err) {
+		return false
+	}
+	return false
 }
 
 //base64转pdf存本地