Browse Source

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

csx 2 years ago
parent
commit
5266a20144

+ 1 - 1
controllers/hb/hbyb_controller.go View File

40
 		return
40
 		return
41
 	}
41
 	}
42
 	userJSONBytes, _ := json.Marshal(respJSON["bps"])
42
 	userJSONBytes, _ := json.Marshal(respJSON["bps"])
43
-	var bps []models.BusinessParams
43
+	var bps []*models.BusinessParamsTwo
44
 	if err := json.Unmarshal(userJSONBytes, &bps); err != nil {
44
 	if err := json.Unmarshal(userJSONBytes, &bps); err != nil {
45
 		utils.ErrorLog("解析失败:%v", err)
45
 		utils.ErrorLog("解析失败:%v", err)
46
 		return
46
 		return

+ 60 - 4
controllers/js/jsyb_controller.go View File

664
 	url := c.GetString("url")
664
 	url := c.GetString("url")
665
 	ak := c.GetString("ak")
665
 	ak := c.GetString("ak")
666
 
666
 
667
-	result, request_log := service.Jsyb2206(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, 0, 0, 0, 0, certificates, url, ak, verify_number, cainfo)
667
+	var result string
668
+	var request_log string
669
+
670
+	result, request_log = service.Jsyb2206(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, 0, 0, 0, 0, certificates, url, ak, verify_number, cainfo)
671
+
668
 	saveJsLog(result, request_log, "2206", "预结算", org_name)
672
 	saveJsLog(result, request_log, "2206", "预结算", org_name)
669
 	var dat map[string]interface{}
673
 	var dat map[string]interface{}
670
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
674
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
713
 	verify_number := c.GetString("verify_number")
717
 	verify_number := c.GetString("verify_number")
714
 	cainfo := c.GetString("cainfo")
718
 	cainfo := c.GetString("cainfo")
715
 
719
 
716
-	result, request_log := service.Jsyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt, certificates, acct_used_flag, url, ak, verify_number, cainfo)
720
+	var result string
721
+	var request_log string
722
+	if id_card_type == 4 {
723
+		_, pBusiCardInfo := GetELeCertInfoSettle(fixmedins_code, "", "")
724
+		pBusiCardInfo = Remove0000(pBusiCardInfo)
725
+		var ele ELeData
726
+		err := json.Unmarshal([]byte(pBusiCardInfo), &ele)
727
+		if err != nil {
728
+			utils.ErrorLog("解析失败:%v", err)
729
+		}
730
+		token := ele.Data.EcCardToken
731
+		if len(token) > 0 {
732
+			result, request_log = service.Jsyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt, certificates, acct_used_flag, url, ak, token, cainfo)
733
+		}
734
+	} else {
735
+		result, request_log = service.Jsyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt, certificates, acct_used_flag, url, ak, verify_number, cainfo)
736
+
737
+	}
738
+
717
 	saveJsLog(result, request_log, "2207", "结算", org_name)
739
 	saveJsLog(result, request_log, "2207", "结算", org_name)
718
 	var dat map[string]interface{}
740
 	var dat map[string]interface{}
719
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
741
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
1024
 		token := ele.Data.EcToken
1046
 		token := ele.Data.EcToken
1025
 		fmt.Println(token)
1047
 		fmt.Println(token)
1026
 		if len(token) > 0 {
1048
 		if len(token) > 0 {
1027
-			userName := ConvertByte2String([]byte(ele.Data.UserName), GB18030)
1049
+			userName := ele.Data.UserName
1050
+			fmt.Println(userName)
1028
 			userName = Remove0000(userName)
1051
 			userName = Remove0000(userName)
1052
+			userName = DeleteExtraSpace(userName)
1029
 			fmt.Println(userName)
1053
 			fmt.Println(userName)
1030
 			enc := mahonia.NewEncoder("gbk")
1054
 			enc := mahonia.NewEncoder("gbk")
1031
 			fmt.Println(enc.ConvertString(userName))
1055
 			fmt.Println(enc.ConvertString(userName))
1032
-			result, _ := service.Jsyb1101ForEleCert(org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, url, ak, token, cainfo, ele.Data.IDNo, enc.ConvertString(userName))
1056
+			result, _ := service.Jsyb1101ForEleCert(org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, url, ak, token, cainfo, ele.Data.IDNo, userName)
1033
 			var dat map[string]interface{}
1057
 			var dat map[string]interface{}
1034
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
1058
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
1035
 				fmt.Println(dat)
1059
 				fmt.Println(dat)
1183
 	return ConvertByte2String([]byte(DeleteExtraSpace(string(bytesData))), GB18030), ConvertByte2String([]byte(DeleteExtraSpace(string(pBusiCardInfo))), GB18030)
1207
 	return ConvertByte2String([]byte(DeleteExtraSpace(string(bytesData))), GB18030), ConvertByte2String([]byte(DeleteExtraSpace(string(pBusiCardInfo))), GB18030)
1184
 }
1208
 }
1185
 
1209
 
1210
+func GetELeCertInfoSettle(code string, operator_id string, operator_name string) (string, string) {
1211
+	DllDef := syscall.MustLoadDLL("HeaSecReadInfo.dll")
1212
+	readCard := DllDef.MustFindProc("GetPersonInfo")
1213
+
1214
+	pCardInfo := make([]byte, 8192)
1215
+	pBusiCardInfo := make([]byte, 8192)
1216
+	data := make(map[string]interface{})
1217
+
1218
+	inputData := make(map[string]interface{})
1219
+	inputData["orgId"] = code
1220
+	inputData["businessType"] = "01301"
1221
+	inputData["operatorId"] = "1"
1222
+	inputData["operatorName"] = "admin"
1223
+	inputData["officeId"] = "001"
1224
+	inputData["officeName"] = "admin"
1225
+	data["data"] = inputData
1226
+	data["transType"] = "ec.query"
1227
+	data["orgId"] = code
1228
+	bytesData, _ := json.Marshal(data)
1229
+	pCardInfo = bytesData
1230
+	pCardInfo = []byte(ConvertByte2String(pCardInfo, GB18030))
1231
+
1232
+	ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&pCardInfo[0])), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0])))
1233
+	fmt.Println(ret2)
1234
+	fmt.Println(":", ConvertToString(DeleteExtraSpace(string(bytesData)), "gbk", "utf-8"))
1235
+	fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8"))
1236
+	if ret2 != 0 {
1237
+		return "", ""
1238
+	}
1239
+	return ConvertByte2String([]byte(DeleteExtraSpace(string(bytesData))), GB18030), ConvertByte2String([]byte(DeleteExtraSpace(string(pBusiCardInfo))), GB18030)
1240
+}
1241
+
1186
 func IntPtr(n int) uintptr {
1242
 func IntPtr(n int) uintptr {
1187
 	return uintptr(n)
1243
 	return uintptr(n)
1188
 }
1244
 }

+ 1 - 1
controllers/sg/gdyb_controller.go View File

341
 	preselfpay_amt, _ := c.GetFloat("preselfpay_amt")
341
 	preselfpay_amt, _ := c.GetFloat("preselfpay_amt")
342
 	inscp_scp_amt, _ := c.GetFloat("inscp_scp_amt")
