Browse Source

耗材参数

XMLWAN 4 years ago
parent
commit
77495cbd22
1 changed files with 21 additions and 19 deletions
  1. 21 19
      service/warhouse_service.go

+ 21 - 19
service/warhouse_service.go View File

2
 
2
 
3
 import (
3
 import (
4
 	"XT_New/models"
4
 	"XT_New/models"
5
-	_"fmt"
6
-	"strings"
7
-	"time"
8
-	"math"
9
 	"XT_New/utils"
5
 	"XT_New/utils"
10
-	"strconv"
11
 	"errors"
6
 	"errors"
7
+	_ "fmt"
12
 	"github.com/jinzhu/gorm"
8
 	"github.com/jinzhu/gorm"
9
+	"math"
10
+	"strconv"
11
+	"strings"
12
+	"time"
13
 )
13
 )
14
 
14
 
15
 // 药品出库
15
 // 药品出库
58
 			} else {
58
 			} else {
59
 				out = warehouseOut
59
 				out = warehouseOut
60
 			}
60
 			}
61
-		} 
61
+		}
62
 
62
 
63
 		// 出库流程
63
 		// 出库流程
64
 		// 1.查询改药品在药品库的规格信息,并将处方里的规格进行换算(尽量将拆零单位转换成包装单位)
64
 		// 1.查询改药品在药品库的规格信息,并将处方里的规格进行换算(尽量将拆零单位转换成包装单位)
65
-		drup,_ := FindBaseDrugLibRecord(orgID,advice.DrugId)
65
+		drup, _ := FindBaseDrugLibRecord(orgID, advice.DrugId)
66
 		if drup.ID > 0 {
66
 		if drup.ID > 0 {
67
 			prescribingNumber := advice.PrescribingNumber
67
 			prescribingNumber := advice.PrescribingNumber
68
-			DrugDeliverInfo(orgID ,prescribingNumber ,&out ,&drup ,advice)
68
+			DrugDeliverInfo(orgID, prescribingNumber, &out, &drup, advice)
69
 		} else {
69
 		} else {
70
 			return errors.New("药品信息不存在")
70
 			return errors.New("药品信息不存在")
71
 		}
71
 		}
72
-			
72
+
73
 	}
73
 	}
74
 
74
 
75
 	return
75
 	return
76
-} 
76
+}
77
+
77
 // 药品出库 递归方式
78
 // 药品出库 递归方式
