XMLWAN преди 3 години
родител
ревизия
c60c892625
променени са 9 файла, в които са добавени 595 реда и са изтрити 440 реда
  1. 1 1
      conf/app.conf
  2. 514 433
      controllers/his_api_controller.go
  3. 12 0
      models/drug.go
  4. 9 0
      models/drug_stock.go
  5. 9 0
      models/good_models.go
  6. 8 0
      models/stock_models.go
  7. 5 0
      service/manage_center_service.go
  8. 17 0
      service/stock_service.go
  9. 20 6
      service/warhouse_service.go

+ 1 - 1
conf/app.conf Целия файл

@@ -1,5 +1,5 @@
1 1
 appname = 血透
2
-httpport = 9529
2
+httpport = 9531
3 3
 runmode = dev
4 4
 
5 5
 #

Файловите разлики са ограничени, защото са твърде много
+ 514 - 433
controllers/his_api_controller.go


+ 12 - 0
models/drug.go Целия файл

@@ -75,6 +75,18 @@ func (BaseDrugLib) TableName() string {
75 75
 	return "xt_base_drug"
76 76
 }
77 77
 
78
+type BaseDrugLibSeven struct {
79
+	ID        int64  `gorm:"column:id" json:"id" form:"id"`
80
+	DrugName  string `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
81
+	MaxUnit   string `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
82
+	MinNumber int64  `gorm:"column:min_number" json:"min_number" form:"min_number"`
83
+	MinUnit   string `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
84
+}
85
+
86
+func (BaseDrugLibSeven) TableName() string {
87
+	return "xt_base_drug"
88
+}
89
+
78 90
 type DrugUnitSafeguard struct {
79 91
 	ID               int64  `gorm:"column:id" json:"id" form:"id"`
80 92
 	Unit             string `gorm:"column:unit" json:"unit" form:"unit"`

+ 9 - 0
models/drug_stock.go Целия файл

@@ -84,6 +84,15 @@ func (DrugWarehouseInfo) TableName() string {
84 84
 	return "xt_drug_warehouse_info"
85 85
 }
86 86
 
87
+type DrugWarehouseInfoSeven struct {
88
+	StockMaxNumber int64 `gorm:"column:stock_max_number" json:"stock_max_number" form:"stock_max_number"`
89
+	StockMinNumber int64 `gorm:"column:stock_min_number" json:"stock_min_number" form:"stock_min_number"`
90
+}
91
+
92
+func (DrugWarehouseInfoSeven) TableName() string {
93
+	return "xt_drug_warehouse_info"
94
+}
95
+
87 96
 type DrugWarehouseOut struct {
88 97
 	ID                      int64         `gorm:"column:id" json:"id" form:"id"`
89 98
 	WarehouseOutOrderNumber string        `gorm:"column:warehouse_out_order_number" json:"warehouse_out_order_number" form:"warehouse_out_order_number"`

+ 9 - 0
models/good_models.go Целия файл

@@ -87,6 +87,15 @@ func (GoodInfo) TableName() string {
87 87
 	return "xt_good_information"
88 88
 }
89 89
 
90
+type GoodInfoSeven struct {
91
+	ID       int64  `gorm:"column:id" json:"id" form:"id"`
92
+	GoodName string `gorm:"column:good_name" json:"good_name" form:"good_name"`
93
+}
94
+
95
+func (GoodInfoSeven) TableName() string {
96
+	return "xt_good_information"
97
+}
98
+
90 99
 type GoodsTypeOne struct {
91 100
 	ID             int64       `gorm:"column:id" json:"id"`
92 101
 	TypeCode       string      `gorm:"column:type_code" json:"type_code"`

+ 8 - 0
models/stock_models.go Целия файл

@@ -137,6 +137,14 @@ func (WarehousingInfo) TableName() string {
137 137
 	return "xt_warehouse_info"
138 138
 }
139 139
 
140
+type WarehousingInfoSeven struct {
141
+	StockCount int64 `gorm:"column:stock_count" json:"stock_count" form:"stock_count"`
142
+}
143
+
144
+func (WarehousingInfoSeven) TableName() string {
145
+	return "xt_warehouse_info"
146
+}
147
+
140 148
 type VmWarehousingInfo struct {
141 149
 	ID                int64       `gorm:"column:id" json:"id"`
142 150
 	WarehousingId     int64       `gorm:"column:warehousing_id" json:"warehousing_id"`

+ 5 - 0
service/manage_center_service.go Целия файл

@@ -173,6 +173,11 @@ func FindBaseDrugLibRecord(org_id int64, id int64) (lib models.BaseDrugLib, err
173 173
 	return
174 174
 }
175 175
 
176
+func FindBaseDrugLibRecordSeven(org_id int64, id int64) (lib models.BaseDrugLibSeven, err error) {
177
+	err = readDb.Select("id,drug_name,max_unit,min_number,min_unit").Where("org_id = ? AND id = ? AND status = 1", org_id, id).First(&lib).Error
178
+	return
179
+}
180
+
176 181
 func GetDrugAutoWarehouseOut(patient_id int64, advicedate int64, drugid int64) (*models.DrugWarehouseOutInfo, error) {
177 182
 	detail := models.DrugWarehouseOutInfo{}
178 183
 	err := XTReadDB().Model(&detail).Where("patient_id = ? and sys_record_time =? and drug_id = ? and status = 1", patient_id, advicedate, drugid).Find(&detail).Error

+ 17 - 0
service/stock_service.go Целия файл

@@ -3563,12 +3563,23 @@ func FindGoodInfoByIdTwo(id int64) (goodInfo models.GoodInfo, err error) {
3563 3563
 	return
3564 3564
 }
3565 3565
 
3566
+func FindGoodInfoByIdSeven(id int64) (goodInfo models.GoodInfoSeven, err error) {
3567
+	err = readDb.Select("id,good_name").Where("id = ? AND status = 1", id).First(&goodInfo).Error
3568
+	return
3569
+}
3570
+
3566 3571
 func GetGoodWarehouseInfo(good_id int64) (info []*models.WarehousingInfo, err error) {
3567 3572
 
3568 3573
 	err = readDb.Where("good_id = ? and status = 1 and stock_count<>0", good_id).Find(&info).Error
3569 3574
 	return info, err
3570 3575
 }
3571 3576
 
3577
+func GetGoodWarehouseInfoSeven(good_id int64) (info []*models.WarehousingInfoSeven, err error) {
3578
+
3579
+	err = readDb.Select("stock_count").Where("good_id = ? and status = 1 and stock_count<>0", good_id).Find(&info).Error
3580
+	return info, err
3581
+}
3582
+
3572 3583
 func GetAllStockList(page int64, limit int64, startime int64, endtime int64, good_type int64, keyword string, orgid int64) (info []*models.VmWarehousingInfo, total int64, err error) {
3573 3584
 
3574 3585
 	offset := (page - 1) * limit
@@ -4669,6 +4680,12 @@ func GetDrugWarehouseInfoPrescription(drugid int64, orgid int64) (info []*models
4669 4680
 	return info, err
4670 4681
 }
4671 4682
 
4683
+func GetDrugWarehouseInfoPrescriptionSeven(drugid int64, orgid int64) (info []*models.DrugWarehouseInfoSeven, err error) {
4684
+
4685
+	err = XTReadDB().Select("id,stock_max_number,stock_min_number").Where("drug_id = ? and org_id =? and status = 1", drugid, orgid).Find(&info).Error
4686
+	return info, err
4687
+}
4688
+
4672 4689
 func GetHisAdviceListByDrugId(drugid int64, patient_id int64, advice_date int64) (models.HisDoctorAdviceInfo, error) {
4673 4690
 
4674 4691
 	info := models.HisDoctorAdviceInfo{}

+ 20 - 6
service/warhouse_service.go Целия файл

@@ -451,6 +451,7 @@ func HisDrugsDelivery(orgID int64, creater int64, advice *models.HisDoctorAdvice
451 451
 // 药品出库 递归方式
452 452
 func HisDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseout *models.DrugWarehouseOut, drup *models.BaseDrugLib, advice *models.HisDoctorAdviceInfo) (err error) {
453 453
 
454
+	//fmt.Println("进来了吗323222222222222222222222222222222222222222222222222222222222222222222")
454 455
 	// 判断处方里药品单位是拆零单位还是包装单位,	如果是包装单位,则根据规格,将包装数量转为拆零数量
455 456
 	var deliver_number int64 = 0
456 457
 	var stock_number int64 = 0
@@ -579,36 +580,49 @@ func HisDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseout *mo
579 580
 		var maxNumber int64 = 0
580 581
 		var minNumber int64 = 0
581 582
 
583
+		//fmt.Println("deliver_number23332323232333232323233232323232",deliver_number)
582 584
 		maxNumber = deliver_number / drup.MinNumber
583
-		minNumber = deliver_number % drup.MinNumber
585
+
586
+		if deliver_number <= drup.MinNumber {
587
+			minNumber = deliver_number % drup.MinNumber
588
+		} else {
589
+			minNumber = deliver_number
590
+		}
591
+
592
+		if deliver_number <= drup.MinNumber && warehouse.StockMaxNumber == 0 {
593
+			minNumber = deliver_number
594
+		}
595
+
584 596
 		if warehouse.StockMaxNumber == 0 && drup.MaxUnit == drup.MinUnit {
585 597
 			minNumber = maxNumber
586 598
 		}
587 599
 
588 600
 		if drup.MaxUnit != drup.MinUnit {
589
-			if warehouse.StockMaxNumber < maxNumber {
601
+			if warehouse.StockMaxNumber < maxNumber && warehouse.StockMinNumber < minNumber {
590 602
 				return errors.New("库存数量不足")
591 603
 			}
592 604
 		}
593 605
 
594 606
 		warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
607
+		//fmt.Println("最大单位23323232323232332323233232323",warehouse.StockMaxNumber)
595 608
 		if warehouse.StockMaxNumber < 0 {
596 609
 			warehouse.StockMaxNumber = 0
597 610
 		}
598 611
 
599 612
 		warehouse.Mtime = time.Now().Unix()
600
-
613
+		//fmt.Println("最小单位2323223233232233233232323232323323232",warehouse.StockMinNumber)
614
+		//fmt.Println("最小换算量233232332322323322332323232332323223",minNumber)
601 615
 		if warehouse.StockMinNumber < minNumber {
602 616
 			warehouse.StockMaxNumber = warehouse.StockMaxNumber - 1
603 617
 			warehouse.StockMinNumber = warehouse.StockMinNumber + drup.MinNumber - minNumber
604 618
 		} else {
605
-
619
+			//fmt.Println("hhhhhhhhhhhhhhhhhhhhhhhhh",warehouse.StockMinNumber,minNumber)
606 620
 			warehouse.StockMinNumber = warehouse.StockMinNumber - minNumber
607
-
621
+			//fmt.Println("我的魏2232332322323323",warehouse.StockMinNumber)
608 622
 		}
609 623
 
610 624
 		if drup.MaxUnit != drup.MinUnit {
611
-			if warehouse.StockMaxNumber < 0 {
625
+			if warehouse.StockMaxNumber < 0 && warehouse.StockMinNumber < 0 {
612 626
 				return errors.New("库存数量不足")
613 627
 			}
614 628
 		}