342
 	inscp_scp_amt, _ := c.GetFloat("inscp_scp_amt")
343
 
343
 
344
-	result, srcRequest := service.Gdyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt, 1, "0")
344
+	result, srcRequest := service.Gdyb2207(psnNo, mdtrtId, chrgBchno, certNo, insutype, total, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, med_type, id_card_type, fulamt_ownpay_amt, overlmt_selfpay, preselfpay_amt, inscp_scp_amt, 1, "0", "")
345
 	var dat map[string]interface{}
345
 	var dat map[string]interface{}
346
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
346
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
347
 		fmt.Println(dat)
347
 		fmt.Println(dat)

+ 176 - 155
controllers/sg/his_api_controller.go View File

81
 	beego.Router("/90990", &HisApiController{}, "get:CheckCardPWDTwo")
81
 	beego.Router("/90990", &HisApiController{}, "get:CheckCardPWDTwo")
82
 	beego.Router("/9001", &HisApiController{}, "get:Get9001")
82
 	beego.Router("/9001", &HisApiController{}, "get:Get9001")
83
 
83
 
84
-	beego.Router("/api/readelecard", &HisApiController{}, "get:ReadEleCard")
84
+	//beego.Router("/api/readelecard", &HisApiController{}, "get:ReadEleCard")
85
 
85
 
86
 	beego.Router("/api/3202", &HisApiController{}, "get:Post3202")
86
 	beego.Router("/api/3202", &HisApiController{}, "get:Post3202")
87
 
87
 
2293
 				return
2293
 				return
2294
 			}
2294
 			}
2295
 		} else if miConfig.MdtrtareaAdmvs == "440300" || miConfig.MdtrtareaAdmvs == "440305" {
2295
 		} else if miConfig.MdtrtareaAdmvs == "440300" || miConfig.MdtrtareaAdmvs == "440305" {
2296
-			c.GetEleBaseInfo()
2297
-
2298
-			//result, requestLog := service.Gdyb6101(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey)
2299
-			//saveLog(result, requestLog, "6101", "电子凭证")
2300
-			//var ele ELeCertData
2301
-			//err := json.Unmarshal([]byte(result), &ele)
2302
-			//if err != nil {
2303
-			//	utils.ErrorLog("解析失败:%v", err)
2304
-			//}
2305
-			//result2, requestLog2 := service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, ele.Data.EcToken)
2306
-			//saveLog(result2, requestLog2, "1101", "获取人员信息")
2307
-			//
2308
-			//var res ResultTwo
2309
-			//if err := json.Unmarshal([]byte(result2), &res); err != nil {
2310
-			//	utils.ErrorLog("解析失败:%v", err)
2311
-			//	c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2312
-			//	return
2313
-			//}
2314
-			//
2315
-			//if res.Infcode == 0 {
2316
-			//	patient, err := service.GetPatientByNumber(ele.Data.IDNo, c.GetAdminUserInfo().CurrentOrgId)
2317
-			//	if err == gorm.ErrRecordNotFound {
2318
-			//		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
2319
-			//		return
2320
-			//	} else if err != nil {
2321
-			//		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
2322
-			//		return
2323
-			//
2324
-			//	} else {
2325
-			//		Iinfos, _ := json.Marshal(res.Output.Iinfo)
2326
-			//		Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
2327
-			//		infoStr := string(Iinfos)
2328
-			//		idetinfoStr := string(Idetinfos)
2329
-			//		psn := &models.HisPsn{
2330
-			//			PsnNo:        res.Output.Baseinfo.PsnNo,
2331
-			//			Age:          res.Output.Baseinfo.Age,
2332
-			//			PatientId:    patient.ID,
2333
-			//			Certno:       res.Output.Baseinfo.Certno,
2334
-			//			Brdy:         res.Output.Baseinfo.Brdy,
2335
-			//			Gend:         res.Output.Baseinfo.Gend,
2336
-			//			Naty:         res.Output.Baseinfo.Naty,
2337
-			//			PsnCertType:  res.Output.Baseinfo.PsnCertType,
2338
-			//			PsnName:      res.Output.Baseinfo.PsnName,
2339
-			//			Idetinfo:     idetinfoStr,
2340
-			//			Insuinfo:     infoStr,
2341
-			//			UserOrgId:    c.GetAdminUserInfo().CurrentOrgId,
2342
-			//			CardInfo:     "",
2343
-			//			VerifyNumber: ele.Data.EcToken,
2344
-			//		}
2345
-			//		service.CreateHisPsn(psn)
2296
+
2297
+			if initFlag == 0 {
2298
+				c.TestGetBasBaseInit()
2299
+			}
2300
+			token := c.GetEleBaseInfo()
2301
+
2302
+			token = Remove0000(token)
2303
+
2304
+			result2, requestLog2 := service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token)
2305
+			saveLog(result2, requestLog2, "1101", "获取人员信息")
2346
 			//
2306
 			//
2347
-			//		c.ServeSuccessJSON(map[string]interface{}{
2348
-			//			"patient": patient,
2349
-			//			"number":  ele.Data.EcToken,
2350
-			//		})
2351
-			//	}
2352
-			//} else {
2353
-			//	c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
2354
-			//	return
2355
-			//}
2307
+			var res ResultTwo
2308
+			if err := json.Unmarshal([]byte(result2), &res); err != nil {
2309
+				utils.ErrorLog("解析失败:%v", err)
2310
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2311
+				return
2312
+			}
2313
+
2314
+			if res.Infcode == 0 {
2315
+				patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
2316
+				if err == gorm.ErrRecordNotFound {
2317
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
2318
+					return
2319
+				} else if err != nil {
2320
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
2321
+					return
2322
+
2323
+				} else {
2324
+					Iinfos, _ := json.Marshal(res.Output.Iinfo)
2325
+					Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
2326
+					infoStr := string(Iinfos)
2327
+					idetinfoStr := string(Idetinfos)
2328
+					psn := &models.HisPsn{
2329
+						PsnNo:        res.Output.Baseinfo.PsnNo,
2330
+						Age:          res.Output.Baseinfo.Age,
2331
+						PatientId:    patient.ID,
2332
+						Certno:       res.Output.Baseinfo.Certno,
2333
+						Brdy:         res.Output.Baseinfo.Brdy,
2334
+						Gend:         res.Output.Baseinfo.Gend,
2335
+						Naty:         res.Output.Baseinfo.Naty,
2336
+						PsnCertType:  res.Output.Baseinfo.PsnCertType,
2337
+						PsnName:      res.Output.Baseinfo.PsnName,
2338
+						Idetinfo:     idetinfoStr,
2339
+						Insuinfo:     infoStr,
2340
+						UserOrgId:    c.GetAdminUserInfo().CurrentOrgId,
2341
+						CardInfo:     "",
2342
+						VerifyNumber: token,
2343
+					}
2344
+					service.CreateHisPsn(psn)
2345
+
2346
+					c.ServeSuccessJSON(map[string]interface{}{
2347
+						"patient": patient,
2348
+						"number":  token,
2349
+					})
2350
+				}
2351
+			} else {
2352
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
2353
+				return
2354
+			}
2356
 
2355
 
