Browse Source

历史排班

28169 1 year ago
parent
commit
6f25e2ed06

+ 1 - 0
controllers/common_api_controller.go View File

@@ -177,6 +177,7 @@ func (this *CommonApiController) GetConfigurationlist() {
177 177
 	adminUser := this.GetAdminUserInfo()
178 178
 	orgid := adminUser.CurrentOrgId
179 179
 	major, _ := service.GetInspectionMajor(orgid)
180
+	fmt.Println("major22222222222222222222222222222222222222", major)
180 181
 	if len(major) == 0 {
181 182
 		configurationlist, total, err := service.GetConfigurationlist(orgid, limit, page)
182 183
 		pressure, err := service.GetDefaultBloodPressure(orgid)

+ 10 - 2
controllers/drug_stock_api_contorller.go View File

@@ -3463,9 +3463,13 @@ func (c *StockDrugApiController) GetDrugWarehouseInfoPrint() {
3463 3463
 	orgId := adminUserInfo.CurrentOrgId
3464 3464
 	if order_type == 1 {
3465 3465
 		list, err := service.GetDrugWarehouseInfoPrint(startTime, endTime, orgId)
3466
+		manufacturerList, _ := service.GetAllManufacturerList(orgId)
3467
+		dealerList, _ := service.GetAllDealerList(orgId)
3466 3468
 		if err == nil {
3467 3469
 			c.ServeSuccessJSON(map[string]interface{}{
3468
-				"list": list,
3470
+				"list":             list,
3471
+				"manufacturerList": manufacturerList,
3472
+				"dealerList":       dealerList,
3469 3473
 			})
3470 3474
 			return
3471 3475
 		}
@@ -3502,11 +3506,15 @@ func (c *StockDrugApiController) GetDrugOutOrderPrint() {
3502 3506
 	}
3503 3507
 	adminUserInfo := c.GetAdminUserInfo()
3504 3508
 	orgId := adminUserInfo.CurrentOrgId
3509
+	dealerList, _ := service.GetAllDealerList(orgId)
3510
+	manufacturerList, _ := service.GetAllManufacturerList(orgId)
3505 3511
 	if order_type == 2 {
3506 3512
 		list, err := service.GetDrugOutOrderInfoPrintList(startTime, endTime, orgId)
3507 3513
 		if err == nil {
3508 3514
 			c.ServeSuccessJSON(map[string]interface{}{
3509
-				"list": list,
3515
+				"list":             list,
3516
+				"dealerList":       dealerList,
3517
+				"manufacturerList": manufacturerList,
3510 3518
 			})
3511 3519
 			return
3512 3520
 		}

+ 9 - 5
controllers/gobal_config_api_controller.go View File

@@ -1891,16 +1891,20 @@ func (c *GobalConfigApiController) GetDrugCancelDetail() {
1891 1891
 	drugTypeParent, _ := service.GetDrugDataConfig(0, drugType)
1892 1892
 	drugTypeList, _ := service.GetParentDataConfig(drugTypeParent.ID, adminInfo.CurrentOrgId)
1893 1893
 	houseList, _ := service.GetAllStoreHouseList(adminInfo.CurrentOrgId)
1894
+	dealerList, _ := service.GetAllDealerList(adminInfo.CurrentOrgId)
1895
+	manufacturerList, _ := service.GetAllManufacturerList(adminInfo.CurrentOrgId)
1894 1896
 	if err != nil {
1895 1897
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
1896 1898
 		return
1897 1899
 	}
1898 1900
 	c.ServeSuccessJSON(map[string]interface{}{
1899
-		"order":        order,
1900
-		"total":        total,
1901
-		"orderPrint":   orderPrint,
1902
-		"drugTypeList": drugTypeList,
1903
-		"houseList":    houseList,
1901
+		"order":            order,
1902
+		"total":            total,
1903
+		"orderPrint":       orderPrint,
1904
+		"drugTypeList":     drugTypeList,
1905
+		"houseList":        houseList,
1906
+		"dealerList":       dealerList,
1907
+		"manufacturerList": manufacturerList,
1904 1908
 	})
1905 1909
 }
1906 1910
 

+ 12 - 6
controllers/new_mobile_api_controllers/new_common_api_controller.go View File

@@ -875,7 +875,7 @@ func (this *NewCommonApiController) GetMobilePatientControl() {
875 875
 func (this *NewCommonApiController) GetMobileCartogramlist() {
876 876
 	adminInfo := this.GetMobileAdminUserInfo()
877 877
 	orgid := adminInfo.Org.Id
878
-	//lapstor, _ := this.GetInt64("lapstor")
878
+	lapstor, _ := this.GetInt64("lapstor")
879 879
 	//fmt.Println("lapstor", lapstor)
880 880
 	startime := this.GetString("startime")
881 881
 
@@ -891,9 +891,14 @@ func (this *NewCommonApiController) GetMobileCartogramlist() {
891 891
 	//统计总共
892 892
 	_, total, err := service.GetTotalPatientsControl(orgid, startimeStrUnix, endtimeStrsUnix)
893 893
 
894
-	_, standtotal, err := service.GetStandControl(orgid, startimeStrUnix, endtimeStrsUnix)
894
+	//_, standtotal, err := service.GetStandControl(orgid, startimeStrUnix, endtimeStrsUnix)
895
+	//
896
+	//_, standtotalOne, err := service.GetStandControlOne(orgid, startimeStrUnix, endtimeStrsUnix)
895 897
 
896
-	_, standtotalOne, err := service.GetStandControlOne(orgid, startimeStrUnix, endtimeStrsUnix)
898
+	patients, total, err := service.GetPatientsControl(orgid, lapstor, startimeStrUnix, endtimeStrsUnix, 1, 10000)
899
+	control, err := service.GetLastPatientsControl(orgid, lapstor, startimeStrUnix, endtimeStrsUnix)
900
+
901
+	infectiousControl, err := service.GetInfectiousControl(orgid, lapstor, startimeStrUnix, endtimeStrsUnix)
897 902
 
898 903
 	if err != nil {
899 904
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
@@ -901,9 +906,10 @@ func (this *NewCommonApiController) GetMobileCartogramlist() {
901 906
 	}
902 907
 
903 908
 	this.ServeSuccessJSON(map[string]interface{}{
904
-		"total":         total,
905
-		"standtotal":    standtotal,
906
-		"standtotalOne": standtotalOne,
909
+		"patients":          patients,
910
+		"total":             total,
911
+		"control":           control,
912
+		"infectiousControl": infectiousControl,
907 913
 	})
908 914
 }
909 915
 

+ 24 - 14
controllers/stock_in_api_controller.go View File

@@ -3170,16 +3170,20 @@ func (this *StockManagerApiController) GetDetailInfo() {
3170 3170
 	var err error
3171 3171
 	var total_price float64
3172 3172
 	houseList, _ := service.GetAllStoreHouseList(adminUserInfo.CurrentOrgId)
3173
+	manufacturerList, _ := service.GetAllManufacturerList(adminUserInfo.CurrentOrgId)
3174
+	dealerList, _ := service.GetAllDealerList(adminUserInfo.CurrentOrgId)
3173 3175
 	if types == 1 {
3174 3176
 		list, total, err = service.FindStockInDetailList(adminUserInfo.CurrentOrgId, page, limit, startTime, endTime, keywords, manufacturer, order_type, dealer, storehouse_id)
3175 3177
 		_, total_price = service.GetStockInDetailTotal(adminUserInfo.CurrentOrgId, startTime, endTime, keywords, manufacturer, order_type, dealer, storehouse_id)
3176 3178
 
3177 3179
 		if err == nil {
3178 3180
 			this.ServeSuccessJSON(map[string]interface{}{
3179
-				"list":        list,
3180
-				"total":       total,
3181
-				"total_price": total_price,
3182
-				"houseList":   houseList,
3181
+				"list":             list,
3182
+				"total":            total,
3183
+				"total_price":      total_price,
3184
+				"houseList":        houseList,
3185
+				"manufacturerList": manufacturerList,
3186
+				"dealerList":       dealerList,
3183 3187
 			})
3184 3188
 		} else {
3185 3189
 			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
@@ -3190,10 +3194,12 @@ func (this *StockManagerApiController) GetDetailInfo() {
3190 3194
 		_, total_price = service.GetStockOutDetailTotal(adminUserInfo.CurrentOrgId, startTime, endTime, keywords, manufacturer, order_type, dealer, storehouse_id)
3191 3195
 		if err == nil {
3192 3196
 			this.ServeSuccessJSON(map[string]interface{}{
3193
-				"list":        list1,
3194
-				"total":       total,
3195
-				"total_price": total_price,
3196
-				"houseList":   houseList,
3197
+				"list":             list1,
3198
+				"total":            total,
3199
+				"total_price":      total_price,
3200
+				"houseList":        houseList,
3201
+				"manufacturerList": manufacturerList,
3202
+				"dealerList":       dealerList,
3197 3203
 			})
3198 3204
 		} else {
3199 3205
 			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
@@ -3203,8 +3209,10 @@ func (this *StockManagerApiController) GetDetailInfo() {
3203 3209
 
3204 3210
 		if err == nil {
3205 3211
 			this.ServeSuccessJSON(map[string]interface{}{
3206
-				"list":  list2,
3207
-				"total": total,
3212
+				"list":             list2,
3213
+				"total":            total,
3214
+				"manufacturerList": manufacturerList,
3215
+				"dealerList":       dealerList,
3208 3216
 			})
3209 3217
 		} else {
3210 3218
 			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
@@ -3214,10 +3222,12 @@ func (this *StockManagerApiController) GetDetailInfo() {
3214 3222
 		listGroup, err := service.FindeCancelGroup(adminUserInfo.CurrentOrgId, startTime, endTime, keywords, manufacturer, order_type, dealer, storehouse_id)
3215 3223
 		if err == nil {
3216 3224
 			this.ServeSuccessJSON(map[string]interface{}{
3217
-				"list":      list3,
3218
-				"total":     total,
3219
-				"listgroup": listGroup,
3220
-				"houseList": houseList,
3225
+				"list":             list3,
3226
+				"total":            total,
3227
+				"listgroup":        listGroup,
3228
+				"houseList":        houseList,
3229
+				"manufacturerList": manufacturerList,
3230
+				"dealerList":       dealerList,
3221 3231
 			})
3222 3232
 		} else {
3223 3233
 			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)

+ 2 - 2
service/common_service.go View File

@@ -83,8 +83,8 @@ func GetConfigurationListTwo(orgid int64, limit int64, page int64) (standard []*
83 83
 	table := XTReadDB().Table("xt_inspection_reference as s")
84 84
 	fmt.Println(table)
85 85
 	offset := (page - 1) * limit
86
-	err = db.Order("x.sort asc,x.created_time desc").Group("x.id").Select("x.id,x.inspection_major,x.inspection_minor,x.min_range,x.large_range,x.sort,x.user_org_id,x.range_value,x.range_type,s.unit,s.project_name,s.item_name,x.is_status").Count(&total).
87
-		Joins("left join xt_inspection_reference as s on s.item_id = x.inspection_minor and s.project_id = x.inspection_major").Where("s.org_id = ? and s.status = 1", orgid).Offset(offset).Limit(limit).Scan(&standard).Error
86
+	err = db.Order("x.sort asc,x.created_time desc").Group("x.id").Select("x.id,x.inspection_major,x.inspection_minor,x.min_range,x.large_range,x.sort,x.user_org_id,x.range_value,x.range_type,s.unit,s.project_name,s.item_name,x.is_status").
87
+		Joins("left join xt_inspection_reference as s on s.item_id = x.inspection_minor and s.project_id = x.inspection_major").Where("s.org_id = ? and s.status = 1", orgid).Count(&total).Offset(offset).Limit(limit).Scan(&standard).Error
88 88
 	return standard, total, err
89 89
 }
90 90
 

+ 1 - 1
service/drug_stock_service.go View File

@@ -206,7 +206,7 @@ func GetDrugWarehouseInfoPrint(startime int64, endtime int64, orgid int64) (info
206 206
 	if orgid > 0 {
207 207
 		db = db.Where("x.org_id = ?", orgid)
208 208
 	}
209
-	err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,sum(x.warehousing_count) as warehousing_count,x.price,x.total_price,x.manufacturer,x.remark,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.warehouseing_unit,x.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.batch_number").Preload("XtBaseDrug", "status = 1 and org_id = ?", orgid).Group("x.drug_id").Find(&info).Error
209
+	err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,sum(x.warehousing_count) as warehousing_count,x.price,x.total_price,x.manufacturer,x.remark,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.warehouseing_unit,x.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.batch_number,x.dealer,x.manufacturer").Preload("XtBaseDrug", "status = 1 and org_id = ?", orgid).Group("x.drug_id").Find(&info).Error
210 210
 
211 211
 	//err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,sum(x.warehousing_count) as warehousing_count,x.price,x.total_price,x.dealer,x.manufacturer,x.remark,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.warehouseing_unit,x.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.batch_number").Group("x.drug_id").Find(&DrugWarehouseInfo{}).Error
212 212
 	return info, err

+ 4 - 4
service/gobal_config_service.go View File

@@ -428,9 +428,9 @@ func GetDrugCancelOrderPrint(startime int64, endtime int64, orgid int64, orderTy
428 428
 	}
429 429
 
430 430
 	if manufacturerId > 0 {
431
-		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,x.dealer,x.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Group("x.drug_id").Scan(&info).Error
431
+		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Group("x.drug_id").Scan(&info).Error
432 432
 	} else {
433
-		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,x.dealer,x.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Group("x.drug_id").Scan(&info).Error
433
+		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Group("x.drug_id").Scan(&info).Error
434 434
 	}
435 435
 
436 436
 	return info, err
@@ -466,9 +466,9 @@ func GetDrugCancelOrder(startime int64, endtime int64, orgid int64, orderType in
466 466
 	}
467 467
 
468 468
 	if manufacturerId > 0 {
469
-		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,x.dealer,x.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&cancel).Error
469
+		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&cancel).Error
470 470
 	} else {
471
-		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,x.dealer,x.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&cancel).Error
471
+		err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&cancel).Error
472 472
 	}
473 473
 
474 474
 	return cancel, total, err

+ 1 - 1
service/print_data_service/schedule_dialysis/print_schedule_dialysis_service.go View File

@@ -312,7 +312,7 @@ func GetWarehouseOutInfoPrintList(orgid int64, startime int64, endtime int64) (o
312 312
 	if endtime > 0 {
313 313
 		db = db.Where("x.sys_record_time<=?", endtime)
314 314
 	}
315
-	err = db.Select("x.patient_id,x.sys_record_time,x.good_id,sum(x.count) as count,x.ctime,t.good_name,t.specification_name,t.packing_unit,t.retail_price,t.packing_price,t.buy_price").Joins("left join xt_good_information as t on t.id = x.good_id").Group("x.good_id").Scan(&out).Error
315
+	err = db.Select("x.patient_id,x.sys_record_time,x.good_id,sum(x.count) as count,x.ctime,t.good_name,t.specification_name,t.packing_unit,t.retail_price,t.packing_price,t.buy_price,t.manufacturer,t.dealer").Joins("left join xt_good_information as t on t.id = x.good_id").Group("x.good_id").Scan(&out).Error
316 316
 	return out, err
317 317
 }
318 318
 

+ 1 - 1
service/self_drug_service.go View File

@@ -1115,7 +1115,7 @@ func GetDrugInventoryDetailList(keyword string, page int64, limit int64, orgid i
1115 1115
 	if storehouse_id > 0 {
1116 1116
 		db = db.Where("x.storehouse_id = ?", storehouse_id)
1117 1117
 	}
1118
-	err = db.Select("x.id,x.drug_name,x.specification_name,x.warehousing_unit,x.count,x.last_price,x.retail_price,x.manufacturer,x.dealer,x.remark,x.drug_id,x.warehousing_order,x.number,x.batch_number,x.start_time,x.creater,x.checker,x.checker_status,x.checker_time,x.total,x.drug_origin_place,x.expiry_date,x.product_date,x.min_count,x.storehouse_id,x.ctime,x.warehouse_info_id,t.dose,t.dose_unit,t.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.last_stock_max_number,x.last_stock_min_number,x.inventory_type,t.min_number,t.retail_price").Joins("left join sgj_users.sgj_user_admin_role as r on r.id = x.creater").Joins("left join xt_base_drug as t on t.id =x.drug_id").Count(&total).Offset(offset).Limit(limit).Scan(&list).Error
1118
+	err = db.Select("x.id,x.drug_name,x.specification_name,x.warehousing_unit,x.count,x.last_price,x.retail_price,x.manufacturer,x.dealer,x.remark,x.drug_id,x.warehousing_order,x.number,x.batch_number,x.start_time,x.creater,x.checker,x.checker_status,x.checker_time,x.total,x.drug_origin_place,x.expiry_date,x.product_date,x.min_count,x.storehouse_id,x.ctime,x.warehouse_info_id,t.dose,t.dose_unit,t.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.last_stock_max_number,x.last_stock_min_number,x.inventory_type,t.min_number,t.retail_price").Joins("left join sgj_users.sgj_user_admin_role as r on r.id = x.creater").Joins("left join xt_base_drug as t on t.id =x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.id desc").Scan(&list).Error
1119 1119
 	return list, total, err
1120 1120
 }
1121 1121