From f74b0ba43eb9a7e946861f51d14221247682cd10 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 10 Jun 2024 21:00:01 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=90=A5=E4=B8=9A=E7=82=B9=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Controllers/BalancesController.cs | 1 + .../Request/BalanceHainingImportRequest.cs | 2 +- .../Services/Implements/BalanceService.cs | 47 ++++++++++++------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs index ecf52125..a4ea63cc 100644 --- a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs +++ b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs @@ -144,6 +144,7 @@ public class BalancesController : ControllerBase /// /// [Transactional] + [IgnoreTenant] [HttpPost("haining/import")] public async Task Import(BalanceHainingImportRequest request) { diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceHainingImportRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceHainingImportRequest.cs index 3e163eb7..1b23a7f4 100644 --- a/Src/Dlhis.Canteen/Order/Request/BalanceHainingImportRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/BalanceHainingImportRequest.cs @@ -46,7 +46,7 @@ public class BalanceHainingImportRequest : IValidatableObject /// /// 营业点 /// - public Guid? BusinessPlaceCode { get; set; } + public string BusinessPlaceCode { get; set; } /// /// 消费类型 0:消费, 1:充值 diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 790e736c..d0c720ac 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -45,8 +45,8 @@ public class BalanceService : IBalanceService var page = await _dbContext.Queryable() .LeftJoin((record, ga) => record.UserNo == ga.No) .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) - .LeftJoin((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code) - .LeftJoin((record, ga, department, bplace, order) => record.No == order.No) + .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) + .LeftJoin((record, ga, department, bPlace, order) => record.No == order.No) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start) .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, record => record.CostDate <= request.SearchDateTimePeriod.End) .WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType)) @@ -57,7 +57,7 @@ public class BalanceService : IBalanceService || ga.Code == request.Search ) .OrderBy(record => record.CreateTime, OrderByType.Desc) - .Select((record, ga, department, bplace, order) => new BalanceRecordResponse + .Select((record, ga, department, bPlace, order) => new BalanceRecordResponse { Id = record.Id, No = record.No, @@ -75,7 +75,7 @@ public class BalanceService : IBalanceService OriginTenantId = record.OriginTenantId, Name = record.Name, DepartmentName = department.Name, - BusinessPlaceName = bplace.Name, + BusinessPlaceName = bPlace.Name, CostDateTime = record.CostDateTime, Factory = record.TenantId, ShiftType = record.ShiftType, @@ -130,12 +130,12 @@ public class BalanceService : IBalanceService var page = await _dbContext.Queryable() .LeftJoin((record, ga) => record.UserNo == ga.No) .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) - .LeftJoin((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code) + .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) .Where(record => SqlFunc.DateIsSame(record.CostDate, date, DateType.Day)) .Where(record => record.DeviceUniqueNo == device.UniqueNo || record.DeviceUniqueNo == device.Code.ToString()) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .OrderBy(record => record.CreateTime, OrderByType.Desc) - .Select((record, ga, department, bplace) => new BalanceRecordDeviceResponse + .Select((record, ga, department, bPlace) => new BalanceRecordDeviceResponse { Id = record.Id, Amount = SqlFunc.Abs(record.Amount), @@ -149,7 +149,7 @@ public class BalanceService : IBalanceService No = record.No, Name = record.Name, DepartmentName = department.Name, - BusinessPlaceName = bplace.Name, + BusinessPlaceName = bPlace.Name, ShiftType = record.ShiftType, CostDateTime = record.CostDateTime, TenantId = record.TenantId, @@ -179,8 +179,8 @@ public class BalanceService : IBalanceService var queryable = _dbContext.Queryable() .LeftJoin((record, department) => record.DepartmentNo == department.No) - .LeftJoin((record, department, bplace) => record.BusinessPlaceCode == bplace.Code) - .LeftJoin((record, department, bplace, gainfo) => record.UserNo == gainfo.No) + .LeftJoin((record, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) + .LeftJoin((record, department, bPlace, gainfo) => record.UserNo == gainfo.No) .Where((record) => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .Where(record => myCodes.Contains(record.BusinessPlaceCode)) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start) @@ -190,7 +190,7 @@ public class BalanceService : IBalanceService var page = await queryable .OrderBy(record => record.CostDateTime, OrderByType.Desc) - .Select((record, department, bplace, gainfo) => new BalanceRecordDetailPageResponse + .Select((record, department, bPlace, gainfo) => new BalanceRecordDetailPageResponse { Id = record.Id, No = record.No, @@ -201,7 +201,7 @@ public class BalanceService : IBalanceService Source = record.Source, UserName = record.Name, DepartmentName = department.Name, - BusinessPlaceName = bplace.Name, + BusinessPlaceName = bPlace.Name, CostDateTime = record.CostDateTime, ShiftType = record.ShiftType, Werks = gainfo.Werks, @@ -289,7 +289,7 @@ public class BalanceService : IBalanceService var page = await _dbContext.Queryable() .LeftJoin((record, ga) => record.UserNo == ga.No) .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) - .LeftJoin((record, ga, department, bplace) => record.BusinessPlaceCode == bplace.Code) + .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) .Where(record => record.Type == BalanceRecordTypeEnumType.Out) .Where(record => record.Status == BalanceRecordStatusEnumType.Valid) .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, record => record.CostDate >= request.SearchDateTimePeriod.Start) @@ -297,13 +297,13 @@ public class BalanceService : IBalanceService .WhereIF(request.ApplicationType.HasValue, record => record.ApplicationType == request.ApplicationType) .Where((record, ga) => ga.Code == jinkoCode) .OrderBy(record => record.CreateTime, OrderByType.Desc) - .Select((record, ga, department, bplace) => new BalanceRecordUserPageResponse + .Select((record, ga, department, bPlace) => new BalanceRecordUserPageResponse { Id = record.Id, CurrentAmount = SqlFunc.Abs(record.Amount), Source = record.Source, No = record.No, - BusinessPlaceName = bplace.Name, + BusinessPlaceName = bPlace.Name, ShiftType = record.ShiftType, CostDateTime = record.CostDateTime, ApplicationType = record.ApplicationType, @@ -500,14 +500,29 @@ public class BalanceService : IBalanceService gainfo.ThrowIfNull($"工号{request.UserCode}不存在"); var gainfoMeal = await _dbContext.Queryable().Where(x => x.UserCode == request.UserCode).SingleAsync(); + var businessPlace = await _dbContext.Queryable() + .LeftJoin((a, b) => a.Code == b.PlaceCode) + .LeftJoin((a, b, c) => b.ShiftCode == c.Code) + .Where((a, b, c) => a.CustomCode == request.BusinessPlaceCode) + .Select((a, b, c) => new + { + a.Code, + ShiftCode = c.Code + }) + .SingleAsync(); + + if (request.Type == BalanceRecordTypeEnumType.Out) + { + businessPlace.ThrowIfNull($"营业点{request.BusinessPlaceCode}不存在"); + } await _dbContext.InsertAsync(new BalanceRecordEntity { Amount = request.Amount, ApplicationType = request.ApplicationType, Type = request.Type, - BusinessPlaceCode = request.BusinessPlaceCode, - BusinessShiftCode = null, + BusinessPlaceCode = businessPlace?.Code, + BusinessShiftCode = businessPlace?.ShiftCode, ShiftType = request.ShiftType, CostDate = request.CostDate, CostDateTime = request.CostDateTime,