2357
 		} else if miConfig.MdtrtareaAdmvs == "350500" {
2356
 		} else if miConfig.MdtrtareaAdmvs == "350500" {
2358
 			type ELeData struct {
2357
 			type ELeData struct {
2537
 func (c *HisApiController) GetEleBaseInfo() string {
2536
 func (c *HisApiController) GetEleBaseInfo() string {
2538
 	DllDef := syscall.MustLoadDLL("SSCard.dll")
2537
 	DllDef := syscall.MustLoadDLL("SSCard.dll")
2539
 	readCard := DllDef.MustFindProc("GetQRBase")
2538
 	readCard := DllDef.MustFindProc("GetQRBase")
2539
+	fmt.Println(readCard)
2540
+
2540
 	if readCard == nil {
2541
 	if readCard == nil {
2541
 		fmt.Println("readcard is nil")
2542
 		fmt.Println("readcard is nil")
2542
 		readCard = DllDef.MustFindProc("GetQRBase")
2543
 		readCard = DllDef.MustFindProc("GetQRBase")
2544
 	str := make([]byte, 1024)
2545
 	str := make([]byte, 1024)
2545
 	str1 := make([]byte, 1024)
2546
 	str1 := make([]byte, 1024)
2546
 	ret2, _, _ := readCard.Call(uintptr(180), (uintptr)(unsafe.Pointer(&str[0])), uintptr(1024), (uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024))
2547
 	ret2, _, _ := readCard.Call(uintptr(180), (uintptr)(unsafe.Pointer(&str[0])), uintptr(1024), (uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024))
2548
+	fmt.Println(ret2)
2547
 	fmt.Println(string(str1))
2549
 	fmt.Println(string(str1))
2548
 	fmt.Println(string(str))
2550
 	fmt.Println(string(str))
2549
 	fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
2551
 	fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
2551
 	if ret2 != 0 {
2553
 	if ret2 != 0 {
2552
 		return ""
2554
 		return ""
2553
 	}
2555
 	}
2554
-	return string(str1)
2556
+	return string(str)
2555
 }
2557
 }
2556
 
2558
 
2557
 func (c *HisApiController) GetBasBaseInfo() string {
2559
 func (c *HisApiController) GetBasBaseInfo() string {
3261
 		HiType:         order.Insutype,
3263
 		HiType:         order.Insutype,
3262
 		Insuplc:        miConfig.InsuplcAdmdvs,
3264
 		Insuplc:        miConfig.InsuplcAdmdvs,
3263
 		MaindiagFlag:   "1",
3265
 		MaindiagFlag:   "1",
3264
-		BillCode:       order.FaPiaoCode,
3265
-		BillNo:         order.FaPiaoCode,
3266
+		BillCode:       order.FaPiaoNumber,
3267
+		BillNo:         order.FaPiaoNumber,
3266
 		BizSn:          order.Number,
3268
 		BizSn:          order.Number,
3267
 		PsnSelfPay:     order.PsnPartAmt,
3269
 		PsnSelfPay:     order.PsnPartAmt,
3268
 		PsnOwnPay:      order.PsnPartAmt,
3270
 		PsnOwnPay:      order.PsnPartAmt,
3826
 			HiType:         order.Insutype,
3828
 			HiType:         order.Insutype,
3827
 			Insuplc:        his.InsuplcAdmdvs,
3829
 			Insuplc:        his.InsuplcAdmdvs,
3828
 			MaindiagFlag:   "1",
3830
 			MaindiagFlag:   "1",
3829
-			BillCode:       order.FaPiaoCode,
3830
-			BillNo:         order.FaPiaoNumber,
3831
+			BillCode:       order.SetlId,
3832
+			BillNo:         order.SetlId,
3831
 			BizSn:          order.Number,
3833
 			BizSn:          order.Number,
3832
 			PsnSelfPay:     order.PsnPartAmt,
3834
 			PsnSelfPay:     order.PsnPartAmt,
3833
 			PsnOwnPay:      order.PsnPartAmt,
3835
 			PsnOwnPay:      order.PsnPartAmt,
5844
 			var result string
5846
 			var result string
5845
 			var requestLog string
5847
 			var requestLog string
5846
 			if miConfig.UserOrgId == 10138 {
5848
 			if miConfig.UserOrgId == 10138 {
5847
-				if id_card_type == 4 {
5848
-					psn_info, _ := service.GetPsnByPatientId(id)
5849
-					result, requestLog = service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_info.VerifyNumber)
5850
-				} else {
5849
+				if id_card_type != 4 {
5850
+					//psn_info, _ := service.GetPsnByPatientId(id)
5851
+					//result, requestLog = service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_info.VerifyNumber)
5851
 					result, requestLog = service.Gdyb1101D(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name, record_time)
5852
 					result, requestLog = service.Gdyb1101D(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name, record_time)
5852
 				}
5853
 				}
5853
 			} else {
5854
 			} else {
5854
 				result, requestLog = service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name)
5855
 				result, requestLog = service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name)
5855
 			}
5856
 			}
5856
-			saveLog(result, requestLog, "1101", "人员基本信息获取")
5857
-			if miConfig.Code == "H15049901371" {
5858
 
5857
 
5859
-				if err := json.Unmarshal([]byte(result), &res10265); err != nil {
5860
-					utils.ErrorLog("解析失败:%v", err)
5861
-					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
5862
-					return
5863
-				}
5864
-				res.ErrMsg = res10265.ErrMsg
5865
-				res.Output = res10265.Output
5866
-				res.InfRefmsgid = res10265.InfRefmsgid
5858
+			if id_card_type == 4 {
5859
+				psn_info, _ := service.GetPsnByPatientId(id)
5860
+				PsnNo = psn_info.PsnNo
5861
+				PsnCertType = psn_info.PsnCertType
5862
+				Certno = psn_info.Certno
5863
+				PsnName = psn_info.PsnName
5864
+				Gend = psn_info.Gend
5865
+				Naty = psn_info.Naty
5866
+				Brdy = psn_info.Brdy
5867
+				Age = psn_info.Age
5868
+				infoStr = psn_info.Insuinfo
5869
+				idetinfoStr = psn_info.Idetinfo
5870
+				infocode = 0
5871
+				verify_number = psn_info.VerifyNumber
5867
 
5872
 
5868
 			} else {
5873
 			} else {
5869
-				if err := json.Unmarshal([]byte(result), &res); err != nil {
5870
-					utils.ErrorLog("解析失败:%v", err)
5871
-					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
5872
-					return
5874
+				saveLog(result, requestLog, "1101", "人员基本信息获取")
5875
+				if miConfig.Code == "H15049901371" {
5876
+
5877
+					if err := json.Unmarshal([]byte(result), &res10265); err != nil {
5878
+						utils.ErrorLog("解析失败:%v", err)
5879
+						c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
5880
+						return
5881
+					}
5882
+					res.ErrMsg = res10265.ErrMsg
5883
+					res.Output = res10265.Output
5884
+					res.InfRefmsgid = res10265.InfRefmsgid
5885
+
5886
+				} else {
5887
+					if err := json.Unmarshal([]byte(result), &res); err != nil {
5888
+						utils.ErrorLog("解析失败:%v", err)
5889
+						c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
5890
+						return
5891
+					}
5892
+				}
5893
+				PsnNo = res.Output.Baseinfo.PsnNo
5894
+				PsnCertType = res.Output.Baseinfo.PsnCertType
5895
+				Certno = res.Output.Baseinfo.Certno
5896
+				PsnName = res.Output.Baseinfo.PsnName
5897
+				Gend = res.Output.Baseinfo.Gend
5898
+				Naty = res.Output.Baseinfo.Naty
5899
+				Brdy = res.Output.Baseinfo.Brdy
5900
+				Age = res.Output.Baseinfo.Age
5901
+				Iinfos, _ := json.Marshal(res.Output.Iinfo)
5902
+				Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
5903
+				infoStr = string(Iinfos)
5904
+				idetinfoStr = string(Idetinfos)
5905
+				if miConfig.Code == "H15049901371" {
5906
+					infocode, _ = strconv.ParseInt(res10265.Infcode, 10, 64)
5907
+				} else {
5908
+					infocode = res.Infcode
5873
 				}
5909
 				}
5874
-			}
5875
 
5910
 
5876
-			PsnNo = res.Output.Baseinfo.PsnNo
5877
-			PsnCertType = res.Output.Baseinfo.PsnCertType
5878
-			Certno = res.Output.Baseinfo.Certno
5879
-			PsnName = res.Output.Baseinfo.PsnName
5880
-			Gend = res.Output.Baseinfo.Gend
5881
-			Naty = res.Output.Baseinfo.Naty
5882
-			Brdy = res.Output.Baseinfo.Brdy
5883
-			Age = res.Output.Baseinfo.Age
5884
-			Iinfos, _ := json.Marshal(res.Output.Iinfo)
5885
-			Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
5886
-			infoStr = string(Iinfos)
5887
-			idetinfoStr = string(Idetinfos)
5888
-			if miConfig.Code == "H15049901371" {
5889
-				infocode, _ = strconv.ParseInt(res10265.Infcode, 10, 64)
5890
-			} else {
5891
-				infocode = res.Infcode
5892
 			}
5911
 			}
5912
+
5893
 		}
5913
 		}
5894
 		if infocode == 0 {
5914
 		if infocode == 0 {
5895
 			his := models.VMHisPatient{
5915
 			his := models.VMHisPatient{
6190
 				infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64)
6210
 				infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64)
6191
 			} else {
6211
 			} else {
6192
 				psn_info, _ := service.GetPsnByPatientId(id)
6212
 				psn_info, _ := service.GetPsnByPatientId(id)
6193
-				result, requestLog := service.Gdyb2201A(res.Output.Baseinfo.PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time, psn_info.VerifyNumber)
6213
+				result, requestLog := service.Gdyb2201A(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time, psn_info.VerifyNumber)
6194
 				saveLog(result, requestLog, "2201A", "挂号")
6214
 				saveLog(result, requestLog, "2201A", "挂号")
6195
 				if miConfig.Code == "H15049901371" {
6215
 				if miConfig.Code == "H15049901371" {
6196
 
6216
 
7273
 										med_type = "11"
7293
 										med_type = "11"
7274
 									}
7294
 									}
7275
 								}
7295
 								}
7276
-								result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag)
7296
+								result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
7277
 							} else {
7297
 							} else {
7278
-								result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag)
7298
+								if his.IdCardType == 4 {
7299
+									psn_info, _ := service.GetPsnByPatientId(his.PatientId)
7300
+									var token string
7301
+									token = psn_info.VerifyNumber
7302
+									result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, token)
7303
+
7304
+								} else {
7305
+									result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
7306
+
7307
+								}
7308
+
7279
 							}
