Sfoglia il codice sorgente

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

csx 1 anno fa
parent
commit
c48ee5df5e

+ 1 - 1
conf/app.conf Vedi File

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

+ 232 - 2
controllers/js/jsyb_controller.go Vedi File

@@ -50,10 +50,237 @@ func JSybRegistRouters() {
50 50
 	beego.Router("/jsyb/4101", &JSybController{}, "post:Get4101")
51 51
 	beego.Router("/jsyb/readcard", &JSybController{}, "get:ReadCard")
52 52
 
53
-	beego.Router("/jsyb/3501", &JSybController{}, "get:Get3501")
53
+	beego.Router("/jsyb/3501", &JSybController{}, "post:Get3501")
54
+	beego.Router("/jsyb/3502", &JSybController{}, "post:Get3502")
55
+	beego.Router("/jsyb/3503", &JSybController{}, "post:Get3503")
56
+	beego.Router("/jsyb/3504", &JSybController{}, "post:Get3504")
57
+	beego.Router("/jsyb/3505", &JSybController{}, "post:Get3505")
58
+	beego.Router("/jsyb/3506", &JSybController{}, "post:Get3506")
59
+	beego.Router("/jsyb/3507", &JSybController{}, "post:Get3507")
54 60
 
55 61
 }
56 62
 func (c *JSybController) Get3501() {
63
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
64
+	var respJSON map[string]interface{}
65
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
66
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
67
+		return
68
+	}
69
+
70
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
71
+	var struct3501 []models.Struct3501
72
+	if err := json.Unmarshal(userJSONBytes, &struct3501); err != nil {
73
+		utils.ErrorLog("解析失败:%v", err)
74
+		return
75
+	}
76
+
77
+	result, request_log := service.Jsyb3501(struct3501[0])
78
+	saveJsLog(result, request_log, "3501", "库存盘点", struct3501[0].OrgName)
79
+	var dat2 map[string]interface{}
80
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
81
+	} else {
82
+	}
83
+	var dat map[string]interface{}
84
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
85
+	} else {
86
+
87
+	}
88
+	c.ServeSuccessJSON(map[string]interface{}{
89
+		"pre":         dat,
90
+		"request_log": dat2,
91
+	})
92
+
93
+}
94
+func (c *JSybController) Get3502() {
95
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
96
+	var respJSON map[string]interface{}
97
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
98
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
99
+		return
100
+	}
101
+
102
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
103
+	var struct3502s []models.Struct3502
104
+	if err := json.Unmarshal(userJSONBytes, &struct3502s); err != nil {
105
+		utils.ErrorLog("解析失败:%v", err)
106
+		return
107
+	}
108
+
109
+	result, request_log := service.Jsyb3502(struct3502s[0])
110
+	saveJsLog(result, request_log, "3501", "库存盘点", struct3502s[0].OrgName)
111
+	var dat2 map[string]interface{}
112
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
113
+	} else {
114
+	}
115
+	var dat map[string]interface{}
116
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
117
+	} else {
118
+
119
+	}
120
+	c.ServeSuccessJSON(map[string]interface{}{
121
+		"pre":         dat,
122
+		"request_log": dat2,
123
+	})
124
+
125
+}
126
+func (c *JSybController) Get3503() {
127
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
128
+	var respJSON map[string]interface{}
129
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
130
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
131
+		return
132
+	}
133
+
134
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
135
+	var struct3503 []models.Struct3503
136
+	if err := json.Unmarshal(userJSONBytes, &struct3503); err != nil {
137
+		utils.ErrorLog("解析失败:%v", err)
138
+		return
139
+	}
140
+
141
+	result, request_log := service.Jsyb3503(struct3503[0])
142
+	saveJsLog(result, request_log, "3501", "库存盘点", struct3503[0].OrgName)
143
+	var dat2 map[string]interface{}
144
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
145
+	} else {
146
+	}
147
+	var dat map[string]interface{}
148
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
149
+	} else {
150
+
151
+	}
152
+	c.ServeSuccessJSON(map[string]interface{}{
153
+		"pre":         dat,
154
+		"request_log": dat2,
155
+	})
156
+
157
+}
158
+func (c *JSybController) Get3504() {
159
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
160
+	var respJSON map[string]interface{}
161
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
162
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
163
+		return
164
+	}
165
+
166
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
167
+	var struct3504 []models.Struct3504
168
+	if err := json.Unmarshal(userJSONBytes, &struct3504); err != nil {
169
+		utils.ErrorLog("解析失败:%v", err)
170
+		return
171
+	}
172
+
173
+	result, request_log := service.Jsyb3504(struct3504[0])
174
+	saveJsLog(result, request_log, "3504", "库存盘点", struct3504[0].OrgName)
175
+	var dat2 map[string]interface{}
176
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
177
+	} else {
178
+	}
179
+	var dat map[string]interface{}
180
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
181
+	} else {
182
+
183
+	}
184
+	c.ServeSuccessJSON(map[string]interface{}{
185
+		"pre":         dat,
186
+		"request_log": dat2,
187
+	})
188
+
189
+}
190
+func (c *JSybController) Get3505() {
191
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
192
+	var respJSON map[string]interface{}
193
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
194
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
195
+		return
196
+	}
197
+
198
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
199
+	var struct3505 []models.Struct3505
200
+	if err := json.Unmarshal(userJSONBytes, &struct3505); err != nil {
201
+		utils.ErrorLog("解析失败:%v", err)
202
+		return
203
+	}
204
+
205
+	result, request_log := service.Jsyb3505(struct3505[0])
206
+	saveJsLog(result, request_log, "3505", "库存盘点", struct3505[0].OrgName)
207
+	var dat2 map[string]interface{}
208
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
209
+	} else {
210
+	}
211
+	var dat map[string]interface{}
212
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
213
+	} else {
214
+
215
+	}
216
+	c.ServeSuccessJSON(map[string]interface{}{
217
+		"pre":         dat,
218
+		"request_log": dat2,
219
+	})
220
+
221
+}
222
+func (c *JSybController) Get3506() {
223
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
224
+	var respJSON map[string]interface{}
225
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
226
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
227
+		return
228
+	}
229
+
230
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
231
+	var struct3506 []models.Struct3506
232
+	if err := json.Unmarshal(userJSONBytes, &struct3506); err != nil {
233
+		utils.ErrorLog("解析失败:%v", err)
234
+		return
235
+	}
236
+
237
+	result, request_log := service.Jsyb3506(struct3506[0])
238
+	saveJsLog(result, request_log, "3506", "库存盘点", struct3506[0].OrgName)
239
+	var dat2 map[string]interface{}
240
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
241
+	} else {
242
+	}
243
+	var dat map[string]interface{}
244
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
245
+	} else {
246
+
247
+	}
248
+	c.ServeSuccessJSON(map[string]interface{}{
249
+		"pre":         dat,
250
+		"request_log": dat2,
251
+	})
252
+
253
+}
254
+func (c *JSybController) Get3507() {
255
+	body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
256
+	var respJSON map[string]interface{}
257
+	if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
258
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
259
+		return
260
+	}
261
+
262
+	userJSONBytes, _ := json.Marshal(respJSON["config"])
263
+	var struct3507 []models.Struct3507
264
+	if err := json.Unmarshal(userJSONBytes, &struct3507); err != nil {
265
+		utils.ErrorLog("解析失败:%v", err)
266
+		return
267
+	}
268
+
269
+	result, request_log := service.Jsyb3507(struct3507[0])
270
+	saveJsLog(result, request_log, "3507", "库存盘点", struct3507[0].OrgName)
271
+	var dat2 map[string]interface{}
272
+	if err := json.Unmarshal([]byte(request_log), &dat2); err == nil {
273
+	} else {
274
+	}
275
+	var dat map[string]interface{}
276
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
277
+	} else {
278
+
279
+	}
280
+	c.ServeSuccessJSON(map[string]interface{}{
281
+		"pre":         dat,
282
+		"request_log": dat2,
283
+	})
57 284
 
58 285
 }
