Browse Source

历史排班

28169 1 year ago
parent
commit
d88a33a589

BIN
XT_New.exe View File


+ 13 - 17
controllers/drug_stock_api_contorller.go View File

@@ -3820,11 +3820,7 @@ func (c *StockDrugApiController) CheckDrugOut() {
3820 3820
 		medical, _ := service.GetBaseDrugMedical(it.DrugId)
3821 3821
 		////出库数量累加
3822 3822
 		var out_count_one int64
3823
-		//fmt.Println("it.count", it.CountUnit)
3824
-		//fmt.Println("MaxUnit", medical.MaxUnit)
3825
-		//fmt.Println("MinUnit", medical.MinUnit)
3826
-		//fmt.Println("count", it.Count)
3827
-		//fmt.Println("number", medical.MinNumber)
3823
+
3828 3824
 		if it.CountUnit == medical.MaxUnit && medical.MaxUnit != medical.MinUnit {
3829 3825
 			out_count_one = it.Count * medical.MinNumber
3830 3826
 		}
@@ -3836,10 +3832,8 @@ func (c *StockDrugApiController) CheckDrugOut() {
3836 3832
 		if it.CountUnit == medical.MaxUnit && medical.MaxUnit == medical.MinUnit {
3837 3833
 			out_count_one = it.Count
3838 3834
 		}
3839
-		//fmt.Println("countone3232232323323232332332wo", out_count_one)
3840
-		//增加出库数量
3835
+
3841 3836
 		service.AddDrugCount(it.DrugId, it.OrgId, storeHouseConfig.DrugStorehouseOut, out_count_one)
3842
-		//fmt.Println("countunit23322332232323", it.CountUnit)
3843 3837
 
3844 3838
 	}
3845 3839
 	warehousingOutInfoListThree, _ := service.GetDrugWarehouseOutListById(warehouse_out_id, orgId)
@@ -3847,7 +3841,7 @@ func (c *StockDrugApiController) CheckDrugOut() {
3847 3841
 		medical, _ := service.GetBaseDrugMedical(it.DrugId)
3848 3842
 		drup, _ := service.FindBaseDrugLibRecord(it.OrgId, it.DrugId)
3849 3843
 		//出库逻辑
3850
-		service.AutoDrugDeliverInfoFourtyOne(orgId, it.Count, &drugWarehouseOut, &drup, it)
3844
+		service.AutoDrugDeliverInfoFourtyOne(orgId, it.Count, &drugWarehouseOut, &drup, it, it.CountUnit)
3851 3845
 
3852 3846
 		//查询剩余库存
3853 3847
 		stockInfo, _ := service.GetDrugAllStockInfo(storeHouseConfig.DrugStorehouseOut, it.OrgId, it.DrugId)
@@ -3861,13 +3855,6 @@ func (c *StockDrugApiController) CheckDrugOut() {
3861 3855
 		//更新基础库库存
3862 3856
 		service.UpdateBaseDrugSumTwo(it.DrugId, sum_count, it.OrgId)
3863 3857
 
3864
-		//查询该药品剩余库存
3865
-		//infolist, _ := service.FindDrugWarehouseInfoFlushCountByStorehouse(it.DrugId, it.OrgId, storeHouseConfig.DrugStorehouseOut)
3866
-		//var over_count int64
3867
-		//for _, its := range infolist {
3868
-		//  over_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
3869
-		//}
3870
-		//更新剩余库存
3871 3858
 		service.UpdateDrugStockCount(it.DrugId, it.OrgId, storeHouseConfig.DrugStorehouseOut, sum_count)
3872 3859
 
3873 3860
 	}
@@ -3996,8 +3983,17 @@ func (c *StockDrugApiController) ToReturnCheck() {
3996 3983
 		infolist, _ := service.FindDrugWarehouseInfoFlushCountByStorehouse(item.DrugId, item.OrgId, storeHouseConfig.DrugStorehouseOut)
3997 3984
 		var over_count int64
3998 3985
 		for _, its := range infolist {
3999
-			over_count += its.StockMaxNumber*medical.MinNumber + its.StockMinNumber
3986
+			baseDrug, _ := service.GetBaseDrugMedical(its.DrugId)
3987
+			fmt.Println("ITS", its.MaxUnit)
3988
+			fmt.Println("itwowoowow", baseDrug.MaxUnit)
3989
+			if its.MaxUnit == baseDrug.MaxUnit {
3990
+				its.StockMaxNumber = its.StockMaxNumber * baseDrug.MinNumber
3991
+			}
3992
+			fmt.Println("its.StockMaxNumber", its.StockMaxNumber)
3993
+			fmt.Println("its.StockMinNumber", its.StockMinNumber)
3994
+			over_count += its.StockMaxNumber + its.StockMinNumber
4000 3995
 		}
3996
+		fmt.Println("over_coutnwowowowowo", over_count)
4001 3997
 		service.UpdateDrugStockCount(item.DrugId, item.OrgId, storeHouseConfig.DrugStorehouseOut, over_count)
4002 3998
 
4003 3999
 	}

+ 6 - 6
controllers/pharmacy_controller.go View File

@@ -90,7 +90,7 @@ func (this *PharmacyController) TodayNumber() {
90 90
 		etime = stime + 86399
91 91
 	}
92 92
 
93
-	if orgid != 9671 && orgid != 10188 && orgid != 10217 && orgid != 3877 && orgid != 10164 {
93
+	if orgid != 9671 && orgid != 10188 && orgid != 10217 && orgid != 3877 && orgid != 10164 && orgid != 10480 {
94 94
 		//查询表里当天的数据
95 95
 		var wtotal int
96 96
 		wtotal, err = service.GetTodayPharmacy(stime, etime, orgid, 1)
@@ -118,7 +118,7 @@ func (this *PharmacyController) TodayNumber() {
118 118
 		return
119 119
 	}
120 120
 
121
-	if orgid == 9671 || orgid == 10188 || orgid == 10217 || orgid == 3877 || orgid == 10164 {
121
+	if orgid == 9671 || orgid == 10188 || orgid == 10217 || orgid == 3877 || orgid == 10164 || orgid == 10480 {
122 122
 		var wtotal int
123 123
 		var itotal int
124 124
 		//查找出库数量
@@ -169,7 +169,7 @@ func (this *PharmacyController) IssuedDrug() {
169 169
 		etime = stime + 86399
170 170
 	}
171 171
 
172
-	if orgid == 10164 || orgid == 3877 || orgid == 10188 || orgid == 10217 || orgid == 9671 || orgid == 10387 || orgid == 10375 {
172
+	if orgid == 10164 || orgid == 3877 || orgid == 10188 || orgid == 10217 || orgid == 9671 || orgid == 10387 || orgid == 10375 || orgid == 10480 {
173 173
 
174 174
 		//获取排班班次
175 175
 		schedule, _ := service.GetSchedulePatientId(stime, etime, orgid, shift, partition)
@@ -193,7 +193,7 @@ func (this *PharmacyController) IssuedDrug() {
193 193
 		})
194 194
 	}
195 195
 
196
-	if orgid != 10164 && orgid == 3877 && orgid != 10188 && orgid != 10217 && orgid != 9671 && orgid != 10387 && orgid != 10375 {
196
+	if orgid != 10164 && orgid == 3877 && orgid != 10188 && orgid != 10217 && orgid != 9671 && orgid != 10387 && orgid != 10375 && orgid != 10480 {
197 197
 		//查询表里当天的数据
198 198
 		var flist []*models.TmpPatient
199 199
 		flist, err = service.GetTodayDrug(stime, etime, orgid, 1, keyword)
@@ -249,7 +249,7 @@ func (this *PharmacyController) WaitingDrug() {
249 249
 		etime = stime + 86399
250 250
 	}
251 251
 
252
-	if orgid != 9671 && orgid != 10188 && orgid != 10217 && orgid != 3877 && orgid != 10164 && orgid != 10387 && orgid != 10375 {
252
+	if orgid != 9671 && orgid != 10188 && orgid != 10217 && orgid != 3877 && orgid != 10164 && orgid != 10387 && orgid != 10375 && orgid != 10480 {
253 253
 		//查询表里当天的数据
254 254
 		var flist []*models.TmpPatient
255 255
 		flist, err = service.GetTodayDrug(stime, etime, orgid, 0, keyword)
@@ -273,7 +273,7 @@ func (this *PharmacyController) WaitingDrug() {
273 273
 	}
274 274
 
275 275
 	//当天已发药的人数
276
-	if orgid == 9671 || orgid == 10188 || orgid == 10217 || orgid == 3877 || orgid == 10164 || orgid == 10387 || orgid == 10375 {
276
+	if orgid == 9671 || orgid == 10188 || orgid == 10217 || orgid == 3877 || orgid == 10164 || orgid == 10387 || orgid == 10375 || orgid == 10480 {
277 277
 
278 278
 		//获取排班班次
279 279
 		schedule, _ := service.GetSchedulePatientId(stime, etime, orgid, shift, partition)

+ 2 - 0
models/patient_models.go View File

@@ -25,6 +25,7 @@ type MSchedualPatientList struct {
25 25
 	TrobleShoot        int64  `gorm:"column:troble_shoot" json:"troble_shoot" form:"troble_shoot"`
26 26
 	SchRemark          string `gorm:"column:sch_remark" json:"sch_remark" form:"sch_remark"`
27 27
 	ScheduleRemark     string `gorm:"column:schedule_remark" json:"schedule_remark" form:"schedule_remark"`
28
+	FirstLetter        string `gorm:"column:first_letter" json:"first_letter" form:"first_letter"`
28 29
 }
29 30
 
30 31
 func (MSchedualPatientList) TableName() string {
@@ -832,6 +833,7 @@ type XtPatientsNew struct {
832 833
 	InfectiousRemark             string  `gorm:"column:infectious_remark" json:"infectious_remark" form:"infectious_remark"`
833 834
 	AllergicHistory              string  `gorm:"column:allergic_history" json:"allergic_history" form:"allergic_history"`
834 835
 	PatientAddress               string  `gorm:"column:patient_address" json:"patient_address" form:"patient_address"`
836
+	FirstLetter                  string  `gorm:"column:first_letter" json:"first_letter" form:"first_letter"`
835 837
 }
836 838
 
837 839
 func (XtPatientsNew) TableName() string {

+ 2 - 2
service/new_warehouse_service.go View File

@@ -1554,7 +1554,7 @@ func BloodHisDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseou
1554 1554
 
1555 1555
 			//查询今日该药品该患者是否有出库数据
1556 1556
 			lastDrugOutInfo, _ := GetNewDrugWarehouseOutInfoSix(advice.DrugId, advice.PatientId, advice.RecordDate, advice.UserOrgId, advice.ID, warehouse.ID)
1557
-			fmt.Println("以色列---------------------------------------", lastDrugOutInfo.ID)
1557
+
1558 1558
 			if lastDrugOutInfo.ID == 0 {
1559 1559
 				errOne := AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
1560 1560
 				if errOne != nil {
@@ -1575,7 +1575,7 @@ func BloodHisDrugDeliverInfo(orgID int64, prescribingNumber float64, warehouseou
1575 1575
 				}
1576 1576
 			}
1577 1577
 			if lastDrugOutInfo.ID > 0 {
1578
-				fmt.Println("wowowowowowwwwwwwwwwwwwwwwwwwwwwwww")
1578
+
1579 1579
 				//删除在新增
1580 1580
 				UpdateDrugWarehouseOutInfoTen(lastDrugOutInfo.PatientId, lastDrugOutInfo.SysRecordTime, advice.ID)
1581 1581
 

+ 70 - 44
service/warhouse_service.go View File

@@ -5764,61 +5764,78 @@ func ConsumablesDeliveryThirty(orgID int64, record_time int64, goods *models.War
5764 5764
 }
5765 5765
 
5766 5766
 // 药品手动出库 递归方式
5767
-func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehouseout *models.DrugWarehouseOut, drup *models.BaseDrugLib, advice *models.DrugWarehouseOutInfo) (err error) {
5767
+func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehouseout *models.DrugWarehouseOut, drup *models.BaseDrugLib, advice *models.DrugWarehouseOutInfo, unit string) (err error) {
5768 5768
 
5769 5769
 	// 判断处方里药品单位是拆零单位还是包装单位,	如果是包装单位,则根据规格,将包装数量转为拆零数量
5770 5770
 	var deliver_number int64 = 0
5771
+
5771 5772
 	var stock_number int64 = 0
5772
-	var retail_price float64
5773
+
5774
+	var drug_price float64
5773 5775
 	if advice.CountUnit == drup.MaxUnit {
5774 5776
 		deliver_number = prescribingNumber * drup.MinNumber
5775
-		formatInt := strconv.FormatInt(prescribingNumber, 10)
5776
-		floatcount, _ := strconv.ParseFloat(formatInt, 64)
5777
-		retail_price = floatcount * advice.Price
5777
+
5778 5778
 	} else {
5779 5779
 		deliver_number = prescribingNumber
5780
-		formatInt := strconv.FormatInt(prescribingNumber, 10)
5781
-		floatcount, _ := strconv.ParseFloat(formatInt, 64)
5782
-		retail_price = floatcount * advice.Price
5780
+
5783 5781
 	}
5782
+	if advice.CountUnit == drup.MaxUnit {
5783
+		drug_price = drup.RetailPrice
5784
+	}
5785
+	fmt.Println(drug_price)
5784 5786
 
5785
-	lastWarehouse, _ := FindLastDrugWarehousingInfoByID(advice.DrugId, warehouseout.StorehouseId)
5786
-	if lastWarehouse.StockMinNumber >= drup.MinNumber {
5787
-		var stockMax int64
5788
-		var stockMin int64
5789
-		stockMax = lastWarehouse.StockMinNumber / drup.MinNumber
5790
-		stockMin = lastWarehouse.StockMinNumber % drup.MinNumber
5791
-		//fmt.Println("stockmax", stockMax)
5792
-		//fmt.Println("stockMin", stockMin)
5793
-		ChangeMaxNumber(lastWarehouse.ID, stockMax)
5794
-		UpdateMinNumber(lastWarehouse.ID, stockMin)
5787
+	if advice.CountUnit == drup.MinUnit {
5788
+		drug_price = drup.MinPrice
5795 5789
 	}
5796 5790
 
5797
-	warehouse, err := FindLastDrugWarehousingInfoByID(advice.DrugId, warehouseout.StorehouseId)
5791
+	if advice.CountUnit != drup.MaxUnit || advice.CountUnit != drup.MinUnit {
5792
+		drug_price = drup.RetailPrice
5793
+	}
5798 5794
 
5799
-	if err != nil {
5795
+	// 根据先进先出原则,查询最先入库的批次,进行出库
5796
+	// 如果没有对应的库存,则报错
5797
+	lastWarehouse, _ := FindLastDrugWarehousingInfoByID(advice.DrugId, advice.StorehouseId)
5800 5798
 
5801
-		return err
5799
+	if lastWarehouse.MaxUnit != lastWarehouse.MinUnit && drup.MaxUnit != drup.MinUnit && lastWarehouse.MinUnit != "" {
5800
+		if lastWarehouse.StockMinNumber >= drup.MinNumber {
5801
+			var stockMax int64
5802
+			var stockMin int64
5803
+			stockMax = lastWarehouse.StockMinNumber / drup.MinNumber
5804
+			stockMin = lastWarehouse.StockMinNumber % drup.MinNumber
5805
+
5806
+			ChangeMaxNumber(lastWarehouse.ID, stockMax)
5807
+			UpdateMinNumber(lastWarehouse.ID, stockMin)
5808
+
5809
+		}
5802 5810
 	}
5803 5811
 
5812
+	if lastWarehouse.MaxUnit == lastWarehouse.MinUnit && drup.MaxUnit != drup.MinUnit && lastWarehouse.MinUnit != "" {
5813
+
5814
+		lastWarehouse.StockMaxNumber = lastWarehouse.StockMaxNumber + lastWarehouse.StockMinNumber
5815
+		ChangeMaxNumberOne(lastWarehouse.ID, lastWarehouse.StockMaxNumber)
5816
+
5817
+	}
5818
+
5819
+	warehouse, err := FindLastDrugWarehousingInfoByID(advice.DrugId, advice.StorehouseId)
5820
+
5804 5821
 	// 将该批次的剩余库存数量转换为拆零数量
5805 5822
 	if warehouse.MaxUnit == drup.MaxUnit && drup.MaxUnit != drup.MinUnit {
5823
+
5806 5824
 		stock_number = warehouse.StockMaxNumber*drup.MinNumber + warehouse.StockMinNumber
5825
+
5807 5826
 	}
5808 5827
 	if warehouse.MaxUnit == drup.MinUnit && drup.MaxUnit != drup.MinUnit {
5828
+
5809 5829
 		stock_number = warehouse.StockMaxNumber + warehouse.StockMinNumber
5830
+
5810 5831
 	}
5811 5832
 	if warehouse.MaxUnit == drup.MaxUnit && drup.MaxUnit == drup.MinUnit {
5833
+
5812 5834
 		stock_number = warehouse.StockMaxNumber*drup.MinNumber + warehouse.StockMinNumber
5813
-	}
5814 5835
 
5815
-	fmt.Println("stock_number", stock_number)
5816
-	fmt.Println("deliver_number", deliver_number)
5817
-	// 当库存数量大于或等于出库数量的话,则正常出库该批次
5836
+	}
5818 5837
 	if stock_number >= deliver_number {
5819 5838
 
5820
-		// 出库完成后,要减去对应批次的库存数量
5821
-		// 判断处方里药品单位是拆零单位还是包装单位,	如果是拆零单位,则根据规格,将拆零数量转为包装数量
5822 5839
 		var maxNumber int64 = 0
5823 5840
 		var minNumber int64 = 0
5824 5841
 
@@ -5836,12 +5853,16 @@ func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehous
5836 5853
 		}
5837 5854
 
5838 5855
 		if drup.MinUnit == warehouse.MaxUnit && drup.MaxUnit != drup.MinUnit {
5856
+			//fmt.Println("金1")
5839 5857
 			warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber*drup.MinNumber
5840 5858
 		}
5859
+
5841 5860
 		if drup.MaxUnit == warehouse.MaxUnit && drup.MaxUnit != drup.MinUnit {
5861
+			//fmt.Println("金2")
5842 5862
 			warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
5843 5863
 		}
5844 5864
 		if drup.MaxUnit == warehouse.MaxUnit && drup.MaxUnit == drup.MinUnit {
5865
+			//fmt.Println("金3")
5845 5866
 			warehouse.StockMaxNumber = warehouse.StockMaxNumber - maxNumber
5846 5867
 		}
5847 5868
 
@@ -5854,37 +5875,42 @@ func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehous
5854 5875
 
5855 5876
 		warehouse.Mtime = time.Now().Unix()
5856 5877
 
5878
+		//fmt.Println("stockmin", warehouse.StockMinNumber)
5879
+		//fmt.Println("minnubmerr", minNumber)
5857 5880
 		if warehouse.StockMinNumber < minNumber {
5881
+			//fmt.Println("金4")
5858 5882
 			warehouse.StockMaxNumber = warehouse.StockMaxNumber - 1
5859 5883
 			if warehouse.MaxUnit != warehouse.MinUnit {
5860 5884
 				warehouse.StockMinNumber = warehouse.StockMinNumber + drup.MinNumber - minNumber
5861 5885
 			}
5862
-
5886
+			if minNumber == 2 && warehouse.MaxUnit == warehouse.MinUnit && warehouse.StockMinNumber == 0 {
5887
+				warehouse.StockMaxNumber = warehouse.StockMaxNumber - 1
5888
+			}
5863 5889
 		} else {
5864
-			//fmt.Println("maxNumber23323323332322323w9", maxNumber)
5865
-			//fmt.Println("maxNumber23323323332322323w9", minNumber)
5890
+			//fmt.Println("金5")
5866 5891
 			if minNumber > 0 {
5867
-				if minNumber == 1 && maxNumber == 1 && drup.MaxUnit != drup.MinUnit {
5868
-					warehouse.StockMinNumber = warehouse.StockMinNumber - deliver_number
5869
-				} else {
5870
-					if (warehouse.StockMinNumber - minNumber) >= 0 {
5871
-						warehouse.StockMinNumber = warehouse.StockMinNumber - minNumber
5872
-					}
5873
-
5892
+				if (warehouse.StockMinNumber - minNumber) >= 0 {
5893
+					warehouse.StockMinNumber = warehouse.StockMinNumber - minNumber
5874 5894
 				}
5895
+
5875 5896
 			}
5876 5897
 
5877
-			if minNumber == 0 && maxNumber != 1 {
5898
+			if minNumber == 0 && maxNumber != 1 && warehouse.StockMaxNumber <= 0 {
5899
+				//fmt.Println("6")
5878 5900
 				if warehouse.StockMinNumber > 0 {
5879
-					if (warehouse.StockMinNumber - deliver_number) >= 0 {
5901
+					if warehouse.StockMinNumber-deliver_number >= 0 {
5880 5902
 						warehouse.StockMinNumber = warehouse.StockMinNumber - deliver_number
5881 5903
 					}
5904
+
5882 5905
 				}
5906
+
5883 5907
 			}
5908
+
5884 5909
 		}
5885 5910
 
5886
-		if maxNumber == 1 && minNumber == 0 && drup.MaxUnit != drup.MinUnit {
5911
+		if maxNumber == 1 && minNumber == 0 && drup.MaxUnit != drup.MinUnit && warehouse.MaxUnit != warehouse.MinUnit {
5887 5912
 			if (warehouse.StockMinNumber - deliver_number) >= 0 {
5913
+				//fmt.Println("金7")
5888 5914
 				warehouse.StockMinNumber = warehouse.StockMinNumber - deliver_number
5889 5915
 			}
5890 5916
 
@@ -5946,7 +5972,7 @@ func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehous
5946 5972
 			StockCount:              advice.StockCount,
5947 5973
 			WarehousingDetailId:     warehouse.ID,
5948 5974
 			OverCount:               over_count,
5949
-			RetailPrice:             retail_price, //手动出库出库价格
5975
+			RetailPrice:             drug_price, //手动出库出库价格
5950 5976
 			WarehousingId:           warehouse.ID,
5951 5977
 			SystemTime:              advice.SysRecordTime,
5952 5978
 		}
@@ -5964,7 +5990,7 @@ func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehous
5964 5990
 	} else {
5965 5991
 		stock_number_int := strconv.FormatInt(stock_number, 10)
5966 5992
 		stock_number_int_count, _ := strconv.ParseFloat(stock_number_int, 64)
5967
-		retail_price = stock_number_int_count * advice.Price
5993
+		drug_price = stock_number_int_count * advice.Price
5968 5994
 		//扣减库存
5969 5995
 		warehouse.StockMaxNumber = 0
5970 5996
 		warehouse.StockMinNumber = 0
@@ -6014,7 +6040,7 @@ func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehous
6014 6040
 			LastPrice:               warehouse.Price,
6015 6041
 			StockCount:              advice.StockCount,
6016 6042
 			OverCount:               over_count,
6017
-			RetailPrice:             retail_price, //手动出库出库价格
6043
+			RetailPrice:             drug_price, //手动出库出库价格
6018 6044
 			WarehousingId:           warehouse.ID,
6019 6045
 			WarehousingDetailId:     warehouse.ID,
6020 6046
 			SystemTime:              advice.SysRecordTime,
@@ -6029,7 +6055,7 @@ func AutoDrugDeliverInfoFourtyOne(orgID int64, prescribingNumber int64, warehous
6029 6055
 
6030 6056
 		advice.CountUnit = drup.MinUnit
6031 6057
 
6032
-		AutoDrugDeliverInfoFourtyOne(orgID, prescribingNumber_two_temp, warehouseout, drup, advice)
6058
+		AutoDrugDeliverInfoFourtyOne(orgID, prescribingNumber_two_temp, warehouseout, drup, advice, unit)
6033 6059
 	}
6034 6060
 
6035 6061
 	return