Browse Source

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

csx 1 year ago
parent
commit
213e824704
6 changed files with 206 additions and 10 deletions
  1. 1 1
      conf/app.conf
  2. 44 1
      controllers/hb/hbyb_controller.go
  3. 101 0
      controllers/sg/his_api_controller.go
  4. 10 8
      main.go
  5. 43 0
      service/hbyb_service.go
  6. 7 0
      service/his_service.go

+ 1 - 1
conf/app.conf View File

@@ -45,7 +45,7 @@ appsecret="61ee2e6268497d5aa9de0b0187c39aea"
45 45
 
46 46
 
47 47
 [prod]
48
-org_id = 10217
48
+org_id = 10088
49 49
 mobile_token_expiration_second = 86400
50 50
 httpdomain = https://api.xt.kuyicloud.com
51 51
 sso_domain = https://sso.kuyicloud.com

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

@@ -27,10 +27,53 @@ func HbybRegistRouters() {
27 27
 	beego.Router("/hbyb/2208", &HBybController{}, "get:PostNine")
28 28
 	beego.Router("/hbyb/5203", &HBybController{}, "get:PostTen")
29 29
 	beego.Router("/hbyb/2001", &HBybController{}, "get:Post2001")
30
-
30
+	beego.Router("/hbyb/3202", &HBybController{}, "get:Post3202a")
31 31
 	beego.Router("/hbyb/4101", &HBybController{}, "post:Post4101")
32 32
 
33 33
 }
