|
|
|
|
69
|
drup, _ := FindBaseDrugLibRecord(orgID, advice.DrugId)
|
69
|
drup, _ := FindBaseDrugLibRecord(orgID, advice.DrugId)
|
70
|
if drup.ID > 0 {
|
70
|
if drup.ID > 0 {
|
71
|
prescribingNumber := advice.PrescribingNumber
|
71
|
prescribingNumber := advice.PrescribingNumber
|
72
|
- fmt.Println("出库数量233322332233232233223323232我的", advice.PrescribingNumber, advice.PrescribingNumberUnit)
|
|
|
|
|
72
|
+
|
73
|
DrugDeliverInfo(orgID, prescribingNumber, &out, &drup, advice)
|
73
|
DrugDeliverInfo(orgID, prescribingNumber, &out, &drup, advice)
|
74
|
|
74
|
|
75
|
} else {
|
75
|
} else {
|
|
|
|
|
122
|
var stockMin int64
|
122
|
var stockMin int64
|
123
|
stockMax = lastWarehouse.StockMinNumber / drup.MinNumber
|
123
|
stockMax = lastWarehouse.StockMinNumber / drup.MinNumber
|
124
|
stockMin = lastWarehouse.StockMinNumber % drup.MinNumber
|
124
|
stockMin = lastWarehouse.StockMinNumber % drup.MinNumber
|
125
|
- fmt.Println("stockMax332332332233232", stockMax)
|
|
|
126
|
- fmt.Println("stockMax332332332233232", stockMin)
|
|
|
|
|
125
|
+
|
127
|
ChangeMaxNumber(lastWarehouse.ID, stockMax)
|
126
|
ChangeMaxNumber(lastWarehouse.ID, stockMax)
|
128
|
UpdateMinNumber(lastWarehouse.ID, stockMin)
|
127
|
UpdateMinNumber(lastWarehouse.ID, stockMin)
|
129
|
}
|
128
|
}
|
|
|
|
|
142
|
//baseInfo, _ := FindBaseDrugLibRecord(advice.UserOrgId, advice.DrugId)
|
141
|
//baseInfo, _ := FindBaseDrugLibRecord(advice.UserOrgId, advice.DrugId)
|
143
|
|
142
|
|
144
|
// 当库存数量大于或等于出库数量的话,则正常出库该批次
|
143
|
// 当库存数量大于或等于出库数量的话,则正常出库该批次
|
145
|
- fmt.Println("剩余库存", stock_number)
|
|
|
146
|
- fmt.Println("出库数量", deliver_number)
|
|
|
|
|
144
|
+
|
147
|
if stock_number >= deliver_number {
|
145
|
if stock_number >= deliver_number {
|
148
|
|
146
|
|
149
|
warehouseOutInfo := &models.DrugWarehouseOutInfo{
|
147
|
warehouseOutInfo := &models.DrugWarehouseOutInfo{
|
|
|
|
|
206
|
errOne := AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
|
204
|
errOne := AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
|
207
|
fmt.Println(errOne)
|
205
|
fmt.Println(errOne)
|
208
|
//查询是否存在数据
|
206
|
//查询是否存在数据
|
209
|
- fmt.Println("deliver_number2o222222222222", deliver_number)
|
|
|
|
|
207
|
+
|
210
|
details := &models.DrugAutomaticReduceDetail{
|
208
|
details := &models.DrugAutomaticReduceDetail{
|
211
|
WarehouseOutId: warehouseout.ID,
|
209
|
WarehouseOutId: warehouseout.ID,
|
212
|
WarehouseOutOrderNumber: warehouseout.WarehouseOutOrderNumber,
|
210
|
WarehouseOutOrderNumber: warehouseout.WarehouseOutOrderNumber,
|
|
|
|
|
245
|
}
|
243
|
}
|
246
|
}
|
244
|
}
|
247
|
|
245
|
|
248
|
- fmt.Println("maxNumber", maxNumber)
|
|
|
249
|
- fmt.Println("minNumber", minNumber)
|
|
|
250
|
-
|
|
|
251
|
warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
|
246
|
warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
|
252
|
|
247
|
|
253
|
if warehouse.StockMaxNumber < 0 {
|
248
|
if warehouse.StockMaxNumber < 0 {
|
|
|
|
|
301
|
|
296
|
|
302
|
return nil
|
297
|
return nil
|
303
|
} else {
|
298
|
} else {
|
304
|
- fmt.Println("库存数量", stock_number)
|
|
|
|
|
299
|
+
|
305
|
// 当该批次的库存数量小于出库数量的话,则先把该批次出库完后,再进行递归出库
|
300
|
// 当该批次的库存数量小于出库数量的话,则先把该批次出库完后,再进行递归出库
|
306
|
warehouseOutInfo := &models.DrugWarehouseOutInfo{
|
301
|
warehouseOutInfo := &models.DrugWarehouseOutInfo{
|
307
|
WarehouseOutOrderNumber: warehouseout.WarehouseOutOrderNumber,
|
302
|
WarehouseOutOrderNumber: warehouseout.WarehouseOutOrderNumber,
|
|
|
|
|
422
|
|
417
|
|
423
|
// 清零完该库存后,还有剩余出库未出完,进行对应的递归操作
|
418
|
// 清零完该库存后,还有剩余出库未出完,进行对应的递归操作
|
424
|
prescribingNumber_two_temp := deliver_number - stock_number
|
419
|
prescribingNumber_two_temp := deliver_number - stock_number
|
425
|
- fmt.Println("剩余库存", prescribingNumber_two_temp)
|
|
|
|
|
420
|
+
|
426
|
overPlusNumber := float64(prescribingNumber_two_temp)
|
421
|
overPlusNumber := float64(prescribingNumber_two_temp)
|
427
|
|
422
|
|
428
|
advice.PrescribingNumber = float64(prescribingNumber_two_temp)
|
423
|
advice.PrescribingNumber = float64(prescribingNumber_two_temp)
|
|
|
|
|
517
|
deliver_number = count
|
512
|
deliver_number = count
|
518
|
}
|
513
|
}
|
519
|
|
514
|
|
520
|
- fmt.Println("c出库数量", deliver_number)
|
|
|
521
|
-
|
|
|
522
|
var min_price float64
|
515
|
var min_price float64
|
523
|
|
516
|
|
524
|
if advice.PrescribingNumberUnit == drup.MaxUnit {
|
517
|
if advice.PrescribingNumberUnit == drup.MaxUnit {
|
|
|
|
|
543
|
var stockMin int64
|
536
|
var stockMin int64
|
544
|
stockMax = lastWarehouse.StockMinNumber / drup.MinNumber
|
537
|
stockMax = lastWarehouse.StockMinNumber / drup.MinNumber
|
545
|
stockMin = lastWarehouse.StockMinNumber % drup.MinNumber
|
538
|
stockMin = lastWarehouse.StockMinNumber % drup.MinNumber
|
546
|
- fmt.Println("stockMax", stockMax)
|
|
|
547
|
- fmt.Println("stockMin", stockMin)
|
|
|
|
|
539
|
+
|
548
|
ChangeMaxNumber(lastWarehouse.ID, stockMax)
|
540
|
ChangeMaxNumber(lastWarehouse.ID, stockMax)
|
549
|
UpdateMinNumber(lastWarehouse.ID, stockMin)
|
541
|
UpdateMinNumber(lastWarehouse.ID, stockMin)
|
550
|
}
|
542
|
}
|
|
|
|
|
558
|
// 将该批次的剩余库存数量转换为拆零数量
|
550
|
// 将该批次的剩余库存数量转换为拆零数量
|
559
|
|
551
|
|
560
|
stock_number = warehouse.StockMaxNumber*drup.MinNumber + warehouse.StockMinNumber
|
552
|
stock_number = warehouse.StockMaxNumber*drup.MinNumber + warehouse.StockMinNumber
|
561
|
- fmt.Println("查询剩余库存", stock_number)
|
|
|
562
|
|
553
|
|
563
|
// 当库存数量大于或等于出库数量的话,则正常出库该批次
|
554
|
// 当库存数量大于或等于出库数量的话,则正常出库该批次
|
564
|
if stock_number >= deliver_number {
|
555
|
if stock_number >= deliver_number {
|
|
|
|
|
664
|
return errors.New("库存数量不足")
|
655
|
return errors.New("库存数量不足")
|
665
|
}
|
656
|
}
|
666
|
}
|
657
|
}
|
667
|
- fmt.Println("查询库存", warehouse.StockMaxNumber)
|
|
|
668
|
- fmt.Println("扣减库存我的", maxNumber)
|
|
|
|
|
658
|
+
|
669
|
warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
|
659
|
warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
|
670
|
- fmt.Println("剩余库存我的", warehouse.StockMaxNumber)
|
|
|
671
|
|
660
|
|
672
|
if warehouse.StockMaxNumber < 0 {
|
661
|
if warehouse.StockMaxNumber < 0 {
|
673
|
warehouse.StockMaxNumber = 0
|
662
|
warehouse.StockMaxNumber = 0
|
|
|
|
|
4985
|
}
|
4974
|
}
|
4986
|
// 清零完该库存后,还有剩余出库未出完,进行对应的递归操作
|
4975
|
// 清零完该库存后,还有剩余出库未出完,进行对应的递归操作
|
4987
|
prescribingNumber_two_temp := deliver_number - stock_number
|
4976
|
prescribingNumber_two_temp := deliver_number - stock_number
|
4988
|
- fmt.Println("深谷数据", prescribingNumber_two_temp)
|
|
|
|
|
4977
|
+
|
4989
|
advice.CountUnit = drup.MinUnit
|
4978
|
advice.CountUnit = drup.MinUnit
|
4990
|
|
4979
|
|
4991
|
AutoDrugDeliverInfoTwentyOne(orgID, prescribingNumber_two_temp, warehouseout, drup, advice)
|
4980
|
AutoDrugDeliverInfoTwentyOne(orgID, prescribingNumber_two_temp, warehouseout, drup, advice)
|
|
|
|
|
5172
|
// 药品手动出库 递归方式
|
5161
|
// 药品手动出库 递归方式
|
5173
|
func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehouseout *models.DrugWarehouseOut, drup *models.BaseDrugLib, advice *models.DrugWarehouseOutInfo) (err error) {
|
5162
|
func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehouseout *models.DrugWarehouseOut, drup *models.BaseDrugLib, advice *models.DrugWarehouseOutInfo) (err error) {
|
5174
|
//开事务
|
5163
|
//开事务
|
5175
|
- //tx := XTWriteDB().Begin()
|
|
|
5176
|
// 判断处方里药品单位是拆零单位还是包装单位, 如果是包装单位,则根据规格,将包装数量转为拆零数量
|
5164
|
// 判断处方里药品单位是拆零单位还是包装单位, 如果是包装单位,则根据规格,将包装数量转为拆零数量
|
5177
|
var deliver_number int64 = 0
|
5165
|
var deliver_number int64 = 0
|
5178
|
var stock_number int64 = 0
|
5166
|
var stock_number int64 = 0
|
5179
|
- //fmt.Println("出库数量",prescribingNumber)
|
|
|
5180
|
- //fmt.Println("出库数量",drup.MinNumber)
|
|
|
5181
|
- //fmt.Println("dnaeiw",advice.CountUnit)
|
|
|
5182
|
- //if advice.CountUnit == drup.MaxUnit {
|
|
|
5183
|
- // deliver_number = prescribingNumber * drup.MinNumber
|
|
|
5184
|
- //} else {
|
|
|
|
|
5167
|
+
|
5185
|
deliver_number = prescribingNumber
|
5168
|
deliver_number = prescribingNumber
|
5186
|
- //}
|
|
|
5187
|
- //fmt.Println("出库数量2323223323232322323232323",deliver_number)
|
|
|
5188
|
- // 根据先进先出原则,查询最先入库的批次,进行出库
|
|
|
5189
|
- // 如果没有对应的库存,则报错
|
|
|
|
|
5169
|
+
|
5190
|
//开启事物
|
5170
|
//开启事物
|
5191
|
lastWarehouse, _ := FindLastDrugWarehousingInfoByID(advice.DrugId, warehouseout.StorehouseId)
|
5171
|
lastWarehouse, _ := FindLastDrugWarehousingInfoByID(advice.DrugId, warehouseout.StorehouseId)
|
5192
|
if lastWarehouse.StockMinNumber >= drup.MinNumber {
|
5172
|
if lastWarehouse.StockMinNumber >= drup.MinNumber {
|