78
-func DrugDeliverInfo(orgID int64,prescribingNumber float64,warehouseout *models.DrugWarehouseOut,drup *models.BaseDrugLib,advice *models.DoctorAdvice) (err error) {
79
+func DrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseout *models.DrugWarehouseOut, drup *models.BaseDrugLib, advice *models.DoctorAdvice) (err error) {
79
 	// 判断处方里药品单位是拆零单位还是包装单位,	如果是包装单位,则根据规格,将包装数量转为拆零数量
80
 	// 判断处方里药品单位是拆零单位还是包装单位,	如果是包装单位,则根据规格,将包装数量转为拆零数量
80
 	var deliver_number int64 = 0
81
 	var deliver_number int64 = 0
81
 	var stock_number int64 = 0
82
 	var stock_number int64 = 0
90
 
91
 
91
 	// 根据先进先出原则,查询最先入库的批次,进行出库
92
 	// 根据先进先出原则,查询最先入库的批次,进行出库
92
 	// 如果没有对应的库存,则报错
93
 	// 如果没有对应的库存,则报错
93
-	warehouse,err := FindLastWarehousingInfoByID(advice.DrugId)
94
+	warehouse, err := FindLastWarehousingInfoByID(advice.DrugId)
94
 	if err != nil {
95
 	if err != nil {
95
 		return err
96
 		return err
96
 	}
97
 	}
97
 
98
 
98
 	// 将该批次的剩余库存数量转换为拆零数量
99
 	// 将该批次的剩余库存数量转换为拆零数量
99
-	stock_number = warehouse.StockMaxNumber * drup.MinNumber + warehouse.StockMinNumber
100
+	stock_number = warehouse.StockMaxNumber*drup.MinNumber + warehouse.StockMinNumber
100
 	// 当库存数量大于或等于出库数量的话,则正常出库该批次
101
 	// 当库存数量大于或等于出库数量的话,则正常出库该批次
101
 	if stock_number >= deliver_number {
102
 	if stock_number >= deliver_number {
102
 		warehouseOutInfo := &models.DrugWarehouseOutInfo{
103
 		warehouseOutInfo := &models.DrugWarehouseOutInfo{
132
 				OrgId:                   orgID,
133
 				OrgId:                   orgID,
133
 				DrugId:                  advice.DrugId,
134
 				DrugId:                  advice.DrugId,
134
 				Count:                   deliver_number,
135
 				Count:                   deliver_number,
135
-				CountUnit:				 drup.MinUnit,
136
+				CountUnit:               drup.MinUnit,
136
 			}
137
 			}
137
 			errTwo := AddSigleDrugAutoReduceRecordInfo(details)
138
 			errTwo := AddSigleDrugAutoReduceRecordInfo(details)
138
 			if errTwo != nil {
139
 			if errTwo != nil {
172
 		}
173
 		}
173
 
174
 
174
 		return nil
175
 		return nil
175
-	}  else {
176
+	} else {
176
 		// 当改批次的库存数量小于出库数量的话,则先把该批次出库完后,再进行递归出库
177
 		// 当改批次的库存数量小于出库数量的话,则先把该批次出库完后,再进行递归出库
177
 		warehouseOutInfo := &models.DrugWarehouseOutInfo{
178
 		warehouseOutInfo := &models.DrugWarehouseOutInfo{
178
 			WarehouseOutOrderNumber: warehouseout.WarehouseOutOrderNumber,
179
 			WarehouseOutOrderNumber: warehouseout.WarehouseOutOrderNumber,
192
 		// count, _ := strconv.ParseInt(prescribingNumber, 10, 64)
193
 		// count, _ := strconv.ParseInt(prescribingNumber, 10, 64)
193
 		warehouseOutInfo.Count = stock_number
194
 		warehouseOutInfo.Count = stock_number
194
 		warehouseOutInfo.CountUnit = drup.MinUnit
195
 		warehouseOutInfo.CountUnit = drup.MinUnit
195
-		
196
+
196
 		errOne := AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
197
 		errOne := AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
197
 		if errOne != nil {
198
 		if errOne != nil {
198
 			return errOne
199
 			return errOne
208
 				OrgId:                   orgID,
209
 				OrgId:                   orgID,
209
 				DrugId:                  advice.DrugId,
210
 				DrugId:                  advice.DrugId,
210
 				Count:                   stock_number,
211
 				Count:                   stock_number,
211
-				CountUnit:				 drup.MinUnit,
212
+				CountUnit:               drup.MinUnit,
212
 			}
213
 			}
213
 			errTwo := AddSigleDrugAutoReduceRecordInfo(details)
214
 			errTwo := AddSigleDrugAutoReduceRecordInfo(details)
214
 			if errTwo != nil {
215
 			if errTwo != nil {
227
 		prescribingNumber_two_temp := deliver_number - stock_number
228
 		prescribingNumber_two_temp := deliver_number - stock_number
228
 		advice.PrescribingNumber = float64(prescribingNumber_two_temp)
229
 		advice.PrescribingNumber = float64(prescribingNumber_two_temp)
229
 		advice.PrescribingNumberUnit = drup.MinUnit
230
 		advice.PrescribingNumberUnit = drup.MinUnit
230
-		DrugDeliverInfo(orgID ,prescribingNumber,warehouseout,drup ,advice )
231
+		DrugDeliverInfo(orgID, prescribingNumber, warehouseout, drup, advice)
231
 	}
232
 	}
232
-}
233
+	return
234
+}