|
@@ -457,7 +457,108 @@ func CreateDrugWarehousingInfo(warehousingInfo []*models.DrugWarehouseInfo) (err
|
457
|
457
|
utx.Commit()
|
458
|
458
|
}
|
459
|
459
|
return
|
|
460
|
+}
|
|
461
|
+
|
|
462
|
+func UpdateDrugInfo(warehousingInfo []*models.DrugWarehouseInfo) (err error) {
|
|
463
|
+ var total float64
|
|
464
|
+ var min_number int64
|
|
465
|
+ for _, item := range warehousingInfo {
|
|
466
|
+ //查询刚入库耗材的库存
|
|
467
|
+ count, _ := FindDrugWaresingCount(item.DrugId, item.OrgId)
|
|
468
|
+ //更新药品库的总量
|
|
469
|
+ info, _ := FindeDrugInfo(item.DrugId)
|
|
470
|
+
|
|
471
|
+ min_number = count.StockMaxNumber * info.MinNumber
|
|
472
|
+ str := strconv.FormatInt(min_number, 10)
|
|
473
|
+ minFloat, _ := strconv.ParseFloat(str, 64)
|
|
474
|
+ total = info.Total + minFloat
|
|
475
|
+ lib := models.BaseDrugLib{
|
|
476
|
+ Total: total,
|
|
477
|
+ }
|
|
478
|
+ UpdateBaseDrug(&lib, item.ID)
|
|
479
|
+ }
|
|
480
|
+ return err
|
|
481
|
+}
|
|
482
|
+
|
|
483
|
+func FindDrugWaresingCount(drug_id int64, orgid int64) (models.XtDrugWarehouseInfo, error) {
|
|
484
|
+
|
|
485
|
+ info := models.XtDrugWarehouseInfo{}
|
|
486
|
+ db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
|
|
487
|
+ err = db.Select("x.stock_max_number,x.drug_id").Where("x.drug_id = ? and x.org_id = ? and x.status =1", drug_id, orgid).Last(&info).Error
|
|
488
|
+ return info, err
|
|
489
|
+}
|
|
490
|
+
|
|
491
|
+func FindeDrugInfo(drug_id int64) (models.BaseDrugLib, error) {
|
|
492
|
+
|
|
493
|
+ lib := models.BaseDrugLib{}
|
|
494
|
+ err := XTReadDB().Model(&lib).Where("id = ?", drug_id).Find(&lib).Error
|
|
495
|
+ return lib, err
|
|
496
|
+}
|
|
497
|
+
|
|
498
|
+func UpdateBaseDrug(lib *models.BaseDrugLib, id int64) error {
|
|
499
|
+
|
|
500
|
+ err := XTWriteDB().Model(&lib).Where("id = ?", id).Updates(map[string]interface{}{"total": lib.Total}).Error
|
|
501
|
+ return err
|
|
502
|
+}
|
|
503
|
+
|
|
504
|
+func CreateDrugFlow(drugflow []*models.DrugFlow) (err error) {
|
|
505
|
+ if len(drugflow) > 0 {
|
|
506
|
+ utx := writeDb.Begin()
|
|
507
|
+ if len(drugflow) > 0 {
|
|
508
|
+ thisSQL := "INSERT INTO xt_drug_flow (warehousing_id, drug_id, number,batch_number,count,user_org_id,patient_id,system_time,consumable_type,is_sys,warehousing_order,warehouse_out_id,warehouse_out_order_number,is_edit,cancel_stock_id,cancel_order_number,manufacturer,dealer,creator,update_creator,status,ctime,mtime,price,warehousing_detail_id,warehouse_out_detail_id,cancel_out_detail_id,expire_date,product_date,max_unit,min_unit ) VALUES "
|
|
509
|
+ insertParams := make([]string, 0)
|
|
510
|
+ insertData := make([]interface{}, 0)
|
|
511
|
+ for _, info := range drugflow {
|
|
512
|
+ insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
|
513
|
+ insertData = append(insertData, info.WarehousingId)
|
|
514
|
+ insertData = append(insertData, info.DrugId)
|
|
515
|
+ insertData = append(insertData, info.Number)
|
|
516
|
+ insertData = append(insertData, info.BatchNumber)
|
|
517
|
+ insertData = append(insertData, info.Count)
|
|
518
|
+ insertData = append(insertData, info.UserOrgId)
|
|
519
|
+ insertData = append(insertData, info.PatientId)
|
|
520
|
+ insertData = append(insertData, info.SystemTime)
|
|
521
|
+ insertData = append(insertData, info.ConsumableType)
|
|
522
|
+ insertData = append(insertData, info.IsSys)
|
|
523
|
+ insertData = append(insertData, info.WarehousingOrder)
|
|
524
|
+ insertData = append(insertData, info.WarehouseOutId)
|
|
525
|
+ insertData = append(insertData, info.WarehouseOutOrderNumber)
|
|
526
|
+
|
|
527
|
+ insertData = append(insertData, info.IsEdit)
|
|
528
|
+ insertData = append(insertData, info.CancelStockId)
|
|
529
|
+ insertData = append(insertData, info.CancelOrderNumber)
|
|
530
|
+ insertData = append(insertData, info.Manufacturer)
|
|
531
|
+ insertData = append(insertData, info.Dealer)
|
|
532
|
+ insertData = append(insertData, info.Creator)
|
|
533
|
+ insertData = append(insertData, info.UpdateCreator)
|
|
534
|
+ insertData = append(insertData, info.Status)
|
|
535
|
+ insertData = append(insertData, info.Ctime)
|
|
536
|
+ insertData = append(insertData, info.Mtime)
|
|
537
|
+ insertData = append(insertData, info.Price)
|
|
538
|
+ insertData = append(insertData, info.WarehousingDetailId)
|
|
539
|
+ insertData = append(insertData, info.WarehouseOutDetailId)
|
|
540
|
+ insertData = append(insertData, info.CancelOutDetailId)
|
|
541
|
+ insertData = append(insertData, info.ExpireDate)
|
|
542
|
+ insertData = append(insertData, info.ProductDate)
|
|
543
|
+ insertData = append(insertData, info.MaxUnit)
|
|
544
|
+ insertData = append(insertData, info.MinUnit)
|
|
545
|
+ }
|
|
546
|
+ thisSQL += strings.Join(insertParams, ", ")
|
|
547
|
+ err = utx.Exec(thisSQL, insertData...).Error
|
|
548
|
+ if err != nil {
|
|
549
|
+ utx.Rollback()
|
|
550
|
+ return
|
|
551
|
+ }
|
|
552
|
+ }
|
|
553
|
+ utx.Commit()
|
|
554
|
+ }
|
|
555
|
+ return
|
|
556
|
+}
|
|
557
|
+
|
|
558
|
+func CreateDrugFlowOne(flow models.DrugFlow) error {
|
460
|
559
|
|
|
560
|
+ err := XTWriteDB().Create(&flow).Error
|
|
561
|
+ return err
|
461
|
562
|
}
|
462
|
563
|
|
463
|
564
|
func FindLastWarehousingInfo(order string) (info models.WarehousingInfo, err error) {
|
|
@@ -467,10 +568,6 @@ func FindLastWarehousingInfo(order string) (info models.WarehousingInfo, err err
|
467
|
568
|
|
468
|
569
|
}
|
469
|
570
|
|
470
|
|
-//func FindFirstWarehousingInfoByStock(good_id int64,good_type_id int64) (info models.WarehousingInfo, err error) {
|
471
|
|
-// err = readDb.Model(&models.WarehousingInfo{}).Where("good_id = ? AND good_type_id = ? AND status = 1 and stock_count > 0", order).Order("ctime").First(&info).Error
|
472
|
|
-// return info, err
|
473
|
|
-//}
|
474
|
571
|
func FindFirstWarehousingInfoByStock(good_id int64, good_type_id int64) (info models.WarehousingInfo, err error) {
|
475
|
572
|
err = readDb.Model(&models.WarehousingInfo{}).Where("good_id = ? AND good_type_id = ? AND status = 1 and stock_count > 0", good_id, good_type_id).Order("ctime").First(&info).Error
|
476
|
573
|
return info, err
|
|
@@ -1005,11 +1102,15 @@ type DrugCancelStockInfo struct {
|
1005
|
1102
|
OrgId int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
|
1006
|
1103
|
OrderNumber string `gorm:"column:order_number" json:"order_number" form:"order_number"`
|
1007
|
1104
|
Type int64 `gorm:"column:type" json:"type" form:"type"`
|
1008
|
|
- Dealer int64 `gorm:"column:dealer" json:"dealer" form:"dealer"`
|
1009
|
|
- Manufacturer int64 `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
|
|
1105
|
+ Dealer string `gorm:"column:dealer" json:"dealer" form:"dealer"`
|
|
1106
|
+ Manufacturer string `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
|
1010
|
1107
|
RetailPrice float64 `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
|
1011
|
1108
|
RetailTotalPrice float64 `gorm:"column:retail_total_price" json:"retail_total_price" form:"retail_total_price"`
|
1012
|
1109
|
Number string `gorm:"column:number" json:"number" form:"number"`
|
|
1110
|
+ RegisterAccount string `gorm:"column:register_account" json:"register_account" form:"register_account"`
|
|
1111
|
+ Remark string `gorm:"column:remark" json:"remark" form:"remark"`
|
|
1112
|
+ BatchNumber string `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
|
|
1113
|
+ MaxUnit string `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
|
1013
|
1114
|
Drug *Drug `gorm:"ForeignKey:DrugId;AssociationForeignKey:ID" json:"drug"`
|
1014
|
1115
|
}
|
1015
|
1116
|
|
|
@@ -1108,11 +1209,11 @@ func CreateDrugWarehousingOutInfo(warehouseOutInfo []*models.DrugWarehouseOutInf
|
1108
|
1209
|
if len(warehouseOutInfo) > 0 {
|
1109
|
1210
|
utx := writeDb.Begin()
|
1110
|
1211
|
if len(warehouseOutInfo) > 0 {
|
1111
|
|
- thisSQL := "INSERT INTO xt_drug_warehouse_out_info (warehouse_out_id, drug_id, product_date,expiry_date,count,price,total_price,remark,ctime,status,org_id,warehouse_out_order_number,type,dealer,manufacturer,retail_price,retail_total_price,number,batch_number) VALUES "
|
|
1212
|
+ thisSQL := "INSERT INTO xt_drug_warehouse_out_info (warehouse_out_id, drug_id, product_date,expiry_date,count,price,total_price,remark,ctime,status,org_id,warehouse_out_order_number,type,dealer,manufacturer,retail_price,retail_total_price,number,batch_number,count_unit) VALUES "
|
1112
|
1213
|
insertParams := make([]string, 0)
|
1113
|
1214
|
insertData := make([]interface{}, 0)
|
1114
|
1215
|
for _, info := range warehouseOutInfo {
|
1115
|
|
- insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
|
1216
|
+ insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
1116
|
1217
|
insertData = append(insertData, info.WarehouseOutId)
|
1117
|
1218
|
insertData = append(insertData, info.DrugId)
|
1118
|
1219
|
insertData = append(insertData, info.ProductDate)
|
|
@@ -1132,6 +1233,7 @@ func CreateDrugWarehousingOutInfo(warehouseOutInfo []*models.DrugWarehouseOutInf
|
1132
|
1233
|
insertData = append(insertData, info.RetailTotalPrice)
|
1133
|
1234
|
insertData = append(insertData, info.Number)
|
1134
|
1235
|
insertData = append(insertData, info.BatchNumber)
|
|
1236
|
+ insertData = append(insertData, info.CountUnit)
|
1135
|
1237
|
}
|
1136
|
1238
|
thisSQL += strings.Join(insertParams, ", ")
|
1137
|
1239
|
err = utx.Exec(thisSQL, insertData...).Error
|
|
@@ -1363,11 +1465,11 @@ func CreateCancelStockInfo(cancelStockInfo []*models.CancelStockInfo) (err error
|
1363
|
1465
|
if len(cancelStockInfo) > 0 {
|
1364
|
1466
|
utx := writeDb.Begin()
|
1365
|
1467
|
if len(cancelStockInfo) > 0 {
|
1366
|
|
- thisSQL := "INSERT INTO xt_cancel_stock_info (good_id, cancel_stock_id, good_type_id, count, price,total,ctime,status,org_id,order_number,type,dealer,manufacturer) VALUES "
|
|
1468
|
+ thisSQL := "INSERT INTO xt_cancel_stock_info (good_id, cancel_stock_id, good_type_id, count, price,total,ctime,status,org_id,order_number,type,dealer,manufacturer,number,register_account,remark,product_date,expiry_date) VALUES "
|
1367
|
1469
|
insertParams := make([]string, 0)
|
1368
|
1470
|
insertData := make([]interface{}, 0)
|
1369
|
1471
|
for _, info := range cancelStockInfo {
|
1370
|
|
- insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
|
1472
|
+ insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
1371
|
1473
|
insertData = append(insertData, info.GoodId)
|
1372
|
1474
|
insertData = append(insertData, info.CancelStockId)
|
1373
|
1475
|
insertData = append(insertData, info.GoodTypeId)
|
|
@@ -1381,6 +1483,11 @@ func CreateCancelStockInfo(cancelStockInfo []*models.CancelStockInfo) (err error
|
1381
|
1483
|
insertData = append(insertData, info.Type)
|
1382
|
1484
|
insertData = append(insertData, info.Dealer)
|
1383
|
1485
|
insertData = append(insertData, info.Manufacturer)
|
|
1486
|
+ insertData = append(insertData, info.Number)
|
|
1487
|
+ insertData = append(insertData, info.RegisterAccount)
|
|
1488
|
+ insertData = append(insertData, info.Remark)
|
|
1489
|
+ insertData = append(insertData, info.ProductDate)
|
|
1490
|
+ insertData = append(insertData, info.ExpiryDate)
|
1384
|
1491
|
}
|
1385
|
1492
|
thisSQL += strings.Join(insertParams, ", ")
|
1386
|
1493
|
err = utx.Exec(thisSQL, insertData...).Error
|
|
@@ -1399,11 +1506,11 @@ func CreateDrugCancelStockInfo(cancelStockInfo []*models.DrugCancelStockInfo) (e
|
1399
|
1506
|
if len(cancelStockInfo) > 0 {
|
1400
|
1507
|
utx := writeDb.Begin()
|
1401
|
1508
|
if len(cancelStockInfo) > 0 {
|
1402
|
|
- thisSQL := "INSERT INTO xt_drug_cancel_stock_info (drug_id,cancel_stock_id, count, price,total,ctime,status,org_id,order_number,type,dealer,manufacturer,retail_price,retail_total_price) VALUES "
|
|
1509
|
+ thisSQL := "INSERT INTO xt_drug_cancel_stock_info (drug_id,cancel_stock_id, count, price,total,ctime,status,org_id,order_number,type,dealer,manufacturer,retail_price,retail_total_price,register_account,batch_number,remark,max_unit,product_date,expiry_date) VALUES "
|
1403
|
1510
|
insertParams := make([]string, 0)
|
1404
|
1511
|
insertData := make([]interface{}, 0)
|
1405
|
1512
|
for _, info := range cancelStockInfo {
|
1406
|
|
- insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
|
1513
|
+ insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
1407
|
1514
|
insertData = append(insertData, info.DrugId)
|
1408
|
1515
|
insertData = append(insertData, info.CancelStockId)
|
1409
|
1516
|
insertData = append(insertData, info.Count)
|
|
@@ -1418,7 +1525,12 @@ func CreateDrugCancelStockInfo(cancelStockInfo []*models.DrugCancelStockInfo) (e
|
1418
|
1525
|
insertData = append(insertData, info.Manufacturer)
|
1419
|
1526
|
insertData = append(insertData, info.RetailPrice)
|
1420
|
1527
|
insertData = append(insertData, info.RetailTotalPrice)
|
1421
|
|
-
|
|
1528
|
+ insertData = append(insertData, info.RegisterAccount)
|
|
1529
|
+ insertData = append(insertData, info.BatchNumber)
|
|
1530
|
+ insertData = append(insertData, info.Remark)
|
|
1531
|
+ insertData = append(insertData, info.MaxUnit)
|
|
1532
|
+ insertData = append(insertData, info.ProductDate)
|
|
1533
|
+ insertData = append(insertData, info.ExpiryDate)
|
1422
|
1534
|
}
|
1423
|
1535
|
thisSQL += strings.Join(insertParams, ", ")
|
1424
|
1536
|
err = utx.Exec(thisSQL, insertData...).Error
|
|
@@ -1672,6 +1784,13 @@ func FindAllWarehouseByKeyword(orgId int64, page int64, limit int64, keywords st
|
1672
|
1784
|
return
|
1673
|
1785
|
}
|
1674
|
1786
|
|
|
1787
|
+func GetLastWarehousingById(warehousing_id int64, orgid int64) (models.WarehousingInfo, error) {
|
|
1788
|
+
|
|
1789
|
+ info := models.WarehousingInfo{}
|
|
1790
|
+ err = XTReadDB().Model(&info).Where("warehousing_id = ? and good_id = ? and status = 1", warehousing_id, orgid).Find(&info).Error
|
|
1791
|
+ return info, err
|
|
1792
|
+}
|
|
1793
|
+
|
1675
|
1794
|
func UpDateWarehousingInfo(info *models.WarehousingInfo) (err error) {
|
1676
|
1795
|
err = writeDb.Save(&info).Error
|
1677
|
1796
|
return err
|
|
@@ -1682,6 +1801,20 @@ func UpDateDrugWarehousingInfo(info *models.DrugWarehouseInfo) (err error) {
|
1682
|
1801
|
return err
|
1683
|
1802
|
}
|
1684
|
1803
|
|
|
1804
|
+func GetDrugWarehouseOrderOne(id int64, drug_id int64) (models.DrugWarehouseInfo, error) {
|
|
1805
|
+
|
|
1806
|
+ info := models.DrugWarehouseInfo{}
|
|
1807
|
+ err = XTReadDB().Model(&info).Where("warehousing_id = ? and drug_id = ?", id, drug_id).Find(&info).Error
|
|
1808
|
+ return info, err
|
|
1809
|
+}
|
|
1810
|
+
|
|
1811
|
+func GetDrugWarehouseOrder(id int64) (models.DrugWarehouseInfo, error) {
|
|
1812
|
+
|
|
1813
|
+ info := models.DrugWarehouseInfo{}
|
|
1814
|
+ err = XTReadDB().Model(&info).Where("id = ?", id).Find(&info).Error
|
|
1815
|
+ return info, err
|
|
1816
|
+}
|
|
1817
|
+
|
1685
|
1818
|
func EditWarehousing(warehouse models.Warehousing) {
|
1686
|
1819
|
err = readDb.Model(&models.Warehousing{}).Where("warehousing_order = ? AND status = 1", warehouse.WarehousingOrder).Update(map[string]interface{}{"mtime": time.Now().Unix(), "warehousing_time": warehouse.WarehousingTime, "modifier": warehouse.Modifier, "dealer": warehouse.Dealer, "manufacturer": warehouse.Manufacturer}).Error
|
1687
|
1820
|
|
|
@@ -2310,7 +2443,6 @@ func FindDrugStockOutByIsSys(org_id int64, is_sys int, record_time int64) (out m
|
2310
|
2443
|
func FindLastStockInInfoRecord(good_id int64, org_id int64) (in models.WarehousingInfo, err error) {
|
2311
|
2444
|
err = readDb.Model(&models.WarehousingInfo{}).Where("status = 1 AND org_id = ? AND good_id = ?", org_id, good_id).Last(&in).Error
|
2312
|
2445
|
return
|
2313
|
|
-
|
2314
|
2446
|
}
|
2315
|
2447
|
|
2316
|
2448
|
func FindLastDrugStockInInfoRecord(drug_id int64, org_id int64) (in models.DrugWarehouseOutInfo, err error) {
|
|
@@ -2415,6 +2547,12 @@ func FindStockOutInfoByStockOne(org_id int64, good_type_id int64, good_id int64,
|
2415
|
2547
|
return
|
2416
|
2548
|
}
|
2417
|
2549
|
|
|
2550
|
+func FindStockOutInfoByStockTwo(org_id int64, good_type_id int64, good_id int64, record_date int64, patient_id int64) (models.WarehouseOutInfo, error) {
|
|
2551
|
+ info := models.WarehouseOutInfo{}
|
|
2552
|
+ err = readDb.Model(&info).Where("status = 1 AND org_id = ? AND good_type_id = ? AND good_id = ? AND is_sys = 1 AND sys_record_time = ? and patient_id = ?", org_id, good_type_id, good_id, record_date, patient_id).Order("ctime desc").Find(&info).Error
|
|
2553
|
+ return info, err
|
|
2554
|
+}
|
|
2555
|
+
|
2418
|
2556
|
func FindDrugStockOutInfoByTypeId(org_id int64, drug_id int64, out_id int64, number string) (out models.DrugWarehouseOutInfo, err error) {
|
2419
|
2557
|
err = readDb.Model(&models.DrugWarehouseOutInfo{}).Where("status = 1 AND org_id = ? AND drug_id = ? AND is_sys = 1 AND (warehouse_out_id = ? or warehouse_out_order_number = ?)", org_id, drug_id, out_id, number).First(&out).Error
|
2420
|
2558
|
return
|
|
@@ -2964,6 +3102,11 @@ func UpDateWarehouseInfoByStockDelete(id int64, count int64) (err error) {
|
2964
|
3102
|
return err
|
2965
|
3103
|
}
|
2966
|
3104
|
|
|
3105
|
+func UpDateWarehouseInfoByStockDeleteOne(id int64, count int64) (err error) {
|
|
3106
|
+ err = writeDb.Model(&models.WarehousingInfo{}).Where("id = ?", id).UpdateColumn("stock_count", gorm.Expr("stock_count - ?", count)).Error
|
|
3107
|
+ return err
|
|
3108
|
+}
|
|
3109
|
+
|
2967
|
3110
|
func GetAutoDialysisBefor(goodid int64, goodtypeid int64, patientid int64, orgid int64, recorddate int64) (*models.BloodAutomaticReduceDetail, error) {
|
2968
|
3111
|
|
2969
|
3112
|
var autoreduece models.BloodAutomaticReduceDetail
|
|
@@ -3059,7 +3202,7 @@ func GetStockOutList(good_id int64, orgid int64, limit int64, page int64, starti
|
3059
|
3202
|
if is_sys == 3 {
|
3060
|
3203
|
db = db.Where("x.is_sys = 0")
|
3061
|
3204
|
}
|
3062
|
|
- err = db.Select("x.id,x.warehouse_out_id,x.warehouse_info_id,x.good_id,x.good_type_id,x.warehousing_out_target,x.count,x.price,x.total_price,x.product_date,x.expiry_date,x.ctime,x.org_id,x.warehouse_out_order_number,x.is_sys,x.number,x.dealer,x.manufacturer").Offset(offset).Count(&total).Scan(&info).Error
|
|
3205
|
+ err = db.Select("x.id,x.warehouse_out_id,x.warehouse_info_id,x.good_id,x.good_type_id,x.warehousing_out_target,x.count,x.price,x.total_price,x.product_date,x.expiry_date,x.ctime,x.org_id,x.warehouse_out_order_number,x.is_sys,x.number,x.dealer,x.manufacturer,x.consumable_type").Offset(offset).Count(&total).Scan(&info).Error
|
3063
|
3206
|
return info, total, err
|
3064
|
3207
|
}
|
3065
|
3208
|
|
|
@@ -3076,7 +3219,7 @@ func GetStockDrugCount(startime int64, endtime int64, orgid int64) (info []*mode
|
3076
|
3219
|
db = db.Where("x.org_id = ?", orgid)
|
3077
|
3220
|
}
|
3078
|
3221
|
|
3079
|
|
- err = db.Select("sum(x.warehousing_count) as count,x.good_id").Group("x.good_id").Scan(&info).Error
|
|
3222
|
+ err = db.Select("sum(x.warehousing_count) as count,sum(x.stock_count) as stock_count,x.good_id").Group("x.good_id").Scan(&info).Error
|
3080
|
3223
|
return info, err
|
3081
|
3224
|
}
|
3082
|
3225
|
|
|
@@ -3125,7 +3268,7 @@ func GetOrderDetialByOrderId(id int64, orgid int64) (out []*models.WarehouseOutI
|
3125
|
3268
|
if orgid > 0 {
|
3126
|
3269
|
db = db.Where("x.org_id = ?", orgid)
|
3127
|
3270
|
}
|
3128
|
|
- err = db.Select("x.id,x.warehouse_out_id,x.good_id,sum(x.count) as count,x.price,x.total_price,x.product_date,x.expiry_date,x.ctime,x.org_id,x.warehouse_out_order_number,x.type,x.dealer,t.manufacturer,x.is_sys,x.sys_record_time,x.number,x.remark,x.license_number,t.good_name,t.good_type_id,t.specification_name,t.min_number,t.packing_unit,t.min_unit").Joins("left join xt_good_information as t on t.id=x.good_id").Group("x.good_id").Order("x.ctime desc").Scan(&out).Error
|
|
3271
|
+ err = db.Select("x.id,x.warehouse_out_id,x.warehouse_info_id,x.good_id,sum(x.count) as count,x.price,x.total_price,x.product_date,x.expiry_date,x.ctime,x.org_id,x.warehouse_out_order_number,x.type,x.dealer,t.manufacturer,x.is_sys,x.sys_record_time,x.number,x.remark,x.license_number,t.good_name,t.good_type_id,t.specification_name,t.min_number,t.packing_unit,t.min_unit").Joins("left join xt_good_information as t on t.id=x.good_id").Group("x.good_id").Order("x.ctime desc").Scan(&out).Error
|
3129
|
3272
|
return out, err
|
3130
|
3273
|
}
|
3131
|
3274
|
|
|
@@ -3158,6 +3301,15 @@ func GetOrderDetialByOrderIdOne(id []string, orgid int64) (out []*models.Warehou
|
3158
|
3301
|
return out, err
|
3159
|
3302
|
}
|
3160
|
3303
|
|
|
3304
|
+func GetLastWarehouseOutInfo(ids []string, orgId int64) (info []*models.WarehouseOutInfoSix, err error) {
|
|
3305
|
+
|
|
3306
|
+ db := XTReadDB().Model(&info)
|
|
3307
|
+ db = db.Preload("GoodInfo", "status = 1")
|
|
3308
|
+ err = db.Raw("select * from(SELECT * FROM xt_warehouse_out_info WHERE warehouse_out_id IN(?) AND org_id = ? and status = 1 ORDER BY id DESC LIMIT 1000) a group by good_id", ids, orgId).Find(&info).Error
|
|
3309
|
+
|
|
3310
|
+ return info, err
|
|
3311
|
+}
|
|
3312
|
+
|
3161
|
3313
|
func FindUserDetailByIdOne(good_id int64, record_time int64, org_id int64) (user []*models.AutomaticReduceDetail, err error, total int64) {
|
3162
|
3314
|
db := readDb.Model(&models.AutomaticReduceDetail{})
|
3163
|
3315
|
db = db.Preload("GoodInfo", "org_id = ? AND status = 1", org_id)
|
|
@@ -3446,6 +3598,17 @@ func GetCancelStockOrderPrint(idstr []string) (info []*models.CancelStockInfo, e
|
3446
|
3598
|
return info, err
|
3447
|
3599
|
}
|
3448
|
3600
|
|
|
3601
|
+func GetCancelStockOrderPrintOne(idstr []string, orgid int64) (info []*models.CancelStock, err error) {
|
|
3602
|
+
|
|
3603
|
+ if len(idstr) > 0 {
|
|
3604
|
+ err = XTReadDB().Model(&info).Where("id in(?)", idstr).
|
|
3605
|
+ Preload("CancelStockInfo", func(db *gorm.DB) *gorm.DB {
|
|
3606
|
+ return XTReadDB().Where("org_id=? and status = 1", orgid).Preload("GoodInfo", "status = 1 and org_id = ?", orgid)
|
|
3607
|
+ }).Find(&info).Error
|
|
3608
|
+ }
|
|
3609
|
+ return info, err
|
|
3610
|
+}
|
|
3611
|
+
|
3449
|
3612
|
func GetCancelOutTotalCount(startime int64, endtime int64, orgid int64) (info []*models.VmCancelStockInfo, err error) {
|
3450
|
3613
|
|
3451
|
3614
|
db := XTReadDB().Table("xt_cancel_stock_info as x").Where("x.status = 1")
|
|
@@ -3507,3 +3670,324 @@ func GetDrugBatchNumber(drug_id int64, orgid int64) (info []*models.DrugWarehous
|
3507
|
3670
|
err = XTReadDB().Model(&info).Where("drug_id = ? and org_id = ? and status = 1 and batch_number <>''", drug_id, orgid).Find(&info).Error
|
3508
|
3671
|
return info, err
|
3509
|
3672
|
}
|
|
3673
|
+
|
|
3674
|
+func ExportDrugList(warehouse_out_id []string) (out []*models.StDrugWarehouseInfo, err error) {
|
|
3675
|
+
|
|
3676
|
+ db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status =1")
|
|
3677
|
+
|
|
3678
|
+ table := XTReadDB().Table("xt_base_drug as b").Where("b.status = 1")
|
|
3679
|
+ fmt.Println("table", table)
|
|
3680
|
+ if len(warehouse_out_id) > 0 {
|
|
3681
|
+ db = db.Where("x.warehousing_id in(?)", warehouse_out_id)
|
|
3682
|
+ }
|
|
3683
|
+ err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.price,x.dealer,x.manufacturer,x.warehousing_order,x.batch_number,b.dose,b.dose_unit,b.min_number,b.min_unit,b.max_unit,b.drug_name,b.drug_type").Joins("left join xt_base_drug as b on b.id = x.drug_id").Scan(&out).Error
|
|
3684
|
+ return out, err
|
|
3685
|
+}
|
|
3686
|
+
|
|
3687
|
+func GetExportOutOrderDrugList(warehouse_out_id []string) (out []*models.StDrugWarehouseOutInfo, err error) {
|
|
3688
|
+
|
|
3689
|
+ db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1")
|
|
3690
|
+ table := XTReadDB().Table("xt_base_drug as b").Where("b.status = 1")
|
|
3691
|
+ fmt.Println("table", table)
|
|
3692
|
+ if len(warehouse_out_id) > 0 {
|
|
3693
|
+ db = db.Where("x.warehouse_out_id in(?)", warehouse_out_id)
|
|
3694
|
+ }
|
|
3695
|
+ err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.count,x.count_unit,x.price,x.product_date,x.expiry_date,x.warehouse_out_order_number,x.dealer,x.manufacturer,x.is_sys,x.sys_record_time,x.warehouse_info_id,x.number,x.batch_number,x.patient_id,b.dose,b.dose_unit,b.min_number,b.min_unit,b.max_unit,b.drug_name,b.drug_type,b.min_price").Joins("left join xt_base_drug as b on b.id = x.drug_id").Scan(&out).Error
|
|
3696
|
+ return out, err
|
|
3697
|
+}
|
|
3698
|
+
|
|
3699
|
+func GetLastGoodInformationByGoodId(goodid int64, warehouse_info_id int64, orgid int64) (models.WarehouseOutInfo, error) {
|
|
3700
|
+
|
|
3701
|
+ info := models.WarehouseOutInfo{}
|
|
3702
|
+ err := XTReadDB().Where("good_id = ? and warehouse_info_id= ? and status =1", goodid, warehouse_info_id).Last(&info).Error
|
|
3703
|
+ return info, err
|
|
3704
|
+}
|
|
3705
|
+
|
|
3706
|
+func GetTotalCountByGoodId(goodid int64) (models.WarehousingInfo, error) {
|
|
3707
|
+
|
|
3708
|
+ info := models.WarehousingInfo{}
|
|
3709
|
+
|
|
3710
|
+ db := XTReadDB().Table("xt_warehouse_info as x").Where("x.status = 1")
|
|
3711
|
+ if goodid > 0 {
|
|
3712
|
+ db = db.Where("x.good_id = ?", goodid)
|
|
3713
|
+ }
|
|
3714
|
+
|
|
3715
|
+ err := db.Select("x.good_id,sum(x.stock_count) as stock_count").Scan(&info).Error
|
|
3716
|
+ return info, err
|
|
3717
|
+}
|
|
3718
|
+
|
|
3719
|
+func GetLastGoodCountById(goodid int64, warehouse_info_id int64) (models.WarehousingInfo, error) {
|
|
3720
|
+
|
|
3721
|
+ info := models.WarehousingInfo{}
|
|
3722
|
+
|
|
3723
|
+ err := XTReadDB().Where("good_id = ? and id= ? and status = 1", goodid, warehouse_info_id).First(&info).Error
|
|
3724
|
+ return info, err
|
|
3725
|
+}
|
|
3726
|
+
|
|
3727
|
+func UpdateWarehousingInfo(info models.WarehousingInfo, id int64) error {
|
|
3728
|
+
|
|
3729
|
+ err = XTWriteDB().Model(&info).Where("id = ? and status = 1", id).Updates(map[string]interface{}{"stock_count": info.StockCount}).Error
|
|
3730
|
+ return err
|
|
3731
|
+}
|
|
3732
|
+
|
|
3733
|
+func FindFirstWarehousingInfoByGoodId(good_id int64, id int64) (info models.WarehousingInfo, err error) {
|
|
3734
|
+ err = readDb.Model(&models.WarehousingInfo{}).Where("good_id = ? AND status = 1 and id<>?", good_id, id).Order("ctime").First(&info).Error
|
|
3735
|
+ return info, err
|
|
3736
|
+}
|
|
3737
|
+
|
|
3738
|
+func CreateStockFlow(warehousingInfo []*models.VmStockFlow) (err error) {
|
|
3739
|
+ if len(warehousingInfo) > 0 {
|
|
3740
|
+ utx := writeDb.Begin()
|
|
3741
|
+ if len(warehousingInfo) > 0 {
|
|
3742
|
+ thisSQL := "INSERT INTO xt_stock_flow (warehousing_id, good_id, number, license_number, count,user_org_id,patient_id,system_time,consumable_type,is_sys,warehousing_order,warehouse_out_id,warehouse_out_order_number,is_edit,cancel_stock_id,cancel_order_number,manufacturer,dealer,creator,update_creator,status,ctime,mtime,price,warehousing_detail_id,warehouse_out_detail_id,cancel_out_detail_id,expire_date,product_date) VALUES "
|
|
3743
|
+ insertParams := make([]string, 0)
|
|
3744
|
+ insertData := make([]interface{}, 0)
|
|
3745
|
+ for _, info := range warehousingInfo {
|
|
3746
|
+ insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
|
3747
|
+ insertData = append(insertData, info.WarehousingId)
|
|
3748
|
+ insertData = append(insertData, info.GoodId)
|
|
3749
|
+ insertData = append(insertData, info.Number)
|
|
3750
|
+ insertData = append(insertData, info.LicenseNumber)
|
|
3751
|
+ insertData = append(insertData, info.Count)
|
|
3752
|
+ insertData = append(insertData, info.UserOrgId)
|
|
3753
|
+ insertData = append(insertData, info.PatientId)
|
|
3754
|
+ insertData = append(insertData, info.SystemTime)
|
|
3755
|
+ insertData = append(insertData, info.ConsumableType)
|
|
3756
|
+ insertData = append(insertData, info.IsSys)
|
|
3757
|
+ insertData = append(insertData, info.WarehousingOrder)
|
|
3758
|
+ insertData = append(insertData, info.WarehouseOutId)
|
|
3759
|
+ insertData = append(insertData, info.WarehouseOutOrderNumber)
|
|
3760
|
+ insertData = append(insertData, info.IsEdit)
|
|
3761
|
+ insertData = append(insertData, info.CancelStockId)
|
|
3762
|
+ insertData = append(insertData, info.CancelOrderNumber)
|
|
3763
|
+ insertData = append(insertData, info.Manufacturer)
|
|
3764
|
+ insertData = append(insertData, info.Dealer)
|
|
3765
|
+ insertData = append(insertData, info.Creator)
|
|
3766
|
+ insertData = append(insertData, info.UpdateCreator)
|
|
3767
|
+ insertData = append(insertData, info.Status)
|
|
3768
|
+ insertData = append(insertData, info.Ctime)
|
|
3769
|
+ insertData = append(insertData, info.Mtime)
|
|
3770
|
+ insertData = append(insertData, info.Price)
|
|
3771
|
+ insertData = append(insertData, info.WarehousingDetailId)
|
|
3772
|
+ insertData = append(insertData, info.WarehouseOutDetailId)
|
|
3773
|
+ insertData = append(insertData, info.CancelOutDetailId)
|
|
3774
|
+ insertData = append(insertData, info.ExpireDate)
|
|
3775
|
+ insertData = append(insertData, info.ProductDate)
|
|
3776
|
+ }
|
|
3777
|
+ thisSQL += strings.Join(insertParams, ", ")
|
|
3778
|
+ err = utx.Exec(thisSQL, insertData...).Error
|
|
3779
|
+ if err != nil {
|
|
3780
|
+ utx.Rollback()
|
|
3781
|
+ return
|
|
3782
|
+ }
|
|
3783
|
+ }
|
|
3784
|
+ utx.Commit()
|
|
3785
|
+ }
|
|
3786
|
+ return
|
|
3787
|
+
|
|
3788
|
+}
|
|
3789
|
+
|
|
3790
|
+func CreateStockFlowOne(flow models.VmStockFlow) error {
|
|
3791
|
+
|
|
3792
|
+ err := XTWriteDB().Create(&flow).Error
|
|
3793
|
+ return err
|
|
3794
|
+}
|
|
3795
|
+
|
|
3796
|
+func GetWarehouseOutInfoIsExist(id int64) (*models.WarehouseOutInfo, error) {
|
|
3797
|
+
|
|
3798
|
+ info := models.WarehouseOutInfo{}
|
|
3799
|
+ var err error
|
|
3800
|
+ err = XTReadDB().Model(&info).Where("id = ? and status = 1", id).Find(&info).Error
|
|
3801
|
+ if err == gorm.ErrRecordNotFound {
|
|
3802
|
+ return nil, err
|
|
3803
|
+ }
|
|
3804
|
+ if err != nil {
|
|
3805
|
+ return nil, err
|
|
3806
|
+ }
|
|
3807
|
+ return &info, nil
|
|
3808
|
+}
|
|
3809
|
+
|
|
3810
|
+func GetWarehouseOutInfoIsExistOne(good_id int64, patient_id int64, record_time int64) (*models.WarehouseOutInfo, error) {
|
|
3811
|
+
|
|
3812
|
+ info := models.WarehouseOutInfo{}
|
|
3813
|
+ var err error
|
|
3814
|
+ err = XTReadDB().Model(&info).Where("good_id = ? and sys_record_time = ? and status = 1 and patient_id = ?", good_id, record_time, patient_id).Find(&info).Error
|
|
3815
|
+ if err == gorm.ErrRecordNotFound {
|
|
3816
|
+ return nil, err
|
|
3817
|
+ }
|
|
3818
|
+ if err != nil {
|
|
3819
|
+ return nil, err
|
|
3820
|
+ }
|
|
3821
|
+ return &info, nil
|
|
3822
|
+}
|
|
3823
|
+
|
|
3824
|
+func GetStockFlowList(limit int64, page int64, consumable_type int64, orgId int64, startTime int64, endTime int64, good_id int64) (flow []*models.VmStockFlow, total int64, err error) {
|
|
3825
|
+
|
|
3826
|
+ offset := (page - 1) * limit
|
|
3827
|
+ db := XTReadDB().Model(&flow)
|
|
3828
|
+ if consumable_type > 0 {
|
|
3829
|
+ //入库
|
|
3830
|
+ if consumable_type == 1 {
|
|
3831
|
+ db = db.Where("consumable_type = ?", consumable_type)
|
|
3832
|
+ }
|
|
3833
|
+ //2 手动出库
|
|
3834
|
+ if consumable_type == 2 {
|
|
3835
|
+
|
|
3836
|
+ db = db.Where(" consumable_type = ? and is_sys = 0", consumable_type)
|
|
3837
|
+ }
|
|
3838
|
+
|
|
3839
|
+ //3.自动出库
|
|
3840
|
+ if consumable_type == 3 {
|
|
3841
|
+ db = db.Where(" consumable_type = ? and is_sys = 1", consumable_type)
|
|
3842
|
+ }
|
|
3843
|
+ }
|
|
3844
|
+ if orgId > 0 {
|
|
3845
|
+ db = db.Where("user_org_id = ?", orgId)
|
|
3846
|
+ }
|
|
3847
|
+
|
|
3848
|
+ if startTime > 0 {
|
|
3849
|
+ db = db.Where("ctime >= ?", startTime)
|
|
3850
|
+ }
|
|
3851
|
+
|
|
3852
|
+ if endTime > 0 {
|
|
3853
|
+ db = db.Where("ctime<=?", endTime)
|
|
3854
|
+ }
|
|
3855
|
+
|
|
3856
|
+ if good_id > 0 {
|
|
3857
|
+ db = db.Where("good_id = ?", good_id)
|
|
3858
|
+ }
|
|
3859
|
+
|
|
3860
|
+ err = db.Count(&total).Offset(offset).Limit(limit).Find(&flow).Error
|
|
3861
|
+
|
|
3862
|
+ return flow, total, err
|
|
3863
|
+}
|
|
3864
|
+
|
|
3865
|
+func GetLastGoodListByPatientId(recordtime int64, patientid int64, goodid int64, goodtypeid int64) (models.AutomaticReduceDetail, error) {
|
|
3866
|
+
|
|
3867
|
+ detail := models.AutomaticReduceDetail{}
|
|
3868
|
+
|
|
3869
|
+ err := XTReadDB().Model(&detail).Where("record_time = ? and patient_id = ? and good_id = ? and good_type_id = ? and status = 1", recordtime, patientid, goodid, goodtypeid).Last(&detail).Error
|
|
3870
|
+ return detail, err
|
|
3871
|
+}
|
|
3872
|
+
|
|
3873
|
+func GetLastGoodListByPatientIdOne(recordtime int64, patientid int64, goodid int64, goodtypeid int64) (models.WarehouseOutInfo, error) {
|
|
3874
|
+
|
|
3875
|
+ detail := models.WarehouseOutInfo{}
|
|
3876
|
+
|
|
3877
|
+ err := XTReadDB().Model(&detail).Where("sys_record_time = ? and patient_id = ? and good_id = ? and good_type_id = ? and status = 1", recordtime, patientid, goodid, goodtypeid).Last(&detail).Error
|
|
3878
|
+ return detail, err
|
|
3879
|
+}
|
|
3880
|
+
|
|
3881
|
+func UpdatedWarehouseOutInfo(info *models.WarehouseOutInfo, good_id int64, patient_id int64, record_time int64) error {
|
|
3882
|
+
|
|
3883
|
+ outInfo := models.WarehouseOutInfo{}
|
|
3884
|
+ err := XTWriteDB().Model(&outInfo).Where("good_id = ? and patient_id = ? and sys_record_time =? and status = 1", good_id, patient_id, record_time).Updates(map[string]interface{}{"warehouse_out_id": info.WarehouseOutId, "WarehouseOutOrderNumber": info.WarehouseOutOrderNumber, "sys_record_time": info.SysRecordTime, "good_type_id": info.GoodTypeId, "patient_id": info.PatientId, "consumable_type": info.ConsumableType, "count": info.Count, "price": info.Price, "dealer": info.Dealer, "manufacturer": info.Manufacturer, "number": info.Number, "license_number": info.LicenseNumber}).Error
|
|
3885
|
+ return err
|
|
3886
|
+}
|
|
3887
|
+
|
|
3888
|
+func GetLastWarehouOutInfoByPatientId(orgid int64, patient_id int64, record_time int64, goodid int64, good_type_id int64) (models.WarehouseOutInfo, error) {
|
|
3889
|
+
|
|
3890
|
+ info := models.WarehouseOutInfo{}
|
|
3891
|
+
|
|
3892
|
+ err = XTReadDB().Model(&info).Where("org_id = ? and patient_id = ? and sys_record_time = ? and good_id = ? and good_type_id = ? and status = 1", orgid, patient_id, record_time, goodid, good_type_id).Last(&info).Error
|
|
3893
|
+ return info, err
|
|
3894
|
+}
|
|
3895
|
+
|
|
3896
|
+func GetLastStockOut(id int64) (models.WarehousingInfo, error) {
|
|
3897
|
+
|
|
3898
|
+ info := models.WarehousingInfo{}
|
|
3899
|
+
|
|
3900
|
+ err := XTReadDB().Model(&info).Where("id = ? and status = 1", id).Find(&info).Error
|
|
3901
|
+ return info, err
|
|
3902
|
+}
|
|
3903
|
+
|
|
3904
|
+func GetDrugFlow(drugid int64, orgid int64, limit int64, page int64, startTime int64, endTime int64, stock_type int64) (drug_flow []*models.DrugFlow, total int64, err error) {
|
|
3905
|
+
|
|
3906
|
+ offset := (page - 1) * limit
|
|
3907
|
+ db := XTReadDB().Model(drug_flow)
|
|
3908
|
+ if drugid > 0 {
|
|
3909
|
+ db = db.Where("drug_id = ?", drugid)
|
|
3910
|
+ }
|
|
3911
|
+ if orgid > 0 {
|
|
3912
|
+ db = db.Where("user_org_id = ?", orgid)
|
|
3913
|
+ }
|
|
3914
|
+ if startTime > 0 {
|
|
3915
|
+ db = db.Where("ctime >=? ", startTime)
|
|
3916
|
+ }
|
|
3917
|
+ if endTime > 0 {
|
|
3918
|
+ db = db.Where("ctime<=?", endTime)
|
|
3919
|
+ }
|
|
3920
|
+ if stock_type > 0 {
|
|
3921
|
+
|
|
3922
|
+ //手动入库
|
|
3923
|
+ if stock_type == 1 {
|
|
3924
|
+ db = db.Where("consumable_type = 1")
|
|
3925
|
+ }
|
|
3926
|
+
|
|
3927
|
+ //手动出库
|
|
3928
|
+ if stock_type == 2 {
|
|
3929
|
+ db = db.Where("consumable_type = 2 and is_sys = 0")
|
|
3930
|
+ }
|
|
3931
|
+
|
|
3932
|
+ //自动出库
|
|
3933
|
+ if stock_type == 3 {
|
|
3934
|
+ db = db.Where("consumable_type = 3 and is_sys = 1")
|
|
3935
|
+ }
|
|
3936
|
+ }
|
|
3937
|
+ err = db.Count(&total).Offset(offset).Limit(limit).Order("ctime desc").Find(&drug_flow).Error
|
|
3938
|
+ return drug_flow, total, err
|
|
3939
|
+}
|
|
3940
|
+
|
|
3941
|
+func GetDrugWarehouseOutInfoIsExit(drug_id int64, patient_id int64, recordtime int64) (*models.DrugWarehouseOutInfo, error) {
|
|
3942
|
+
|
|
3943
|
+ outInfo := models.DrugWarehouseOutInfo{}
|
|
3944
|
+ var err error
|
|
3945
|
+ err = XTReadDB().Model(&outInfo).Where("drug_id = ? and patient_id = ? and status = 1 and sys_record_time = ?", drug_id, patient_id, recordtime).Find(&outInfo).Error
|
|
3946
|
+ if err == gorm.ErrRecordNotFound {
|
|
3947
|
+ return nil, err
|
|
3948
|
+ }
|
|
3949
|
+ if err != nil {
|
|
3950
|
+ return nil, err
|
|
3951
|
+ }
|
|
3952
|
+ return &outInfo, nil
|
|
3953
|
+}
|
|
3954
|
+
|
|
3955
|
+func UpdatedDrugWarehouseOutInfo(info *models.DrugWarehouseOutInfo, drug_id int64, patient_id int64, record_date int64, orgid int64) error {
|
|
3956
|
+
|
|
3957
|
+ outInfo := models.DrugWarehouseOutInfo{}
|
|
3958
|
+
|
|
3959
|
+ err := XTWriteDB().Model(&outInfo).Where("drug_id = ? and patient_id = ? and sys_record_time = ? and org_id = ?", drug_id, patient_id, record_date, orgid).Updates(map[string]interface{}{"warehouse_out_id": info.WarehouseOutId, "drug_id": info.DrugId, "count": info.Count, "count_unit": info.CountUnit, "price": info.Price, "product_date": info.ProductDate, "expiry_date": info.ExpiryDate, "mtime": info.Mtime, "ctime": info.Ctime, "org_id": info.OrgId, "warehouse_out_order_number": info.WarehouseOutOrderNumber, "dealer": info.Dealer, "manufacturer": info.Manufacturer, "is_sys": info.IsSys, "sys_record_time": info.SysRecordTime, "warehouse_info_id": info.WarehouseInfoId, "number": info.Number, "batch_number": info.BatchNumber, "patient_id": info.PatientId}).Error
|
|
3960
|
+
|
|
3961
|
+ return err
|
|
3962
|
+}
|
|
3963
|
+
|
|
3964
|
+func GetCancelExportList(startime int64, endtime int64, ids []string, orgid int64) (cancle []*models.CancelStockInfo, err error) {
|
|
3965
|
+
|
|
3966
|
+ db := XTReadDB().Model(&cancle).Where("status = 1")
|
|
3967
|
+ if startime > 0 {
|
|
3968
|
+ db = db.Where("ctime >=?", startime)
|
|
3969
|
+ }
|
|
3970
|
+ if endtime > 0 {
|
|
3971
|
+ db = db.Where("ctime <=?", endtime)
|
|
3972
|
+ }
|
|
3973
|
+ if len(ids) > 0 {
|
|
3974
|
+ db = db.Where("cancel_stock_id in(?)", ids)
|
|
3975
|
+ }
|
|
3976
|
+ if orgid > 0 {
|
|
3977
|
+ db = db.Where("org_id = ?", orgid)
|
|
3978
|
+ }
|
|
3979
|
+ db = db.Preload("GoodInfo", "status =1 and org_id = ?", orgid)
|
|
3980
|
+ err = db.Find(&cancle).Error
|
|
3981
|
+ return cancle, err
|
|
3982
|
+}
|
|
3983
|
+
|
|
3984
|
+func GetCancelStockDetail(id int64) (info []*models.DrugCancelStockInfo, err error) {
|
|
3985
|
+
|
|
3986
|
+ db := XTReadDB().Model(&info)
|
|
3987
|
+ if id > 0 {
|
|
3988
|
+ db = db.Where("cancel_stock_id = ?", id)
|
|
3989
|
+ }
|
|
3990
|
+ db = db.Preload("BaseDrugLib")
|
|
3991
|
+ err = db.Find(&info).Error
|
|
3992
|
+ return info, err
|
|
3993
|
+}
|