7309
 							}
7280
 
7310
 
7281
 							//result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, acct_used_flag)
7311
 							//result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, acct_used_flag)
7726
 							med_type = "11"
7756
 							med_type = "11"
7727
 						}
7757
 						}
7728
 					}
7758
 					}
7729
-					result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag)
7759
+					result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
7730
 				} else {
7760
 				} else {
7731
-					result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag)
7761
+					if his.IdCardType == 4 {
7762
+						psn_info, _ := service.GetPsnByPatientId(his.PatientId)
7763
+						token := psn_info.VerifyNumber
7764
+						result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, token)
7765
+
7766
+					} else {
7767
+
7768
+						result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
7769
+
7770
+					}
7732
 				}
7771
 				}
7733
 
7772
 
7734
 				var dat map[string]interface{}
7773
 				var dat map[string]interface{}
10282
 	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
10321
 	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
10283
 	endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
10322
 	endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
10284
 	orders, _ := service.GetOrderByTime(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type)
10323
 	orders, _ := service.GetOrderByTime(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type)
10324
+	orders_two, _ := service.GetOrderByTimeFive(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type)
10325
+
10285
 	fixmedins_setl_cnt := int64(len(orders))
10326
 	fixmedins_setl_cnt := int64(len(orders))
10286
 	var medfee_sumamt float64
10327
 	var medfee_sumamt float64
10287
 	var acct_pay float64
10328
 	var acct_pay float64
10311
 				"&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
10352
 				"&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
10312
 				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
10353
 				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
10313
 				"&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
10354
 				"&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
10314
-				"&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) +
10355
+				"&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) +
10315
 				"&fixmedins_code=" + miConfig.Code +
10356
 				"&fixmedins_code=" + miConfig.Code +
10316
 				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
10357
 				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
10317
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
10358
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
10359
 
10400
 
10360
 			api := "http://172.16.13.254:9532/" + "nmyb/3201?" +
10401
 			api := "http://172.16.13.254:9532/" + "nmyb/3201?" +
10361
 				"insutype=" + insutype +
10402
 				"insutype=" + insutype +
10362
-				"&clr_type=" + clr_type +
10403
+				"&clr_type=" + "21" +
10363
 				"&setl_optins=" + clr_org +
10404
 				"&setl_optins=" + clr_org +
10364
 				"&stmt_begndate=" + start_time +
10405
 				"&stmt_begndate=" + start_time +
10365
 				"&stm_enddate=" + end_time +
10406
 				"&stm_enddate=" + end_time +
10366
 				"&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
10407
 				"&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
10367
 				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
10408
 				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
10368
 				"&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
10409
 				"&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
10369
-				"&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) +
10410
+				"&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) +
10370
 				"&fixmedins_code=" + miConfig.Code +
10411
 				"&fixmedins_code=" + miConfig.Code +
10371
 				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
10412
 				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
10372
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
10413
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
10432
 				MedfeeSumamt:     medfee_sumamt,
10473
 				MedfeeSumamt:     medfee_sumamt,
10433
 				FundPaySumamt:    fund_pay_sumamt,
10474
 				FundPaySumamt:    fund_pay_sumamt,
10434
 				AcctPay:          acct_pay,
10475
 				AcctPay:          acct_pay,
10435
-				FixmedinsSetlCnt: fixmedins_setl_cnt,
10476
+				FixmedinsSetlCnt: fixmedins_setl_cnt + int64(len(orders_two)*2),
10436
 			}
10477
 			}
10437
 			result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams)
10478
 			result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams)
10438
 			fmt.Println(requestLog)
