Browse Source

11月9日库存管理

XMLWAN 2 years ago
parent
commit
a639388184

+ 32 - 9
controllers/drug_stock_api_contorller.go View File

@@ -3806,9 +3806,12 @@ func (c *StockDrugApiController) CheckDrugOut() {
3806 3806
 		stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, it.OrgId, it.DrugId)
3807 3807
 		var sum_count int64
3808 3808
 		for _, its := range stockInfo {
3809
-			sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
3810
-
3809
+			if its.MaxUnit == medical.MaxUnit {
3810
+				its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
3811
+			}
3812
+			sum_count += its.StockMaxNumber + its.StockMinNumber
3811 3813
 		}
3814
+
3812 3815
 		service.UpdateBaseDrugSumTwo(it.DrugId, sum_count, it.OrgId)
3813 3816
 
3814 3817
 		////出库数量累加
@@ -3934,7 +3937,11 @@ func (c *StockDrugApiController) ToReturnCheck() {
3934 3937
 		stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.OrgId, item.DrugId)
3935 3938
 		var sum_count int64
3936 3939
 		for _, its := range stockInfo {
3937
-			sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
3940
+			baseDrug, _ := service.GetBaseDrugMedical(its.DrugId)
3941
+			if its.MaxUnit == baseDrug.MaxUnit {
3942
+				its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
3943
+			}
3944
+			sum_count += its.StockMaxNumber + its.StockMinNumber
3938 3945
 		}
3939 3946
 		service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.OrgId)
3940 3947
 
@@ -4137,8 +4144,13 @@ func (c *StockDrugApiController) CheckCancelDrugStock() {
4137 4144
 		stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, its.OrgId, its.DrugId)
4138 4145
 		var sum_count int64
4139 4146
 		for _, its := range stockInfo {
4140
-			sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
4147
+			baseDrug, _ := service.GetBaseDrugMedical(its.DrugId)
4148
+			if its.MaxUnit == baseDrug.MaxUnit {
4149
+				its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
4150
+			}
4151
+			sum_count += its.StockMaxNumber + its.StockMinNumber
4141 4152
 		}
4153
+
4142 4154
 		service.UpdateBaseDrugSumTwo(its.DrugId, sum_count, its.OrgId)
4143 4155
 
4144 4156
 		var cancel_count int64
@@ -4154,8 +4166,11 @@ func (c *StockDrugApiController) CheckCancelDrugStock() {
4154 4166
 		}
4155 4167
 		cancelInfo, _ := service.GetDrugAllStockInfo(its.StorehouseId, its.OrgId, its.DrugId)
4156 4168
 		var over_count int64
4157
-		for _, items := range cancelInfo {
4158
-			over_count += items.StockMaxNumber*medical.MinNumber + items.StockMinNumber
4169
+		for _, its := range cancelInfo {
4170
+			if its.MaxUnit == medical.MaxUnit {
4171
+				its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
4172
+			}
4173
+			over_count += its.StockMaxNumber + its.StockMinNumber
4159 4174
 		}
4160 4175
 		service.AddCancelSumCount(its.StorehouseId, its.DrugId, its.OrgId, cancel_count, over_count)
4161 4176
 
@@ -4218,8 +4233,12 @@ func (c *StockDrugApiController) ReturnDrugCancelStock() {
4218 4233
 		stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.OrgId, item.DrugId)
4219 4234
 		var sum_count int64
4220 4235
 		for _, its := range stockInfo {
4221
-			sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
4236
+			if its.MaxUnit == medical.MaxUnit {
4237
+				its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
4238
+			}
4239
+			sum_count += its.StockMaxNumber + its.StockMinNumber
4222 4240
 		}
4241
+
4223 4242
 		service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.OrgId)
4224 4243
 
4225 4244
 		var cancel_count int64
@@ -4235,9 +4254,13 @@ func (c *StockDrugApiController) ReturnDrugCancelStock() {
4235 4254
 		}
4236 4255
 		cancelInfo, _ := service.GetDrugAllStockInfo(item.StorehouseId, item.OrgId, item.DrugId)
4237 4256
 		var over_count int64
4238
-		for _, items := range cancelInfo {
4239
-			over_count += items.StockMaxNumber*medical.MinNumber + items.StockMinNumber
4257
+		for _, its := range cancelInfo {
4258
+			if its.MaxUnit == medical.MaxUnit {
4259
+				its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
4260
+			}
4261
+			over_count += its.StockMaxNumber + its.StockMinNumber
4240 4262
 		}
4263
+
4241 4264
 		//退库数量减少,更新剩余库存
4242 4265
 		service.ReduceCancelSumCount(item.StorehouseId, item.DrugId, item.OrgId, cancel_count, over_count)
4243 4266
 	}

+ 3 - 0
controllers/gobal_config_api_controller.go View File

@@ -2338,12 +2338,14 @@ func (c *GobalConfigApiController) GetExportOutOrderDrugList() {
2338 2338
 	orgId := c.GetAdminUserInfo().CurrentOrgId
2339 2339
 	//list, _ := service.GetExportOutOrderDrugList(ids)
2340 2340
 	list, _ := service.GetExportOutOrderDrugListOne(ids)
2341
+	outInfoList, _ := service.GetDrugOutListFlow(ids, orgId)
2341 2342
 	manufacturerList, _ := service.GetAllManufacturerList(orgId)
2342 2343
 	dealerList, _ := service.GetAllDealerList(orgId)
2343 2344
 	c.ServeSuccessJSON(map[string]interface{}{
2344 2345
 		"list":             list,
2345 2346
 		"manufacturerList": manufacturerList,
2346 2347
 		"dealerList":       dealerList,
2348
+		"outInfoList":      outInfoList,
2347 2349
 	})
2348 2350
 }