59 286
 func (c *JSybController) Get9001() {
@@ -799,7 +1026,10 @@ func (c *JSybController) ReadCard() {
799 1026
 		if len(token) > 0 {
800 1027
 			userName := ConvertByte2String([]byte(ele.Data.UserName), GB18030)
801 1028
 			userName = Remove0000(userName)
802
-			result, _ := service.Jsyb1101ForEleCert(org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, secret_key, url, ak, token, cainfo, ele.Data.IDNo, userName)
1029
+			fmt.Println(userName)
1030
+			enc := mahonia.NewEncoder("gbk")
1031
+			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))
803 1033
 			var dat map[string]interface{}
804 1034
 			if err := json.Unmarshal([]byte(result), &dat); err == nil {
805 1035
 				fmt.Println(dat)

+ 549 - 0
controllers/sg/his_api_controller.go Vedi File

@@ -85,6 +85,8 @@ func HisManagerApiRegistRouters() {
85 85
 
86 86
 	beego.Router("/api/3202", &HisApiController{}, "get:Post3202")
87 87
 
88
+	beego.Router("/api/3501", &HisApiController{}, "post:Post3501")
89
+
88 90
 }
89 91
 
90 92
 type Result3101 struct {
@@ -13273,3 +13275,550 @@ func (c *HisApiController) Post3202() {
13273 13275
 		}
13274 13276
 	}
13275 13277
 }
13278
+
13279
+func (c *HisApiController) Post3501() {
13280
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13281
+	data := make(map[string]interface{})
13282
+	var struct3501s []models.Struct3501
13283
+	var struct3501 models.Struct3501
13284
+	struct3501.OrgName = miConfig.OrgName
13285
+	struct3501.AccessKey = miConfig.AccessKey
13286
+	struct3501.RequestUrl = miConfig.Url
13287
+	struct3501.SecretKey = miConfig.SecretKey
13288
+	struct3501.ManuDate = "2022-08-17"
13289
+	struct3501.FixmedinsBchno = ""
13290
+	struct3501.ManuLotnum = ""
13291
+	struct3501.RxFlag = "0"
13292
+	struct3501.ExpyEnd = "2022-08-17"
13293
+	struct3501.Invdate = "2022-08-17"
13294
+	struct3501.InvCnt = "20.25"
13295
+	struct3501.Memo = ""
13296
+	struct3501.MedListCodg = "XB01ABD056B002020200517"
13297
+	struct3501.FixmedinsHilistId = miConfig.Code
13298
+	struct3501.FixmedinsHilistName = miConfig.OrgName
13299
+	struct3501s = append(struct3501s, struct3501)
13300
+	data["struct_3501s"] = struct3501s
13301
+	client := &http.Client{}
13302
+	bytesData, _ := json.Marshal(data)
13303
+	var req *http.Request
13304
+
13305
+	if miConfig.MdtrtareaAdmvs == "320921" {
13306
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13307
+	} else {
13308
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13309
+	}
13310
+
13311
+	resp, _ := client.Do(req)
13312
+	defer resp.Body.Close()
13313
+	body, ioErr := ioutil.ReadAll(resp.Body)
13314
+	if ioErr != nil {
13315
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13316
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13317
+		return
13318
+	}
13319
+	var respJSON map[string]interface{}
13320
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13321
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13322
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13323
+		return
13324
+	}
13325
+	var res ResultSix
13326
+	var resSix10265 ResultSix10265 //1101结果
13327
+
13328
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13329
+	result, _ := json.Marshal(respJSON)
13330
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13331
+		utils.ErrorLog("解析失败:%v", err)
13332
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13333
+		return
13334
+	}
13335
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13336
+	res.Output = resSix10265.Output
13337
+	res.ErrMsg = resSix10265.ErrMsg
13338
+	res.Cainfo = resSix10265.Cainfo
13339
+	res.WarnMsg = resSix10265.WarnMsg
13340
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13341
+	res.Infcode = infocode
13342
+
13343
+	if infocode == 0 {
13344
+		c.ServeSuccessJSON(map[string]interface{}{
13345
+			"msg": "上传成功",
13346
+		})
13347
+		return
13348
+
13349
+	} else {
13350
+		c.ServeSuccessJSON(map[string]interface{}{
13351
+			"failed_code": -10,
13352
+			"msg":         res.ErrMsg,
13353
+		})
13354
+		return
13355
+	}
13356
+}
13357
+func (c *HisApiController) Post3502() {
13358
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13359
+	data := make(map[string]interface{})
13360
+	var struct3502s []models.Struct3502
13361
+	var struct3502 models.Struct3502
13362
+	struct3502.OrgName = miConfig.OrgName
13363
+	struct3502.AccessKey = miConfig.AccessKey
13364
+	struct3502.RequestUrl = miConfig.Url
13365
+	struct3502.SecretKey = miConfig.SecretKey
13366
+	struct3502.ManuDate = "2022-08-15"
13367
+	struct3502.FixmedinsBchno = ""
13368
+	struct3502.ManuLotnum = ""
13369
+	struct3502.RxFlag = "0"
13370
+	struct3502.ExpyEnd = "2022-08-15"
13371
+	struct3502.Invdate = "2022-08-15"
13372
+	struct3502.InvCnt = "20.25"
13373
+	struct3502.Memo = ""
13374
+	struct3502.MedListCodg = "XB01ABD056B002020200517"
13375
+	struct3502.FixmedinsHilistId = miConfig.Code
13376
+	struct3502.FixmedinsHilistName = miConfig.OrgName
13377
+	struct3502s = append(struct3502s, struct3502)
13378
+	data["struct_3502s"] = struct3502s
13379
+	client := &http.Client{}
13380
+	bytesData, _ := json.Marshal(data)
13381
+	var req *http.Request
13382
+
13383
+	if miConfig.MdtrtareaAdmvs == "320921" {
13384
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13385
+	} else {
13386
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13387
+	}
13388
+
13389
+	resp, _ := client.Do(req)
13390
+	defer resp.Body.Close()
13391
+	body, ioErr := ioutil.ReadAll(resp.Body)
13392
+	if ioErr != nil {
13393
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13394
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13395
+		return
13396
+	}
13397
+	var respJSON map[string]interface{}
13398
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13399
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13400
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13401
+		return
13402
+	}
13403
+	var res ResultSix
13404
+	var resSix10265 ResultSix10265 //1101结果
13405
+
13406
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13407
+	result, _ := json.Marshal(respJSON)
13408
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13409
+		utils.ErrorLog("解析失败:%v", err)
13410
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13411
+		return
13412
+	}
13413
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13414
+	res.Output = resSix10265.Output
13415
+	res.ErrMsg = resSix10265.ErrMsg
13416
+	res.Cainfo = resSix10265.Cainfo
13417
+	res.WarnMsg = resSix10265.WarnMsg
13418
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13419
+	res.Infcode = infocode
13420
+
13421
+	if infocode == 0 {
13422
+		c.ServeSuccessJSON(map[string]interface{}{
13423
+			"msg": "上传成功",
13424
+		})
13425
+		return
13426
+
13427
+	} else {
13428
+		c.ServeSuccessJSON(map[string]interface{}{
13429
+			"failed_code": -10,
13430
+			"msg":         res.ErrMsg,
13431
+		})
13432
+		return
13433
+	}
13434
+}
13435
+func (c *HisApiController) Post3503() {
13436
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13437
+	data := make(map[string]interface{})
13438
+	var struct3501s []models.Struct3501
13439
+	var struct3501 models.Struct3501
13440
+	struct3501.OrgName = miConfig.OrgName
13441
+	struct3501.AccessKey = miConfig.AccessKey
13442
+	struct3501.RequestUrl = miConfig.Url
13443
+	struct3501.SecretKey = miConfig.SecretKey
13444
+	struct3501.ManuDate = "2022-08-15"
13445
+	struct3501.FixmedinsBchno = ""
13446
+	struct3501.ManuLotnum = ""
13447
+	struct3501.RxFlag = "0"
13448
+	struct3501.ExpyEnd = "2022-08-15"
13449
+	struct3501.Invdate = "2022-08-15"
13450
+	struct3501.InvCnt = "20.25"
13451
+	struct3501.Memo = ""
13452
+	struct3501.MedListCodg = "XB01ABD056B002020200517"
13453
+	struct3501.FixmedinsHilistId = miConfig.Code
13454
+	struct3501.FixmedinsHilistName = miConfig.OrgName
13455
+	struct3501s = append(struct3501s, struct3501)
13456
+	data["struct_3501s"] = struct3501s
13457
+	client := &http.Client{}
13458
+	bytesData, _ := json.Marshal(data)
13459
+	var req *http.Request
13460
+
13461
+	if miConfig.MdtrtareaAdmvs == "320921" {
13462
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13463
+	} else {
13464
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13465
+	}
13466
+
13467
+	resp, _ := client.Do(req)
13468
+	defer resp.Body.Close()
13469
+	body, ioErr := ioutil.ReadAll(resp.Body)
13470
+	if ioErr != nil {
13471
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13472
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13473
+		return
13474
+	}
13475
+	var respJSON map[string]interface{}
13476
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13477
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13478
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13479
+		return
13480
+	}
13481
+	var res ResultSix
13482
+	var resSix10265 ResultSix10265 //1101结果
13483
+
13484
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13485
+	result, _ := json.Marshal(respJSON)
13486
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13487
+		utils.ErrorLog("解析失败:%v", err)
13488
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13489
+		return
13490
+	}
13491
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13492
+	res.Output = resSix10265.Output
13493
+	res.ErrMsg = resSix10265.ErrMsg
13494
+	res.Cainfo = resSix10265.Cainfo
13495
+	res.WarnMsg = resSix10265.WarnMsg
13496
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13497
+	res.Infcode = infocode
13498
+
13499
+	if infocode == 0 {
13500
+		c.ServeSuccessJSON(map[string]interface{}{
13501
+			"msg": "上传成功",
13502
+		})
13503
+		return
13504
+
13505
+	} else {
13506
+		c.ServeSuccessJSON(map[string]interface{}{
13507
+			"failed_code": -10,
13508
+			"msg":         res.ErrMsg,
13509
+		})
13510
+		return
13511
+	}
13512
+}
13513
+func (c *HisApiController) Post3504() {
13514
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13515
+	data := make(map[string]interface{})
13516
+	var struct3501s []models.Struct3501
13517
+	var struct3501 models.Struct3501
13518
+	struct3501.OrgName = miConfig.OrgName
13519
+	struct3501.AccessKey = miConfig.AccessKey
13520
+	struct3501.RequestUrl = miConfig.Url
13521
+	struct3501.SecretKey = miConfig.SecretKey
13522
+	struct3501.ManuDate = "2022-08-15"
13523
+	struct3501.FixmedinsBchno = ""
13524
+	struct3501.ManuLotnum = ""
13525
+	struct3501.RxFlag = "0"
13526
+	struct3501.ExpyEnd = "2022-08-15"
13527
+	struct3501.Invdate = "2022-08-15"
13528
+	struct3501.InvCnt = "20.25"
13529
+	struct3501.Memo = ""
13530
+	struct3501.MedListCodg = "XB01ABD056B002020200517"
13531
+	struct3501.FixmedinsHilistId = miConfig.Code
13532
+	struct3501.FixmedinsHilistName = miConfig.OrgName
13533
+	struct3501s = append(struct3501s, struct3501)
13534
+	data["struct_3501s"] = struct3501s
13535
+	client := &http.Client{}
13536
+	bytesData, _ := json.Marshal(data)
13537
+	var req *http.Request
13538
+
13539
+	if miConfig.MdtrtareaAdmvs == "320921" {
13540
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13541
+	} else {
13542
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13543
+	}
13544
+
13545
+	resp, _ := client.Do(req)
13546
+	defer resp.Body.Close()
13547
+	body, ioErr := ioutil.ReadAll(resp.Body)
13548
+	if ioErr != nil {
13549
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13550
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13551
+		return
13552
+	}
13553
+	var respJSON map[string]interface{}
13554
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13555
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13556
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13557
+		return
13558
+	}
13559
+	var res ResultSix
13560
+	var resSix10265 ResultSix10265 //1101结果
13561
+
13562
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13563
+	result, _ := json.Marshal(respJSON)
13564
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13565
+		utils.ErrorLog("解析失败:%v", err)
13566
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13567
+		return
13568
+	}
13569
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13570
+	res.Output = resSix10265.Output
13571
+	res.ErrMsg = resSix10265.ErrMsg
13572
+	res.Cainfo = resSix10265.Cainfo
13573
+	res.WarnMsg = resSix10265.WarnMsg
13574
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13575
+	res.Infcode = infocode
13576
+
13577
+	if infocode == 0 {
13578
+		c.ServeSuccessJSON(map[string]interface{}{
13579
+			"msg": "上传成功",
13580
+		})
13581
+		return
13582
+
13583
+	} else {
13584
+		c.ServeSuccessJSON(map[string]interface{}{
13585
+			"failed_code": -10,
13586
+			"msg":         res.ErrMsg,
13587
+		})
13588
+		return
13589
+	}
13590
+}
13591
+func (c *HisApiController) Post3505() {
13592
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13593
+	data := make(map[string]interface{})
13594
+	var struct3501s []models.Struct3501
13595
+	var struct3501 models.Struct3501
13596
+	struct3501.OrgName = miConfig.OrgName
13597
+	struct3501.AccessKey = miConfig.AccessKey
13598
+	struct3501.RequestUrl = miConfig.Url
13599
+	struct3501.SecretKey = miConfig.SecretKey
13600
+	struct3501.ManuDate = "2022-08-15"
13601
+	struct3501.FixmedinsBchno = ""
13602
+	struct3501.ManuLotnum = ""
13603
+	struct3501.RxFlag = "0"
13604
+	struct3501.ExpyEnd = "2022-08-15"
13605
+	struct3501.Invdate = "2022-08-15"
13606
+	struct3501.InvCnt = "20.25"
13607
+	struct3501.Memo = ""
13608
+	struct3501.MedListCodg = "XB01ABD056B002020200517"
13609
+	struct3501.FixmedinsHilistId = miConfig.Code
13610
+	struct3501.FixmedinsHilistName = miConfig.OrgName
13611
+	struct3501s = append(struct3501s, struct3501)
13612
+	data["struct_3501s"] = struct3501s
13613
+	client := &http.Client{}
13614
+	bytesData, _ := json.Marshal(data)
13615
+	var req *http.Request
13616
+
13617
+	if miConfig.MdtrtareaAdmvs == "320921" {
13618
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13619
+	} else {
13620
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13621
+	}
13622
+
13623
+	resp, _ := client.Do(req)
13624
+	defer resp.Body.Close()
13625
+	body, ioErr := ioutil.ReadAll(resp.Body)
13626
+	if ioErr != nil {
13627
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13628
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13629
+		return
13630
+	}
13631
+	var respJSON map[string]interface{}
13632
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13633
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13634
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13635
+		return
13636
+	}
13637
+	var res ResultSix
13638
+	var resSix10265 ResultSix10265 //1101结果
13639
+
13640
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13641
+	result, _ := json.Marshal(respJSON)
13642
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13643
+		utils.ErrorLog("解析失败:%v", err)
13644
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13645
+		return
13646
+	}
13647
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13648
+	res.Output = resSix10265.Output
13649
+	res.ErrMsg = resSix10265.ErrMsg
13650
+	res.Cainfo = resSix10265.Cainfo
13651
+	res.WarnMsg = resSix10265.WarnMsg
13652
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13653
+	res.Infcode = infocode
13654
+
13655
+	if infocode == 0 {
13656
+		c.ServeSuccessJSON(map[string]interface{}{
13657
+			"msg": "上传成功",
13658
+		})
13659
+		return
13660
+
13661
+	} else {
13662
+		c.ServeSuccessJSON(map[string]interface{}{
13663
+			"failed_code": -10,
13664
+			"msg":         res.ErrMsg,
13665
+		})
13666
+		return
13667
+	}
13668
+}
13669
+func (c *HisApiController) Post3506() {
13670
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13671
+	data := make(map[string]interface{})
13672
+	var struct3501s []models.Struct3501
13673
+	var struct3501 models.Struct3501
13674
+	struct3501.OrgName = miConfig.OrgName
13675
+	struct3501.AccessKey = miConfig.AccessKey
13676
+	struct3501.RequestUrl = miConfig.Url
13677
+	struct3501.SecretKey = miConfig.SecretKey
13678
+	struct3501.ManuDate = "2022-08-15"
13679
+	struct3501.FixmedinsBchno = ""
13680
+	struct3501.ManuLotnum = ""
13681
+	struct3501.RxFlag = "0"
13682
+	struct3501.ExpyEnd = "2022-08-15"
13683
+	struct3501.Invdate = "2022-08-15"
13684
+	struct3501.InvCnt = "20.25"
13685
+	struct3501.Memo = ""
13686
+	struct3501.MedListCodg = "XB01ABD056B002020200517"
13687
+	struct3501.FixmedinsHilistId = miConfig.Code
13688
+	struct3501.FixmedinsHilistName = miConfig.OrgName
13689
+	struct3501s = append(struct3501s, struct3501)
13690
+	data["struct_3501s"] = struct3501s
13691
+	client := &http.Client{}
13692
+	bytesData, _ := json.Marshal(data)
13693
+	var req *http.Request
13694
+
13695
+	if miConfig.MdtrtareaAdmvs == "320921" {
13696
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13697
+	} else {
13698
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13699
+	}
13700
+
13701
+	resp, _ := client.Do(req)
13702
+	defer resp.Body.Close()
13703
+	body, ioErr := ioutil.ReadAll(resp.Body)
13704
+	if ioErr != nil {
13705
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13706
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13707
+		return
13708
+	}
13709
+	var respJSON map[string]interface{}
13710
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13711
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13712
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13713
+		return
13714
+	}
13715
+	var res ResultSix
13716
+	var resSix10265 ResultSix10265 //1101结果
13717
+
13718
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13719
+	result, _ := json.Marshal(respJSON)
13720
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13721
+		utils.ErrorLog("解析失败:%v", err)
13722
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13723
+		return
13724
+	}
13725
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13726
+	res.Output = resSix10265.Output
13727
+	res.ErrMsg = resSix10265.ErrMsg
13728
+	res.Cainfo = resSix10265.Cainfo
13729
+	res.WarnMsg = resSix10265.WarnMsg
13730
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13731
+	res.Infcode = infocode
13732
+
13733
+	if infocode == 0 {
13734
+		c.ServeSuccessJSON(map[string]interface{}{
13735
+			"msg": "上传成功",
13736
+		})
13737
+		return
13738
+
13739
+	} else {
13740
+		c.ServeSuccessJSON(map[string]interface{}{
13741
+			"failed_code": -10,
13742
+			"msg":         res.ErrMsg,
13743
+		})
13744
+		return
13745
+	}
13746
+}
13747
+func (c *HisApiController) Post3507() {
13748
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
13749
+	data := make(map[string]interface{})
13750
+	var struct3501s []models.Struct3501
13751
+	var struct3501 models.Struct3501
13752
+	struct3501.OrgName = miConfig.OrgName
13753
+	struct3501.AccessKey = miConfig.AccessKey
13754
+	struct3501.RequestUrl = miConfig.Url
13755
+	struct3501.SecretKey = miConfig.SecretKey
13756
+	struct3501.ManuDate = "2022-08-15"
13757
+	struct3501.FixmedinsBchno = ""
13758
+	struct3501.ManuLotnum = ""
13759
+	struct3501.RxFlag = "0"
13760
+	struct3501.ExpyEnd = "2022-08-15"
13761
+	struct3501.Invdate = "2022-08-15"
13762
+	struct3501.InvCnt = "20.25"
13763
+	struct3501.Memo = ""
13764
+	struct3501.MedListCodg = "XB01ABD056B002020200517"
13765
+	struct3501.FixmedinsHilistId = miConfig.Code
13766
+	struct3501.FixmedinsHilistName = miConfig.OrgName
13767
+	struct3501s = append(struct3501s, struct3501)
13768
+	data["struct_3501s"] = struct3501s
13769
+	client := &http.Client{}
13770
+	bytesData, _ := json.Marshal(data)
13771
+	var req *http.Request
13772
+
13773
+	if miConfig.MdtrtareaAdmvs == "320921" {
13774
+		req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13775
+	} else {
13776
+		req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
13777
+	}
13778
+
13779
+	resp, _ := client.Do(req)
13780
+	defer resp.Body.Close()
13781
+	body, ioErr := ioutil.ReadAll(resp.Body)
13782
+	if ioErr != nil {
13783
+		utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
13784
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13785
+		return
13786
+	}
13787
+	var respJSON map[string]interface{}
13788
+	if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
13789
+		utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
13790
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13791
+		return
13792
+	}
13793
+	var res ResultSix
13794
+	var resSix10265 ResultSix10265 //1101结果
13795
+
13796
+	respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
13797
+	result, _ := json.Marshal(respJSON)
13798
+	if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
13799
+		utils.ErrorLog("解析失败:%v", err)
13800
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
13801
+		return
13802
+	}
13803
+	res.InfRefmsgid = resSix10265.InfRefmsgid
13804
+	res.Output = resSix10265.Output
13805
+	res.ErrMsg = resSix10265.ErrMsg
13806
+	res.Cainfo = resSix10265.Cainfo
13807
+	res.WarnMsg = resSix10265.WarnMsg
13808
+	infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
13809
+	res.Infcode = infocode
13810
+
13811
+	if infocode == 0 {
13812
+		c.ServeSuccessJSON(map[string]interface{}{
13813
+			"msg": "上传成功",
13814
+		})
13815
+		return
13816
+
13817
+	} else {
13818
+		c.ServeSuccessJSON(map[string]interface{}{
13819
+			"failed_code": -10,
13820
+			"msg":         res.ErrMsg,
13821
+		})
13822
+		return
13823
+	}
13824
+}