10479
 			fmt.Println(requestLog)
13128
 func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string {
13169
 func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string {
13129
 	roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id)
13170
 	roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id)
13130
 	miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
13171
 	miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
13131
-
13172
+	var token string
13132
 	if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
13173
 	if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
13133
 		var api string
13174
 		var api string
13134
 		if miConfig.MdtrtareaAdmvs == "320921" {
13175
 		if miConfig.MdtrtareaAdmvs == "320921" {
13162
 		var status string
13203
 		var status string
13163
 		status = respJSON["data"].(map[string]interface{})["status"].(string)
13204
 		status = respJSON["data"].(map[string]interface{})["status"].(string)
13164
 		//card_type := respJSON["data"].(map[string]interface{})["type"].(string)
13205
 		//card_type := respJSON["data"].(map[string]interface{})["type"].(string)
13165
-		var token string
13206
+
13166
 		var res ResultTwo           //1101结果
13207
 		var res ResultTwo           //1101结果
13167
 		var res10265 ResultTwo10265 //1101结果
13208
 		var res10265 ResultTwo10265 //1101结果
13168
 		if status == "0" {          //读卡成功
13209
 		if status == "0" {          //读卡成功
13229
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
13270
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
13230
 		return ""
13271
 		return ""
13231
 	}
13272
 	}
13273
+	return token
13232
 }
13274
 }
13233
 
13275
 
13234
 func DeleteExtraSpaceTwo(s string) string {
13276
 func DeleteExtraSpaceTwo(s string) string {
13327
 	loc, _ := time.LoadLocation("Local")
13369
 	loc, _ := time.LoadLocation("Local")
13328
 	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
13370
 	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
13329
 	endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
13371
 	endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
13330
-	orders, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "390", "", clr_type)
13331
-	orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type)
13372
+	orders, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId)
13373
+	//orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type)
13332
 
13374
 
13333
 	//fixmedins_setl_cnt := int64(len(orders))
13375
 	//fixmedins_setl_cnt := int64(len(orders))
13334
 	var medfee_sumamt float64
13376
 	var medfee_sumamt float64
13335
 	var acct_pay float64
13377
 	var acct_pay float64
13336
 	var fund_pay_sumamt float64
13378
 	var fund_pay_sumamt float64
13337
 
13379
 
13338
-	var medfee_sumamt_str string
13339
-	var acct_pay_str string
13340
-	var fund_pay_sumamt_str string
13341
 	for _, item := range orders {
13380
 	for _, item := range orders {
13342
-		medfee_sumamt_str = fmt.Sprintf("%.4f", medfee_sumamt+item.MedfeeSumamt)
13343
-		acct_pay_str = fmt.Sprintf("%.4f", acct_pay+item.AcctPay)
13344
-		fund_pay_sumamt_str = fmt.Sprintf("%.4f", fund_pay_sumamt+item.FundPaySumamt)
13381
+		medfee_sumamt = medfee_sumamt + item.MedfeeSumamt
13382
+		acct_pay = acct_pay + item.AcctPay
13383
+		fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt
13345
 
13384
 
13346
 	}
13385
 	}
13347
 
13386
 
13348
-	var medfee_sumamt_two float64
13349
-	var acct_pay_two float64
13350
-	var fund_pay_sumamt_two float64
13387
+	//var medfee_sumamt_two float64
13388
+	//var acct_pay_two float64
13389
+	//var fund_pay_sumamt_two float64
13351
 
13390
 
13352
-	var medfee_sumamt_two_str string
13353
-	var acct_pay_two_str string
13354
-	var fund_pay_sumamt_two_str string
13355
-	for _, item := range orders_two {
13356
-		medfee_sumamt_two_str = fmt.Sprintf("%.4f", medfee_sumamt_two+item.MedfeeSumamt)
13357
-		acct_pay_two_str = fmt.Sprintf("%.4f", acct_pay_two+item.AcctPay)
13358
-		fund_pay_sumamt_two_str = fmt.Sprintf("%.4f", fund_pay_sumamt_two+item.FundPaySumamt)
13359
-	}
13391
+	//for _, item := range orders_two {
13392
+	//	medfee_sumamt_two = medfee_sumamt_two + item.MedfeeSumamt
13393
+	//	acct_pay_two = acct_pay_two + item.AcctPay
13394
+	//	fund_pay_sumamt_two = fund_pay_sumamt_two + item.FundPaySumamt
13395
+	//}
13360
 
13396
 
13361
 	//var user_name string
13397
 	//var user_name string
13362
 	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
13398
 	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
13367
 	//}
13403
 	//}
13368
 	var res ResultSix
13404
 	var res ResultSix
13369
 	if config.IsOpen == 1 {
13405
 	if config.IsOpen == 1 {
13370
-		var bps []models.BusinessParams
13371
-		var bp models.BusinessParams
13372
-		ms, _ := strconv.ParseFloat(medfee_sumamt_str, 64)
13373
-		ap, _ := strconv.ParseFloat(acct_pay_str, 64)
13374
-		fp, _ := strconv.ParseFloat(fund_pay_sumamt_str, 64)
13375
-
13376
-		bp.MedfeeSumamt = ms
13377
-		bp.AcctPay = ap
13378
-		bp.FundPaySumamt = fp
13406
+		var bps []*models.BusinessParamsTwo
13407
+		var bp models.BusinessParamsTwo
13408
+		medfee_sumamt_str := fmt.Sprintf("%.2f", medfee_sumamt)
13409
+		acct_pay_str := fmt.Sprintf("%.2f", acct_pay)
13410
+		fund_pay_sumamt_str := fmt.Sprintf("%.2f", fund_pay_sumamt)
13411
+
13412
+		bp.MedfeeSumamt = medfee_sumamt_str
13413
+		bp.AcctPay = acct_pay_str
13414
+		bp.FundPaySumamt = fund_pay_sumamt_str
13379
 		bp.Insutype = "390"
13415
 		bp.Insutype = "390"
13380
 		bp.StmtBegndate = start_time
13416
 		bp.StmtBegndate = start_time
13381
 		bp.ClrType = clr_type
13417
 		bp.ClrType = clr_type
13382
 		bp.SetlOptins = clr_org
13418
 		bp.SetlOptins = clr_org
13383
 		bp.StmtEnddate = end_time
13419
 		bp.StmtEnddate = end_time
13384
-		bps = append(bps, bp)
13385
-
13386
-		mst, _ := strconv.ParseFloat(medfee_sumamt_two_str, 64)
13387
-		apt, _ := strconv.ParseFloat(acct_pay_two_str, 64)
13388
-		fpt, _ := strconv.ParseFloat(fund_pay_sumamt_two_str, 64)
13389
-
13390
-		var bp2 models.BusinessParams
13391
-		bp2.MedfeeSumamt = mst
13392
-		bp2.AcctPay = apt
13393
-		bp2.FundPaySumamt = fpt
13394
-		bp2.Insutype = "310"
13395
-		bp2.StmtBegndate = start_time
13396
-		bp2.StmtEnddate = end_time
13397
-		bp2.ClrType = clr_type
13398
-		bp2.SetlOptins = clr_org
13399
-		bps = append(bps, bp2)
13420
+		bps = append(bps, &bp)
13400
 
13421
 
13401
 		data := make(map[string]interface{})
13422
 		data := make(map[string]interface{})
13402
 		data["bps"] = bps
13423
 		data["bps"] = bps

+ 5 - 2
controllers/zh/zh_his_api_controller.go View File

2495
 	department, _ := service.GetDepartMentDetail(record.Departments)
2495
 	department, _ := service.GetDepartMentDetail(record.Departments)
2496
 	strconv.FormatInt(record.PatientId, 10)
2496
 	strconv.FormatInt(record.PatientId, 10)
2497
 
2497
 
2498
-	doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, record.Doctor)
2498
+	doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.Creator)
2499
 
