Browse Source

Merge branch '20230223_xt_api_new_branch' of http://git.shengws.com/csx/XT_New into 20230223_xt_api_new_branch

28169 1 month ago
parent
commit
138a24b045

+ 198 - 158
controllers/his_charge_api_controller.go View File

@@ -8,6 +8,7 @@ import (
8 8
 	"bytes"
9 9
 	"compress/gzip"
10 10
 	"encoding/json"
11
+	"fmt"
11 12
 	"github.com/astaxie/beego"
12 13
 	"net/http"
13 14
 	"time"
@@ -238,6 +239,8 @@ func (c *HisChargeApiController) GetChargeStatisticsDetail() {
238 239
 	keyword := c.GetString("keyword")
239 240
 	item_type, _ := c.GetInt64("type")
240 241
 
242
+	s_type, _ := c.GetInt64("s_type")
243
+
241 244
 	adminUser := c.GetAdminUserInfo()
242 245
 
243 246
 	timeLayout := "2006-01-02"
@@ -254,84 +257,26 @@ func (c *HisChargeApiController) GetChargeStatisticsDetail() {
254 257
 	}
255 258
 	endRecordDateTime := endTime.Unix()
256 259
 
257
-	switch item_type {
258
-	case 0:
259
-		chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
260
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
261
-		chargeDrug = append(chargeDrug, chargeProject...)
262
-		b, _ := structToBytes(chargeDrug)
263
-		//cd, _ := compressData(b)
264
-		// 使用 Gzip 压缩数据
265
-		var compressedData bytes.Buffer
266
-		writer := gzip.NewWriter(&compressedData)
267
-		_, err = writer.Write(b)
268
-		if err != nil {
269
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
270
-			c.Ctx.WriteString(err.Error())
271
-			return
260
+	if s_type > 0 {
261
+		type NewDate struct {
262
+			Patients []*models.NewChargeDetail
263
+			Results  []service.MedicalChargesTwo
272 264
 		}
273
-		writer.Close()
265
+		reuslt, _ := service.GetHisOrderSummary(adminUser.CurrentOrgId, start_time, end_time)
266
+		fmt.Println(reuslt)
267
+		chargeDrug, _ := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
268
+		chargeProject, _ := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
269
+		chargeDrug = append(chargeDrug, chargeProject...)
274 270
 
275
-		// 设置响应头,表明数据经过了 Gzip 压缩
276
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
277
-		// 发送压缩后的数据
278
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
279
-		break
280
-	case 1:
281
-		chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
282
-		//chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
283
-		//chargeDrug = append(chargeDrug, chargeProject...)
284
-		b, _ := structToBytes(chargeDrug)
285
-		//cd, _ := compressData(b)
286
-		// 使用 Gzip 压缩数据
287
-		var compressedData bytes.Buffer
288
-		writer := gzip.NewWriter(&compressedData)
289
-		_, err = writer.Write(b)
290
-		if err != nil {
291
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
292
-			c.Ctx.WriteString(err.Error())
293
-			return
294
-		}
295
-		writer.Close()
271
+		var dd NewDate
272
+		dd.Results = reuslt
273
+		dd.Patients = chargeDrug
296 274
 
297
-		// 设置响应头,表明数据经过了 Gzip 压缩
298
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
299
-		// 发送压缩后的数据
300
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
301
-		break
302
-	case 2:
303
-		//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
304
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
305
-		//chargeDrug = append(chargeDrug, chargeProject...)
306
-		b, _ := structToBytes(chargeProject)
307
-		//cd, _ := compressData(b)
308
-		// 使用 Gzip 压缩数据
309
-		var compressedData bytes.Buffer
310
-		writer := gzip.NewWriter(&compressedData)
311
-		_, err = writer.Write(b)
312
-		if err != nil {
313
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
314
-			c.Ctx.WriteString(err.Error())
315
-			return
316
-		}
317
-		writer.Close()
275
+		data, _ := json.Marshal(dd)
318 276
 
319
-		// 设置响应头,表明数据经过了 Gzip 压缩
320
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
321
-		// 发送压缩后的数据
322
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
323
-		break
324
-
325
-	case 3:
326
-		//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
327
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
328
-		//chargeDrug = append(chargeDrug, chargeProject...)
329
-		b, _ := structToBytes(chargeProject)
330
-		//cd, _ := compressData(b)
331
-		// 使用 Gzip 压缩数据
332 277
 		var compressedData bytes.Buffer
333 278
 		writer := gzip.NewWriter(&compressedData)
334
-		_, err = writer.Write(b)
279
+		_, err = writer.Write(data)
335 280
 		if err != nil {
336 281
 			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
337 282
 			c.Ctx.WriteString(err.Error())
@@ -343,95 +288,190 @@ func (c *HisChargeApiController) GetChargeStatisticsDetail() {
343 288
 		c.Ctx.Output.Header("Content-Encoding", "gzip")
344 289
 		// 发送压缩后的数据
345 290
 		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
346
-		break
347
-	case 4:
348
-		//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
349
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
350
-		//chargeDrug = append(chargeDrug, chargeProject...)
351
-		b, _ := structToBytes(chargeProject)
352
-		//cd, _ := compressData(b)
353
-		// 使用 Gzip 压缩数据
354
-		var compressedData bytes.Buffer
355
-		writer := gzip.NewWriter(&compressedData)
356
-		_, err = writer.Write(b)
357
-		if err != nil {
358
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
359
-			c.Ctx.WriteString(err.Error())
360
-			return
361
-		}
362
-		writer.Close()
363
-
364
-		// 设置响应头,表明数据经过了 Gzip 压缩
365
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
366
-		// 发送压缩后的数据
367
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
368
-		break
369
-	case 5:
370
-		//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
371
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
372
-		//chargeDrug = append(chargeDrug, chargeProject...)
373
-		b, _ := structToBytes(chargeProject)
374
-		//cd, _ := compressData(b)
375
-		// 使用 Gzip 压缩数据
376
-		var compressedData bytes.Buffer
377
-		writer := gzip.NewWriter(&compressedData)
378
-		_, err = writer.Write(b)
379
-		if err != nil {
380
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
381
-			c.Ctx.WriteString(err.Error())
382
-			return
383
-		}
384
-		writer.Close()
291
+		//b, _ := structToBytes(data)
385 292
 
386
-		// 设置响应头,表明数据经过了 Gzip 压缩
387
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
388
-		// 发送压缩后的数据
389
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
390
-		break
391
-	case 6:
392
-		//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
393
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
394
-		//chargeDrug = append(chargeDrug, chargeProject...)
395
-		b, _ := structToBytes(chargeProject)
396
-		//cd, _ := compressData(b)
397
-		// 使用 Gzip 压缩数据
398
-		var compressedData bytes.Buffer
399
-		writer := gzip.NewWriter(&compressedData)
400
-		_, err = writer.Write(b)
401
-		if err != nil {
402
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
403
-			c.Ctx.WriteString(err.Error())
404
-			return
405
-		}
406
-		writer.Close()
293
+	} else {
294
+		switch item_type {
295
+		case 0:
296
+			reuslt, _ := service.GetHisOrderSummary(adminUser.CurrentOrgId, start_time, end_time)
297
+			fmt.Println(reuslt)
298
+			chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
299
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
300
+			chargeDrug = append(chargeDrug, chargeProject...)
301
+			b, _ := structToBytes(chargeDrug)
302
+			//cd, _ := compressData(b)
303
+			// 使用 Gzip 压缩数据
304
+			var compressedData bytes.Buffer
305
+			writer := gzip.NewWriter(&compressedData)
306
+			_, err = writer.Write(b)
307
+			if err != nil {
308
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
309
+				c.Ctx.WriteString(err.Error())
310
+				return
311
+			}
312
+			writer.Close()
313
+
314
+			// 设置响应头,表明数据经过了 Gzip 压缩
315
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
316
+			// 发送压缩后的数据
317
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
318
+			break
319
+		case 1:
320
+			chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
321
+			//chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
322
+			//chargeDrug = append(chargeDrug, chargeProject...)
323
+			b, _ := structToBytes(chargeDrug)
324
+			//cd, _ := compressData(b)
325
+			// 使用 Gzip 压缩数据
326
+			var compressedData bytes.Buffer
327
+			writer := gzip.NewWriter(&compressedData)
328
+			_, err = writer.Write(b)
329
+			if err != nil {
330
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
331
+				c.Ctx.WriteString(err.Error())
332
+				return
333
+			}
334
+			writer.Close()
335
+
336
+			// 设置响应头,表明数据经过了 Gzip 压缩
337
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
338
+			// 发送压缩后的数据
339
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
340
+			break
341
+		case 2:
342
+			//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
343
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
344
+			//chargeDrug = append(chargeDrug, chargeProject...)
345
+			b, _ := structToBytes(chargeProject)
346
+			//cd, _ := compressData(b)
347
+			// 使用 Gzip 压缩数据
348
+			var compressedData bytes.Buffer
349
+			writer := gzip.NewWriter(&compressedData)
350
+			_, err = writer.Write(b)
351
+			if err != nil {
352
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
353
+				c.Ctx.WriteString(err.Error())
354
+				return
355
+			}
356
+			writer.Close()
357
+
358
+			// 设置响应头,表明数据经过了 Gzip 压缩
359
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
360
+			// 发送压缩后的数据
361
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
362
+			break
363
+		case 3:
364
+			//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
365
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
366
+			//chargeDrug = append(chargeDrug, chargeProject...)
367
+			b, _ := structToBytes(chargeProject)
368
+			//cd, _ := compressData(b)
369
+			// 使用 Gzip 压缩数据
370
+			var compressedData bytes.Buffer
371
+			writer := gzip.NewWriter(&compressedData)
372
+			_, err = writer.Write(b)
373
+			if err != nil {
374
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
375
+				c.Ctx.WriteString(err.Error())
376
+				return
377
+			}
378
+			writer.Close()
379
+
380
+			// 设置响应头,表明数据经过了 Gzip 压缩
381
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
382
+			// 发送压缩后的数据
383
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
384
+			break
385
+		case 4:
386
+			//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
387
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
388
+			//chargeDrug = append(chargeDrug, chargeProject...)
389
+			b, _ := structToBytes(chargeProject)
390
+			//cd, _ := compressData(b)
391
+			// 使用 Gzip 压缩数据
392
+			var compressedData bytes.Buffer
393
+			writer := gzip.NewWriter(&compressedData)
394
+			_, err = writer.Write(b)
395
+			if err != nil {
396
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
397
+				c.Ctx.WriteString(err.Error())
398
+				return
399
+			}
400
+			writer.Close()
401
+
402
+			// 设置响应头,表明数据经过了 Gzip 压缩
403
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
404
+			// 发送压缩后的数据
405
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
406
+			break
407
+		case 5:
408
+			//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
409
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
410
+			//chargeDrug = append(chargeDrug, chargeProject...)
411
+			b, _ := structToBytes(chargeProject)
412
+			//cd, _ := compressData(b)
413
+			// 使用 Gzip 压缩数据
414
+			var compressedData bytes.Buffer
415
+			writer := gzip.NewWriter(&compressedData)
416
+			_, err = writer.Write(b)
417
+			if err != nil {
418
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
419
+				c.Ctx.WriteString(err.Error())
420
+				return
421
+			}
422
+			writer.Close()
423
+
424
+			// 设置响应头,表明数据经过了 Gzip 压缩
425
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
426
+			// 发送压缩后的数据
427
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
428
+			break
429
+		case 6:
430
+			//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
431
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
432
+			//chargeDrug = append(chargeDrug, chargeProject...)
433
+			b, _ := structToBytes(chargeProject)
434
+			//cd, _ := compressData(b)
435
+			// 使用 Gzip 压缩数据
436
+			var compressedData bytes.Buffer
437
+			writer := gzip.NewWriter(&compressedData)
438
+			_, err = writer.Write(b)
439
+			if err != nil {
440
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
441
+				c.Ctx.WriteString(err.Error())
442
+				return
443
+			}
444
+			writer.Close()
445
+
446
+			// 设置响应头,表明数据经过了 Gzip 压缩
447
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
448
+			// 发送压缩后的数据
449
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
450
+			break
451
+		case 7:
452
+			//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
453
+			chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
454
+			//chargeDrug = append(chargeDrug, chargeProject...)
455
+			b, _ := structToBytes(chargeProject)
456
+			//cd, _ := compressData(b)
457
+			// 使用 Gzip 压缩数据
458
+			var compressedData bytes.Buffer
459
+			writer := gzip.NewWriter(&compressedData)
460
+			_, err = writer.Write(b)
461
+			if err != nil {
462
+				c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
463
+				c.Ctx.WriteString(err.Error())
464
+				return
465
+			}
466
+			writer.Close()
467
+
468
+			// 设置响应头,表明数据经过了 Gzip 压缩
469
+			c.Ctx.Output.Header("Content-Encoding", "gzip")
470
+			// 发送压缩后的数据
471
+			c.Ctx.ResponseWriter.Write(compressedData.Bytes())
472
+			break
407 473
 
408
-		// 设置响应头,表明数据经过了 Gzip 压缩
409
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
410
-		// 发送压缩后的数据
411
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
412
-		break
413
-	case 7:
414
-		//chargeDrug, err := service.GetNewAllPatientDrugChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type)
415
-		chargeProject, err := service.GetNewAllPatientProjectAndGoodChargeDetails(adminUser.CurrentOrgId, start_time+" 00:00:00", end_time+" 23:59:59", startRecordDateTime, endRecordDateTime, keyword, item_type, time_type)
416
-		//chargeDrug = append(chargeDrug, chargeProject...)
417
-		b, _ := structToBytes(chargeProject)
418
-		//cd, _ := compressData(b)
419
-		// 使用 Gzip 压缩数据
420
-		var compressedData bytes.Buffer
421
-		writer := gzip.NewWriter(&compressedData)
422
-		_, err = writer.Write(b)
423
-		if err != nil {
424
-			c.Ctx.ResponseWriter.WriteHeader(http.StatusInternalServerError)
425
-			c.Ctx.WriteString(err.Error())
426
-			return
427 474
 		}
428
-		writer.Close()
429
-
430
-		// 设置响应头,表明数据经过了 Gzip 压缩
431
-		c.Ctx.Output.Header("Content-Encoding", "gzip")
432
-		// 发送压缩后的数据
433
-		c.Ctx.ResponseWriter.Write(compressedData.Bytes())
434
-		break
435 475
 
436 476
 	}
437 477
 

+ 2 - 1
controllers/new_stock_api_controller.go View File

@@ -169,6 +169,7 @@ func (this *NewStockApiController) GetHisDrugCodeQuery() {
169 169
 	page, _ := this.GetInt64("page")
170 170
 	is_sale, _ := this.GetInt64("is_sale")
171 171
 	is_settle, _ := this.GetInt64("is_settle")
172
+	is_code, _ := this.GetInt64("is_code")
172 173
 
173 174
 	orgId := this.GetAdminUserInfo().CurrentOrgId
174 175
 	timeLayout := "2006-01-02"
@@ -193,7 +194,7 @@ func (this *NewStockApiController) GetHisDrugCodeQuery() {
193 194
 		endTime = theTime.Unix()
194 195
 	}
195 196
 
196
-	list, total, _ := service.GetHisDrugCodeQuery(orgId, startTime, endTime, limit, page, is_sale, is_settle, keywords)
197
+	list, total, _ := service.GetHisDrugCodeQuery(orgId, startTime, endTime, limit, page, is_sale, is_settle, keywords, is_code)
197 198
 
198 199
 	drug, _ := service.GetAllDrugList(orgId)
199 200
 

+ 39 - 0
service/export_data_service.go View File

@@ -393,3 +393,42 @@ func GetHisOrderBy10697SummaryTwo(startTime, endTime, ins string, st_stamp, end_
393 393
 
394 394
 	return results, nil
395 395
 }
396
+
397
+type MedicalChargesTwo struct {
398
+	TotalMedicalFee float64 `gorm:"column:医疗费总额"`     // 医疗费总额
399
+	Fund            float64 `gorm:"column:基金支付总金额"`   // 个人自付金额
400
+	AcctPay         float64 `gorm:"column:个人账户支付总金额"` // 基本账户支付
401
+	PsnPay          float64 `gorm:"column:个人自付总金额"`   // 基本账户支付
402
+	PoolFundPay     float64 `gorm:"column:基金统筹总金额"`   // 统筹支付金额
403
+	DaE             float64 `gorm:"column:大额支付总金额"`   // 统筹支付金额
404
+	XianXing        float64 `gorm:"column:先行自付总金额"`   // 统筹支付金额
405
+	QuanZiFei       float64 `gorm:"column:全自费总金额"`    // 统筹支付金额
406
+	YiLiaoJiuZhu    float64 `gorm:"column:医疗救助基金总额"`  // 统筹支付金额
407
+	DaBing          float64 `gorm:"column:大病基金总额"`    // 统筹支付金额
408
+	GongWuYuan      float64 `gorm:"column:公务员补助"`     // 统筹支付金额
409
+	QiYe            float64 `gorm:"column:企业补充支付"`    // 统筹支付金额
410
+	QiTa            float64 `gorm:"column:其它支付"`      // 统筹支付金额
411
+}
412
+
413
+func GetHisOrderSummary(org_id int64, start_time string, end_time string) (results []MedicalChargesTwo, err error) {
414
+	err = readDb.Table("his_order").
415
+		Select(`
416
+        SUM(his_order.medfee_sumamt) AS 医疗费总额,
417
+        SUM(his_order.fund_pay_sumamt) AS 基金支付总金额,
418
+        SUM(his_order.acct_pay) AS 个人账户支付总金额,
419
+        SUM(his_order.psn_cash_pay) AS 个人自付总金额,
420
+        SUM(his_order.hifp_pay) AS 基金统筹总金额,
421
+        SUM(his_order.hifob_pay) AS 大额支付总金额,
422
+        SUM(his_order.preselfpay_amt) AS 先行自付总金额,
423
+        SUM(his_order.fulamt_ownpay_amt) AS 全自费总金额,
424
+        SUM(his_order.maf_pay) AS 医疗救助基金总额,
425
+        SUM(his_order.hifmi_pay) AS 大病支付,
426
+        SUM(his_order.cvlserv_pay) AS 公务员补助,
427
+        SUM(his_order.hifes_pay) AS 企业补充支付,
428
+        SUM(his_order.oth_pay) AS 其它支付
429
+    `).
430
+		Where("his_order.user_org_id = ? AND his_order.order_status = ? AND his_order.setl_time >= ? AND his_order.setl_time <= ?  AND his_order.STATUS = ?",
431
+			org_id, 2, start_time+" 00:00:00", end_time+" 23:59:59", 1).
432
+		Scan(&results).Error
433
+	return
434
+}

+ 4 - 4
service/his_charge_service.go View File

@@ -712,14 +712,14 @@ func GetAllPatientChargeSettleTwo(org_id int64, start_time int64, end_time int64
712 712
 
713 713
 			break
714 714
 		case 5:
715
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 390", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
716
-				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 ", start_time, end_time, org_id).Order("ctime")
715
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 390 and is_medicine_insurance = 1", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
716
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 and is_medicine_insurance = 1", start_time, end_time, org_id).Order("ctime")
717 717
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
718 718
 
719 719
 			break
720 720
 		case 6:
721
-			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 310 ", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
722
-				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id).Order("ctime")
721
+			err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.ctime >= ? AND orders.ctime <= ? AND orders.user_org_id = ? AND orders.order_status = 2 AND orders.insutype = 310 and is_medicine_insurance = 1", start_time, end_time, org_id).Preload("TempDialysisOrder", "status = 1 and dialysis_date >= ? and dialysis_date <= ?", start_time, end_time).Preload("HisChargeSettleOrder", func(db *gorm.DB) *gorm.DB {
722
+				return db.Preload("OrderSchedule", "status = 1 and user_org_id = ?", org_id).Preload("OrderHisPatient", "status = 1").Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2 and is_medicine_insurance = 1", start_time, end_time, org_id).Order("ctime")
723 723
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
724 724
 
725 725
 			break

+ 11 - 1
service/stock_service.go View File

@@ -11019,7 +11019,7 @@ func SaveDrugOpen(open models.XtDrugCodeOpen) error {
11019 11019
 	return err
11020 11020
 }
11021 11021
 
11022
-func GetHisDrugCodeQuery(orgId int64, start_time int64, end_time int64, limit int64, page int64, is_sale int64, is_settle int64, keywords string) (list []*models.NewHisDoctorAdviceInfo, total int64, err error) {
11022
+func GetHisDrugCodeQuery(orgId int64, start_time int64, end_time int64, limit int64, page int64, is_sale int64, is_settle int64, keywords string, is_code int64) (list []*models.NewHisDoctorAdviceInfo, total int64, err error) {
11023 11023
 
11024 11024
 	db := XTReadDB().Model(&models.NewHisDoctorAdviceInfo{}).Preload("NewHisPrescription", "status = 1").Where("his_doctor_advice_info.status=1")
11025 11025
 	if is_settle == 2 {
@@ -11028,6 +11028,16 @@ func GetHisDrugCodeQuery(orgId int64, start_time int64, end_time int64, limit in
11028 11028
 	} else if is_settle == 1 {
11029 11029
 		db = db.Joins("join his_prescription on his_prescription.id = his_doctor_advice_info.prescription_id and his_prescription.order_status <> 2 and his_prescription.status = 1")
11030 11030
 	}
11031
+	if is_code == 2 {
11032
+		//db = db.Joins("join his_prescription on his_prescription.id = his_doctor_advice_info.prescription_id and his_prescription.order_status = 2 and his_prescription.status = 1")
11033
+
11034
+		db = db.Where("his_doctor_advice_info.drug_code <> ''")
11035
+
11036
+	} else if is_code == 1 {
11037
+
11038
+		db = db.Where("length(his_doctor_advice_info.drug_code) = 0")
11039
+
11040
+	}
11031 11041
 
11032 11042
 	if len(keywords) > 0 {
11033 11043
 		keywords = "%" + keywords + "%"