瀏覽代碼

Merge branch 'master' of http://git.shengws.com/csx/gdyb

csx 1 年之前
父節點
當前提交
7e76bbb6a7
共有 1 個文件被更改,包括 36 次插入21 次删除
  1. 36 21
      service/fj_service.go

+ 36 - 21
service/fj_service.go 查看文件

@@ -8,7 +8,9 @@ import (
8 8
 	"net/http"
9 9
 	"strconv"
10 10
 	"strings"
11
+	"syscall"
11 12
 	"time"
13
+	"unsafe"
12 14
 )
13 15
 
14 16
 //import (
@@ -77,18 +79,14 @@ func FJyb1101(certNo string, org_name string, doctor string, fixmedins_code stri
77 79
 		fmt.Println(err.Error())
78 80
 		return err.Error(), ""
79 81
 	}
80
-	fmt.Println("开始jdk")
81
-	cmd := exec.Command("java", "-jar", "FJYB_SDK.jar", ConvertToString(string(bytesData), "gbk", "utf-8"))
82
-	out, err := cmd.Output()
83
-	if err != nil {
84
-		fmt.Println("error:", err.Error())
85
-	}
86
-	fmt.Println("输出信息:")
87
-	fmt.Println(string(out))
88
-	fmt.Println("结束jdk")
89
-
90
-	return ConvertToString(string(out), "gbk", "utf-8"), inputLog
82
+	//fmt.Println("开始jdk")
91 83
 
84
+	output, err_msg := GetFjBusinessHandleInfo(bytesData)
85
+	fmt.Println("输出信息:")
86
+	fmt.Println(output)
87
+	fmt.Println("错误信息:")
88
+	fmt.Println(err_msg)
89
+	return ConvertToString(output, "gbk", "utf-8"), inputLog
92 90
 }
93 91
 
94 92
 // 门诊挂号
@@ -139,16 +137,12 @@ func FJyb2201(psnNo string, insutype string, certNo string, org_name string, doc
139 137
 		return err.Error(), ""
140 138
 	}
141 139
 
142
-	var json2 string
143
-	cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2201", string(bytesData), json2)
144
-	out, err := cmd.Output()
145
-	if err != nil {
146
-		fmt.Println("error:", err.Error())
147
-	}
148
-	fmt.Println(string(out))
149
-
150
-	return ConvertToString(string(out), "gbk", "utf-8"), requestLog
151
-
140
+	output, err_msg := GetFjBusinessHandleInfo(bytesData)
141
+	fmt.Println("输出信息:")
142
+	fmt.Println(output)
143
+	fmt.Println("错误信息:")
144
+	fmt.Println(err_msg)
145
+	return ConvertToString(output, "gbk", "utf-8"), requestLog
152 146
 }
153 147
 
154 148
 // 门诊挂号撤销
@@ -2476,3 +2470,24 @@ func SetFjInputMessage(nonce string, timestamp int64, org_name string, doctor st
2476 2470
 //	str := string(respBytes)
2477 2471
 //	return str
2478 2472
 //}
2473
+
2474
+func GetFjBusinessHandleInfo(inputStr []byte) (string, string) {
2475
+	DllDef := syscall.MustLoadDLL("chs_fjs_standard.dll")
2476
+	readCard := DllDef.MustFindProc("business_handle")
2477
+	if readCard == nil {
2478
+		fmt.Println("readcard is nil")
2479
+		readCard = DllDef.MustFindProc("read_cardinfo")
2480
+	}
2481
+	var outputStr []byte
2482
+	var errMessageStr []byte
2483
+
2484
+	ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&inputStr[0])), uintptr(20000), (uintptr)(unsafe.Pointer(&outputStr[0])), (uintptr)(unsafe.Pointer(&errMessageStr[0])))
2485
+	fmt.Println(string(outputStr))
2486
+	fmt.Println(string(errMessageStr))
2487
+	fmt.Println(":", ConvertToString(string(outputStr), "gbk", "utf-8"))
2488
+	fmt.Println(":", ConvertToString(string(errMessageStr), "gbk", "utf-8"))
2489
+	if ret2 != 0 {
2490
+		return "", ""
2491
+	}
2492
+	return ConvertToString(string(outputStr), "gbk", "utf-8"), ConvertToString(string(errMessageStr), "gbk", "utf-8")
2493
+}