2349 2351
 
@@ -2381,6 +2383,7 @@ func (c *GobalConfigApiController) GetDrugFlow() {
2381 2383
 	stock_type, _ := c.GetInt64("stock_type")
2382 2384
 
2383 2385
 	list, total, _ := service.GetDrugFlow(drug_id, orgId, limit, page, startTime, endTime, stock_type)
2386
+	fmt.Println("listwowoowowowowowo", list)
2384 2387
 	manufacturerList, _ := service.GetAllManufacturerList(orgId)
2385 2388
 	dealerList, _ := service.GetAllDealerList(orgId)
2386 2389
 	medical, _ := service.GetBaseDrugMedical(drug_id)

+ 7 - 3
controllers/his_api_controller.go View File

@@ -1358,8 +1358,12 @@ func (c *HisApiController) CreateHisPrescription() {
1358 1358
 													var sum_count int64
1359 1359
 													stockInfo, _ := service.GetDrugAllStockInfo(storeConfig.DrugStorehouseOut, druginfo.OrgId, drug_id)
1360 1360
 													for _, its := range stockInfo {
1361
-														sum_count += its.StockMaxNumber*drug.MinNumber + its.StockMinNumber
1361
+														if its.MaxUnit == drug.MaxUnit {
1362
+															its.StockMaxNumber = its.StockMaxNumber * drug.MinNumber
1363
+														}
1364
+														sum_count += its.StockMaxNumber + its.StockMinNumber
1362 1365
 													}
1366
+
1363 1367
 													service.UpdateBaseDrugSumTwo(drug_id, sum_count, druginfo.OrgId)
1364 1368
 
1365 1369
 												}
@@ -2570,8 +2574,8 @@ func (c *HisApiController) DeletePrescription() {
2570 2574
 					count, _ := strconv.ParseInt(item.Count, 10, 64)
2571 2575
 					total_count += count
2572 2576
 					//回退库存
2573
-					service.UpDateWarehouseInfoByStockDelete(info.WarehouseInfotId, total_count, info.PatientId, info.SysRecordTime, info.ProjectId)
2574
-					goodList, _ := service.GetSumGoodList(c.GetAdminUserInfo().CurrentOrgId, houseConfig.StorehouseOutInfo, info.ProjectId)
2577
+					service.UpDateWarehouseInfoByStockDelete(info.WarehouseInfotId, total_count, info.PatientId, info.SysRecordTime, item.ProjectId)
2578
+					goodList, _ := service.GetSumGoodList(c.GetAdminUserInfo().CurrentOrgId, houseConfig.StorehouseOutInfo, item.ProjectId)
2575 2579
 					var flush_count int64
2576 2580
 					for _, it := range goodList {
2577 2581
 						flush_count += it.StockCount

+ 17 - 4
controllers/mobile_api_controllers/patient_api_controller.go View File

@@ -771,7 +771,10 @@ func (c *PatientApiController) ExecDoctorAdvice() {
771 771
 											stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
772 772
 											var sum_count int64
773 773
 											for _, its := range stockInfo {
774
-												sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
774
+												if its.MaxUnit == medical.MaxUnit {
775
+													its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
776
+												}
777
+												sum_count += its.StockMaxNumber + its.StockMinNumber
775 778
 											}
776 779
 											service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
777 780
 										}
@@ -789,7 +792,10 @@ func (c *PatientApiController) ExecDoctorAdvice() {
789 792
 										stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
790 793
 										var sum_count int64
791 794
 										for _, its := range stockInfo {
792
-											sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
795
+											if its.MaxUnit == medical.MaxUnit {
796
+												its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
797
+											}
798
+											sum_count += its.StockMaxNumber + its.StockMinNumber
793 799
 										}
794 800
 										service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
795 801
 									}
@@ -886,7 +892,11 @@ func (c *PatientApiController) ExecDoctorAdvice() {
886 892
 									stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
887 893
 									var sum_count int64
888 894
 									for _, its := range stockInfo {
889
-										sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
895
+										baseDrug, _ := service.GetBaseDrugMedical(its.DrugId)
896
+										if its.MaxUnit == baseDrug.MaxUnit {
897
+											its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
898
+										}
899
+										sum_count += its.StockMaxNumber + its.StockMinNumber
890 900
 									}
891 901
 									service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
892 902
 									c.ServeSuccessJSON(map[string]interface{}{
@@ -1198,7 +1208,10 @@ func (c *PatientApiController) ExecDoctorAdvice() {
1198 1208
 									stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
1199 1209
 									var sum_count int64
1200 1210
 									for _, its := range stockInfo {
1201
-										sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
1211
+										if its.MaxUnit == medical.MaxUnit {
1212
+											its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
1213
+										}
1214
+										sum_count += its.StockMaxNumber + its.StockMinNumber
1202 1215
 									}
1203 1216
 									service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
1204 1217
 								}

+ 18 - 4
controllers/patient_api_controller.go View File

@@ -1770,8 +1770,12 @@ func (c *PatientApiController) ExecGroupAdvice() {
1770 1770
 					var sum_count int64
1771 1771
 					stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
1772 1772
 					for _, its := range stockInfo {
1773
-						sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
1773
+						if its.MaxUnit == medical.MaxUnit {
1774
+							its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
1775
+						}
1776
+						sum_count += its.StockMaxNumber + its.StockMinNumber
1774 1777
 					}
1778
+
1775 1779
 					service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
1776 1780
 					break
1777 1781
 					c.ServeSuccessJSON(map[string]interface{}{
@@ -2007,8 +2011,12 @@ func (c *PatientApiController) ExecDoctorAdvice() {
2007 2011
 								//更新字典里面的库存
2008 2012
 								stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
2009 2013
 								for _, its := range stockInfo {
2010
-									sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
2014
+									if its.MaxUnit == medical.MaxUnit {
2015
+										its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
2016
+									}
2017
+									sum_count += its.StockMaxNumber + its.StockMinNumber
2011 2018
 								}
2019
+
2012 2020
 								service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
2013 2021
 								break
2014 2022
 								c.ServeSuccessJSON(map[string]interface{}{
@@ -2049,7 +2057,10 @@ func (c *PatientApiController) ExecDoctorAdvice() {
2049 2057
 							var sum_count int64
2050 2058
 							stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
2051 2059
 							for _, its := range stockInfo {
2052
-								sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
2060
+								if its.MaxUnit == medical.MaxUnit {
2061
+									its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
2062
+								}
2063
+								sum_count += its.StockMaxNumber + its.StockMinNumber
2053 2064
 							}
2054 2065
 							service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
2055 2066
 							break
@@ -2342,7 +2353,10 @@ func (c *PatientApiController) ExecDoctorAdvice() {
2342 2353
 								var sum_count int64
2343 2354
 								stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.DrugId)
2344 2355
 								for _, its := range stockInfo {
2345
-									sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
2356
+									if its.MaxUnit == medical.MaxUnit {
2357
+										its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
2358
+									}
2359
+									sum_count += its.StockMaxNumber + its.StockMinNumber
2346 2360
 								}
2347 2361
 								service.UpdateBaseDrugSumTwo(item.DrugId, sum_count, item.UserOrgId)
2348 2362
 

+ 10 - 2
controllers/secondary_order_api_contorller.go View File

@@ -1195,7 +1195,11 @@ func (this *SecondaryOrderApiController) CheckSecondOrer() {
1195 1195
 					stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.ProjectId)
1196 1196
 					var sum_count int64
1197 1197
 					for _, its := range stockInfo {
1198
-						sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
1198
+						baseDrug, _ := service.GetBaseDrugMedical(its.DrugId)
1199
+						if its.MaxUnit == baseDrug.MaxUnit {
1200
+							its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
1201
+						}
1202
+						sum_count += its.StockMaxNumber + its.StockMinNumber
1199 1203
 					}
1200 1204
 					service.UpdateBaseDrugSumTwo(item.ProjectId, sum_count, item.UserOrgId)
1201 1205
 				}
@@ -1605,7 +1609,11 @@ func (this *SecondaryOrderApiController) ReturnCheckSecondOrder() {
1605 1609
 			var sum_count int64
1606 1610
 			stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, item.UserOrgId, item.ProjectId)
1607 1611
 			for _, its := range stockInfo {
1608
-				sum_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
1612
+				baseDrug, _ := service.GetBaseDrugMedical(its.DrugId)
1613
+				if its.MaxUnit == baseDrug.MaxUnit {
1614
+					its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
1615
+				}
1616
+				sum_count += its.StockMaxNumber + its.StockMinNumber
1609 1617
 			}
1610 1618
 			service.UpdateBaseDrugSumTwo(item.ProjectId, sum_count, item.UserOrgId)
1611 1619
 		}

+ 1 - 0
controllers/stock_in_api_controller.go View File

@@ -4809,6 +4809,7 @@ func (this *StockManagerApiController) GetStockDrugCount() {
4809 4809
 func (this *StockManagerApiController) GetOrderDetialByOrderId() {
4810 4810
 
4811 4811
 	ids := this.GetString("id")
4812
+
4812 4813
 	idsArray := strings.Split(ids, ",")
4813 4814
 	orgId := this.GetAdminUserInfo().CurrentOrgId
4814 4815
 	order, _ := service.GetWarehouseOutOrder(idsArray, orgId)

+ 55 - 53
models/drug_stock.go View File

@@ -377,62 +377,64 @@ type StDrugWarehouseOutInfo struct {
377 377
 	PackingUnit             string  `json:"packing_unit"`
378 378
 	Dosage                  int64   `json:"dosage"`
379 379
 	ExpireDate              int64   `json:"expire_date"`
380
+	ConsumableType          int64   `gorm:"column:consumable_type" json:"consumable_type" form:"consumable_type"`
380 381
 }
381 382
 
382 383
 type DrugFlow struct {
383
-	ID                        int64                `gorm:"column:id" json:"id" form:"id"`
384
-	WarehousingId             int64                `gorm:"column:warehousing_id" json:"warehousing_id" form:"warehousing_id"`
385
-	DrugId                    int64                `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
386
-	Number                    string               `gorm:"column:number" json:"number" form:"number"`
387
-	BatchNumber               string               `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
388
-	Count                     int64                `gorm:"column:count" json:"count" form:"count"`
389
-	UserOrgId                 int64                `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
390
-	PatientId                 int64                `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
391
-	SystemTime                int64                `gorm:"column:system_time" json:"system_time" form:"system_time"`
392
-	ConsumableType            int64                `gorm:"column:consumable_type" json:"consumable_type" form:"consumable_type"`
393
-	IsSys                     int64                `gorm:"column:is_sys" json:"is_sys" form:"is_sys"`
394
-	WarehousingOrder          string               `gorm:"column:warehousing_order" json:"warehousing_order" form:"warehousing_order"`
395
-	WarehouseOutId            int64                `gorm:"column:warehouse_out_id" json:"warehouse_out_id" form:"warehouse_out_id"`
396
-	WarehouseOutOrderNumber   string               `gorm:"column:warehouse_out_order_number" json:"warehouse_out_order_number" form:"warehouse_out_order_number"`
397
-	IsEdit                    int64                `gorm:"column:is_edit" json:"is_edit" form:"is_edit"`
398
-	CancelStockId             int64                `gorm:"column:cancel_stock_id" json:"cancel_stock_id" form:"cancel_stock_id"`
399
-	CancelOrderNumber         string               `gorm:"column:cancel_order_number" json:"cancel_order_number" form:"cancel_order_number"`
400
-	Manufacturer              int64                `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
401
-	Dealer                    int64                `gorm:"column:dealer" json:"dealer" form:"dealer"`
402
-	Creator                   int64                `gorm:"column:creator" json:"creator" form:"creator"`
403
-	UpdateCreator             int64                `gorm:"column:update_creator" json:"update_creator" form:"update_creator"`
404
-	Status                    int64                `gorm:"column:status" json:"status" form:"status"`
405
-	Ctime                     int64                `gorm:"column:ctime" json:"ctime" form:"ctime"`
406
-	Mtime                     int64                `gorm:"column:mtime" json:"mtime" form:"mtime"`
407
-	Price                     float64              `gorm:"column:price" json:"price" form:"price"`
408
-	WarehousingDetailId       int64                `gorm:"column:warehousing_detail_id" json:"warehousing_detail_id" form:"warehousing_detail_id"`
409
-	WarehouseOutDetailId      int64                `gorm:"column:warehouse_out_detail_id" json:"warehouse_out_detail_id" form:"warehouse_out_detail_id"`
410
-	CancelOutDetailId         int64                `gorm:"column:cancel_out_detail_id" json:"cancel_out_detail_id" form:"cancel_out_detail_id"`
411
-	ExpireDate                int64                `gorm:"column:expire_date" json:"expire_date" form:"expire_date"`
412
-	ProductDate               int64                `gorm:"column:product_date" json:"product_date" form:"product_date"`
413
-	MaxUnit                   string               `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
414
-	MinUnit                   string               `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
415
-	StockMaxNumber            int64                `gorm:"column:stock_max_number" json:"stock_max_number" form:"stock_max_number"`
416
-	StockMinNumber            int64                `gorm:"column:stock_min_number" json:"stock_min_number" form:"stock_min_number"`
417
-	LastStockMaxNumber        int64                `gorm:"column:last_stock_max_number" json:"last_stock_max_number" form:"last_stock_max_number"`
418
-	LastStockMinNumber        int64                `gorm:"column:last_stock_min_number" json:"last_stock_min_number" form:"last_stock_min_number"`
419
-	DrugWarehouseInfo         []*DrugWarehouseInfo `gorm:"ForeignKey:DrugId;AssociationForeignKey:DrugId" `
420
-	BaseDrugLib               BaseDrugLib          `gorm:"ForeignKey:ID;AssociationForeignKey:DrugId" `
421
-	AdviceId                  int64                `gorm:"column:advice_id" json:"advice_id" form:"advice_id"`
422
-	SupplyWarehouseId         int64                `gorm:"column:supply_warehouse_id" json:"supply_warehouse_id" form:"supply_warehouse_id"`
423
-	SupplyCancelOutId         int64                `gorm:"column:supply_cancel_out_id" json:"supply_cancel_out_id" form:"supply_cancel_out_id"`
424
-	SupplyWarehouseDetailInfo int64                `gorm:"column:supply_warehouse_detail_info" json:"supply_warehouse_detail_info" form:"supply_warehouse_detail_info"`
425
-	StorehouseId              int64                `gorm:"column:storehouse_id" json:"storehouse_id" form:"storehouse_id"`
426
-	SecondWarehouseInfoId     int64                `gorm:"column:second_warehouse_info_id" json:"second_warehouse_info_id" form:"second_warehouse_info_id"`
427
-	AdminUserId               int64                `gorm:"column:admin_user_id" json:"admin_user_id" form:"admin_user_id"`
428
-	LastPrice                 float64              `gorm:"column:last_price" json:"last_price" form:"last_price"`
429
-	StockCount                string               `gorm:"column:stock_count" json:"stock_count" form:"stock_count"`
430
-	PharmacyId                int64                `gorm:"column:pharmacy_id" json:"pharmacy_id" form:"pharmacy_id"`
431
-	DrugWarehouseInfoOne      DrugWarehouseInfo    `gorm:"ForeignKey:ID;AssociationForeignKey:WarehousingDetailId"json:"xt_drug_warehouse_info" `
432
-	IsRead                    int64                `gorm:"column:is_read" json:"is_read" form:"is_read"`
433
-	IsCheck                   int64                `gorm:"column:is_check" json:"is_check" form:"is_check"`
434
-	OverCount                 int64                `gorm:"column:over_count" json:"over_count" form:"over_count"`
435
-	RetailPrice               float64              `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
384
+	ID                        int64                  `gorm:"column:id" json:"id" form:"id"`
385
+	WarehousingId             int64                  `gorm:"column:warehousing_id" json:"warehousing_id" form:"warehousing_id"`
386
+	DrugId                    int64                  `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
387
+	Number                    string                 `gorm:"column:number" json:"number" form:"number"`
388
+	BatchNumber               string                 `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
389
+	Count                     int64                  `gorm:"column:count" json:"count" form:"count"`
390
+	UserOrgId                 int64                  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
391
+	PatientId                 int64                  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
392
+	SystemTime                int64                  `gorm:"column:system_time" json:"system_time" form:"system_time"`
393
+	ConsumableType            int64                  `gorm:"column:consumable_type" json:"consumable_type" form:"consumable_type"`
394
+	IsSys                     int64                  `gorm:"column:is_sys" json:"is_sys" form:"is_sys"`
395
+	WarehousingOrder          string                 `gorm:"column:warehousing_order" json:"warehousing_order" form:"warehousing_order"`
396
+	WarehouseOutId            int64                  `gorm:"column:warehouse_out_id" json:"warehouse_out_id" form:"warehouse_out_id"`
397
+	WarehouseOutOrderNumber   string                 `gorm:"column:warehouse_out_order_number" json:"warehouse_out_order_number" form:"warehouse_out_order_number"`
398
+	IsEdit                    int64                  `gorm:"column:is_edit" json:"is_edit" form:"is_edit"`
399
+	CancelStockId             int64                  `gorm:"column:cancel_stock_id" json:"cancel_stock_id" form:"cancel_stock_id"`
400
+	CancelOrderNumber         string                 `gorm:"column:cancel_order_number" json:"cancel_order_number" form:"cancel_order_number"`
401
+	Manufacturer              int64                  `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
402
+	Dealer                    int64                  `gorm:"column:dealer" json:"dealer" form:"dealer"`
403
+	Creator                   int64                  `gorm:"column:creator" json:"creator" form:"creator"`
404
+	UpdateCreator             int64                  `gorm:"column:update_creator" json:"update_creator" form:"update_creator"`
405
+	Status                    int64                  `gorm:"column:status" json:"status" form:"status"`
406
+	Ctime                     int64                  `gorm:"column:ctime" json:"ctime" form:"ctime"`
407
+	Mtime                     int64                  `gorm:"column:mtime" json:"mtime" form:"mtime"`
408
+	Price                     float64                `gorm:"column:price" json:"price" form:"price"`
409
+	WarehousingDetailId       int64                  `gorm:"column:warehousing_detail_id" json:"warehousing_detail_id" form:"warehousing_detail_id"`
410
+	WarehouseOutDetailId      int64                  `gorm:"column:warehouse_out_detail_id" json:"warehouse_out_detail_id" form:"warehouse_out_detail_id"`
411
+	CancelOutDetailId         int64                  `gorm:"column:cancel_out_detail_id" json:"cancel_out_detail_id" form:"cancel_out_detail_id"`
412
+	ExpireDate                int64                  `gorm:"column:expire_date" json:"expire_date" form:"expire_date"`
413
+	ProductDate               int64                  `gorm:"column:product_date" json:"product_date" form:"product_date"`
414
+	MaxUnit                   string                 `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
415
+	MinUnit                   string                 `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
416
+	StockMaxNumber            int64                  `gorm:"column:stock_max_number" json:"stock_max_number" form:"stock_max_number"`
417
+	StockMinNumber            int64                  `gorm:"column:stock_min_number" json:"stock_min_number" form:"stock_min_number"`
418
+	LastStockMaxNumber        int64                  `gorm:"column:last_stock_max_number" json:"last_stock_max_number" form:"last_stock_max_number"`
419
+	LastStockMinNumber        int64                  `gorm:"column:last_stock_min_number" json:"last_stock_min_number" form:"last_stock_min_number"`
420
+	DrugWarehouseInfo         []*DrugWarehouseInfo   `gorm:"ForeignKey:DrugId;AssociationForeignKey:DrugId" `
421
+	BaseDrugLib               BaseDrugLib            `gorm:"ForeignKey:ID;AssociationForeignKey:DrugId" `
422
+	AdviceId                  int64                  `gorm:"column:advice_id" json:"advice_id" form:"advice_id"`
423
+	SupplyWarehouseId         int64                  `gorm:"column:supply_warehouse_id" json:"supply_warehouse_id" form:"supply_warehouse_id"`
424
+	SupplyCancelOutId         int64                  `gorm:"column:supply_cancel_out_id" json:"supply_cancel_out_id" form:"supply_cancel_out_id"`
425
+	SupplyWarehouseDetailInfo int64                  `gorm:"column:supply_warehouse_detail_info" json:"supply_warehouse_detail_info" form:"supply_warehouse_detail_info"`
426
+	StorehouseId              int64                  `gorm:"column:storehouse_id" json:"storehouse_id" form:"storehouse_id"`
427
+	SecondWarehouseInfoId     int64                  `gorm:"column:second_warehouse_info_id" json:"second_warehouse_info_id" form:"second_warehouse_info_id"`
428
+	AdminUserId               int64                  `gorm:"column:admin_user_id" json:"admin_user_id" form:"admin_user_id"`
429
+	LastPrice                 float64                `gorm:"column:last_price" json:"last_price" form:"last_price"`
430
+	StockCount                string                 `gorm:"column:stock_count" json:"stock_count" form:"stock_count"`
431
+	PharmacyId                int64                  `gorm:"column:pharmacy_id" json:"pharmacy_id" form:"pharmacy_id"`
432
+	DrugWarehouseInfoOne      DrugWarehouseInfo      `gorm:"ForeignKey:ID;AssociationForeignKey:WarehousingDetailId"json:"xt_drug_warehouse_info" `
433
+	IsRead                    int64                  `gorm:"column:is_read" json:"is_read" form:"is_read"`
434
+	IsCheck                   int64                  `gorm:"column:is_check" json:"is_check" form:"is_check"`
435
+	OverCount                 int64                  `gorm:"column:over_count" json:"over_count" form:"over_count"`
436
+	RetailPrice               float64                `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
437
+	XtDrugWarehouseOutInfo    XtDrugWarehouseOutInfo `gorm:"ForeignKey:ID;AssociationForeignKey:WarehouseOutDetailId"json:"xt_drug_warehouse_out_info" `
436 438
 }
437 439
 
438 440
 func (DrugFlow) TableName() string {

+ 16 - 0
service/gobal_config_service.go View File

@@ -974,3 +974,19 @@ func GetDrugFlowBatch(ware_out_id int64, drug_id int64, orgid int64) (flow []*mo
974 974
 	err = XTReadDB().Where("warehouse_out_id = ? and drug_id = ? and user_org_id = ? and status = 1", ware_out_id, drug_id, orgid).Find(&flow).Error
975 975
 	return flow, err
976 976
 }
977
+
978
+func GetDrugWarehouseOutInfoFlow(drug_id int64, start_time int64, end_time int64, user_org_id int64) (info []*models.XtDrugWarehouseOutInfo, err error) {
979
+
980
+	db := XTReadDB().Model(&info).Where("status = 1")
981
+	if start_time > 0 {
982
+		db = db.Where("sys_record_time >=?", start_time)
983
+	}
984
+	if end_time > 0 {
985
+		db = db.Where("sys_record_time <=?", end_time)
986
+	}
987
+	if user_org_id > 0 {
988
+		db = db.Where("user_org_id = ?", user_org_id)
989
+	}
990
+	err = db.Find(&info).Error
991
+	return info, err
992
+}

+ 4 - 1
service/manage_center_service.go View File

@@ -825,7 +825,10 @@ func DrugAutoAddCancelInfo(advice *models.HisDoctorAdviceInfo, creater int64) er
825 825
 		medical, _ := GetBaseDrugMedical(advice.DrugId)
826 826
 		var sum_count_one int64
827 827
 		for _, its := range stockInfo {
828
-			sum_count_one += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
828
+			if its.MaxUnit == medical.MaxUnit {
829
+				its.StockMaxNumber = its.StockMaxNumber * medical.MinNumber
830
+			}
831
+			sum_count_one += its.StockMaxNumber + its.StockMinNumber
829 832
 		}
830 833
 		UpdateBaseDrugSumTwo(advice.DrugId, sum_count_one, advice.UserOrgId)
831 834
 

+ 23 - 10
service/new_warehouse_service.go View File

@@ -85,6 +85,7 @@ func ConsumablesGoodDelivery(orgID int64, patient_id int64, record_time int64, g
85 85
 		warehouseOutInfo.Count = count
86 86
 
87 87
 		_, errcodes := GetWarehouseOutInfoIsExistOne(goods.GoodId, patient_id, record_time, goods.ProjectId)
88
+		fmt.Println("errcodes2333232233232wode3223", errcodes, goods.ProjectId)
88 89
 		if errcodes == gorm.ErrRecordNotFound {
89 90
 			errOne := AddSigleWarehouseOutInfo(warehouseOutInfo)
90 91
 			if errOne != nil {
@@ -233,8 +234,8 @@ func ConsumablesGoodDelivery(orgID int64, patient_id int64, record_time int64, g
233 234
 				ConsumableType:          7,
234 235
 				IsSys:                   0,
235 236
 				WarehousingOrder:        "",
236
-				WarehouseOutId:          0,
237
-				WarehouseOutOrderNumber: "",
237
+				WarehouseOutId:          lastOut.WarehouseOutId,
238
+				WarehouseOutOrderNumber: lastOut.WarehouseOutOrderNumber,
238 239
 				IsEdit:                  0,
239 240
 				CancelStockId:           cancel.ID,
240 241
 				CancelOrderNumber:       cancel.OrderNumber,
@@ -330,8 +331,8 @@ func ConsumablesGoodDelivery(orgID int64, patient_id int64, record_time int64, g
330 331
 		}
331 332
 		warehouseOutInfo.Count = stock_number
332 333
 
333
-		_, errcodes := GetWarehouseOutInfoIsExistOne(goods.GoodId, goods.PatientId, record_time, goods.ProjectId)
334
-
334
+		_, errcodes := GetWarehouseOutInfoIsExistOne(goods.GoodId, patient_id, record_time, goods.ProjectId)
335
+		fmt.Println("errcodes23332322332323223", errcodes, goods.ProjectId)
335 336
 		if errcodes == gorm.ErrRecordNotFound {
336 337
 			errOne := AddSigleWarehouseOutInfo(warehouseOutInfo)
337 338
 			if errOne != nil {
@@ -469,8 +470,8 @@ func ConsumablesGoodDelivery(orgID int64, patient_id int64, record_time int64, g
469 470
 				ConsumableType:          7,
470 471
 				IsSys:                   0,
471 472
 				WarehousingOrder:        "",
472
-				WarehouseOutId:          0,
473
-				WarehouseOutOrderNumber: "",
473
+				WarehouseOutId:          lastOut.WarehouseOutId,
474
+				WarehouseOutOrderNumber: lastOut.WarehouseOutOrderNumber,
474 475
 				IsEdit:                  0,
475 476
 				CancelStockId:           cancel.ID,
476 477
 				CancelOrderNumber:       cancel.OrderNumber,
@@ -697,7 +698,10 @@ func BloodDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseout *
697 698
 		stockInfo, _ := GetDrugAllStockInfo(storeConfig.DrugStorehouseOut, orgID, advice.DrugId)
698 699
 		var sum_count int64
699 700
 		for _, its := range stockInfo {
700
-			sum_count += its.StockMaxNumber*drup.MinNumber + its.StockMinNumber
701
+			if its.MaxUnit == drup.MaxUnit {
702
+				its.StockMaxNumber = its.StockMaxNumber * drup.MinNumber
703
+			}
704
+			sum_count += its.StockMaxNumber + its.StockMinNumber
701 705
 		}
702 706
 
703 707
 		warehouseOutInfo := &models.DrugWarehouseOutInfo{
@@ -967,7 +971,10 @@ func BloodDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseout *
967 971
 		stockInfo, _ := GetDrugAllStockInfo(storeConfig.DrugStorehouseOut, orgID, advice.DrugId)
968 972
 		var sum_count int64
969 973
 		for _, its := range stockInfo {
970
-			sum_count += its.StockMaxNumber*drup.MinNumber + its.StockMinNumber
974
+			if its.MaxUnit == drup.MaxUnit {
975
+				its.StockMaxNumber = its.StockMaxNumber * drup.MinNumber
976
+			}
977
+			sum_count += its.StockMaxNumber + its.StockMinNumber
971 978
 		}
972 979
 
973 980
 		// 当该批次的库存数量小于出库数量的话,则先把该批次出库完后,再进行递归出库
@@ -1333,7 +1340,10 @@ func BloodHisDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseou
1333 1340
 		stockInfo, _ := GetDrugAllStockInfo(storeConfig.DrugStorehouseOut, orgID, advice.DrugId)
1334 1341
 		var sum_count int64
1335 1342
 		for _, its := range stockInfo {
1336
-			sum_count += its.StockMaxNumber*drup.MinNumber + its.StockMinNumber
1343
+			if its.MaxUnit == drup.MaxUnit {
1344
+				its.StockMaxNumber = its.StockMaxNumber * drup.MinNumber
1345
+			}
1346
+			sum_count += its.StockMaxNumber + its.StockMinNumber
1337 1347
 		}
1338 1348
 
1339 1349
 		warehouseOutInfo := &models.DrugWarehouseOutInfo{
@@ -1615,7 +1625,10 @@ func BloodHisDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseou
1615 1625
 		stockInfo, _ := GetDrugAllStockInfo(storeConfig.DrugStorehouseOut, orgID, advice.DrugId)
1616 1626
 		var sum_count int64
1617 1627
 		for _, its := range stockInfo {
1618
-			sum_count += its.StockMaxNumber*drup.MinNumber + its.StockMinNumber
1628
+			if its.MaxUnit == drup.MaxUnit {
1629
+				its.StockMaxNumber = its.StockMaxNumber * drup.MinNumber
1630
+			}
1631
+			sum_count += its.StockMaxNumber + its.StockMinNumber
1619 1632
 		}
1620 1633
 
1621 1634
 		// 当该批次的库存数量小于出库数量的话,则先把该批次出库完后,再进行递归出库

+ 19 - 6
service/pharmacy_service.go View File

@@ -742,15 +742,20 @@ func DrugWithdrawal(orgid, patient_id, stime, etime, creater int64) (err error)
742 742
 			err = fmt.Errorf("!:%v", err)
743 743
 			return
744 744
 		}
745
-		drug, _ := FindBaseDrugLibRecordSeven(orgid, v.DrugId)
745
+		//drug, _ := FindBaseDrugLibRecordSeven(orgid, v.DrugId)
746 746
 		//查询默认仓库
747 747
 		storeHouseConfig, _ := GetAllStoreHouseConfig(orgid)
748 748
 		//查询默认仓库剩余多少库存
749 749
 		var sum_count int64
750 750
 		stockInfo, _ := GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, orgid, v.DrugId)
751 751
 		for _, its := range stockInfo {
752
-			sum_count += its.StockMaxNumber*drug.MinNumber + its.StockMinNumber
752
+			baseDrug, _ := GetBaseDrugMedical(its.DrugId)
753
+			if its.MaxUnit == baseDrug.MaxUnit {
754
+				its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
755
+			}
756
+			sum_count += its.StockMaxNumber + its.StockMinNumber
753 757
 		}
758
+
754 759
 		UpdateBaseDrugSumTwo(v.DrugId, sum_count, orgid)
755 760
 	}
756 761
 
@@ -789,14 +794,18 @@ func DrugWithdrawal(orgid, patient_id, stime, etime, creater int64) (err error)
789 794
 			err = fmt.Errorf("!:%v", err)
790 795
 			return
791 796
 		}
792
-		drug, _ := FindBaseDrugLibRecordSeven(orgid, v.DrugId)
797
+		//drug, _ := FindBaseDrugLibRecordSeven(orgid, v.DrugId)
793 798
 		//查询默认仓库
794 799
 		storeHouseConfig, _ := GetAllStoreHouseConfig(orgid)
795 800
 		//查询默认仓库剩余多少库存
796 801
 		var sum_count int64
797 802
 		stockInfo, _ := GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, orgid, v.DrugId)
798 803
 		for _, its := range stockInfo {
799
-			sum_count += its.StockMaxNumber*drug.MinNumber + its.StockMinNumber
804
+			baseDrug, _ := GetBaseDrugMedical(its.DrugId)
805
+			if its.MaxUnit == baseDrug.MaxUnit {
806
+				its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
807
+			}
808
+			sum_count += its.StockMaxNumber + its.StockMinNumber
800 809
 		}
801 810
 		UpdateBaseDrugSumTwo(v.DrugId, sum_count, orgid)
802 811
 	}
@@ -1084,14 +1093,18 @@ func FenStock(orgid, creater int64, v *models.HisDoctorAdviceInfo) (err error) {
1084 1093
 		err = fmt.Errorf("!:%v", err)
1085 1094
 		return
1086 1095
 	}
1087
-	drug, _ := FindBaseDrugLibRecordSeven(orgid, v.DrugId)
1096
+	//drug, _ := FindBaseDrugLibRecordSeven(orgid, v.DrugId)
1088 1097
 	//查询默认仓库
1089 1098
 	storeHouseConfig, _ := GetAllStoreHouseConfig(orgid)
1090 1099
 	//查询默认仓库剩余多少库存
1091 1100
 	var sum_count int64
1092 1101
 	stockInfo, _ := GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, orgid, v.DrugId)
1093 1102
 	for _, its := range stockInfo {
1094
-		sum_count += its.StockMaxNumber*drug.MinNumber + its.StockMinNumber
1103
+		baseDrug, _ := GetBaseDrugMedical(its.DrugId)
1104
+		if its.MaxUnit == baseDrug.MaxUnit {
1105
+			its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
1106
+		}
1107
+		sum_count += its.StockMaxNumber + its.StockMinNumber
1095 1108
 	}
1096 1109
 	UpdateBaseDrugSumTwo(v.DrugId, sum_count, orgid)
1097 1110
 	return

+ 15 - 2
service/stock_service.go View File

@@ -4855,10 +4855,23 @@ func GetExportOutOrderDrugListOne(warehouse_out_id []string) (out []*models.StDr
4855 4855
 	if len(warehouse_out_id) > 0 {
4856 4856
 		db = db.Where("x.warehouse_out_id in(?)", warehouse_out_id)
4857 4857
 	}
4858
-	err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.count,x.max_unit as count_unit,x.price,x.retail_price,x.product_date,x.expire_date,x.warehouse_out_order_number,x.dealer,x.manufacturer,x.is_sys,x.number,x.batch_number,x.patient_id,x.ctime,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
4858
+	err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.count,x.max_unit as count_unit,x.price,x.retail_price,x.product_date,x.expire_date,x.warehouse_out_order_number,x.dealer,x.manufacturer,x.is_sys,x.number,x.batch_number,x.patient_id,x.ctime,x.consumable_type,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
4859 4859
 	return out, err
4860 4860
 }
4861 4861
 
4862
+func GetDrugOutListFlow(warehouse_out_id []string, orgid int64) (info []*models.XtDrugWarehouseOutInfo, err error) {
4863
+
4864
+	db := XTReadDB().Model(&info).Where("status = 1")
4865
+	if len(warehouse_out_id) > 0 {
4866
+		db = db.Where("warehouse_out_id in(?)", warehouse_out_id)
4867
+	}
4868
+	if orgid > 0 {
4869
+		db = db.Where("org_id = ?", orgid)
4870
+	}
4871
+	err = db.Find(&info).Error
4872
+	return info, err
4873
+}
4874
+
4862 4875
 func GetDrugWarehouseOut(warehouse_out_id []string) (out []*models.StDrugWarehouseOutInfo, err error) {
4863 4876
 
4864 4877
 	err = XTReadDB().Where("warehouse_out_id in(?)", warehouse_out_id).Find(&out).Error
@@ -5239,7 +5252,7 @@ func GetDrugFlow(drugid int64, orgid int64, limit int64, page int64, startTime i
5239 5252
 		}
5240 5253
 
5241 5254
 	}
5242
-	err = db.Count(&total).Offset(offset).Limit(limit).Order("id desc").Preload("BaseDrugLib", "status = 1").Preload("DrugWarehouseInfo", "status = 1").Find(&drug_flow).Error
5255
+	err = db.Count(&total).Offset(offset).Limit(limit).Order("id desc").Preload("BaseDrugLib", "status = 1").Preload("DrugWarehouseInfo", "status = 1").Preload("XtDrugWarehouseOutInfo", "status = 1").Find(&drug_flow).Error
5243 5256
 	return drug_flow, total, err
5244 5257
 }
5245 5258