Browse Source

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

csx 4 years ago
parent
commit
8ea47e8eae
1 changed files with 123 additions and 4 deletions
  1. 123 4
      controllers/sz/sz_his_api_controller.go

+ 123 - 4
controllers/sz/sz_his_api_controller.go View File

@@ -2746,6 +2746,17 @@ func (c *SZHisApiController) Refund() {
2746 2746
 	//
2747 2747
 	//verifyCode := "000000|9972fca7ba9471c7dbe08324b2e31f70"
2748 2748
 	config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
2749
+	order_infos, _ := service.GetHisOrderInfoByNumber(order.Number)
2750
+	var customs []*models.CustomDetail
2751
+
2752
+	for _, item := range order_infos {
2753
+		cus := &models.CustomDetail{
2754
+			PrescriptionNumber: item.OrderNumber,
2755
+			ChargeSerialNumber: item.FeedetlSn,
2756
+		}
2757
+		customs = append(customs, cus)
2758
+	}
2759
+
2749 2760
 	if config.IsOpen == 1 { //对接了医保,走医保流程
2750 2761
 
2751 2762
 		result := service.SzybJY002(doctor_name, doctor_code, miConfig.Code, order.OrgSetlNumber, order.MzNumber, verifyCode, number, version_code)
@@ -2767,9 +2778,74 @@ func (c *SZHisApiController) Refund() {
2767 2778
 		if res.Transreturncode == "00000000" {
2768 2779
 			service.UpdataOrderlog(order_id, adminUser.CurrentOrgId, result)
2769 2780
 			service.UpdataOrderStatusSZ(order_id, order.Number, adminUser.CurrentOrgId, his.MzNumber, his.Number)
2770
-			c.ServeSuccessJSON(map[string]interface{}{
2771
-				"msg": "退费成功",
2772
-			})
2781
+
2782
+			verifyCode, version_code := ReadCardGetCode("FY002" + "|" + order.OrgSetlNumber + "|" + miConfig.Code)
2783
+			var pagesize int = 50
2784
+			var start int = 1
2785
+			var stop int
2786
+			var pagecount int
2787
+			var curpage int
2788
+			var isSuccess bool = true
2789
+			var ress []*ResultFive
2790
+
2791
+			//总页数,向上取整,注意除之前要先转换类型为float64
2792
+			pagecount = int(math.Ceil(float64(len(customs)) / float64(pagesize)))
2793
+
2794
+			for curpage = 1; curpage <= pagecount; curpage++ {
2795
+				if curpage == 1 {
2796
+					start = 1
2797
+				} else {
2798
+					start = (curpage-1)*pagesize + 1
2799
+				}
2800
+				stop = curpage * pagesize
2801
+				if stop > len(customs) {
2802
+					stop = len(customs)
2803
+				}
2804
+
2805
+				result := service.SzybFY002(doctor_name, doctor_code, miConfig.Code, customs[start-1:stop], verifyCode, order.OrgSetlNumber, his.Number, version_code)
2806
+
2807
+				var dat map[string]interface{}
2808
+				if err := json.Unmarshal([]byte(result), &dat); err == nil {
2809
+					fmt.Println(dat)
2810
+				} else {
2811
+					fmt.Println(err)
2812
+				}
2813
+				userJSONBytes, _ := json.Marshal(dat)
2814
+				var res ResultFive
2815
+				if err := json.Unmarshal(userJSONBytes, &res); err != nil {
2816
+					utils.ErrorLog("解析失败:%v", err)
2817
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
2818
+					return
2819
+				}
2820
+				if res.Transreturncode == "00000000" {
2821
+					ress = append(ress, &res)
2822
+				} else {
2823
+					isSuccess = false
2824
+					errlog := &models.HisOrderError{
2825
+						UserOrgId:  adminUser.CurrentOrgId,
2826
+						Ctime:      time.Now().Unix(),
2827
+						Mtime:      time.Now().Unix(),
2828
+						ErrMsg:     res.Transreturnmessage,
2829
+						Status:     1,
2830
+						PatientId:  patient_id,
2831
+						RecordTime: recordDateTime,
2832
+						Stage:      11,
2833
+					}
2834
+					service.CreateErrMsgLog(errlog)
2835
+
2836
+					c.ServeSuccessJSON(map[string]interface{}{
2837
+						"faild_code": -10,
2838
+						"msg":        res.Transreturnmessage,
2839
+					})
2840
+					return
2841
+				}
2842
+			}
2843
+			if isSuccess == true {
2844
+				service.UpdataOrderInfoStatus(order.ID, order.Number, adminUser.CurrentOrgId)
2845
+				c.ServeSuccessJSON(map[string]interface{}{
2846
+					"msg": "退费成功",
2847
+				})
2848
+			}
2773 2849
 		} else {
2774 2850
 			c.ServeSuccessJSON(map[string]interface{}{
2775 2851
 				"failed_code": -10,
@@ -2877,9 +2953,50 @@ func (c *SZHisApiController) GetSettleAccounts() {
2877 2953
 
2878 2954
 	patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, patient_id)
2879 2955
 
2880
-	patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
2956
+	patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, order.SettleAccountsDate)
2881 2957
 	adminRole_two, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
2882 2958
 
2959
+	his, _ := service.GetHisPatientInfo(adminUser.CurrentOrgId, patient_id, order.SettleAccountsDate)
2960
+	yiliao_leibie := ""
2961
+
2962
+	switch his.MedicalTreatmentType {
2963
+	case 11:
2964
+		yiliao_leibie = "普通门诊"
2965
+		break
2966
+	case 12:
2967
+		yiliao_leibie = "家庭通道"
2968
+		break
2969
+	case 13:
2970
+		yiliao_leibie = "门诊大病"
2971
+		break
2972
+	case 14:
2973
+		yiliao_leibie = "重疾特药"
2974
+		break
2975
+	case 15:
2976
+		yiliao_leibie = "门诊慢病"
2977
+		break
2978
+	case 16:
2979
+		yiliao_leibie = "门诊特检"
2980
+		break
2981
+	case 17:
2982
+		yiliao_leibie = "健康体检"
2983
+		break
2984
+	case 18:
2985
+		yiliao_leibie = "预防接种"
2986
+		break
2987
+	case 19:
2988
+		yiliao_leibie = "门诊输血"
2989
+		break
2990
+	case 91:
2991
+		yiliao_leibie = "新冠肺炎门诊"
2992
+		break
2993
+
2994
+	}
2995
+
2996
+	//departments, _ := service.Get(patientPrescription.Departments)
2997
+
2998
+	departments, _ := service.GetDepartMentDetail(patientPrescription.Departments)
2999
+
2883 3000
 	if order.ID == 0 {
2884 3001
 		order, _ = service.GetHisOrderThree(recordDateTime, patient_id, adminUser.CurrentOrgId)
2885 3002
 
@@ -2936,6 +3053,8 @@ func (c *SZHisApiController) GetSettleAccounts() {
2936 3053
 				"doctor_name":    doctor_name,
2937 3054
 				"health_card_no": order.PsnNo,
2938 3055
 				"order_number":   order.Number,
3056
+				"department":     departments.Name,
3057
+				"yiliao_leibie":  yiliao_leibie,
2939 3058
 			})
2940 3059
 		} else {
2941 3060
 			c.ServeSuccessJSON(map[string]interface{}{