XMLWAN 4 lat temu
rodzic
commit
77495cbd22
1 zmienionych plików z 21 dodań i 19 usunięć
  1. 21 19
      service/warhouse_service.go

+ 21 - 19
service/warhouse_service.go Wyświetl plik

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