2499
 
2500
 	//client := &http.Client{}
2500
 	//client := &http.Client{}
2501
 	data["psn_no"] = record.PsnNo
2501
 	data["psn_no"] = record.PsnNo
2574
 							MedListCodg:      subItem.BaseDrugLib.MedicalInsuranceNumber,
2574
 							MedListCodg:      subItem.BaseDrugLib.MedicalInsuranceNumber,
2575
 							HospApprFlag:     subItem.BaseDrugLib.HospApprFlag,
2575
 							HospApprFlag:     subItem.BaseDrugLib.HospApprFlag,
2576
 							FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2576
 							FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2577
+							DoctorId:         item.Creator,
2577
 						}
2578
 						}
2578
 
2579
 
2579
 						customs = append(customs, cus)
2580
 						customs = append(customs, cus)
2596
 								MedListCodg:      subItem.HisProject.MedicalCode,
2597
 								MedListCodg:      subItem.HisProject.MedicalCode,
2597
 								HospApprFlag:     -1,
2598
 								HospApprFlag:     -1,
2598
 								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2599
 								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2600
+								DoctorId:         item.Creator,
2599
 							}
2601
 							}
2600
 							customs = append(customs, cus)
2602
 							customs = append(customs, cus)
2601
 						}
2603
 						}
2611
 								MedListCodg:      subItem.GoodInfo.MedicalInsuranceNumber,
2613
 								MedListCodg:      subItem.GoodInfo.MedicalInsuranceNumber,
2612
 								HospApprFlag:     -1,
2614
 								HospApprFlag:     -1,
2613
 								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2615
 								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2616
+								DoctorId:         item.Creator,
2614
 							}
2617
 							}
2615
 							customs = append(customs, cus)
2618
 							customs = append(customs, cus)
2616
 						}
2619
 						}
2691
 				result_byte, _ := json.Marshal(respJSON)
2694
 				result_byte, _ := json.Marshal(respJSON)
2692
 				result = string(result_byte)
2695
 				result = string(result_byte)
2693
 			} else {
2696
 			} else {
2694
-				result, requestLog = service.ZHGdyb2301(record.PsnNo, record.Number, customs[start-1:stop], chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(department.ID, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["med_type"].(string), doctor_info.DoctorNumber, doctor_info.UserName)
2697
+				result, requestLog = service.ZHGdyb2301(record.PsnNo, record.Number, customs[start-1:stop], chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(department.ID, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["med_type"].(string), doctor_info.UserName, doctor_info.DoctorNumber)
2695
 				saveLog(result, requestLog, "2301", "上传明细")
2698
 				saveLog(result, requestLog, "2301", "上传明细")
2696
 			}
2699
 			}
2697
 
2700
 

+ 1 - 3
main.go View File

6
 
6
 
7
 	//"gdyb/models"
7
 	//"gdyb/models"
8
 	_ "gdyb/routers"
8
 	_ "gdyb/routers"
9
-	"gdyb/service"
10
-
11
 	//"github.com/qiniu/api.v7/auth/qbox"
9
 	//"github.com/qiniu/api.v7/auth/qbox"
12
 	//"github.com/qiniu/api.v7/storage"
10
 	//"github.com/qiniu/api.v7/storage"
13
 
11
 
14
 	//"github.com/qiniu/roapi.v7/auth/qbox"
12
 	//"github.com/qiniu/roapi.v7/auth/qbox"
15
 	//"github.com/qiniu/api.v7/storage"
13
 	//"github.com/qiniu/api.v7/storage"
16
 
14
 
17
-	//"gdyb/service"
15
+	"gdyb/service"
18
 	"github.com/astaxie/beego"
16
 	"github.com/astaxie/beego"
19
 	//"strconv"
17
 	//"strconv"
20
 	//"time"
18
 	//"time"

+ 19 - 0
models/his_models.go View File

1033
 	SetlId           string
1033
 	SetlId           string
1034
 }
1034
 }
1035
 
1035
 
1036
+type BusinessParamsTwo struct {
1037
+	Insutype         string
1038
+	ClrType          string
1039
+	SetlOptins       string
1040
+	MdtrtareaAdmvs   string
1041
+	StmtBegndate     string
1042
+	StmtEnddate      string
1043
+	MedfeeSumamt     string
1044
+	FundPaySumamt    string
1045
+	AcctPay          string
1046
+	FixmedinsSetlCnt int64
1047
+	FileQuryNo       string
1048
+	CashPayamt       float64
1049
+	PsnNo            string
1050
+	MdtrtId          string
1051
+	SetlId           string
1052
+}
1053
+
1036
 type Custom struct {
1054
 type Custom struct {
1037
 	DetItemFeeSumamt string
1055
 	DetItemFeeSumamt string
1038
 	Cut              string
1056
 	Cut              string
1291
 	LmtUsedFlag      int64
1309
 	LmtUsedFlag      int64
1292
 	HospApprFlag     int64
1310
 	HospApprFlag     int64
1293
 	FeeOcurTime      string
1311
 	FeeOcurTime      string
1312
+	DoctorId         int64
1294
 }
1313
 }
1295
 
1314
 
1296
 type HisPsn struct {
1315
 type HisPsn struct {

+ 5 - 2
routers/router.go View File

3
 import (
3
 import (
4
 	"gdyb/controllers/hb"
4
 	"gdyb/controllers/hb"
5
 	"gdyb/controllers/js"
5
 	"gdyb/controllers/js"
6
+	"gdyb/controllers/nm"
6
 	"gdyb/controllers/sg"
7
 	"gdyb/controllers/sg"
8
+	"gdyb/controllers/zh"
9
+
7
 	//"gdyb/controllers/sz"
10
 	//"gdyb/controllers/sz"
8
 	//"gdyb/controllers/sz"
11
 	//"gdyb/controllers/sz"
9
 	//admin_api "XT_New/controllers/admin_api_controllers"
12
 	//admin_api "XT_New/controllers/admin_api_controllers"
25
 	sg.GdybRegistRouters()
28
 	sg.GdybRegistRouters()
26
 	hb.HbybRegistRouters()
29
 	hb.HbybRegistRouters()
27
 	//sz.SZHisManagerApiRegistRouters()
30
 	//sz.SZHisManagerApiRegistRouters()
28
-	//zh.ZHHisManagerApiRegistRouters()
31
+	zh.ZHHisManagerApiRegistRouters()
29
 	js.JSybRegistRouters()
32
 	js.JSybRegistRouters()
30
-	//nm.NmybRegistRouters()
33
+	nm.NmybRegistRouters()
31
 	//coordinate.CoordinateRegistRouters()
34
 	//coordinate.CoordinateRegistRouters()
32
 
35
 
33
 }
36
 }

+ 2 - 2
service/fj_service.go View File

837
 	inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt       //基金支付总额
837
 	inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt       //基金支付总额
838
 	inputData["acct_pay"] = businessParams.AcctPay                    //个人账户支付金额
838
 	inputData["acct_pay"] = businessParams.AcctPay                    //个人账户支付金额
839
 	inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
839
 	inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
840
-	inputData["refd_setl_flag"] = 0                                   // 就诊 ID(来自2201接口返回)
840
+	inputData["refd_setl_flag"] = "0"                                 // 就诊 ID(来自2201接口返回)
841
 
841
 
842
 	input["data"] = inputData
842
 	input["data"] = inputData
843
 	inputMessage["input"] = input //交易输入
843
 	inputMessage["input"] = input //交易输入
2455
 		fmt.Println("readcard is nil")
2455
 		fmt.Println("readcard is nil")
2456
 		readCard = DllDef.MustFindProc("read_cardinfo")
2456
 		readCard = DllDef.MustFindProc("read_cardinfo")
2457
 	}
2457
 	}