+ 466 - 0
controllers/zh/zh_his_api_controller.go Vedi File

@@ -495,7 +495,473 @@ func ZHHisManagerApiRegistRouters() {
495 495
 	beego.Router("/zh/api/clearsettle", &ZHHisApiController{}, "get:ClearSettle")
496 496
 	beego.Router("/zh/api/readelecard", &ZHHisApiController{}, "get:ReadEleCard")
497 497
 
498
+	//beego.Router("/zh/api/readelecard", &ZHHisApiController{}, "get:ReadEleCard")
499
+	beego.Router("/zh/api/lingbao/upload", &ZHHisApiController{}, "get:UploadLingBao")
500
+	beego.Router("/zh/api/lingbao/refund", &ZHHisApiController{}, "get:RefundLingBao")
501
+	beego.Router("/zh/api/lingbao/get", &ZHHisApiController{}, "get:GetLingBao")
502
+
498 503
 }
504
+
505
+func (c *ZHHisApiController) UploadLingBao() {
506
+	id, _ := c.GetInt64("id")
507
+	record_time := c.GetString("record_time")
508
+	in_hospital_id, _ := c.GetInt64("in_hospital_id")
509
+	settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
510
+	admin_user_id, _ := c.GetInt64("admin_user_id")
511
+
512
+	timeLayout := "2006-01-02"
513
+	loc, _ := time.LoadLocation("Local")
514
+	theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
515
+	if err != nil {
516
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
517
+		return
518
+	}
519
+	recordDateTime := theTime.Unix()
520
+	adminUser := c.GetAdminUserInfo()
521
+	var prescriptions []*models.HisPrescription
522
+	data := make(map[string]interface{})
523
+	if settle_accounts_type == 1 { //日结
524
+		prescriptions, _ = service.GetZHHisPrescription(adminUser.CurrentOrgId, id, recordDateTime)
525
+
526
+	} else { //月结
527
+		start_time_str := c.GetString("start_time")
528
+		end_time_str := c.GetString("end_time")
529
+		timeLayout := "2006-01-02"
530
+		loc, _ := time.LoadLocation("Local")
531
+		theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc)
532
+		if err != nil {
533
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
534
+			return
535
+		}
536
+		recordStartTime := theStartTime.Unix()
537
+		theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc)
538
+		if err != nil {
539
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
540
+			return
541
+		}
542
+		recordEndTime := theEndTime.Unix()
543
+		prescriptions, _ = service.GetZHMonthHisPrescription(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime)
544
+
545
+	}
546
+	roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
547
+	record, _ := service.GetInHospitalRecord(in_hospital_id)
548
+	if record.ID == 0 {
549
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
550
+		return
551
+	}
552
+
553
+	timestamp := time.Now().Unix()
554
+	tempTime := time.Unix(timestamp, 0)
555
+	timeFormat := tempTime.Format("20060102150405")
556
+	chrgBchno := rand.Intn(100000) + 10000
557
+	chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(record.PatientId, 10)
558
+	miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
559
+	patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime)
560
+	department, _ := service.GetDepartMentDetail(record.Departments)
561
+	strconv.FormatInt(record.PatientId, 10)
562
+
563
+	doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, record.Doctor)
564
+
565
+	//client := &http.Client{}
566
+	data["psn_no"] = record.PsnNo
567
+	data["mdtrt_id"] = record.Number
568
+	data["chrg_bchno"] = chrg_bchno
569
+	data["org_name"] = miConfig.OrgName
570
+	data["doctor"] = roles.UserName
571
+	data["doctor_id"] = strconv.FormatInt(roles.AdminUserId, 10)
572
+	data["dept"] = strconv.FormatInt(department.ID, 10)
573
+	data["fixmedins_code"] = miConfig.Code
574
+	if (department.ID == 0 && adminUser.CurrentOrgId == 9919) || (department.ID == 0 && adminUser.CurrentOrgId == 10106) {
575
+		data["dept_code"] = "15"
576
+	} else {
577
+		data["dept_code"] = department.Number
578
+	}
579
+	if miConfig.Code == "H15049901371" {
580
+		if record.MedType == 14 {
581
+			if record.InsutypeType == "390" {
582
+
583
+				data["med_type"] = "9933"
584
+
585
+			} else if record.InsutypeType == "310" {
586
+
587
+				data["med_type"] = "990502"
588
+
589
+			}
590
+
591
+		} else if record.MedType == 11 {
592
+
593
+			data["med_type"] = strconv.FormatInt(record.MedType, 10)
594
+
595
+		}
596
+
597
+	} else {
598
+		if record.MedType == 1112 {
599
+			data["med_type"] = strconv.FormatInt(11, 10)
600
+		} else {
601
+			data["med_type"] = strconv.FormatInt(record.MedType, 10)
602
+		}
603
+
604
+	}
605
+	data["insuplc_admdvs"] = record.InsuplcAdmdvs
606
+	data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
607
+	data["secret_key"] = miConfig.SecretKey
608
+	var ids []int64
609
+
610
+	fmt.Println(data)
611
+
612
+	for _, item := range prescriptions {
613
+		ids = append(ids, item.ID)
614
+	}
615
+	config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
616
+	if config.IsOpen == 1 { //对接了医保,走医保流程
617
+
618
+		var pagesize int = 100
619
+		var start int = 1
620
+		var stop int
621
+		var pagecount int
622
+		var curpage int
623
+		var isSuccess bool = true
624
+
625
+		var customs []*models.NewCustom
626
+
627
+		for _, item := range prescriptions {
628
+			tm := time.Unix(item.PreTime, 0)
629
+			if item.Type == 1 { //药品
630
+				for _, subItem := range item.HisDoctorAdviceInfo {
631
+					if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 && subItem.BaseDrugLib.IsUser != 1 {
632
+						//var randNum int
633
+						//randNum = rand.Intn(10000) + 1000
634
+						cus := &models.NewCustom{
635
+							DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber),
636
+							Cut:              fmt.Sprintf("%.4f", subItem.PrescribingNumber),
637
+							FeedetlSn:        subItem.FeedetlSn,
638
+							Price:            fmt.Sprintf("%.4f", subItem.Price),
639
+							MedListCodg:      subItem.BaseDrugLib.MedicalInsuranceNumber,
640
+							HospApprFlag:     subItem.BaseDrugLib.HospApprFlag,
641
+							FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
642
+						}
643
+
644
+						customs = append(customs, cus)
645
+					}
646
+				}
647
+			}
648
+
649
+			if item.Type == 2 { //项目
650
+				for _, subItem := range item.HisPrescriptionProject {
651
+					//var randNum int
652
+					//randNum = rand.Intn(10000) + 1000
653
+					if subItem.Type == 2 {
654
+						if len(subItem.HisProject.MedicalCode) > 0 {
655
+							cnt, _ := strconv.ParseFloat(subItem.Count, 64)
656
+							cus := &models.NewCustom{
657
+								DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt),
658
+								Cut:              fmt.Sprintf("%.4f", cnt),
659
+								FeedetlSn:        subItem.FeedetlSn,
660
+								Price:            fmt.Sprintf("%.4f", float64(subItem.Price)),
661
+								MedListCodg:      subItem.HisProject.MedicalCode,
662
+								HospApprFlag:     -1,
663
+								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
664
+							}
665
+							customs = append(customs, cus)
666
+						}
667
+					} else if subItem.Type == 3 {
668
+						if len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 && subItem.GoodInfo.IsUser != 1 {
669
+							cnt, _ := strconv.ParseFloat(subItem.Count, 64)
670
+
671
+							cus := &models.NewCustom{
672
+								DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt),
673
+								Cut:              fmt.Sprintf("%.4f", cnt),
674
+								FeedetlSn:        subItem.FeedetlSn,
675
+								Price:            fmt.Sprintf("%.4f", float64(subItem.Price)),
676
+								MedListCodg:      subItem.GoodInfo.MedicalInsuranceNumber,
677
+								HospApprFlag:     -1,
678
+								FeeOcurTime:      tm.Format("2006-01-02 15:04:05"),
679
+							}
680
+							customs = append(customs, cus)
681
+						}
682
+					}
683
+				}
684
+			}
685
+
686
+		}
687
+
688
+		//总页数,向上取整,注意除之前要先转换类型为float64
689
+		pagecount = int(math.Ceil(float64(len(customs)) / float64(pagesize)))
690
+		var ress []*ResultFour
691
+		for curpage = 1; curpage <= pagecount; curpage++ {
692
+			if curpage == 1 {
693
+				start = 1
694
+			} else {
695
+				start = (curpage-1)*pagesize + 1
696
+			}
697
+			stop = curpage * pagesize
698
+			if stop > len(customs) {
699
+				stop = len(customs)
700
+			}
701
+
702
+			var result string
703
+			var requestLog string
704
+			if miConfig.MdtrtareaAdmvs == "150499" {
705
+				data := make(map[string]interface{})
706
+				if record.MedType == 14 {
707
+					if record.InsutypeType == "390" {
708
+
709
+						data["med_type"] = "9933"
710
+
711
+					} else if record.InsutypeType == "310" {
712
+
713
+						data["med_type"] = "990502"
714
+
715
+					}
716
+
717
+				} else if record.MedType == 11 {
718
+
719
+					data["med_type"] = strconv.FormatInt(record.MedType, 10)
720
+
721
+				}
722
+				data["psn_no"] = record.PsnNo
723
+				data["number"] = record.Number
724
+				data["customs"] = customs[start-1 : stop]
725
+				data["chrg_bchno"] = chrg_bchno
726
+				data["dept"] = strconv.FormatInt(department.ID, 10)
727
+				data["dept_code"] = department.Number
728
+				data["doctor_code"] = doctor_info.DoctorNumber
729
+				data["doctor_name"] = doctor_info.UserName
730
+				data["org_name"] = miConfig.OrgName
731
+				data["opertor"] = roles.UserName
732
+				data["fixmedins_code"] = miConfig.Code
733
+				data["insuplc_admdvs"] = record.InsuplcAdmdvs
734
+				data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
735
+				data["secret_key"] = miConfig.SecretKey
736
+
737
+				var req *http.Request
738
+				bytesData, _ := json.Marshal(data)
739
+				req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2301", bytes.NewReader(bytesData))
740
+				client := &http.Client{}
741
+				resp, _ := client.Do(req)
742
+				defer resp.Body.Close()
743
+				body, ioErr := ioutil.ReadAll(resp.Body)
744
+				if ioErr != nil {
745
+					utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
746
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
747
+					return
748
+				}
749
+				var respJSON map[string]interface{}
750
+				if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
751
+					utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
752
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
753
+					return
754
+				}
755
+				respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
756
+				result_byte, _ := json.Marshal(respJSON)
757
+				result = string(result_byte)
758
+			} else {
759
+				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)
760
+				saveLog(result, requestLog, "2301", "上传明细")
761
+			}
762
+
763
+			var dat map[string]interface{}
764
+			if err := json.Unmarshal([]byte(result), &dat); err == nil {
765
+				fmt.Println(dat)
766
+			} else {
767
+				fmt.Println(err)
768
+			}
769
+			userJSONBytes, _ := json.Marshal(dat)
770
+			var res ResultFour
771
+			var resFour10265 ResultFour10265
772
+			if miConfig.Code == "H15049901371" {
773
+				if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil {
774
+					utils.ErrorLog("解析失败:%v", err)
775
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
776
+					return
777
+				}
778
+				res.WarnMsg = resFour10265.WarnMsg
779
+				res.Output = resFour10265.Output
780
+				res.ErrMsg = resFour10265.ErrMsg
781
+				res.RespondTime = resFour10265.RespondTime
782
+				res.InfRefmsgid = resFour10265.InfRefmsgid
783
+				Infcode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64)
784
+				res.Infcode = Infcode
785
+
786
+			} else {
787
+				if err := json.Unmarshal(userJSONBytes, &res); err != nil {
788
+					utils.ErrorLog("解析失败:%v", err)
789
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
790
+					return
791
+				}
792
+			}
793
+
794
+			if res.Infcode == 0 {
795
+				ress = append(ress, &res)
796
+			} else {
797
+				isSuccess = false
798
+				errlog := &models.HisOrderError{
799
+					UserOrgId:  adminUser.CurrentOrgId,
800
+					Ctime:      time.Now().Unix(),
801
+					Mtime:      time.Now().Unix(),
802
+					Number:     chrg_bchno,
803
+					ErrMsg:     "",
804
+					Status:     1,
805
+					PatientId:  id,
806
+					RecordTime: recordDateTime,
807
+					Stage:      4,
808
+				}
809
+				service.CreateErrMsgLog(errlog)
810
+				c.ServeSuccessJSON(map[string]interface{}{
811
+					"failed_code": -10,
812
+					"msg":         "上传明细错误,请联系his厂商",
813
+				})
814
+				return
815
+			}
816
+		}
817
+
818
+		if isSuccess == true {
819
+			if settle_accounts_type == 1 {
820
+				for _, subItem := range ress {
821
+					for _, item := range subItem.Output.Result {
822
+						temp := strings.Split(item.FeedetlSn, "-")
823
+						var advice_id int64 = 0
824
+						var project_id int64 = 0
825
+						var types int64 = 0
826
+
827
+						id, _ := strconv.ParseInt(temp[2], 10, 64)
828
+						types, _ = strconv.ParseInt(temp[1], 10, 64)
829
+
830
+						if temp[1] == "1" {
831
+							advice_id = id
832
+							project_id = 0
833
+						} else if temp[1] == "2" {
834
+							advice_id = 0
835
+							project_id = id
836
+						}
837
+						info := &models.HisOrderInfo{
838
+							OrderNumber:      record.Number,
839
+							FeedetlSn:        item.FeedetlSn,
840
+							UploadDate:       recordDateTime,
841
+							AdviceId:         advice_id,
842
+							DetItemFeeSumamt: item.DetItemFeeSumamt,
843
+							Cnt:              item.Cnt,
844
+							Pric:             float64(item.Pric),
845
+							PatientId:        record.PatientId,
846
+							PricUplmtAmt:     item.PricUplmtAmt,
847
+							SelfpayProp:      item.SelfpayProp,
848
+							FulamtOwnpayAmt:  item.FulamtOwnpayAmt,
849
+							OverlmtAmt:       item.OverlmtAmt,
850
+							PreselfpayAmt:    item.PreselfpayAmt,
851
+							BasMednFlag:      item.BasMednFlag,
852
+							MedChrgitmType:   item.MedChrgitmType,
853
+							HiNegoDrugFlag:   item.HiNegoDrugFlag,
854
+							Status:           1,
855
+							Memo:             item.Memo,
856
+							Mtime:            time.Now().Unix(),
857
+							InscpScpAmt:      item.InscpScpAmt,
858
+							DrtReimFlag:      item.DrtReimFlag,
859
+							Ctime:            time.Now().Unix(),
860
+							ListSpItemFlag:   item.ListSpItemFlag,
861
+							ChldMedcFlag:     item.ChldMedcFlag,
862
+							LmtUsedFlag:      item.LmtUsedFlag,
863
+							ChrgitmLv:        item.ChrgitmLv,
864
+							UserOrgId:        adminUser.CurrentOrgId,
865
+							HisPatientId:     record.ID,
866
+							OrderId:          0,
867
+							ProjectId:        project_id,
868
+							Type:             types,
869
+							SettleType:       settle_accounts_type,
870
+						}
871
+						service.CreateOrderInfo(info)
872
+					}
873
+				}
874
+
875
+				err := service.UpDatePrescriptionOrderStatus(adminUser.CurrentOrgId, ids)
876
+				service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, record.Number)
877
+				service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, patientPrescription.PatientId, record.Number, recordDateTime)
878
+				if err == nil {
879
+					c.ServeSuccessJSON(map[string]interface{}{
880
+						"msg": "上传费用明细成功",
881
+					})
882
+					return
883
+				} else {
884
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
885
+					return
886
+				}
887
+
888
+			} else {
889
+
890
+				for _, subItem := range ress {
891
+					for _, item := range subItem.Output.Result {
892
+						temp := strings.Split(item.FeedetlSn, "-")
893
+						var advice_id int64 = 0
894
+						var project_id int64 = 0
895
+						var types int64 = 0
896
+
897
+						id, _ := strconv.ParseInt(temp[2], 10, 64)
898
+						types, _ = strconv.ParseInt(temp[1], 10, 64)
899
+
900
+						if temp[1] == "1" {
901
+							advice_id = id
902
+							project_id = 0
903
+						} else if temp[1] == "2" {
904
+							advice_id = 0
905
+							project_id = id
906
+						}
907
+						info := &models.HisOrderInfo{
908
+							OrderNumber:      record.Number,
909
+							FeedetlSn:        item.FeedetlSn,
910
+							UploadDate:       time.Now().Unix(),
911
+							AdviceId:         advice_id,
912
+							DetItemFeeSumamt: item.DetItemFeeSumamt,
913
+							Cnt:              item.Cnt,
914
+							Pric:             float64(item.Pric),
915
+							PatientId:        record.PatientId,
916
+							PricUplmtAmt:     item.PricUplmtAmt,
917
+							SelfpayProp:      item.SelfpayProp,
918
+							FulamtOwnpayAmt:  item.FulamtOwnpayAmt,
919
+							OverlmtAmt:       item.OverlmtAmt,
920
+							PreselfpayAmt:    item.PreselfpayAmt,
921
+							BasMednFlag:      item.BasMednFlag,
922
+							MedChrgitmType:   item.MedChrgitmType,
923
+							HiNegoDrugFlag:   item.HiNegoDrugFlag,
924
+							Status:           1,
925
+							Memo:             item.Memo,
926
+							Mtime:            time.Now().Unix(),
927
+							InscpScpAmt:      item.InscpScpAmt,
928
+							DrtReimFlag:      item.DrtReimFlag,
929
+							Ctime:            time.Now().Unix(),
930
+							ListSpItemFlag:   item.ListSpItemFlag,
931
+							ChldMedcFlag:     item.ChldMedcFlag,
932
+							LmtUsedFlag:      item.LmtUsedFlag,
933
+							ChrgitmLv:        item.ChrgitmLv,
934
+							UserOrgId:        adminUser.CurrentOrgId,
935
+							HisPatientId:     record.ID,
936
+							ProjectId:        project_id,
937
+							Type:             types,
938
+							SettleType:       settle_accounts_type,
939
+						}
940
+						service.CreateOrderInfo(info)
941
+					}
942
+				}
943
+				service.UpDatePrescriptionOrderStatus(adminUser.CurrentOrgId, ids)
944
+				service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, record.Number)
945
+				service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, patientPrescription.PatientId, record.Number, recordDateTime)
946
+				c.ServeSuccessJSON(map[string]interface{}{
947
+					"msg": "上传费用明细成功",
948
+				})
949
+
950
+			}
951
+
952
+		}
953
+
954
+	}
955
+}
956
+
957
+func (c *ZHHisApiController) RefundLingBao() {
958
+
959
+}
960
+
961
+func (c *ZHHisApiController) GetLingBao() {
962
+
963
+}
964
+
499 965
 func (c *ZHHisApiController) ReadEleCard() {
500 966
 	id_card_type, _ := c.GetInt64("id_card_type")
501 967
 	admin_user_id, _ := c.GetInt64("admin_user_id")

+ 6 - 8
main.go Vedi File

@@ -4,8 +4,6 @@ import (
4 4
 	//"github.com/qiniu/api.v7/auth/qbox"
5 5
 	//"github.com/qiniu/api.v7/storage"
6 6
 
7
-	"gdyb/service"
8
-
9 7
 	//"gdyb/models"
10 8
 	_ "gdyb/routers"
11 9
 	//"github.com/qiniu/api.v7/auth/qbox"
@@ -21,14 +19,14 @@ import (
21 19
 )
22 20
 
23 21
 func init() {
24
-	service.ConnectDB()
25
-	org_id, _ := beego.AppConfig.Int64("org_id")
26
-	miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
22
+	//service.ConnectDB()
23
+	//org_id, _ := beego.AppConfig.Int64("org_id")
24
+	//miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
27 25
 	//CreateLog(miConfig)
28 26
 	//UploadLog(miConfig)
29
-	if org_id == 10191 {
30
-		service.GetFjAuthorizationInfo(miConfig.Code)
31
-	}
27
+	//if org_id == 10191 {
28
+	//	service.GetFjAuthorizationInfo(miConfig.Code)
29
+	//}
32 30
 }
33 31
 func main() {
34 32
 	beego.Run()

+ 201 - 0
models/models_3501.go Vedi File

@@ -0,0 +1,201 @@
1
+package models
2
+
3
+type Struct3501 struct {
4
+	MedListCodg         string
5
+	FixmedinsHilistId   string
6
+	FixmedinsHilistName string
7
+	RxFlag              string
8
+	Invdate             string
9
+	InvCnt              string
10
+	ManuLotnum          string
11
+	FixmedinsBchno      string
12
+	ManuDate            string
13
+	ExpyEnd             string
14
+	Memo                string
15
+	OrgName             string
16
+	Opter               string
17
+	SecretKey           string
18
+	FixmedinsCode       string
19
+	InsuplcAdmdvs       string
20
+	MdtrtareaAdmvs      string
21
+	RequestUrl          string
22
+	AccessKey           string
23
+	Cainfo              string
24
+}
25
+type Struct3502 struct {
26
+	MedListCodg         string
27
+	InvChgType          string
28
+	FixmedinsHilistId   string
29
+	FixmedinsHilistName string
30
+	FixmedinsBchno      string
31
+	Pric                string
32
+	Cnt                 string
33
+	RxFlag              string
34
+	InvChgTime          string
35
+	Invdate             string
36
+	InvCnt              string
37
+	ManuLotnum          string
38
+	ManuDate            string
39
+	ExpyEnd             string
40
+	Memo                string
41
+	OrgName             string
42
+	Opter               string
43
+	SecretKey           string
44
+	FixmedinsCode       string
45
+	InsuplcAdmdvs       string
46
+	MdtrtareaAdmvs      string
47
+	RequestUrl          string
48
+	AccessKey           string
49
+	Cainfo              string
50
+}
51
+type Struct3503 struct {
52
+	MedListCodg         string
53
+	FixmedinsHilistId   string
54
+	FixmedinsHilistName string
55
+	DyntNo              string
56
+	FixmedinsBchno      string
57
+	SplerName           string
58
+	SplerPmtno          string
59
+	ManuLotnum          string
60
+	ProdentpName        string
61
+	Aprvno              string
62
+	ManuDate            string
63
+	ExpyEnd             string
64
+	FinlTrnsPric        string
65
+	PurcRetnCnt         string
66
+	PurcInvoCodg        string
67
+	PurcInvoNo          string
68
+	RxFlag              string
69
+	PurcRetnStoinTime   string
70
+	PurcRetnOpterName   string
71
+	ProdGeayFlag        string
72
+	Memo                string
73
+	OrgName             string
74
+	Opter               string
75
+	SecretKey           string
76
+	FixmedinsCode       string
77
+	InsuplcAdmdvs       string
78
+	MdtrtareaAdmvs      string
79
+	RequestUrl          string
80
+	AccessKey           string
81
+	Cainfo              string
82
+}
83
+type Struct3504 struct {
84
+	MedListCodg         string
85
+	FixmedinsHilistId   string
86
+	FixmedinsHilistName string
87
+	FixmedinsBchno      string
88
+	SplerName           string
89
+	SplerPmtno          string
90
+	ManuDate            string
91
+	ExpyEnd             string
92
+	FinlTrnsPric        string
93
+	PurcRetnCnt         string
94
+	PurcInvoCodg        string
95
+	PurcInvoNo          string
96
+	RxFlag              string
97
+	PurcRetnStoinTime   string
98
+	PurcRetnOpterName   string
99
+	Memo                string
100
+	OrgName             string
101
+	Opter               string
102
+	SecretKey           string
103
+	FixmedinsCode       string
104
+	InsuplcAdmdvs       string
105
+	MdtrtareaAdmvs      string
106
+	RequestUrl          string
107
+	AccessKey           string
108
+	Cainfo              string
109
+}
110
+type Struct3505 struct {
111
+	MedListCodg         string
112
+	FixmedinsHilistId   string
113
+	FixmedinsHilistName string
114
+	FixmedinsBchno      string
115
+	PrscDrCertType      string
116
+	PrscDrCertno        string
117
+	PrscDrName          string
118
+	PharCertType        string
119
+	PharCertno          string
120
+	PharName            string
121
+	PharPracCertNo      string
122
+	HiFeesetlType       string
123
+	SetlId              string
124
+	MdtrtSn             string
125
+	PsnNo               string
126
+	PsnCertType         string
127
+	CertNo              string
128
+	PsnName             string
129
+	ManuLotnum          string
130
+	ManuDate            string
131
+	ExpyEnd             string
132
+	RxFlag              string
133
+	TrdnFlag            string
134
+	FinlTrnsPric        string
135
+	Rxno                string
136
+	RxCircFlag          string
137
+	RtalDocno           string
138
+	StooutNo            string
139
+	Bchno               string
140
+	DrugTracCodg        string
141
+	DrugProdBarc        string
142
+	ShelfPosi           string
143
+	SelRetnCnt          string
144
+	SelRetnTime         string
145
+	SelRetnOpterName    string
146
+	Memo                string
147
+	OrgName             string
148
+	Opter               string
149
+	SecretKey           string
150
+	FixmedinsCode       string
151
+	InsuplcAdmdvs       string
152
+	MdtrtareaAdmvs      string
153
+	RequestUrl          string
154
+	AccessKey           string
155
+	Cainfo              string
156
+}
157
+type Struct3506 struct {
158
+	MedListCodg         string
159
+	FixmedinsHilistId   string
160
+	FixmedinsHilistName string
161
+	FixmedinsBchno      string
162
+	SetlId              string
163
+	PsnNo               string
164
+	PsnCertType         string
165
+	Certno              string
166
+	PsnName             string
167
+	ManuLotnum          string
168
+	ManuDate            string
169
+	ExpyEnd             string
170
+	RxFlag              string
171
+	TrdnFlag            string
172
+	FinlTrnsPric        string
173
+	SelTrnsPric         string
174
+	SelRetnCnt          string
175
+	SelRetnTime         string
176
+	SelRetnOpterName    string
177
+	Memo                string
178
+	MedinsProdSelNo     string
179
+	OrgName             string
180
+	Opter               string
181
+	SecretKey           string
182
+	FixmedinsCode       string
183
+	InsuplcAdmdvs       string
184
+	MdtrtareaAdmvs      string
185
+	RequestUrl          string
186
+	AccessKey           string
187
+	Cainfo              string
188
+}
189
+type Struct3507 struct {
190
+	FixmedinsBchno string
191
+	InvDataType    string
192
+	OrgName        string
193
+	Opter          string
194
+	SecretKey      string
195
+	FixmedinsCode  string
196
+	InsuplcAdmdvs  string
197
+	MdtrtareaAdmvs string
198
+	RequestUrl     string
199
+	AccessKey      string
200
+	Cainfo         string
201
+}

+ 248 - 248
service/jsyb_service.go Vedi File

@@ -1702,25 +1702,24 @@ func Jsyb4101(struct4101 Struct4101, params models.PublicParams) (string, string
1702 1702
 
1703 1703
 }
1704 1704
 
1705
-func Jsyb3501(med_list_codg string, rx_flag string, invdate string, inv_cnt float64, fixmedins_bchno string, manu_date string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
1705
+func Jsyb3501(struct3501 models.Struct3501) (string, string) {
1706 1706
 	timestamp := time.Now().Unix()
1707 1707
 	// 生成输入报文
1708
-	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1708
+	inputMessage := SetJSInputMessage(timestamp, struct3501.OrgName, struct3501.Opter, struct3501.FixmedinsCode, struct3501.InsuplcAdmdvs, struct3501.MdtrtareaAdmvs, struct3501.Cainfo)
1709 1709
 	input := make(map[string]interface{})
1710 1710
 	inputData := make(map[string]interface{})
1711
-	inputMessage["infno"] = "3501"                    // 交易编码
1712
-	inputData["med_list_codg"] = med_list_codg        // 定点医药机构目录编号
1713
-	inputData["fixmedins_hilist_id"] = fixmedins_code // 定点医药机构目录编号
1714
-	inputData["fixmedins_hilist_name"] = org_name     // 定点医药机构目录名称
1715
-	inputData["rx_flag"] = rx_flag                    //
1716
-	inputData["invdate"] = invdate                    // 人员编号 (来自1101接口返回)
1717
-	inputData["inv_cnt"] = inv_cnt                    // 人员编号 (来自1101接口返回)
1718
-	inputData["manu_lotnum"] = ""                     // 人员编号 (来自1101接口返回)
1719
-	inputData["fixmedins_bchno"] = fixmedins_bchno    // 人员编号 (来自1101接口返回)
1720
-	inputData["manu_date"] = manu_date                // 人员编号 (来自1101接口返回)
1721
-	inputData["expy_end"] = expy_end                  // 人员编号 (来自1101接口返回)
1722
-	inputData["memo"] = ""                            // 人员编号 (来自1101接口返回)
1723
-
1711
+	inputMessage["infno"] = "3501"                                  // 交易编码
1712
+	inputData["med_list_codg"] = struct3501.MedListCodg             // 定点医药机构目录编号
1713
+	inputData["fixmedins_hilist_id"] = struct3501.FixmedinsHilistId // 定点医药机构目录编号
1714
+	inputData["fixmedins_hilist_name"] = struct3501.OrgName         // 定点医药机构目录名称
1715
+	inputData["rx_flag"] = struct3501.RxFlag                        //
1716
+	inputData["invdate"] = struct3501.Invdate                       // 人员编号 (来自1101接口返回)
1717
+	inputData["inv_cnt"] = struct3501.InvCnt                        // 人员编号 (来自1101接口返回)
1718
+	inputData["manu_lotnum"] = struct3501.ManuLotnum                // 人员编号 (来自1101接口返回)
1719
+	inputData["fixmedins_bchno"] = struct3501.FixmedinsBchno        // 人员编号 (来自1101接口返回)
1720
+	inputData["manu_date"] = struct3501.ManuDate                    // 人员编号 (来自1101接口返回)
1721
+	inputData["expy_end"] = struct3501.ExpyEnd                      // 人员编号 (来自1101接口返回)
1722
+	inputData["memo"] = ""                                          // 人员编号 (来自1101接口返回)
1724 1723
 	input["invinfo"] = inputData
1725 1724
 	inputMessage["input"] = input //交易输入
1726 1725
 
@@ -1730,31 +1729,31 @@ func Jsyb3501(med_list_codg string, rx_flag string, invdate string, inv_cnt floa
1730 1729
 		fmt.Println(err.Error())
1731 1730
 		return err.Error(), ""
1732 1731
 	}
1733
-	request_url = request_url + "3501"
1734
-	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1732
+	struct3501.RequestUrl = struct3501.RequestUrl + "3501"
1733
+	return HttpRequest(struct3501.RequestUrl, struct3501.AccessKey, struct3501.SecretKey, timestamp, string(bytesData)), string(bytesData)
1735 1734
 
1736 1735
 }
1737
-func Jsyb3502(med_list_codg string, rx_flag string, inv_chg_type string, cnt float64, pric float64, fixmedins_bchno string, inv_chg_time string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
1736
+func Jsyb3502(struct3502 models.Struct3502) (string, string) {
1738 1737
 	timestamp := time.Now().Unix()
1739 1738
 	// 生成输入报文
1740
-	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1739
+	inputMessage := SetJSInputMessage(timestamp, struct3502.OrgName, struct3502.Opter, struct3502.FixmedinsCode, struct3502.InsuplcAdmdvs, struct3502.MdtrtareaAdmvs, struct3502.Cainfo)
1741 1740
 	input := make(map[string]interface{})
1742 1741
 	inputData := make(map[string]interface{})
1743
-	inputMessage["infno"] = "3502"             // 交易编码
1744
-	inputData["med_list_codg"] = med_list_codg // 定点医药机构目录编号
1745
-	inputData["inv_chg_type"] = inv_chg_type   // 定点医药机构目录编号
1746
-
1747
-	inputData["fixmedins_hilist_id"] = fixmedins_code // 定点医药机构目录编号
1748
-	inputData["fixmedins_hilist_name"] = org_name     // 定点医药机构目录名称
1749
-	inputData["fixmedins_bchno"] = fixmedins_bchno    // 人员编号 (来自1101接口返回)
1750
-	inputData["pric"] = pric                          // 人员编号 (来自1101接口返回)
1751
-	inputData["cnt"] = cnt                            // 人员编号 (来自1101接口返回)
1752
-	inputData["rx_flag"] = rx_flag                    //
1753
-
1754
-	inputData["inv_chg_time"] = inv_chg_time // 人员编号 (来自1101接口返回)
1755
-	inputData["inv_chg_opter_name"] = ""     // 人员编号 (来自1101接口返回)
1756
-	inputData["memo"] = ""                   // 人员编号 (来自1101接口返回)
1757
-	inputData["trdn_flag"] = ""              // 人员编号 (来自1101接口返回)
1742
+	inputMessage["infno"] = "3502"                      // 交易编码
1743
+	inputData["med_list_codg"] = struct3502.MedListCodg // 定点医药机构目录编号
1744
+	inputData["inv_chg_type"] = struct3502.InvChgType   // 定点医药机构目录编号
1745
+
1746
+	inputData["fixmedins_hilist_id"] = struct3502.FixmedinsCode // 定点医药机构目录编号
1747
+	inputData["fixmedins_hilist_name"] = struct3502.OrgName     // 定点医药机构目录名称
1748
+	inputData["fixmedins_bchno"] = struct3502.FixmedinsBchno    // 人员编号 (来自1101接口返回)
1749
+	inputData["pric"] = struct3502.Pric                         // 人员编号 (来自1101接口返回)
1750
+	inputData["cnt"] = struct3502.Cnt                           // 人员编号 (来自1101接口返回)
1751
+	inputData["rx_flag"] = struct3502.RxFlag                    //
1752
+
1753
+	inputData["inv_chg_time"] = struct3502.InvChgTime // 人员编号 (来自1101接口返回)
1754
+	inputData["inv_chg_opter_name"] = ""              // 人员编号 (来自1101接口返回)
1755
+	inputData["memo"] = struct3502.Memo               // 人员编号 (来自1101接口返回)
1756
+	inputData["trdn_flag"] = ""                       // 人员编号 (来自1101接口返回)
1758 1757
 
1759 1758
 	input["invinfo"] = inputData
1760 1759
 	inputMessage["input"] = input //交易输入
@@ -1765,220 +1764,221 @@ func Jsyb3502(med_list_codg string, rx_flag string, inv_chg_type string, cnt flo
1765 1764
 		fmt.Println(err.Error())
1766 1765
 		return err.Error(), ""
1767 1766
 	}
1768
-	request_url = request_url + "3502"
1769
-	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1767
+	struct3502.RequestUrl = struct3502.RequestUrl + "3502"
1768
+	return HttpRequest(struct3502.RequestUrl, struct3502.AccessKey, struct3502.SecretKey, timestamp, string(bytesData)), string(bytesData)
1769
+
1770
+}
1771
+
1772
+func Jsyb3503(struct3503 models.Struct3503) (string, string) {
1773
+	timestamp := time.Now().Unix()
1774
+	// 生成输入报文
1775
+	inputMessage := SetJSInputMessage(timestamp, struct3503.OrgName, struct3503.Opter, struct3503.FixmedinsCode, struct3503.InsuplcAdmdvs, struct3503.MdtrtareaAdmvs, struct3503.Cainfo)
1776
+	input := make(map[string]interface{})
1777
+	inputData := make(map[string]interface{})
1778
+	inputMessage["infno"] = "3503"
1779
+	inputData["med_list_codg"] = struct3503.MedListCodg
1780
+	inputData["fixmedins_hilist_id"] = struct3503.FixmedinsCode
1781
+	inputData["fixmedins_hilist_name"] = struct3503.OrgName
1782
+
1783
+	inputData["dynt_no"] = ""
1784
+	inputData["fixmedins_bchno"] = struct3503.FixmedinsBchno // 人员编号 (来自1101接口返回)
1785
+
1786
+	inputData["spler_name"] = struct3503.SplerName       // 人员编号 (来自1101接口返回)
1787
+	inputData["spler_pmtno"] = ""                        // 人员编号 (来自1101接口返回)
1788
+	inputData["manu_lotnum"] = struct3503.ManuLotnum     // 人员编号 (来自1101接口返回)
1789
+	inputData["prodentp_name"] = struct3503.ProdentpName // 人员编号 (来自1101接口返回)
1790
+	inputData["aprvno"] = struct3503.Aprvno              // 人员编号 (来自1101接口返回)
1791
+	inputData["manu_date"] = struct3503.ManuDate         // 人员编号 (来自1101接口返回)
1792
+	inputData["expy_end"] = struct3503.ExpyEnd           // 人员编号 (来自1101接口返回)
1793
+
1794
+	inputData["finl_trns_pric"] = struct3503.FinlTrnsPric // 人员编号 (来自1101接口返回)
1795
+	inputData["purc_retn_cnt"] = struct3503.PurcRetnCnt   // 人员编号 (来自1101接口返回)
1796
+	inputData["purc_invo_codg"] = struct3503.PurcInvoCodg // 人员编号 (来自1101接口返回)
1797
+	inputData["purc_invo_no"] = struct3503.PurcInvoNo     // 人员编号 (来自1101接口返回)
1798
+
1799
+	inputData["rx_flag"] = struct3503.RxFlag // 人员编号 (来自1101接口返回)
1800
+
1801
+	inputData["purc_retn_stoin_time"] = struct3503.PurcRetnStoinTime // 人员编号 (来自1101接口返回)
1802
+	inputData["purc_retn_opter_name"] = struct3503.PurcRetnOpterName // 人员编号 (来自1101接口返回)
1803
+	inputData["prod_geay_flag"] = ""                                 // 人员编号 (来自1101接口返回)
1804
+	inputData["memo"] = ""                                           // 人员编号 (来自1101接口返回)
1805
+	input["purcinfo"] = inputData
1806
+	inputMessage["input"] = input //交易输入
1807
+
1808
+	bytesData, err := json.Marshal(inputMessage)
1809
+	fmt.Println(string(bytesData))
1810
+	if err != nil {
1811
+		fmt.Println(err.Error())
1812
+		return err.Error(), ""
1813
+	}
1814
+	struct3503.RequestUrl = struct3503.RequestUrl + "3503"
1815
+	return HttpRequest(struct3503.RequestUrl, struct3503.AccessKey, struct3503.SecretKey, timestamp, string(bytesData)), string(bytesData)
1770 1816
 
1771 1817
 }
1818
+func Jsyb3504(struct3504 models.Struct3504) (string, string) {
1819
+	timestamp := time.Now().Unix()
1820
+	// 生成输入报文
1821
+	inputMessage := SetJSInputMessage(timestamp, struct3504.OrgName, struct3504.Opter, struct3504.FixmedinsCode, struct3504.InsuplcAdmdvs, struct3504.MdtrtareaAdmvs, struct3504.Cainfo)
1822
+	input := make(map[string]interface{})
1823
+	inputData := make(map[string]interface{})
1824
+	inputMessage["infno"] = "3504"                                      // 交易编码
1825
+	inputData["med_list_codg"] = struct3504.MedListCodg                 // 定点医药机构目录编号
1826
+	inputData["fixmedins_hilist_id"] = struct3504.FixmedinsHilistId     // 定点医药机构目录编号
1827
+	inputData["fixmedins_hilist_name"] = struct3504.FixmedinsHilistName // 定点医药机构目录名称
1828
+	inputData["fixmedins_bchno"] = struct3504.FixmedinsBchno            // 人员编号 (来自1101接口返回)
1829
+	inputData["spler_name"] = struct3504.SplerName                      // 人员编号 (来自1101接口返回)
1830
+	inputData["spler_pmtno"] = ""                                       // 人员编号 (来自1101接口返回)
1831
+
1832
+	inputData["manu_date"] = struct3504.ManuDate                     // 人员编号 (来自1101接口返回)
1833
+	inputData["expy_end"] = struct3504.ExpyEnd                       // 人员编号 (来自1101接口返回)
1834
+	inputData["finl_trns_pric"] = struct3504.FinlTrnsPric            // 人员编号 (来自1101接口返回)
1835
+	inputData["purc_retn_cnt"] = struct3504.PurcRetnCnt              // 人员编号 (来自1101接口返回)
1836
+	inputData["purc_invo_codg"] = struct3504.PurcInvoCodg            // 人员编号 (来自1101接口返回)
1837
+	inputData["purc_invo_no"] = struct3504.PurcInvoNo                // 人员编号 (来自1101接口返回)
1838
+	inputData["rx_flag"] = struct3504.RxFlag                         // 人员编号 (来自1101接口返回)
1839
+	inputData["purc_retn_stoin_time"] = struct3504.PurcRetnStoinTime // 人员编号 (来自1101接口返回)
1840
+	inputData["purc_retn_opter_name"] = struct3504.PurcRetnOpterName // 人员编号 (来自1101接口返回)
1841
+	inputData["medins_prod_purc_no"] = ""                            // 人员编号 (来自1101接口返回)
1842
+	inputData["memo"] = ""                                           // 人员编号 (来自1101接口返回)
1843
+	input["purcinfo"] = inputData
1844
+	inputMessage["input"] = input //交易输入
1845
+
1846
+	bytesData, err := json.Marshal(inputMessage)
1847
+	fmt.Println(string(bytesData))
1848
+	if err != nil {
1849
+		fmt.Println(err.Error())
1850
+		return err.Error(), ""
1851
+	}
1852
+	struct3504.RequestUrl = struct3504.RequestUrl + "3504"
1853
+	return HttpRequest(struct3504.RequestUrl, struct3504.AccessKey, struct3504.SecretKey, timestamp, string(bytesData)), string(bytesData)
1854
+
1855
+}
1856
+
1857
+func Jsyb3505(struct3505 models.Struct3505) (string, string) {
1858
+	timestamp := time.Now().Unix()
1859
+	// 生成输入报文
1860
+	inputMessage := SetJSInputMessage(timestamp, struct3505.OrgName, struct3505.Opter, struct3505.FixmedinsCode, struct3505.InsuplcAdmdvs, struct3505.MdtrtareaAdmvs, struct3505.Cainfo)
1861
+	input := make(map[string]interface{})
1862
+	inputData := make(map[string]interface{})
1863
+	inputMessage["infno"] = "3505"                              // 交易编码
1864
+	inputData["med_list_codg"] = struct3505.MedListCodg         // 定点医药机构目录编号
1865
+	inputData["fixmedins_hilist_id"] = struct3505.FixmedinsCode // 定点医药机构目录编号
1866
+	inputData["fixmedins_hilist_name"] = struct3505.OrgName     // 定点医药机构目录名称
1867
+	inputData["fixmedins_bchno"] = struct3505.FixmedinsCode     // 人员编号 (来自1101接口返回)
1868
+
1869
+	inputData["prsc_dr_cert_type"] = struct3505.PrscDrCertType // 人员编号 (来自1101接口返回)
1870
+	inputData["prsc_dr_certno"] = struct3505.PrscDrCertno      // 人员编号 (来自1101接口返回)
1871
+	inputData["prsc_dr_name"] = struct3505.PrscDrName          // 人员编号 (来自1101接口返回)
1872
+	inputData["phar_cert_type"] = struct3505.PharCertType      // 人员编号 (来自1101接口返回)
1873
+	inputData["phar_certno"] = struct3505.PharCertno           // 人员编号 (来自1101接口返回)
1874
+
1875
+	inputData["phar_name"] = struct3505.PharName               // 人员编号 (来自1101接口返回)
1876
+	inputData["phar_prac_cert_no"] = struct3505.PharPracCertNo // 人员编号 (来自1101接口返回)
1877
+	inputData["hi_feesetl_type"] = struct3505.HiFeesetlType    // 人员编号 (来自1101接口返回)
1878
+	inputData["setl_id"] = struct3505.SetlId                   // 人员编号 (来自1101接口返回)
1879
+	inputData["mdtrt_sn"] = struct3505.MdtrtSn                 // 人员编号 (来自1101接口返回)
1880
+	inputData["psn_no"] = struct3505.PsnNo                     // 人员编号 (来自1101接口返回)
1881
+	inputData["psn_cert_type"] = struct3505.PsnCertType        // 人员编号 (来自1101接口返回)
1882
+	inputData["certno"] = struct3505.CertNo                    // 人员编号 (来自1101接口返回)
1883
+	inputData["psn_name"] = struct3505.PsnName                 // 人员编号 (来自1101接口返回)
1884
+	inputData["manu_lotnum"] = struct3505.ManuLotnum           // 人员编号 (来自1101接口返回)
1885
+	inputData["manu_date"] = struct3505.ManuDate               // 人员编号 (来自1101接口返回)
1886
+	inputData["expy_end"] = struct3505.ExpyEnd                 // 人员编号 (来自1101接口返回)
1887
+
1888
+	inputData["rx_flag"] = struct3505.RxFlag     // 人员编号 (来自1101接口返回)
1889
+	inputData["trdn_flag"] = struct3505.TrdnFlag // 人员编号 (来自1101接口返回)
1890
+
1891
+	inputData["finl_trns_pric"] = struct3505.FinlTrnsPric // 人员编号 (来自1101接口返回)
1892
+	inputData["rxno"] = struct3505.Rxno                   // 人员编号 (来自1101接口返回)
1893
+	inputData["rx_circ_flag"] = struct3505.RxCircFlag     // 人员编号 (来自1101接口返回)
1894
+
1895
+	inputData["rtal_docno"] = struct3505.RtalDocno // 人员编号 (来自1101接口返回)
1896
+	inputData["stoout_no"] = struct3505.StooutNo   // 人员编号 (来自1101接口返回)
1897
+
1898
+	inputData["bchno"] = struct3505.Bchno                          // 人员编号 (来自1101接口返回)
1899
+	inputData["drug_trac_codg"] = struct3505.DrugTracCodg          // 人员编号 (来自1101接口返回)
1900
+	inputData["drug_prod_barc"] = struct3505.DrugProdBarc          // 人员编号 (来自1101接口返回)
1901
+	inputData["shelf_posi"] = struct3505.ShelfPosi                 // 人员编号 (来自1101接口返回)
1902
+	inputData["sel_retn_cnt"] = struct3505.SelRetnCnt              // 人员编号 (来自1101接口返回)
1903
+	inputData["sel_retn_time"] = struct3505.SelRetnTime            // 人员编号 (来自1101接口返回)
1904
+	inputData["sel_retn_opter_name"] = struct3505.SelRetnOpterName // 人员编号 (来自1101接口返回)
1905
+	inputData["memo"] = struct3505.Memo                            // 人员编号 (来自1101接口返回)
1906
+	input["selinfo"] = inputData
1907
+	inputMessage["input"] = input //交易输入
1772 1908
 
1773
-//func Jsyb3503(med_list_codg string, spler_name string, manu_lotnum string, prodentp_name string, aprvno string, fixmedins_bchno string, inv_chg_time string, manu_date string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string, purc_retn_cnt float64, rx_flag string, purc_retn_stoin_time string, purc_retn_opter_name string) (string, string) {
1774
-//	timestamp := time.Now().Unix()
1775
-//	// 生成输入报文
1776
-//	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1777
-//	input := make(map[string]interface{})
1778
-//	inputData := make(map[string]interface{})
1779
-//	inputMessage["infno"] = "3503"
1780
-//	inputData["med_list_codg"] = med_list_codg
1781
-//	inputData["fixmedins_hilist_id"] = fixmedins_code
1782
-//	inputData["fixmedins_hilist_name"] = org_name
1783
-//
1784
-//	inputData["dynt_no"] = ""
1785
-//	inputData["fixmedins_bchno"] = fixmedins_bchno // 人员编号 (来自1101接口返回)
1786
-//
1787
-//	inputData["spler_name"] = spler_name       // 人员编号 (来自1101接口返回)
1788
-//	inputData["spler_pmtno"] = ""              // 人员编号 (来自1101接口返回)
1789
-//	inputData["manu_lotnum"] = manu_lotnum     // 人员编号 (来自1101接口返回)
1790
-//	inputData["prodentp_name"] = prodentp_name // 人员编号 (来自1101接口返回)
1791
-//	inputData["aprvno"] = aprvno               // 人员编号 (来自1101接口返回)
1792
-//	inputData["manu_date"] = manu_date         // 人员编号 (来自1101接口返回)
1793
-//	inputData["expy_end"] = expy_end           // 人员编号 (来自1101接口返回)
1794
-//
1795
-//	inputData["finl_trns_pric"] = ""           // 人员编号 (来自1101接口返回)
1796
-//	inputData["purc_retn_cnt"] = purc_retn_cnt // 人员编号 (来自1101接口返回)
1797
-//	inputData["purc_invo_codg"] = ""           // 人员编号 (来自1101接口返回)
1798
-//	inputData["purc_invo_no"] = ""             // 人员编号 (来自1101接口返回)
1799
-//
1800
-//	inputData["rx_flag"] = rx_flag // 人员编号 (来自1101接口返回)
1801
-//
1802
-//	inputData["purc_retn_stoin_time"] = purc_retn_stoin_time // 人员编号 (来自1101接口返回)
1803
-//	inputData["purc_retn_opter_name"] = purc_retn_opter_name // 人员编号 (来自1101接口返回)
1804
-//	inputData["prod_geay_flag"] = ""                         // 人员编号 (来自1101接口返回)
1805
-//	inputData["memo"] = ""                                   // 人员编号 (来自1101接口返回)
1806
-//	input["purcinfo"] = inputData
1807
-//	inputMessage["input"] = input //交易输入
1808
-//
1809
-//	bytesData, err := json.Marshal(inputMessage)
1810
-//	fmt.Println(string(bytesData))
1811
-//	if err != nil {
1812
-//		fmt.Println(err.Error())
1813
-//		return err.Error(), ""
1814
-//	}
1815
-//	request_url = request_url + "3503"
1816
-//	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1817
-//
1818
-//}
1819
-//func Jsyb3504(med_list_codg string, spler_name string, manu_lotnum string, fixmedins_bchno string, inv_chg_time string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string, manu_date string) (string, string) {
1820
-//	timestamp := time.Now().Unix()
1821
-//	// 生成输入报文
1822
-//	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1823
-//	input := make(map[string]interface{})
1824
-//	inputData := make(map[string]interface{})
1825
-//	inputMessage["infno"] = "3504"                    // 交易编码
1826
-//	inputData["med_list_codg"] = med_list_codg        // 定点医药机构目录编号
1827
-//	inputData["fixmedins_hilist_id"] = fixmedins_code // 定点医药机构目录编号
1828
-//	inputData["fixmedins_hilist_name"] = org_name     // 定点医药机构目录名称
1829
-//	inputData["fixmedins_bchno"] = fixmedins_bchno    // 人员编号 (来自1101接口返回)
1830
-//	inputData["spler_name"] = spler_name              // 人员编号 (来自1101接口返回)
1831
-//	inputData["spler_pmtno"] = ""                     // 人员编号 (来自1101接口返回)
1832
-//	inputData["manu_lotnum"] = manu_lotnum            // 人员编号 (来自1101接口返回)
1833
-//
1834
-//	inputData["manu_date"] = manu_date                       // 人员编号 (来自1101接口返回)
1835
-//	inputData["expy_end"] = expy_end                         // 人员编号 (来自1101接口返回)
1836
-//	inputData["finl_trns_pric"] = finl_trns_pric             // 人员编号 (来自1101接口返回)
1837
-//	inputData["purc_retn_cnt"] = purc_retn_cnt               // 人员编号 (来自1101接口返回)
1838
-//	inputData["purc_invo_codg"] = purc_invo_codg             // 人员编号 (来自1101接口返回)
1839
-//	inputData["purc_invo_no"] = purc_invo_no                 // 人员编号 (来自1101接口返回)
1840
-//	inputData["rx_flag"] = rx_flag                           // 人员编号 (来自1101接口返回)
1841
-//	inputData["purc_retn_stoin_time"] = purc_retn_stoin_time // 人员编号 (来自1101接口返回)
1842
-//	inputData["purc_retn_opter_name"] = purc_retn_opter_name // 人员编号 (来自1101接口返回)
1843
-//	inputData["medins_prod_purc_no"] = medins_prod_purc_no   // 人员编号 (来自1101接口返回)
1844
-//	inputData["memo"] = ""                                   // 人员编号 (来自1101接口返回)
1845
-//	input["purcinfo"] = inputData
1846
-//	inputMessage["input"] = input //交易输入
1847
-//
1848
-//	bytesData, err := json.Marshal(inputMessage)
1849
-//	fmt.Println(string(bytesData))
1850
-//	if err != nil {
1851
-//		fmt.Println(err.Error())
1852
-//		return err.Error(), ""
1853
-//	}
1854
-//	request_url = request_url + "3504"
1855
-//	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1856
-//
1857
-//}
1858
-//func Jsyb3505(med_list_codg string, cnt float64, pric float64, fixmedins_bchno string, inv_chg_time string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
1859
-//	timestamp := time.Now().Unix()
1860
-//	// 生成输入报文
1861
-//	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1862
-//	input := make(map[string]interface{})
1863
-//	inputData := make(map[string]interface{})
1864
-//	inputMessage["infno"] = "3505"                    // 交易编码
1865
-//	inputData["med_list_codg"] = med_list_codg        // 定点医药机构目录编号
1866
-//	inputData["fixmedins_hilist_id"] = fixmedins_code // 定点医药机构目录编号
1867
-//	inputData["fixmedins_hilist_name"] = org_name     // 定点医药机构目录名称
1868
-//	inputData["fixmedins_bchno"] = fixmedins_bchno    // 人员编号 (来自1101接口返回)
1869
-//
1870
-//	inputData["prsc_dr_cert_type"] = prsc_dr_cert_type // 人员编号 (来自1101接口返回)
1871
-//	inputData["prsc_dr_certno"] = prsc_dr_certno       // 人员编号 (来自1101接口返回)
1872
-//	inputData["prsc_dr_name"] = prsc_dr_name           // 人员编号 (来自1101接口返回)
1873
-//	inputData["phar_cert_type"] = phar_cert_type       // 人员编号 (来自1101接口返回)
1874
-//	inputData["phar_certno"] = phar_certno             // 人员编号 (来自1101接口返回)
1875
-//
1876
-//	inputData["spler_name"] = spler_name               // 人员编号 (来自1101接口返回)
1877
-//	inputData["phar_prac_cert_no"] = phar_prac_cert_no // 人员编号 (来自1101接口返回)
1878
-//	inputData["hi_feesetl_type"] = hi_feesetl_type     // 人员编号 (来自1101接口返回)
1879
-//	inputData["setl_id"] = setl_id                     // 人员编号 (来自1101接口返回)
1880
-//	inputData["mdtrt_sn"] = mdtrt_sn                   // 人员编号 (来自1101接口返回)
1881
-//	inputData["psn_no"] = psn_no                       // 人员编号 (来自1101接口返回)
1882
-//	inputData["psn_cert_type"] = psn_cert_type         // 人员编号 (来自1101接口返回)
1883
-//	inputData["certno"] = certno                       // 人员编号 (来自1101接口返回)
1884
-//	inputData["psn_name"] = psn_name                   // 人员编号 (来自1101接口返回)
1885
-//	inputData["manu_lotnum"] = manu_lotnum             // 人员编号 (来自1101接口返回)
1886
-//	inputData["manu_date"] = manu_date                 // 人员编号 (来自1101接口返回)
1887
-//	inputData["expy_end"] = expy_end                   // 人员编号 (来自1101接口返回)
1888
-//
1889
-//	inputData["rx_flag"] = rx_flag     // 人员编号 (来自1101接口返回)
1890
-//	inputData["trdn_flag"] = trdn_flag // 人员编号 (来自1101接口返回)
1891
-//
1892
-//	inputData["finl_trns_pric"] = finl_trns_pric // 人员编号 (来自1101接口返回)
1893
-//	inputData["rxno"] = rxno                     // 人员编号 (来自1101接口返回)
1894
-//	inputData["rx_circ_flag"] = rx_circ_flag     // 人员编号 (来自1101接口返回)
1895
-//
1896
-//	inputData["rtal_docno"] = rtal_docno // 人员编号 (来自1101接口返回)
1897
-//	inputData["stoout_no"] = stoout_no   // 人员编号 (来自1101接口返回)
1898
-//
1899
-//	inputData["bchno"] = bchno            // 人员编号 (来自1101接口返回)
1900
-//	inputData["drug_trac_codg"] = ""      // 人员编号 (来自1101接口返回)
1901
-//	inputData["drug_prod_barc"] = ""      // 人员编号 (来自1101接口返回)
1902
-//	inputData["shelf_posi"] = ""          // 人员编号 (来自1101接口返回)
1903
-//	inputData["sel_retn_cnt"] = ""        // 人员编号 (来自1101接口返回)
1904
-//	inputData["sel_retn_time"] = ""       // 人员编号 (来自1101接口返回)
1905
-//	inputData["sel_retn_opter_name"] = "" // 人员编号 (来自1101接口返回)
1906
-//	inputData["memo"] = ""                // 人员编号 (来自1101接口返回)
1907
-//	input["selinfo"] = inputData
1908
-//	inputMessage["input"] = input //交易输入
1909
-//
1910
-//	bytesData, err := json.Marshal(inputMessage)
1911
-//	fmt.Println(string(bytesData))
1912
-//	if err != nil {
1913
-//		fmt.Println(err.Error())
1914
-//		return err.Error(), ""
1915
-//	}
1916
-//	request_url = request_url + "3505"
1917
-//	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1918
-//
1919
-//}
1920
-//func Jsyb3506(med_list_codg string, cnt float64, pric float64, fixmedins_bchno string, inv_chg_time string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
1921
-//	timestamp := time.Now().Unix()
1922
-//	// 生成输入报文
1923
-//	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1924
-//	input := make(map[string]interface{})
1925
-//	inputData := make(map[string]interface{})
1926
-//	inputMessage["infno"] = "3506"                    // 交易编码
1927
-//	inputData["med_list_codg"] = med_list_codg        // 定点医药机构目录编号
1928
-//	inputData["fixmedins_hilist_id"] = fixmedins_code // 定点医药机构目录编号
1929
-//	inputData["fixmedins_hilist_name"] = org_name     // 定点医药机构目录名称
1930
-//	inputData["fixmedins_bchno"] = fixmedins_bchno    // 人员编号 (来自1101接口返回)
1931
-//
1932
-//	inputData["setl_id"] = setl_id               // 人员编号 (来自1101接口返回)
1933
-//	inputData["psn_no"] = psn_no                 // 人员编号 (来自1101接口返回)
1934
-//	inputData["psn_cert_type"] = psn_cert_type   // 人员编号 (来自1101接口返回)
1935
-//	inputData["certno"] = certno                 // 人员编号 (来自1101接口返回)
1936
-//	inputData["psn_name"] = psn_name             // 人员编号 (来自1101接口返回)
1937
-//	inputData["manu_lotnum"] = manu_lotnum       // 人员编号 (来自1101接口返回)
1938
-//	inputData["manu_date"] = manu_date           // 人员编号 (来自1101接口返回)
1939
-//	inputData["expy_end"] = expy_end             // 人员编号 (来自1101接口返回)
1940
-//	inputData["rx_flag"] = rx_flag               // 人员编号 (来自1101接口返回)
1941
-//	inputData["trdn_flag"] = trdn_flag           // 人员编号 (来自1101接口返回)
1942
-//	inputData["finl_trns_pric"] = finl_trns_pric // 人员编号 (来自1101接口返回)
1943
-//	inputData["sel_retn_cnt"] = ""               // 人员编号 (来自1101接口返回)
1944
-//	inputData["sel_retn_time"] = ""              // 人员编号 (来自1101接口返回)
1945
-//	inputData["sel_retn_opter_name"] = ""        // 人员编号 (来自1101接口返回)
1946
-//	inputData["memo"] = ""                       // 人员编号 (来自1101接口返回)
1947
-//	inputData["medins_prod_sel_no"] = ""         // 人员编号 (来自1101接口返回)
1948
-//
1949
-//	input["selinfo"] = inputData
1950
-//	inputMessage["input"] = input //交易输入
1951
-//
1952
-//	bytesData, err := json.Marshal(inputMessage)
1953
-//	fmt.Println(string(bytesData))
1954
-//	if err != nil {
1955
-//		fmt.Println(err.Error())
1956
-//		return err.Error(), ""
1957
-//	}
1958
-//	request_url = request_url + "3506"
1959
-//	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1960
-//
1961
-//}
1962
-//func Jsyb3507(med_list_codg string, cnt float64, pric float64, fixmedins_bchno string, inv_chg_time string, expy_end string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, request_url string, access_key string, cainfo string) (string, string) {
1963
-//	timestamp := time.Now().Unix()
1964
-//	// 生成输入报文
1965
-//	inputMessage := SetJSInputMessage(timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, cainfo)
1966
-//	input := make(map[string]interface{})
1967
-//	inputData := make(map[string]interface{})
1968
-//	inputMessage["infno"] = "3507"                 // 交易编码
1969
-//	inputData["fixmedins_bchno"] = fixmedins_bchno // 人员编号 (来自1101接口返回)
1970
-//	inputData["inv_data_type"] = inv_data_type     // 人员编号 (来自1101接口返回)
1971
-//
1972
-//	input["data"] = inputData
1973
-//	inputMessage["input"] = input //交易输入
1974
-//
1975
-//	bytesData, err := json.Marshal(inputMessage)
1976
-//	fmt.Println(string(bytesData))
1977
-//	if err != nil {
1978
-//		fmt.Println(err.Error())
1979
-//		return err.Error(), ""
1980
-//	}
1981
-//	request_url = request_url + "3507"
1982
-//	return HttpRequest(request_url, access_key, secret_key, timestamp, string(bytesData)), string(bytesData)
1983
-//
1984
-//}
1909
+	bytesData, err := json.Marshal(inputMessage)
1910
+	fmt.Println(string(bytesData))
1911
+	if err != nil {
1912
+		fmt.Println(err.Error())
1913
+		return err.Error(), ""
1914
+	}
1915
+	struct3505.RequestUrl = struct3505.RequestUrl + "3505"
1916
+	return HttpRequest(struct3505.RequestUrl, struct3505.AccessKey, struct3505.SecretKey, timestamp, string(bytesData)), string(bytesData)
1917
+
1918
+}
1919
+func Jsyb3506(struct3506 models.Struct3506) (string, string) {
1920
+	timestamp := time.Now().Unix()
1921
+	// 生成输入报文
1922
+	inputMessage := SetJSInputMessage(timestamp, struct3506.OrgName, struct3506.Opter, struct3506.FixmedinsCode, struct3506.InsuplcAdmdvs, struct3506.MdtrtareaAdmvs, struct3506.Cainfo)
1923
+	input := make(map[string]interface{})
1924
+	inputData := make(map[string]interface{})
1925
+	inputMessage["infno"] = "3506"                                  // 交易编码
1926
+	inputData["med_list_codg"] = struct3506.MedListCodg             // 定点医药机构目录编号
1927
+	inputData["fixmedins_hilist_id"] = struct3506.FixmedinsHilistId // 定点医药机构目录编号
1928
+	inputData["fixmedins_hilist_name"] = struct3506.OrgName         // 定点医药机构目录名称
1929
+	inputData["fixmedins_bchno"] = struct3506.FixmedinsBchno        // 人员编号 (来自1101接口返回)
1930
+
1931
+	inputData["setl_id"] = struct3506.SetlId                       // 人员编号 (来自1101接口返回)
1932
+	inputData["psn_no"] = struct3506.PsnNo                         // 人员编号 (来自1101接口返回)
1933
+	inputData["psn_cert_type"] = struct3506.PsnCertType            // 人员编号 (来自1101接口返回)
1934
+	inputData["certno"] = struct3506.Certno                        // 人员编号 (来自1101接口返回)
1935
+	inputData["psn_name"] = struct3506.PsnName                     // 人员编号 (来自1101接口返回)
1936
+	inputData["manu_lotnum"] = struct3506.ManuLotnum               // 人员编号 (来自1101接口返回)
1937
+	inputData["manu_date"] = struct3506.ManuDate                   // 人员编号 (来自1101接口返回)
1938
+	inputData["expy_end"] = struct3506.ExpyEnd                     // 人员编号 (来自1101接口返回)
1939
+	inputData["rx_flag"] = struct3506.RxFlag                       // 人员编号 (来自1101接口返回)
1940
+	inputData["trdn_flag"] = struct3506.TrdnFlag                   // 人员编号 (来自1101接口返回)
1941
+	inputData["finl_trns_pric"] = struct3506.FinlTrnsPric          // 人员编号 (来自1101接口返回)
1942
+	inputData["sel_retn_cnt"] = struct3506.SelRetnCnt              // 人员编号 (来自1101接口返回)
1943
+	inputData["sel_retn_time"] = struct3506.SelRetnTime            // 人员编号 (来自1101接口返回)
1944
+	inputData["sel_retn_opter_name"] = struct3506.SelRetnOpterName // 人员编号 (来自1101接口返回)
1945
+	inputData["memo"] = ""                                         // 人员编号 (来自1101接口返回)
1946
+	inputData["medins_prod_sel_no"] = ""                           // 人员编号 (来自1101接口返回)
1947
+
1948
+	input["selinfo"] = inputData
1949
+	inputMessage["input"] = input //交易输入
1950
+
1951
+	bytesData, err := json.Marshal(inputMessage)
1952
+	fmt.Println(string(bytesData))
1953
+	if err != nil {
1954
+		fmt.Println(err.Error())
1955
+		return err.Error(), ""
1956
+	}
1957
+	struct3506.RequestUrl = struct3506.RequestUrl + "3506"
1958
+	return HttpRequest(struct3506.RequestUrl, struct3506.AccessKey, struct3506.SecretKey, timestamp, string(bytesData)), string(bytesData)
1959
+
1960
+}
1961
+
1962
+func Jsyb3507(struct3507 models.Struct3507) (string, string) {
1963
+	timestamp := time.Now().Unix()
1964
+	// 生成输入报文
1965
+	inputMessage := SetJSInputMessage(timestamp, struct3507.OrgName, struct3507.Opter, struct3507.FixmedinsCode, struct3507.InsuplcAdmdvs, struct3507.MdtrtareaAdmvs, struct3507.Cainfo)
1966
+	input := make(map[string]interface{})
1967
+	inputData := make(map[string]interface{})
1968
+	inputMessage["infno"] = "3507"                          // 交易编码
1969
+	inputData["fixmedins_bchno"] = struct3507.FixmedinsCode // 人员编号 (来自1101接口返回)
1970
+	inputData["inv_data_type"] = struct3507.InvDataType     // 人员编号 (来自1101接口返回)
1971
+
1972
+	input["data"] = inputData
1973
+	inputMessage["input"] = input //交易输入
1974
+
1975
+	bytesData, err := json.Marshal(inputMessage)
1976
+	fmt.Println(string(bytesData))
1977
+	if err != nil {
1978
+		fmt.Println(err.Error())
1979
+		return err.Error(), ""
1980
+	}
1981
+	struct3507.RequestUrl = struct3507.RequestUrl + "3507"
1982
+	return HttpRequest(struct3507.RequestUrl, struct3507.AccessKey, struct3507.SecretKey, timestamp, string(bytesData)), string(bytesData)
1983
+
1984
+}