test_user 1 month ago
parent
commit
3c6ea3a0fb

+ 127 - 0
controllers/ah/ahyb_controller.go View File

@@ -81,7 +81,52 @@ func AHybRegistRouters() {
81 81
 	beego.Router("/ahyb/2406", &AHybController{}, "post:Get2406")
82 82
 	beego.Router("/ahyb/2406", &AHybController{}, "post:Get2406")
83 83
 
84
+
85
+
86
+	beego.Router("/ahyb/5101", &AHybController{}, "get:Get5101")
87
+	beego.Router("/ahyb/5102", &AHybController{}, "get:Get5102")
88
+
89
+
90
+
91
+
92
+	beego.Router("/ahyb/02", &AHybController{}, "post:Get02")
93
+
94
+	beego.Router("/ahyb/03", &AHybController{}, "post:Get03")
95
+
96
+
97
+
84 98
 }
99
+func (c *AHybController) Get02() {
100
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
101
+	var respJSON map[string]interface{}
102
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
103
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
104
+		return
105
+	}
106
+	result, request := service.GetAHCFYLJG012(respJSON["code"].(string), respJSON["url"].(string),respJSON["encoded"].(string),respJSON["rx_encoded"].(string),"")
107
+	saveJsLog(result, request, "GetCFYLJG002", "GetCFYLJG002","1111")
108
+
109
+}
110
+
111
+func (c *AHybController) Get03() {
112
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
113
+	var respJSON map[string]interface{}
114
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
115
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
116
+		return
117
+	}
118
+	userJSONBytes, _ := json.Marshal(respJSON["13"])
119
+	var struct3501 models.CFYLJG003
120
+	if err := json.Unmarshal(userJSONBytes, &struct3501); err != nil {
121
+		utils.ErrorLog("解析失败:%v", err)
122
+		return
123
+	}
124
+	result, request := service.GetAHCFYLJG013(respJSON["url"].(string),struct3501)
125
+	saveJsLog(result, request, "GetCFYLJG013", "GetCFYLJG013","1111")
126
+
127
+}
128
+
129
+
85 130
 func (c *AHybController) Get3501() {
86 131
 	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
87 132
 	var respJSON map[string]interface{}
@@ -612,6 +657,88 @@ func (c *AHybController) Get9001() {
612 657
 
613 658
 }
614 659
 
660
+
661
+func (c *AHybController) Get5101() {
662
+	url := c.GetString("url")
663
+	org_name := c.GetString("org_name")
664
+	opera_name := c.GetString("opera_name")
665
+	fixmedins_code := c.GetString("fixmedins_code")
666
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
667
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
668
+	cainfo := c.GetString("cainfo")
669
+	fmt.Println("Error decoding JSON:", cainfo)
670
+	fmt.Println("Error decoding JSON:", org_name)
671
+	fmt.Println("Error decoding JSON:", opera_name)
672
+
673
+
674
+	result, inputLog := service.AHyb5101(org_name, opera_name, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, url, cainfo)
675
+	saveJsLog(result, inputLog, "5101", "科室", org_name)
676
+
677
+	var response Response
678
+	if err := json.Unmarshal([]byte(result), &response); err != nil {
679
+		fmt.Println("Error decoding JSON:", err)
680
+		return
681
+	}
682
+	if response.Code == 200 {
683
+		var dat2 map[string]interface{}
684
+		if err := json.Unmarshal([]byte(inputLog), &dat2); err == nil {
685
+		} else {
686
+
687
+		}
688
+		c.ServeSuccessJSON(map[string]interface{}{
689
+			"pre":    response.Body,
690
+			"log":    dat2,
691
+			"status": "1",
692
+			"msg":    "",
693
+		})
694
+	} else {
695
+		c.ServeSuccessJSON(map[string]interface{}{
696
+			"status": "0",
697
+			"msg":    response.Message,
698
+		})
699
+	}
700
+
701
+}
702
+
703
+func (c *AHybController) Get5102() {
704
+	url := c.GetString("url")
705
+	org_name := c.GetString("org_name")
706
+	opera_name := c.GetString("opera_name")
707
+	fixmedins_code := c.GetString("fixmedins_code")
708
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
709
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
710
+	cainfo := c.GetString("cainfo")
711
+	result, inputLog := service.AHyb5102(org_name, opera_name, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, url, cainfo)
712
+	saveJsLog(result, inputLog, "5102", "科室", org_name)
713
+
714
+	var response Response
715
+	if err := json.Unmarshal([]byte(result), &response); err != nil {
716
+		fmt.Println("Error decoding JSON:", err)
717
+		return
718
+	}
719
+	if response.Code == 200 {
720
+		var dat2 map[string]interface{}
721
+		if err := json.Unmarshal([]byte(inputLog), &dat2); err == nil {
722
+		} else {
723
+
724
+		}
725
+		c.ServeSuccessJSON(map[string]interface{}{
726
+			"pre":    response.Body,
727
+			"log":    dat2,
728
+			"status": "1",
729
+			"msg":    "",
730
+		})
731
+	} else {
732
+		c.ServeSuccessJSON(map[string]interface{}{
733
+			"status": "0",
734
+			"msg":    response.Message,
735
+		})
736
+	}
737
+
738
+}
739
+
740
+
741
+
615 742
 func (c *AHybController) Get5301() {
616 743
 	psn_no := c.GetString("psn_no")
617 744
 	org_name := c.GetString("org_name")

File diff suppressed because it is too large
+ 867 - 167
controllers/sg/his_api_controller.go


+ 2 - 2
main.go View File

@@ -722,13 +722,13 @@ func GetblBatchSettleList() {
722 722
 			miConfig, _ := service.FindMedicalInsuranceInfo(order.UserOrgId)
723 723
 			var configTwo []*models.HisXtDiagnoseConfig
724 724
 			diagnosis_idstwo := strings.Split(his.Diagnosis, ",")
725
-			curRoles, _ := service.GetAdminUserInfoByID(org_id, 5318)
725
+			curRoles, _ := service.GetAdminUserInfoByID(org_id, 5488)
726 726
 			for _, item := range diagnosis_idstwo {
727 727
 				id, _ := strconv.ParseInt(item, 10, 64)
728 728
 				diagnosisConfig, _ := service.FindDiagnoseById(id)
729 729
 				configTwo = append(configTwo, &diagnosisConfig)
730 730
 			}
731
-			patient, _ := service.GetPatientByIDTwo(10138, order.PatientId)
731
+			patient, _ := service.GetPatientByIDTwo(9504, order.PatientId)
732 732
 
733 733
 			sickConfig, _ := service.FindSickById(his.SickType)
734 734
 			//if order.MedType == "1111" || order.MedType == "1112" {

+ 254 - 61
service/ah_dianzichufang.go View File

@@ -9,6 +9,7 @@ import (
9 9
 	"net/http"
10 10
 	"os/exec"
11 11
 	"strings"
12
+	"os"
12 13
 )
13 14
 
14 15
 func GetAHCFYLJG001(url string, cFYLJG001 models.CFYLJG001, isu string) (string, string) {
@@ -222,6 +223,89 @@ func GetAHCFYLJG001(url string, cFYLJG001 models.CFYLJG001, isu string) (string,
222 223
 }
223 224
 
224 225
 func GetAHCFYLJG002(fixmedins_code string, url string, original_value string, original_rx_file string, extras string) (string, string) {
226
+	// 生成签名
227
+	// 生成输入报文
228
+	inputData := make(map[string]interface{})
229
+	inputData["fixmedinsCode"] = fixmedins_code
230
+	inputData["originalValue"] = original_value
231
+	inputData["originalRxFile"] = original_rx_file
232
+	inputData["extras"] = extras
233
+	var inputLog string
234
+	bytesData, err := json.Marshal(inputData)
235
+	inputLog = string(bytesData)
236
+	fmt.Println(string(bytesData))
237
+	if err != nil {
238
+		fmt.Println(err.Error())
239
+		return err.Error(), ""
240
+	}
241
+	// 将 inputLog 和其他参数写入文件
242
+	// 将 inputLog 和其他参数写入文件
243
+	argFileContent := inputLog // 拼接 inputLog
244
+	argFilePath := "a.txt"
245
+	os.WriteFile(argFilePath, []byte(argFileContent), 0644)
246
+
247
+
248
+	// 构建命令
249
+	//cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", )
250
+	cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=")
251
+
252
+	// 捕获输出
253
+	output, err := cmd.CombinedOutput()
254
+	if err != nil {
255
+		fmt.Printf("Error: %v\n", err)
256
+	}
257
+
258
+	// 打印命令执行结果
259
+	fmt.Printf("Output: %s\n", string(output))
260
+
261
+	aa := strings.Split(string(output),"======")
262
+	fmt.Println(aa[1])
263
+
264
+	reader := bytes.NewReader([]byte(aa[1]))
265
+	url = url + "/fixmedins/rxFixmedinsSign"
266
+	request, err := http.NewRequest("POST", url, reader)
267
+	if err != nil {
268
+		fmt.Println(err.Error())
269
+		return err.Error(), ""
270
+	}
271
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
272
+	client := http.Client{}
273
+	resp, err := client.Do(request)
274
+	if err != nil {
275
+		fmt.Println(err.Error())
276
+		return err.Error(), ""
277
+	}
278
+	respBytes, err := ioutil.ReadAll(resp.Body)
279
+	if err != nil {
280
+		fmt.Println(err.Error())
281
+		return err.Error(), ""
282
+	}
283
+	argbFileContent := string(respBytes) // 拼接 inputLog
284
+
285
+	var data2 map[string]interface{}
286
+
287
+	// 解析 JSON 字符串到 map
288
+	json.Unmarshal([]byte(argbFileContent), &data2)
289
+
290
+	// 检查 code 字段是否存在,并将其转换为字符串
291
+	if val, ok := data2["code"]; ok {
292
+		data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
293
+	}
294
+
295
+	updatedJSON2, _ := json.Marshal(data2)
296
+
297
+
298
+	argbFilePath := "b.txt"
299
+	os.WriteFile(argbFilePath, updatedJSON2, 0644)
300
+	cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=")
301
+	out2, err := cmd2.Output()
302
+	fmt.Println(err)
303
+	//fmt.Println(out2)
304
+	bb := strings.Split(string(out2),"======")
305
+	fmt.Println(bb[1])
306
+	return bb[1], inputLog
307
+}
308
+func GetAHCFYLJG012(fixmedins_code string, url string, original_value string, original_rx_file string, extras string) (string, string) {
225 309
 	// 生成签名
226 310
 	// 生成输入报文
227 311
 	inputData := make(map[string]interface{})
@@ -265,6 +349,94 @@ func GetAHCFYLJG002(fixmedins_code string, url string, original_value string, or
265 349
 }
266 350
 
267 351
 func GetAHCFYLJG003(url string, cFYLJG003 models.CFYLJG003) (string, string) {
352
+	inputData := make(map[string]interface{})
353
+	inputData["rxTraceCode"] = cFYLJG003.RxTraceCode
354
+	inputData["hiRxno"] = cFYLJG003.HiRxno
355
+	inputData["mdtrtId"] = cFYLJG003.MdtrtID
356
+	inputData["patnName"] = cFYLJG003.PatnName
357
+	inputData["psnCertType"] = cFYLJG003.PsnCertType
358
+	inputData["certno"] = cFYLJG003.Certno
359
+	inputData["fixmedinsName"] = cFYLJG003.FixmedinsName
360
+	inputData["fixmedinsCode"] = cFYLJG003.FixmedinsCode
361
+	inputData["drCode"] = cFYLJG003.DrCode
362
+	inputData["prscDrName"] = cFYLJG003.PrscDrName
363
+	inputData["pharDeptName"] = cFYLJG003.PharDeptName
364
+	inputData["pharDeptCode"] = cFYLJG003.PharDeptCode
365
+	inputData["pharProfttlCodg"] = ""
366
+	inputData["pharProfttlName"] = ""
367
+	inputData["pharCode"] = cFYLJG003.PharCode
368
+	inputData["pharCertType"] = cFYLJG003.PsnCertType
369
+	inputData["pharCertno"] = cFYLJG003.PharCertno
370
+	inputData["pharName"] = cFYLJG003.PharName
371
+	inputData["pharPracCertNo"] = cFYLJG003.PharPracCertNo
372
+	inputData["pharChkTime"] = cFYLJG003.PharChkTime
373
+	inputData["rxFile"] = cFYLJG003.RxFile
374
+	inputData["signDigest"] = cFYLJG003.SignDigest
375
+	inputData["extras"] = ""
376
+
377
+	var inputLog string
378
+	bytesData, err := json.Marshal(inputData)
379
+	inputLog = string(bytesData)
380
+
381
+	argFileContent := inputLog // 拼接 inputLog
382
+	argFilePath := "a.txt"
383
+	os.WriteFile(argFilePath, []byte(argFileContent), 0644)
384
+
385
+
386
+
387
+	cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt",  "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=")
388
+	out, err := cmd.Output()
389
+	fmt.Println(string(out))
390
+	aa := strings.Split(string(out),"======")
391
+	if err != nil {
392
+		fmt.Println(err.Error())
393
+		return err.Error(), ""
394
+	}
395
+	reader := bytes.NewReader([]byte(aa[1]))
396
+	url = url + "/fixmedins/rxFileUpld"
397
+	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
398
+	request, err := http.NewRequest("POST", url, reader)
399
+	if err != nil {
400
+		fmt.Println(err.Error())
401
+		return err.Error(), ""
402
+	}
403
+
404
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
405
+	client := http.Client{}
406
+	resp, err := client.Do(request)
407
+	if err != nil {
408
+		fmt.Println(err.Error())
409
+		return err.Error(), ""
410
+	}
411
+	respBytes, err := ioutil.ReadAll(resp.Body)
412
+	if err != nil {
413
+		fmt.Println(err.Error())
414
+		return err.Error(), ""
415
+	}
416
+	argbFileContent := string(respBytes) // 拼接 inputLog
417
+
418
+	var data2 map[string]interface{}
419
+
420
+	// 解析 JSON 字符串到 map
421
+	json.Unmarshal([]byte(argbFileContent), &data2)
422
+	// 检查 code 字段是否存在,并将其转换为字符串
423
+	if val, ok := data2["code"]; ok {
424
+		data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
425
+	}
426
+
427
+	updatedJSON2, _ := json.Marshal(data2)
428
+	argbFilePath := "b.txt"
429
+	os.WriteFile(argbFilePath, updatedJSON2, 0644)
430
+	cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=")
431
+	out2, err := cmd2.Output()
432
+	fmt.Println(err)
433
+	//fmt.Println(out2)
434
+	bb := strings.Split(string(out2),"======")
435
+	fmt.Println(bb[1])
436
+	return bb[1], inputLog
437
+
438
+}
439
+func GetAHCFYLJG013(url string, cFYLJG003 models.CFYLJG003) (string, string) {
268 440
 	inputData := make(map[string]interface{})
269 441
 	inputData["rxTraceCode"] = cFYLJG003.RxTraceCode
270 442
 	inputData["hiRxno"] = cFYLJG003.HiRxno
@@ -379,67 +551,88 @@ func GetAHCFYLJG004(url string, cFYLJG004 models.CFYLJG004) (string, string) {
379 551
 
380 552
 }
381 553
 
382
-//func GetAHCFYLJG005(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG005 models.CFYLJG005, cainfo string) (string, string) {
383
-//	//生成签名
384
-//	nonce := GetRandomString(32)
385
-//	timestamp := time.Now().Unix()
386
-//	//signature := setSignature(timestamp, nonce, secret_key)
387
-//	//生成输入报文
388
-//	inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
389
-//
390
-//	inputData := make(map[string]interface{})
391
-//
392
-//	inputData2 := make(map[string]interface{})
393
-//	//inputDatas := make([]map[string]interface{}, 0)
394
-//	inputMessage["infno"] = "7105"
395
-//	inputData["fixmedinsCode"] = fixmedins_code
396
-//	inputData["hiRxno"] = cFYLJG005.HiRxno
397
-//	inputData["mdtrtId"] = cFYLJG005.MdtrtID
398
-//	inputData["psnName"] = cFYLJG005.PsnName
399
-//	inputData["psnCertType"] = cFYLJG005.PsnCertType
400
-//	inputData["certno"] = cFYLJG005.Certno
401
-//	inputData2["data"] = inputData
402
-//	inputMessage["input"] = inputData2
403
-//	argInputMessage := make(map[string]interface{})
404
-//	argInputMessage["arg0"] = inputMessage
405
-//	var inputLog string
406
-//	bytesData, err := json.Marshal(inputMessage)
407
-//	inputLog = string(bytesData)
408
-//	fmt.Println(string(bytesData))
409
-//	if err != nil {
410
-//		fmt.Println(err.Error())
411
-//		return err.Error(), ""
412
-//	}
413
-//	reader := bytes.NewReader(bytesData)
414
-//
415
-//	var url string
416
-//
417
-//	url = url + "7105"
418
-//
419
-//	//url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
420
-//	request, err := http.NewRequest("POST", url, reader)
421
-//	if err != nil {
422
-//		fmt.Println(err.Error())
423
-//		return err.Error(), ""
424
-//	}
425
-//
426
-//	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
427
-//	client := http.Client{}
428
-//	resp, err := client.Do(request)
429
-//	if err != nil {
430
-//		fmt.Println(err.Error())
431
-//		return err.Error(), ""
432
-//	}
433
-//	respBytes, err := ioutil.ReadAll(resp.Body)
434
-//	if err != nil {
435
-//		fmt.Println(err.Error())
436
-//		return err.Error(), ""
437
-//	}
438
-//	fmt.Println(string(respBytes))
439
-//	str := string(respBytes)
440
-//	return str, inputLog
441
-//
442
-//}
554
+func GetAHCFYLJG005( fixmedins_code string,cFYLJG005 models.CFYLJG005) (string, string) {
555
+
556
+	// 生成签名
557
+	// 生成输入报文
558
+	inputData := make(map[string]interface{})
559
+	inputData["fixmedinsCode"] = fixmedins_code
560
+	inputData["hiRxno"] = cFYLJG005.HiRxno
561
+	inputData["mdtrtId"] = cFYLJG005.MdtrtID
562
+	inputData["psnName"] = cFYLJG005.PsnName
563
+	inputData["psnCertType"] = cFYLJG005.PsnCertType
564
+	inputData["certno"] = cFYLJG005.Certno
565
+	var inputLog string
566
+	bytesData, err := json.Marshal(inputData)
567
+	inputLog = string(bytesData)
568
+	fmt.Println(string(bytesData))
569
+	if err != nil {
570
+		fmt.Println(err.Error())
571
+		return err.Error(), ""
572
+	}
573
+	// 将 inputLog 和其他参数写入文件
574
+	// 将 inputLog 和其他参数写入文件
575
+	argFileContent := inputLog // 拼接 inputLog
576
+	argFilePath := "a.txt"
577
+	os.WriteFile(argFilePath, []byte(argFileContent), 0644)
578
+
579
+	// 构建命令
580
+	//cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", )
581
+	cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=")
582
+
583
+	// 捕获输出
584
+	output, err := cmd.CombinedOutput()
585
+	if err != nil {
586
+		fmt.Printf("Error: %v\n", err)
587
+	}
588
+
589
+	// 打印命令执行结果
590
+	fmt.Printf("Output: %s\n", string(output))
591
+
592
+	aa := strings.Split(string(output),"======")
593
+	fmt.Println(aa[1])
594
+
595
+	reader := bytes.NewReader([]byte(aa[1]))
596
+	url := "http://10.66.149.64:8080/epc/api" + "/fixmedins/hospRxDetlQuery"
597
+	request, err := http.NewRequest("POST", url, reader)
598
+	if err != nil {
599
+		fmt.Println(err.Error())
600
+		return err.Error(), ""
601
+	}
602
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
603
+	client := http.Client{}
604
+	resp, err := client.Do(request)
605
+	if err != nil {
606
+		fmt.Println(err.Error())
607
+		return err.Error(), ""
608
+	}
609
+	respBytes, err := ioutil.ReadAll(resp.Body)
610
+	if err != nil {
611
+		fmt.Println(err.Error())
612
+		return err.Error(), ""
613
+	}
614
+	argbFileContent := string(respBytes) // 拼接 inputLog
615
+	var data2 map[string]interface{}
616
+	// 解析 JSON 字符串到 map
617
+	json.Unmarshal([]byte(argbFileContent), &data2)
618
+	// 检查 code 字段是否存在,并将其转换为字符串
619
+	if val, ok := data2["code"]; ok {
620
+		data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
621
+	}
622
+	updatedJSON2, _ := json.Marshal(data2)
623
+	argbFilePath := "b.txt"
624
+	os.WriteFile(argbFilePath, updatedJSON2, 0644)
625
+	cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=")
626
+	out2, err := cmd2.Output()
627
+	fmt.Println(err)
628
+	//fmt.Println(out2)
629
+	bb := strings.Split(string(out2),"======")
630
+	fmt.Println(bb[1])
631
+	return bb[1], inputLog
632
+
633
+
634
+
635
+}
443 636
 //func GetAHCFYLJG006(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG006 models.CFYLJG006) (string, string) {
444 637
 //	//生成签名
445 638
 //	nonce := GetRandomString(32)

+ 118 - 1
service/ahyb_service.go View File

@@ -2449,7 +2449,7 @@ func AHyb3201(fixmedins_setl_cnt int64, acct_pay float64, fund_pay_sumamt float6
2449 2449
 	inputData["fund_pay_sumamt"] = fund_pay_sumamt       //基金支付总额
2450 2450
 	inputData["acct_pay"] = acct_pay                     //个人账户支付金额
2451 2451
 	inputData["fixmedins_setl_cnt"] = fixmedins_setl_cnt //定点医药机构结算笔数
2452
-	inputData["refd_setl_flag"] = 0                      //
2452
+	//inputData["refd_setl_flag"] = 0                      //
2453 2453
 
2454 2454
 	input["data"] = inputData
2455 2455
 	inputMessage["input"] = input //交易输入
@@ -3534,3 +3534,120 @@ func AHyb3505(struct3505 models.Struct3505, secret_key string, request_url strin
3534 3534
 	fmt.Println(str)
3535 3535
 	return str, string(bytesData)
3536 3536
 }
3537
+
3538
+func AHyb5101(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string,  request_url string, cainfo string) (string, string) {
3539
+	fmt.Println(request_url)
3540
+
3541
+	// 生成签名
3542
+	timestamp := time.Now().Unix()
3543
+	// 生成输入报文
3544
+	inputMessage := SetAHInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
3545
+	input := make(map[string]interface{})
3546
+
3547
+	inputMessage["infno"] = "5101" // 交易编码
3548
+	inputMessage["input"] = input //交易输入
3549
+	argInputMessage := make(map[string]interface{})
3550
+	argInputMessage["arg0"] = inputMessage
3551
+	bytesData, err := json.Marshal(argInputMessage)
3552
+	fmt.Println(string(bytesData))
3553
+	if err != nil {
3554
+		fmt.Println(err.Error())
3555
+		return err.Error(), ""
3556
+	}
3557
+
3558
+	reader := bytes.NewReader(bytesData)
3559
+	request_url = request_url + "5101"
3560
+	fmt.Println(request_url)
3561
+
3562
+	request, err := http.NewRequest("POST", request_url, reader)
3563
+	if err != nil {
3564
+		fmt.Println(err.Error())
3565
+		return err.Error(), ""
3566
+	}
3567
+
3568
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
3569
+	//request.Header.Set("_api_timestamp", strconv.FormatInt(timestamp, 10))
3570
+	//request.Header.Set("_api_name", "hssServives")
3571
+	//request.Header.Set("_api_version", "1.0.0")
3572
+	//request.Header.Set("_api_access_key", access_key)
3573
+	//request.Header.Set("_api_signature", "")
3574
+
3575
+	client := http.Client{}
3576
+	resp, err := client.Do(request)
3577
+	if err != nil {
3578
+		fmt.Println(err.Error())
3579
+		return err.Error(), ""
3580
+	}
3581
+	respBytes, err := ioutil.ReadAll(resp.Body)
3582
+	if err != nil {
3583
+		fmt.Println(err.Error())
3584
+		return err.Error(), ""
3585
+	}
3586
+	str := string(respBytes)
3587
+	fmt.Println(str)
3588
+	return str, string(bytesData)
3589
+
3590
+}
3591
+func AHyb5102(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string,  request_url string, cainfo string) (string, string) {
3592
+	fmt.Println(request_url)
3593
+
3594
+	// 生成签名
3595
+	timestamp := time.Now().Unix()
3596
+	// 生成输入报文
3597
+	inputMessage := SetAHInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
3598
+	input := make(map[string]interface{})
3599
+	inputData := make(map[string]interface{})
3600
+	// 生成输入报文
3601
+	inputMessage["infno"] = "5102" // 交易编码
3602
+	inputData["prac_psn_type"] = "3"
3603
+	inputData["psn_cert_type"] = ""
3604
+	inputData["cert_no"] = ""
3605
+	inputData["prac_psn_name"] = ""
3606
+	inputData["prac_psn_code"] = ""
3607
+	input["data"] = inputData
3608
+
3609
+	inputMessage["input"] = input //交易输入
3610
+	argInputMessage := make(map[string]interface{})
3611
+	argInputMessage["arg0"] = inputMessage
3612
+
3613
+
3614
+	bytesData, err := json.Marshal(argInputMessage)
3615
+	fmt.Println(string(bytesData))
3616
+	if err != nil {
3617
+		fmt.Println(err.Error())
3618
+		return err.Error(), ""
3619
+	}
3620
+
3621
+	reader := bytes.NewReader(bytesData)
3622
+	request_url = request_url + "5102"
3623
+	fmt.Println(request_url)
3624
+
3625
+	request, err := http.NewRequest("POST", request_url, reader)
3626
+	if err != nil {
3627
+		fmt.Println(err.Error())
3628
+		return err.Error(), ""
3629
+	}
3630
+
3631
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
3632
+	//request.Header.Set("_api_timestamp", strconv.FormatInt(timestamp, 10))
3633
+	//request.Header.Set("_api_name", "hssServives")
3634
+	//request.Header.Set("_api_version", "1.0.0")
3635
+	//request.Header.Set("_api_access_key", access_key)
3636
+	//request.Header.Set("_api_signature", "")
3637
+
3638
+	client := http.Client{}
3639
+	resp, err := client.Do(request)
3640
+	if err != nil {
3641
+		fmt.Println(err.Error())
3642
+		return err.Error(), ""
3643
+	}
3644
+	respBytes, err := ioutil.ReadAll(resp.Body)
3645
+	if err != nil {
3646
+		fmt.Println(err.Error())
3647
+		return err.Error(), ""
3648
+	}
3649
+	str := string(respBytes)
3650
+	fmt.Println(str)
3651
+	return str, string(bytesData)
3652
+
3653
+}

+ 12 - 2
service/gdyb_service.go View File

@@ -2,6 +2,7 @@ package service
2 2
 
3 3
 import (
4 4
 	"bytes"
5
+	"regexp"
5 6
 	//"crypto/md5"
6 7
 	"crypto/sha256"
7 8
 	"encoding/hex"
@@ -6738,8 +6739,9 @@ func Gdyb3501(struct3501 models.Struct3501, secret_key string) (string, string)
6738 6739
 	codes := strings.Split(struct3501.DrugTracCodg, ",")
6739 6740
 	for _, item := range codes {
6740 6741
 		if len(item) > 0 {
6742
+
6741 6743
 			druginputData := make(map[string]interface{})
6742
-			druginputData["drug_trac_codg"] = item
6744
+			druginputData["drug_trac_codg"] =  removeNonDigits(item)
6743 6745
 			feedetail = append(feedetail, druginputData)
6744 6746
 		}
6745 6747
 	}
@@ -7080,8 +7082,9 @@ func Gdyb3505(struct3505 models.Struct3505, secret_key string) (string, string)
7080 7082
 	codes := strings.Split(struct3505.DrugTracCodg, ",")
7081 7083
 	for _, item := range codes {
7082 7084
 		if len(item) > 0 {
7085
+
7083 7086
 			druginputData := make(map[string]interface{})
7084
-			druginputData["drug_trac_codg"] = item
7087
+			druginputData["drug_trac_codg"] = removeNonDigits(item)
7085 7088
 			feedetail = append(feedetail, druginputData)
7086 7089
 		}
7087 7090
 	}
@@ -7128,6 +7131,13 @@ func Gdyb3505(struct3505 models.Struct3505, secret_key string) (string, string)
7128 7131
 	fmt.Println(str)
7129 7132
 	return str, ""
7130 7133
 }
7134
+func removeNonDigits(input string) string {
7135
+	// 使用正则表达式匹配所有非数字字符
7136
+	re := regexp.MustCompile(`\D`)
7137
+	// 将所有非数字字符替换为空字符串
7138
+	return re.ReplaceAllString(input, "")
7139
+}
7140
+
7131 7141
 func Gdyb3506(struct3506 models.Struct3506, secret_key string) (string, string) {
7132 7142
 	// 生成签名
7133 7143
 	nonce := GetRandomString(32)

+ 3 - 0
service/gdyb_zifei_service.go View File

@@ -480,6 +480,9 @@ func Gdyb4205(org_name string, doctor string, fixmedins_code string, insuplc_adm
480 480
 
481 481
 		inputData["medins_list_name"] = item.MedinsListName
482 482
 		inputData["medins_list_code"] = item.MedinsListCodg
483
+
484
+
485
+		inputData["med_list_codg"] = item.MedinsListCodg
483 486
 		inputData["med_chrgitm_type"] = item.MedChrgitmType
484 487
 		inputData["prodname"] = item.Prodname
485 488
 		inputData["bilg_dept_codg"] = item.BilgDeptCodg

+ 1 - 1
service/his_service.go View File

@@ -1570,7 +1570,7 @@ func GetAllHisOrder10106(org_id int64) (his []*models.HisOrder, err error) {
1570 1570
 	return
1571 1571
 }
1572 1572
 func GetAllHisOrder10138() (his []*models.HisOrder, err error) {
1573
-	err = readDb.Model(&models.HisOrder{}).Where("user_org_id = 10138  AND status = 1  AND  order_status = 2 AND  setl_id <> '' AND setl_time >= '2024-11-01 00:00:00'  and mdtrt_id not like '%out%'").Order("setl_time asc").Find(&his).Error
1573
+	err = readDb.Model(&models.HisOrder{}).Where("user_org_id = 9504  AND status = 1  AND  order_status = 2 AND  setl_id <> '' AND setl_time >= '2024-10-01 00:00:00'  and mdtrt_id not like '%out%'").Order("setl_time asc").Find(&his).Error
1574 1574
 	fmt.Println(err)
1575 1575
 	return
1576 1576
 }

+ 6 - 6
service/hn_service.go View File

@@ -183,13 +183,13 @@ func Hnyb1101ForEleCert(org_name string, doctor string, fixmedins_code string, i
183 183
 }
184 184
 
185 185
 // 门诊挂号
186
-func Hnyb2201(psnNo string, insutype string, certNo string, org_name string, opera string, ipt_otp_no string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, doctor_name string, request_url string, access_key string, verify_number string, cainfo string, card_sn string) (string, string) {
186
+func Hnyb2201(psnNo string, insutype string, certNo string, org_name string, opera string, ipt_otp_no string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, doctor_name string, request_url string, access_key string, verify_number string, cainfo string, card_sn string, begin string) (string, string) {
187 187
 	fmt.Println(opera)
188 188
 
189 189
 	// 生成签名
190 190
 	timestamp := time.Now().Unix()
191
-	tempTime := time.Unix(timestamp, 0)
192
-	timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
191
+	//tempTime := time.Unix(timestamp, 0)
192
+	//timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
193 193
 
194 194
 	// 生成输入报文
195 195
 	inputMessage := SetHnInputMessage(timestamp, org_name, opera, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
@@ -198,7 +198,7 @@ func Hnyb2201(psnNo string, insutype string, certNo string, org_name string, ope
198 198
 	inputMessage["infno"] = "2201"        // 交易编码
199 199
 	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
200 200
 	inputData["insutype"] = insutype      // 险种类型(来自1101接口返回)
201
-	inputData["begntime"] = timeFormatOne // 开始时间
201
+	inputData["begntime"] = begin // 开始时间
202 202
 
203 203
 	if id_card_type == 1 {
204 204
 		inputData["mdtrt_cert_type"] = "03"        // 就诊凭证类型
@@ -342,7 +342,7 @@ func Hnyb2203(psnNo string, mdtrtId string, doctor string, department string, or
342 342
 }
343 343
 
344 344
 // 门诊就诊信息上传
345
-func Hnyb2203A(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, request_url string, access_key string, cainfo string) (string, string) {
345
+func Hnyb2203A(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, request_url string, access_key string, cainfo string,begin_time string) (string, string) {
346 346
 	// 生成签名
347 347
 	timestamp := time.Now().Unix()
348 348
 	tempTime := time.Unix(timestamp, 0)
@@ -362,7 +362,7 @@ func Hnyb2203A(psnNo string, mdtrtId string, doctor string, department string, o
362 362
 	inputData["mdtrt_id"] = mdtrtId       // 就诊 ID(来自2201接口返回)
363 363
 	inputData["psn_no"] = psnNo           // 人员编号 (来自1101接口返回)
364 364
 	inputData["med_type"] = med_type      // 医疗类别 16门诊特殊病
365
-	inputData["begntime"] = timeFormatOne // 开始时间
365
+	inputData["begntime"] = begin_time // 开始时间
366 366
 
367 367
 	inputData["main_cond_dscr"] = ""    // 主要病情描述
368 368
 	inputData["dise_codg"] = sick_code  // 病种编码