2458
-	outputStr := make([]byte, 12288)
2458
+	outputStr := make([]byte, 1002288)
2459
 	errMessageStr := make([]byte, 2048)
2459
 	errMessageStr := make([]byte, 2048)
2460
 	ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&inputStr[0])), uintptr(20000), (uintptr)(unsafe.Pointer(&outputStr[0])), (uintptr)(unsafe.Pointer(&errMessageStr[0])))
2460
 	ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&inputStr[0])), uintptr(20000), (uintptr)(unsafe.Pointer(&outputStr[0])), (uintptr)(unsafe.Pointer(&errMessageStr[0])))
2461
 
2461
 

+ 5 - 1
service/gdyb_service.go View File

1291
 }
1291
 }
1292
 
1292
 
1293
 //  门诊结算
1293
 //  门诊结算
1294
-func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string) (string, string) {
1294
+func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, token string) (string, string) {
1295
 	// 生成签名
1295
 	// 生成签名
1296
 	nonce := GetRandomString(32)
1296
 	nonce := GetRandomString(32)
1297
 	timestamp := time.Now().Unix()
1297
 	timestamp := time.Now().Unix()
1310
 		if id_card_type == 1 {
1310
 		if id_card_type == 1 {
1311
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
1311
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
1312
 			inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
1312
 			inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
1313
+		} else if id_card_type == 4 {
1314
+			inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
1315
+			inputData["mdtrt_cert_no"] = token  // 就诊凭证编号
1313
 		} else {
1316
 		} else {
1314
 			inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
1317
 			inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
1315
 			inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
1318
 			inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
1319
+
1316
 		}
1320
 		}
1317
 	}
1321
 	}
1318
 	if med_type == "1111" || med_type == "1112" {
1322
 	if med_type == "1111" || med_type == "1112" {

+ 6 - 6
service/hbyb_service.go View File

875
 	return str
875
 	return str
876
 }
876
 }
877
 
877
 
878
-func Hbyb3202a(baseParams models.BaseParams, businessParams []models.BusinessParams) string {
878
+func Hbyb3202a(baseParams models.BaseParams, businessParams []*models.BusinessParamsTwo) string {
879
 
879
 
880
 	fmt.Println(baseParams)
880
 	fmt.Println(baseParams)
881
 	fmt.Println(businessParams)
881
 	fmt.Println(businessParams)
886
 	// 生成输入报文
886
 	// 生成输入报文
887
 	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
887
 	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
888
 	input := make(map[string]interface{})
888
 	input := make(map[string]interface{})
889
-	inputData := make(map[string]interface{})
890
 	//inputDatas := []make(map[string]interface{})
889
 	//inputDatas := []make(map[string]interface{})
891
 	inputDatas := make([]map[string]interface{}, 0)
890
 	inputDatas := make([]map[string]interface{}, 0)
892
 
891
 
893
 	inputMessage["infno"] = "3202a" // 交易编码
892
 	inputMessage["infno"] = "3202a" // 交易编码
894
 	for _, item := range businessParams {
893
 	for _, item := range businessParams {
895
-		inputData["insutype"] = item.Insutype             // 险种
896
-		inputData["clr_type"] = item.ClrType              // 就诊 ID(来自2201接口返回)
897
-		inputData["setl_optins"] = item.SetlOptins        // 结算经办机构
894
+		inputData := make(map[string]interface{})
895
+		inputData["insutype"] = ""                        // 险种
896
+		inputData["clr_type"] = ""                        // 就诊 ID(来自2201接口返回)
897
+		inputData["setl_optins"] = ""                     // 结算经办机构
898
 		inputData["stmt_begndate"] = item.StmtBegndate    // 对帐开始时间
898
 		inputData["stmt_begndate"] = item.StmtBegndate    // 对帐开始时间
899
 		inputData["stmt_enddate"] = item.StmtEnddate      //对帐结束时间
899
 		inputData["stmt_enddate"] = item.StmtEnddate      //对帐结束时间
900
 		inputData["fund_pay_sumamt"] = item.FundPaySumamt //基金支付总额
900
 		inputData["fund_pay_sumamt"] = item.FundPaySumamt //基金支付总额
901
 		inputData["acct_pay"] = item.AcctPay              //个人账户支付金额
901
 		inputData["acct_pay"] = item.AcctPay              //个人账户支付金额
902
-		inputData["med_type"] = "14"                      //个人账户支付金额
902
+		inputData["med_type"] = ""                        //个人账户支付金额
903
 		inputDatas = append(inputDatas, inputData)
903
 		inputDatas = append(inputDatas, inputData)
904
 	}
904
 	}
905
 	input["clrdata"] = inputDatas
905
 	input["clrdata"] = inputDatas

+ 16 - 3
service/his_service.go View File

991
 	return
991
 	return
992
 }
992
 }
993
 
993
 
994
-func GetOrderByTimeFour(start_time int64, end_time int64, org_id int64, insutype string, clr_org string, clr_type string) (orders []*models.HisOrder, err error) {
994
+func GetOrderByTimeFive(start_time int64, end_time int64, org_id int64, insutype string, clr_org string, clr_type string) (orders []*models.HisOrder, err error) {
995
 	db := readDb.Model(&models.HisOrder{})
995
 	db := readDb.Model(&models.HisOrder{})
996
-	db = db.Where("user_org_id = ? AND status = 1 AND order_status = 2 AND is_medicine_insurance = 1 AND UNIX_TIMESTAMP(setl_time)  <= ? AND UNIX_TIMESTAMP(setl_time) >= ? AND insutype = ?", org_id, end_time, start_time, insutype)
996
+	db = db.Where("user_org_id = ?  AND order_status = 3 AND is_medicine_insurance = 1 AND UNIX_TIMESTAMP(setl_time)  <= ? AND UNIX_TIMESTAMP(setl_time) >= ? AND insutype = ?", org_id, end_time, start_time, insutype)
997
+	if len(clr_org) > 0 {
998
+		db = db.Where("clr_optins = ?", clr_org)
999
+	}
1000
+	if len(clr_type) > 0 {
1001
+		db = db.Where("clr_type = ?", clr_type)
1002
+	}
1003
+	err = db.Find(&orders).Error
1004
+	return
1005
+}
1006
+
1007
+func GetOrderByTimeFour(start_time int64, end_time int64, org_id int64) (orders []*models.HisOrder, err error) {
1008
+	db := readDb.Model(&models.HisOrder{})
1009
+	db = db.Where("user_org_id = ? AND status = 1 AND order_status = 2 AND is_medicine_insurance = 1 AND UNIX_TIMESTAMP(setl_time)  <= ? AND UNIX_TIMESTAMP(setl_time) >= ? ", org_id, end_time, start_time)
997
 	err = db.Find(&orders).Error
1010
 	err = db.Find(&orders).Error
998
 	return
1011
 	return
999
 }
1012
 }