34
+func (c *HBybController) Post3202a() {
35
+	insutype := c.GetString("insutype")
36
+	clrType := c.GetString("clr_type")
37
+	setlOptins := c.GetString("setl_optins")
38
+	stmtBegndate := c.GetString("stmt_begndate")
39
+	stmtEnddate := c.GetString("stm_enddate")
40
+	fundPaySumamt, _ := c.GetFloat("fund_pay_sumamt", 0)
41
+	acctPay, _ := c.GetFloat("acct_pay", 0)
42
+	fixmedins_code := c.GetString("fixmedins_code")
43
+	insuplc_admdvs := c.GetString("insuplc_admdvs")
44
+	mdtrtarea_admvs := c.GetString("mdtrtarea_admvs")
45
+	secret_key := c.GetString("secret_key")
46
+	org_name := c.GetString("org_name")
47
+	doctor := c.GetString("doctor")
48
+
49
+	var baseParams models.BaseParams
50
+	baseParams.InsuplcAdmdvs = insuplc_admdvs
51
+	baseParams.MdtrtareaAdmvs = mdtrtarea_admvs
52
+	baseParams.SecretKey = secret_key
53
+	baseParams.OrgName = org_name
54
+	baseParams.Doctor = doctor
55
+	baseParams.FixmedinsCode = fixmedins_code
56
+	businessParams := models.BusinessParams{
57
+		Insutype:      insutype,
58
+		ClrType:       clrType,
59
+		SetlOptins:    setlOptins,
60
+		StmtBegndate:  stmtBegndate,
61
+		StmtEnddate:   stmtEnddate,
62
+		FundPaySumamt: fundPaySumamt,
63
+		AcctPay:       acctPay,
64
+	}
65
+	result := service.Hbyb3202a(baseParams, businessParams)
66
+	var dat map[string]interface{}
67
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
68
+		fmt.Println(dat)
69
+	} else {
70
+		fmt.Println(err)
71
+	}
72
+	c.ServeSuccessJSON(map[string]interface{}{
73
+		"pre": dat,
74
+	})
75
+}
76
+
34 77
 func (c *HBybController) Post4101() {
35 78
 	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
36 79
 	var respJSON map[string]interface{}

+ 101 - 0
controllers/sg/his_api_controller.go View File

@@ -83,6 +83,8 @@ func HisManagerApiRegistRouters() {
83 83
 
84 84
 	beego.Router("/api/readelecard", &HisApiController{}, "get:ReadEleCard")
85 85
 
86
+	beego.Router("/api/3202", &HisApiController{}, "get:Post3202")
87
+
86 88
 }
87 89
 
88 90
 type Result3101 struct {
@@ -13053,3 +13055,102 @@ func DeleteExtraSpace(s string) string {
13053 13055
 	}
13054 13056
 	return string(s2)
13055 13057
 }
13058
+
13059
+//对账
13060
+func (c *HisApiController) Post3202() {
13061
+	start_time := c.GetString("start_time")
13062
+	end_time := c.GetString("end_time")
13063
+	insutype := c.GetString("insutype")
13064
+	clr_type := c.GetString("clr_type")
13065
+	clr_org := c.GetString("clr_optins")
13066
+
13067
+	admin_user_id, _ := c.GetInt64("admin_user_id")
13068
+
13069
+	adminUser := c.GetAdminUserInfo()
13070
+	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
13071
+	config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
13072
+	if len(clr_org) == 0 {
13073
+		clr_org = miConfig.MdtrtareaAdmvs
13074
+	}
13075
+	timeLayout := "2006-01-02"
13076
+	loc, _ := time.LoadLocation("Local")
13077
+	startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
13078
+	endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
13079
+	orders, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type)
13080
+	fixmedins_setl_cnt := int64(len(orders))
13081
+	var medfee_sumamt float64
13082
+	var acct_pay float64
13083
+	var fund_pay_sumamt float64
13084
+	for _, item := range orders {
13085
+		medfee_sumamt = medfee_sumamt + item.MedfeeSumamt
13086
+		acct_pay = acct_pay + item.AcctPay
13087
+		fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt
13088
+	}
13089
+	var user_name string
13090
+	role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
13091
+	if role.ID == 0 {
13092
+		user_name = "xxx"
13093
+	} else {
13094
+		user_name = role.UserName
13095
+	}
13096
+	var res ResultSix
13097
+	if config.IsOpen == 1 {
13098
+		if miConfig.MdtrtareaAdmvs == "421300" {
13099
+			api := "http://192.168.124.4:9532/" + "hbyb/3202?" +
13100
+				"insutype=" + insutype +
13101
+				"&clr_type=" + clr_type +
13102
+				"&setl_optins=" + clr_org +
13103
+				"&stmt_begndate=" + start_time +
13104
+				"&stm_enddate=" + end_time +
13105
+				"&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
13106
+				"&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
13107
+				"&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) +
13108
+				"&fixmedins_code=" + miConfig.Code +
13109
+				"&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
13110
+				"&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
13111
+				"&secret_key=" + miConfig.SecretKey +
13112
+				"&org_name=" + miConfig.OrgName +
13113
+				"&doctor=" + user_name
13114
+			resp, requestErr := http.Get(api)
13115
+			if requestErr != nil {
13116
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13117
+				return
13118
+			}
13119
+			body, ioErr := ioutil.ReadAll(resp.Body)
13120
+			if ioErr != nil {
13121
+				utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13122
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13123
+				return
13124
+			}
13125
+			var respJSON map[string]interface{}
13126
+			if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
13127
+				utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13128
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13129
+				return
13130
+			}
13131
+
13132
+			respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
13133
+			result, _ := json.Marshal(respJSON)
13134
+			fmt.Println("log")
13135
+			fmt.Println(string(result))
13136
+			if err := json.Unmarshal([]byte(result), &res); err != nil {
13137
+				utils.ErrorLog("解析失败:%v", err)
13138
+				c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13139
+				return
13140
+			}
13141
+
13142
+		}
13143
+
13144
+		if res.Infcode == 0 {
13145
+			c.ServeSuccessJSON(map[string]interface{}{
13146
+				"msg": "发起成功",
13147
+			})
13148
+		} else {
13149
+			c.ServeSuccessJSON(map[string]interface{}{
13150
+				"code": -10,
13151
+				"msg":  res.ErrMsg,
13152
+			})
13153
+
13154
+		}
13155
+	}
13156
+}

