Explorar el Código

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

csx hace 1 año
padre
commit
5266a20144

+ 1 - 1
controllers/hb/hbyb_controller.go Ver fichero

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

+ 60 - 4
controllers/js/jsyb_controller.go Ver fichero

@@ -664,7 +664,11 @@ func (c *JSybController) PostSeven() {
664 664
 	url := c.GetString("url")
665 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 672
 	saveJsLog(result, request_log, "2206", "预结算", org_name)
669 673
 	var dat map[string]interface{}
670 674
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -713,7 +717,25 @@ func (c *JSybController) PostEight() {
713 717
 	verify_number := c.GetString("verify_number")
714 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 739
 	saveJsLog(result, request_log, "2207", "结算", org_name)
718 740
 	var dat map[string]interface{}
719 741
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
@@ -1024,12 +1046,14 @@ func (c *JSybController) ReadCard() {
1024 1046
 		token := ele.Data.EcToken
1025 1047
 		fmt.Println(token)
1026 1048
 		if len(token) > 0 {
1027
-			userName := ConvertByte2String([]byte(ele.Data.UserName), GB18030)
1049
+			userName := ele.Data.UserName
1050
+			fmt.Println(userName)
1028 1051
 			userName = Remove0000(userName)
1052
+			userName = DeleteExtraSpace(userName)
1029 1053
 			fmt.Println(userName)
1030 1054
 			enc := mahonia.NewEncoder("gbk")
1031 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 1057
 			var dat map[string]interface{}
1034 1058
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
1035 1059
 				fmt.Println(dat)
@@ -1183,6 +1207,38 @@ func (c *JSybController) GetELeCertInfo(code string, operator_id string, operato
1183 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 1242
 func IntPtr(n int) uintptr {
1187 1243
 	return uintptr(n)
1188 1244
 }

+ 1 - 1
controllers/sg/gdyb_controller.go Ver fichero

@@ -341,7 +341,7 @@ func (c *GdybController) PostEight() {
341 341
 	preselfpay_amt, _ := c.GetFloat("preselfpay_amt")
342 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 345
 	var dat map[string]interface{}
346 346
 	if err := json.Unmarshal([]byte(result), &dat); err == nil {
347 347
 		fmt.Println(dat)

+ 176 - 155
controllers/sg/his_api_controller.go Ver fichero

@@ -81,7 +81,7 @@ func HisManagerApiRegistRouters() {
81 81
 	beego.Router("/90990", &HisApiController{}, "get:CheckCardPWDTwo")
82 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 86
 	beego.Router("/api/3202", &HisApiController{}, "get:Post3202")
87 87
 
@@ -2293,66 +2293,65 @@ func (c *HisApiController) ReadCard() {
2293 2293
 				return
2294 2294
 			}
2295 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 2356
 		} else if miConfig.MdtrtareaAdmvs == "350500" {
2358 2357
 			type ELeData struct {
@@ -2537,6 +2536,8 @@ func (c *HisApiController) GetSFZBaseInfo() string {
2537 2536
 func (c *HisApiController) GetEleBaseInfo() string {
2538 2537
 	DllDef := syscall.MustLoadDLL("SSCard.dll")
2539 2538
 	readCard := DllDef.MustFindProc("GetQRBase")
2539
+	fmt.Println(readCard)
2540
+
2540 2541
 	if readCard == nil {
2541 2542
 		fmt.Println("readcard is nil")
2542 2543
 		readCard = DllDef.MustFindProc("GetQRBase")
@@ -2544,6 +2545,7 @@ func (c *HisApiController) GetEleBaseInfo() string {
2544 2545
 	str := make([]byte, 1024)
2545 2546
 	str1 := make([]byte, 1024)
2546 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 2549
 	fmt.Println(string(str1))
2548 2550
 	fmt.Println(string(str))
2549 2551
 	fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
@@ -2551,7 +2553,7 @@ func (c *HisApiController) GetEleBaseInfo() string {
2551 2553
 	if ret2 != 0 {
2552 2554
 		return ""
2553 2555
 	}
2554
-	return string(str1)
2556
+	return string(str)
2555 2557
 }
2556 2558
 
2557 2559
 func (c *HisApiController) GetBasBaseInfo() string {
@@ -3261,8 +3263,8 @@ func (c *HisApiController) GetSettleListHospital() {
3261 3263
 		HiType:         order.Insutype,
3262 3264
 		Insuplc:        miConfig.InsuplcAdmdvs,
3263 3265
 		MaindiagFlag:   "1",
3264
-		BillCode:       order.FaPiaoCode,
3265
-		BillNo:         order.FaPiaoCode,
3266
+		BillCode:       order.FaPiaoNumber,
3267
+		BillNo:         order.FaPiaoNumber,
3266 3268
 		BizSn:          order.Number,
3267 3269
 		PsnSelfPay:     order.PsnPartAmt,
3268 3270
 		PsnOwnPay:      order.PsnPartAmt,
@@ -3826,8 +3828,8 @@ func (c *HisApiController) GetBatchSettleList() {
3826 3828
 			HiType:         order.Insutype,
3827 3829
 			Insuplc:        his.InsuplcAdmdvs,
3828 3830
 			MaindiagFlag:   "1",
3829
-			BillCode:       order.FaPiaoCode,
3830
-			BillNo:         order.FaPiaoNumber,
3831
+			BillCode:       order.SetlId,
3832
+			BillNo:         order.SetlId,
3831 3833
 			BizSn:          order.Number,
3832 3834
 			PsnSelfPay:     order.PsnPartAmt,
3833 3835
 			PsnOwnPay:      order.PsnPartAmt,
@@ -5844,52 +5846,70 @@ func (c *HisApiController) GetRegisterInfo() {
5844 5846
 			var result string
5845 5847
 			var requestLog string
5846 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 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 5854
 			} else {
5854 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 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 5914
 		if infocode == 0 {
5895 5915
 			his := models.VMHisPatient{
@@ -6190,7 +6210,7 @@ func (c *HisApiController) GetRegisterInfo() {
6190 6210
 				infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64)
6191 6211
 			} else {
6192 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 6214
 				saveLog(result, requestLog, "2201A", "挂号")
6195 6215
 				if miConfig.Code == "H15049901371" {
6196 6216
 
@@ -7273,9 +7293,19 @@ func (c *HisApiController) GetUploadInfo() {
7273 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 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 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,9 +7756,18 @@ func (c *HisApiController) GetUploadInfo() {
7726 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 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 7773
 				var dat map[string]interface{}
@@ -10282,6 +10321,8 @@ func (c *HisApiController) GetCheckAccount() {
10282 10321
 	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
10283 10322
 	endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
10284 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 10326
 	fixmedins_setl_cnt := int64(len(orders))
10286 10327
 	var medfee_sumamt float64
10287 10328
 	var acct_pay float64
@@ -10311,7 +10352,7 @@ func (c *HisApiController) GetCheckAccount() {
10311 10352
 				"&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
10312 10353
 				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
10313 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 10356
 				"&fixmedins_code=" + miConfig.Code +
10316 10357
 				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
10317 10358
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
@@ -10359,14 +10400,14 @@ func (c *HisApiController) GetCheckAccount() {
10359 10400
 
10360 10401
 			api := "http://172.16.13.254:9532/" + "nmyb/3201?" +
10361 10402
 				"insutype=" + insutype +
10362
-				"&clr_type=" + clr_type +
10403
+				"&clr_type=" + "21" +
10363 10404
 				"&setl_optins=" + clr_org +
10364 10405
 				"&stmt_begndate=" + start_time +
10365 10406
 				"&stm_enddate=" + end_time +
10366 10407
 				"&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
10367 10408
 				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
10368 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 10411
 				"&fixmedins_code=" + miConfig.Code +
10371 10412
 				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
10372 10413
 				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
@@ -10432,7 +10473,7 @@ func (c *HisApiController) GetCheckAccount() {
10432 10473
 				MedfeeSumamt:     medfee_sumamt,
10433 10474
 				FundPaySumamt:    fund_pay_sumamt,
10434 10475
 				AcctPay:          acct_pay,
10435
-				FixmedinsSetlCnt: fixmedins_setl_cnt,
10476
+				FixmedinsSetlCnt: fixmedins_setl_cnt + int64(len(orders_two)*2),
10436 10477
 			}
10437 10478
 			result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams)
10438 10479
 			fmt.Println(requestLog)
@@ -13128,7 +13169,7 @@ func ConvertToString(src string, srcCode string, tagCode string) string {
13128 13169
 func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string {
13129 13170
 	roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id)
13130 13171
 	miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
13131
-
13172
+	var token string
13132 13173
 	if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
13133 13174
 		var api string
13134 13175
 		if miConfig.MdtrtareaAdmvs == "320921" {
@@ -13162,7 +13203,7 @@ func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string
13162 13203
 		var status string
13163 13204
 		status = respJSON["data"].(map[string]interface{})["status"].(string)
13164 13205
 		//card_type := respJSON["data"].(map[string]interface{})["type"].(string)
13165
-		var token string
13206
+
13166 13207
 		var res ResultTwo           //1101结果
13167 13208
 		var res10265 ResultTwo10265 //1101结果
13168 13209
 		if status == "0" {          //读卡成功
@@ -13229,6 +13270,7 @@ func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string
13229 13270
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
13230 13271
 		return ""
13231 13272
 	}
13273
+	return token
13232 13274
 }
13233 13275
 
13234 13276
 func DeleteExtraSpaceTwo(s string) string {
@@ -13327,36 +13369,30 @@ func (c *HisApiController) Post3202() {
13327 13369
 	loc, _ := time.LoadLocation("Local")
13328 13370
 	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
13329 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 13375
 	//fixmedins_setl_cnt := int64(len(orders))
13334 13376
 	var medfee_sumamt float64
13335 13377
 	var acct_pay float64
13336 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 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 13397
 	//var user_name string
13362 13398
 	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
@@ -13367,36 +13403,21 @@ func (c *HisApiController) Post3202() {
13367 13403
 	//}
13368 13404
 	var res ResultSix
13369 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 13415
 		bp.Insutype = "390"
13380 13416
 		bp.StmtBegndate = start_time
13381 13417
 		bp.ClrType = clr_type
13382 13418
 		bp.SetlOptins = clr_org
13383 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 13422
 		data := make(map[string]interface{})
13402 13423
 		data["bps"] = bps

+ 5 - 2
controllers/zh/zh_his_api_controller.go Ver fichero

@@ -2495,7 +2495,7 @@ func (c *ZHHisApiController) GetUploadInfo() {
2495 2495
 	department, _ := service.GetDepartMentDetail(record.Departments)
2496 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 2500
 	//client := &http.Client{}
2501 2501
 	data["psn_no"] = record.PsnNo
@@ -2574,6 +2574,7 @@ func (c *ZHHisApiController) GetUploadInfo() {
2574 2574
 							MedListCodg:      subItem.BaseDrugLib.MedicalInsuranceNumber,
2575 2575
 							HospApprFlag:     subItem.BaseDrugLib.HospApprFlag,
2576 2576
 							FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2577
+							DoctorId:         item.Creator,
2577 2578
 						}
2578 2579
 
2579 2580
 						customs = append(customs, cus)
@@ -2596,6 +2597,7 @@ func (c *ZHHisApiController) GetUploadInfo() {
2596 2597
 								MedListCodg:      subItem.HisProject.MedicalCode,
2597 2598
 								HospApprFlag:     -1,
2598 2599
 								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2600
+								DoctorId:         item.Creator,
2599 2601
 							}
2600 2602
 							customs = append(customs, cus)
2601 2603
 						}
@@ -2611,6 +2613,7 @@ func (c *ZHHisApiController) GetUploadInfo() {
2611 2613
 								MedListCodg:      subItem.GoodInfo.MedicalInsuranceNumber,
2612 2614
 								HospApprFlag:     -1,
2613 2615
 								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
2616
+								DoctorId:         item.Creator,
2614 2617
 							}
2615 2618
 							customs = append(customs, cus)
2616 2619
 						}
@@ -2691,7 +2694,7 @@ func (c *ZHHisApiController) GetUploadInfo() {
2691 2694
 				result_byte, _ := json.Marshal(respJSON)
2692 2695
 				result = string(result_byte)
2693 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 2698
 				saveLog(result, requestLog, "2301", "上传明细")
2696 2699
 			}
2697 2700
 

+ 1 - 3
main.go Ver fichero

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

+ 19 - 0
models/his_models.go Ver fichero

@@ -1033,6 +1033,24 @@ type BusinessParams struct {
1033 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 1054
 type Custom struct {
1037 1055
 	DetItemFeeSumamt string
1038 1056
 	Cut              string
@@ -1291,6 +1309,7 @@ type NewCustom struct {
1291 1309
 	LmtUsedFlag      int64
1292 1310
 	HospApprFlag     int64
1293 1311
 	FeeOcurTime      string
1312
+	DoctorId         int64
1294 1313
 }
1295 1314
 
1296 1315
 type HisPsn struct {

+ 5 - 2
routers/router.go Ver fichero

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

+ 2 - 2
service/fj_service.go Ver fichero

@@ -837,7 +837,7 @@ func FJyb3201(baseParams models.BaseParams, businessParams models.BusinessParams
837 837
 	inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt       //基金支付总额
838 838
 	inputData["acct_pay"] = businessParams.AcctPay                    //个人账户支付金额
839 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 842
 	input["data"] = inputData
843 843
 	inputMessage["input"] = input //交易输入
@@ -2455,7 +2455,7 @@ func GetFjBusinessHandleInfo(inputStr []byte) (string, string) {
2455 2455
 		fmt.Println("readcard is nil")
2456 2456
 		readCard = DllDef.MustFindProc("read_cardinfo")
2457 2457
 	}
2458
-	outputStr := make([]byte, 12288)
2458
+	outputStr := make([]byte, 1002288)
2459 2459
 	errMessageStr := make([]byte, 2048)
2460 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 Ver fichero

@@ -1291,7 +1291,7 @@ func Gdyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
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 1296
 	nonce := GetRandomString(32)
1297 1297
 	timestamp := time.Now().Unix()
@@ -1310,9 +1310,13 @@ func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, ins
1310 1310
 		if id_card_type == 1 {
1311 1311
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
1312 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 1316
 		} else {
1314 1317
 			inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
1315 1318
 			inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
1319
+
1316 1320
 		}
1317 1321
 	}
1318 1322
 	if med_type == "1111" || med_type == "1112" {

+ 6 - 6
service/hbyb_service.go Ver fichero

@@ -875,7 +875,7 @@ func Hbyb3201(baseParams models.BaseParams, businessParams models.BusinessParams
875 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 880
 	fmt.Println(baseParams)
881 881
 	fmt.Println(businessParams)
@@ -886,20 +886,20 @@ func Hbyb3202a(baseParams models.BaseParams, businessParams []models.BusinessPar
886 886
 	// 生成输入报文
887 887
 	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
888 888
 	input := make(map[string]interface{})
889
-	inputData := make(map[string]interface{})
890 889
 	//inputDatas := []make(map[string]interface{})
891 890
 	inputDatas := make([]map[string]interface{}, 0)
892 891
 
893 892
 	inputMessage["infno"] = "3202a" // 交易编码
894 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 898
 		inputData["stmt_begndate"] = item.StmtBegndate    // 对帐开始时间
899 899
 		inputData["stmt_enddate"] = item.StmtEnddate      //对帐结束时间
900 900
 		inputData["fund_pay_sumamt"] = item.FundPaySumamt //基金支付总额
901 901
 		inputData["acct_pay"] = item.AcctPay              //个人账户支付金额
902
-		inputData["med_type"] = "14"                      //个人账户支付金额
902
+		inputData["med_type"] = ""                        //个人账户支付金额
903 903
 		inputDatas = append(inputDatas, inputData)
904 904
 	}
905 905
 	input["clrdata"] = inputDatas

+ 16 - 3
service/his_service.go Ver fichero

@@ -991,9 +991,22 @@ func GetOrderByTime(start_time int64, end_time int64, org_id int64, insutype str
991 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 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 1010
 	err = db.Find(&orders).Error
998 1011
 	return
999 1012
 }
@@ -1399,7 +1412,7 @@ func GetPsnByPatientId(patient_id int64) (psn models.HisPsn, err error) {
1399 1412
 }
1400 1413
 
1401 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 1416
 	return
1404 1417
 }
1405 1418
 func GetAllHisOrderErr(org_id int64, stage int64) (his []*models.HisOrderError, err error) {

+ 19 - 16
service/zh_his_service.go Ver fichero

@@ -38,13 +38,13 @@ func ZHGdyb1101(certNo string, org_name string, doctor string, fixmedins_code st
38 38
 			inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
39 39
 			inputData["card_sn"] = card_sn      // 卡识别码
40 40
 			inputData["certno"] = certNo        // 证件号码
41
-			inputData["psn_cert_type"] = "1"    // 人员证件类型
41
+			inputData["psn_cert_type"] = "01"   // 人员证件类型
42 42
 
43 43
 		} else {
44 44
 			inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
45 45
 			inputData["card_sn"] = ""           // 卡识别码
46 46
 			inputData["certno"] = certNo        // 证件号码
47
-			inputData["psn_cert_type"] = "1"    // 人员证件类型
47
+			inputData["psn_cert_type"] = "01"   // 人员证件类型
48 48
 		}
49 49
 	}
50 50
 
@@ -575,6 +575,9 @@ func ZHGdyb2301(psnNo string, mdtrtId string, hisPrescription []*models.NewCusto
575 575
 
576 576
 	//chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10)
577 577
 	for _, item := range customs {
578
+		org_id, _ := beego.AppConfig.Int64("org_id")
579
+		doctor_info, _ := GetAdminUserInfoByID(org_id, item.DoctorId)
580
+
578 581
 		feedetailInfo := make(map[string]interface{})
579 582
 		feedetailInfo["feedetl_sn"] = item.FeedetlSn
580 583
 		feedetailInfo["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
@@ -588,20 +591,20 @@ func ZHGdyb2301(psnNo string, mdtrtId string, hisPrescription []*models.NewCusto
588 591
 		feedetailInfo["pric"] = item.Price                           // 单价
589 592
 		feedetailInfo["bilg_dept_codg"] = dept_code                  // 开单科室编码
590 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 610
 		if item.HospApprFlag != -1 {