1399
 }
1412
 }
1400
 
1413
 
1401
 func GetAllHisOrder(org_id int64) (his []*models.HisOrder, err error) {
1414
 func GetAllHisOrder(org_id int64) (his []*models.HisOrder, err error) {
1402
-	err = readDb.Model(&models.HisOrder{}).Where("user_org_id = ?  AND status = 1  AND  order_status = 2 AND setl_id <> '' AND  fa_piao_code <> '' AND med_type = '14' AND setl_time >= '2022-07-30 00:00:00' AND setl_time <= '2022-07-31 23:59:59'", org_id).Order("setl_time asc").Find(&his).Error
1415
+	err = readDb.Model(&models.HisOrder{}).Where("user_org_id = ?  AND status = 1  AND  order_status = 2 AND setl_id <> ''  AND med_type = '14' AND setl_time >= '2022-05-01 00:00:00' AND setl_time <= '2022-06-01 23:59:59'", org_id).Order("setl_time asc").Find(&his).Error
1403
 	return
1416
 	return
1404
 }
1417
 }
1405
 func GetAllHisOrderErr(org_id int64, stage int64) (his []*models.HisOrderError, err error) {
1418
 func GetAllHisOrderErr(org_id int64, stage int64) (his []*models.HisOrderError, err error) {

+ 19 - 16
service/zh_his_service.go View File

38
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
38
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
39
 			inputData["card_sn"] = card_sn      // 卡识别码
39
 			inputData["card_sn"] = card_sn      // 卡识别码
40
 			inputData["certno"] = certNo        // 证件号码
40
 			inputData["certno"] = certNo        // 证件号码
41
-			inputData["psn_cert_type"] = "1"    // 人员证件类型
41
+			inputData["psn_cert_type"] = "01"   // 人员证件类型
42
 
42
 
43
 		} else {
43
 		} else {
44
 			inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
44
 			inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
45
 			inputData["card_sn"] = ""           // 卡识别码
45
 			inputData["card_sn"] = ""           // 卡识别码
46
 			inputData["certno"] = certNo        // 证件号码
46
 			inputData["certno"] = certNo        // 证件号码
47
-			inputData["psn_cert_type"] = "1"    // 人员证件类型
47
+			inputData["psn_cert_type"] = "01"   // 人员证件类型
48
 		}
48
 		}
49
 	}
49
 	}
50
 
50
 
575
 
575
 
576
 	//chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10)
576
 	//chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10)
577
 	for _, item := range customs {
577
 	for _, item := range customs {
578
+		org_id, _ := beego.AppConfig.Int64("org_id")
579
+		doctor_info, _ := GetAdminUserInfoByID(org_id, item.DoctorId)
580
+
578
 		feedetailInfo := make(map[string]interface{})
581
 		feedetailInfo := make(map[string]interface{})
579
 		feedetailInfo["feedetl_sn"] = item.FeedetlSn
582
 		feedetailInfo["feedetl_sn"] = item.FeedetlSn
580
 		feedetailInfo["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
583
 		feedetailInfo["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
588
 		feedetailInfo["pric"] = item.Price                           // 单价
591
 		feedetailInfo["pric"] = item.Price                           // 单价
589
 		feedetailInfo["bilg_dept_codg"] = dept_code                  // 开单科室编码
592
 		feedetailInfo["bilg_dept_codg"] = dept_code                  // 开单科室编码
590
 		feedetailInfo["bilg_dept_name"] = dept                       // 开单科室名称
593
 		feedetailInfo["bilg_dept_name"] = dept                       // 开单科室名称
591
-		feedetailInfo["bilg_dr_codg"] = doctor_number                // 开单医生编码
592
-		feedetailInfo["bilg_dr_name"] = doctor_name
593
-		feedetailInfo["acord_dept_codg"] = dept_code    // 受单科室编码
594
-		feedetailInfo["acord_dept_name"] = dept         // 受单科室名称
595
-		feedetailInfo["orders_dr_code"] = doctor_number // 受单医生编码
596
-		feedetailInfo["orders_dr_name"] = doctor_name   // 受单医生姓名
597
-		feedetailInfo["chrg_bchno"] = chrg_bchno        // 收费批次号
598
-		feedetailInfo["dise_codg"] = ""                 // 病种编码
599
-		feedetailInfo["rxno"] = ""                      // 处方号
600
-		feedetailInfo["rx_circ_flag"] = "0"             // 外购处方标志
601
-		feedetailInfo["sin_dos_dscr"] = ""              // 单次剂量描述
602
-		feedetailInfo["used_frqu_dscr"] = ""            // 使用频次描述
603
-		feedetailInfo["prd_days"] = "0"                 // 周期天数
604
-		feedetailInfo["medc_way_dscr"] = ""             // 用药途径描述
594
+		feedetailInfo["bilg_dr_codg"] = doctor_info.DoctorNumber     // 开单医生编码
595
+		feedetailInfo["bilg_dr_name"] = doctor_info.UserName
596
+		feedetailInfo["acord_dept_codg"] = dept_code               // 受单科室编码
597
+		feedetailInfo["acord_dept_name"] = dept                    // 受单科室名称
598
+		feedetailInfo["orders_dr_code"] = doctor_info.DoctorNumber // 受单医生编码
599
+		feedetailInfo["orders_dr_name"] = doctor_info.UserName     // 受单医生姓名
600
+		feedetailInfo["chrg_bchno"] = chrg_bchno                   // 收费批次号
601
+		feedetailInfo["dise_codg"] = ""                            // 病种编码
602
+		feedetailInfo["rxno"] = ""                                 // 处方号
603
+		feedetailInfo["rx_circ_flag"] = "0"                        // 外购处方标志
604
+		feedetailInfo["sin_dos_dscr"] = ""                         // 单次剂量描述
605
+		feedetailInfo["used_frqu_dscr"] = ""                       // 使用频次描述
606
+		feedetailInfo["prd_days"] = "0"                            // 周期天数
607
+		feedetailInfo["medc_way_dscr"] = ""                        // 用药途径描述
605
 		// 开单医师姓名
608
 		// 开单医师姓名
606
 
609
 
607
 		if item.HospApprFlag != -1 {
610
 		if item.HospApprFlag != -1 {