+ 10 - 8
main.go View File

@@ -2,6 +2,8 @@ package main
2 2
 
3 3
 import (
4 4
 	"context"
5
+	"gdyb/service"
6
+
5 7
 	//"gdyb/service"
6 8
 
7 9
 	//"context"
@@ -31,14 +33,14 @@ import (
31 33
 )
32 34
 
33 35
 func init() {
34
-	//service.ConnectDB()
35
-	//org_id, _ := beego.AppConfig.Int64("org_id")
36
-	//miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
37
-	//CreateLog(miConfig)
38
-	//UploadLog(miConfig)
39
-	//if org_id == 10191 {
40
-	//	service.GetFjAuthorizationInfo(miConfig.Code)
41
-	//}
36
+	service.ConnectDB()
37
+	org_id, _ := beego.AppConfig.Int64("org_id")
38
+	miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
39
+	CreateLog(miConfig)
40
+	UploadLog(miConfig)
41
+	if org_id == 10191 {
42
+		service.GetFjAuthorizationInfo(miConfig.Code)
43
+	}
42 44
 }
43 45
 func main() {
44 46
 	beego.Run()

+ 43 - 0
service/hbyb_service.go View File

@@ -875,7 +875,50 @@ 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 {
879
+	fmt.Println("11222333-----")
880
+
881
+	fmt.Println(baseParams)
882
+	fmt.Println(businessParams)
883
+	// 生成签名
884
+	nonce := GetRandomString(32)
885
+	timestamp := time.Now().Unix()
886
+
887
+	// 生成输入报文
888
+	inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
889
+	input := make(map[string]interface{})
890
+	inputData := make(map[string]interface{})
891
+	inputMessage["infno"] = "3202a"                             // 交易编码
892
+	inputData["insutype"] = businessParams.Insutype             // 险种
893
+	inputData["clr_type"] = businessParams.ClrType              // 就诊 ID(来自2201接口返回)
894
+	inputData["setl_optins"] = baseParams.InsuplcAdmdvs         // 结算经办机构
895
+	inputData["stmt_begndate"] = businessParams.StmtBegndate    // 对帐开始时间
896
+	inputData["stmt_enddate"] = businessParams.StmtEnddate      //对帐结束时间
897
+	inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt //基金支付总额
898
+	inputData["acct_pay"] = businessParams.AcctPay              //个人账户支付金额
899
+
900
+	input["data"] = inputData
901
+	inputMessage["input"] = input //交易输入
902
+
903
+	bytesData, err := json.Marshal(inputMessage)
904
+	fmt.Println(string(bytesData))
905
+	if err != nil {
906
+		fmt.Println(err.Error())
907
+		return err.Error()
908
+	}
909
+	var json2 string
910
+	cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "3202a", string(bytesData), json2)
911
+	out, err := cmd.Output()
912
+	if err != nil {
913
+		fmt.Println("error:", err.Error())
914
+	}
915
+	fmt.Println(string(out))
916
+	return ConvertToString(string(out), "gbk", "utf-8")
917
+
918
+}
919
+
878 920
 //文件上传
921
+
879 922
 //文件上传
880 923
 func Hbyb9101(baseParams models.BaseParams, file_name string, file_byte []byte) string {
881 924
 

+ 7 - 0
service/his_service.go View File

@@ -991,6 +991,13 @@ 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) {
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)
997
+	err = db.Find(&orders).Error
998
+	return
999
+}
1000
+
994 1001
 func GetOrderByTimeThree(start_time int64, end_time int64, org_id int64, insutype string, clr_type string) (orders []*models.HisOrder, err error) {
995 1002
 	err = readDb.Model(&models.HisOrder{}).Where("user_org_id = ? AND status = 1  AND is_medicine_insurance = 1 AND UNIX_TIMESTAMP(setl_time) <= ? AND UNIX_TIMESTAMP(setl_time) >= ? AND insutype = ?", org_id, end_time, start_time, insutype).Find(&orders).Error
996 1003
 	return