fix 就餐人员餐补总额显示
This commit is contained in:
@@ -57,7 +57,7 @@ public class DeviceService : IDeviceService
|
||||
public async Task SaveAsync(DeviceSaveRequest request)
|
||||
{
|
||||
await CheckUniqueNoExistsAsync(request);
|
||||
var template = await CheckTemplateExistsAsync(request.TemplateCode);
|
||||
await CheckTemplateExistsAsync(request.TemplateCode);
|
||||
await CheckTemplateFieldAsync(request.TemplateCode, request.ConnectionInfo);
|
||||
|
||||
DeviceEntity entity;
|
||||
@@ -128,7 +128,6 @@ public class DeviceService : IDeviceService
|
||||
|
||||
if (item.Type == DeviceTypeEnumType.Meal)
|
||||
{
|
||||
|
||||
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == item.UniqueNo).FirstAsync();
|
||||
businessPlaces.Any(x => x.Code == item.BusinessPlaceCode).ThrowIfFalse("营业点不存在");
|
||||
registry.BusinessPlaceCode = item.BusinessPlaceCode;
|
||||
|
||||
@@ -16,9 +16,9 @@ namespace Dlhis.Basic.Organization.Controllers;
|
||||
[ApiController]
|
||||
public class GainfoMealController : ControllerBase
|
||||
{
|
||||
private readonly IMealUserService _mealUserService;
|
||||
private readonly IGainfoMealService _mealUserService;
|
||||
|
||||
public GainfoMealController(IMealUserService mealUserService)
|
||||
public GainfoMealController(IGainfoMealService mealUserService)
|
||||
{
|
||||
_mealUserService = mealUserService;
|
||||
}
|
||||
@@ -29,7 +29,7 @@ public class GainfoMealController : ControllerBase
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("page")]
|
||||
public async Task<Pagination<MealUserResponse>> GetPageAsync([FromQuery] PageDto request)
|
||||
public async Task<Pagination<GainfoMealResponse>> GetPageAsync([FromQuery] GainfoMealPageRequest request)
|
||||
{
|
||||
return await _mealUserService.GetPageAsync(request);
|
||||
}
|
||||
|
||||
@@ -13,5 +13,5 @@ public class GainfoAssignRequest
|
||||
/// <summary>
|
||||
/// 档案号
|
||||
/// </summary>
|
||||
public List<string> UserNos { get; set; } = new List<string>();
|
||||
public List<string> UserNos { get; set; } = new();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Request;
|
||||
|
||||
public class GainfoMealPageRequest : PageDto
|
||||
{
|
||||
public DateTimePeriod DateTimePeriod { get; set; }
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using Dlhis.Entity.Basic.Enums;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Request;
|
||||
|
||||
public class GainfoOutsourceRequest
|
||||
public class GainfoOutsourceRequest : IValidatableObject
|
||||
{
|
||||
public long? Id { get; set; }
|
||||
|
||||
@@ -56,8 +56,8 @@ public class GainfoOutsourceRequest
|
||||
/// 离职日期
|
||||
/// </summary>
|
||||
public DateTime? ResignationDate { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
@@ -68,4 +68,13 @@ public class GainfoOutsourceRequest
|
||||
/// </summary>
|
||||
[Required]
|
||||
public GainfoOutSourceExternalInfoDto ExternalInfo { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (Code == ExternalInfo.SapCode)
|
||||
{
|
||||
yield return new ValidationResult("工号和对接人工号不可相同", new[] { nameof(Code) });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Dlhis.Basic.Organization.Response;
|
||||
|
||||
public class MealUserResponse
|
||||
public class GainfoMealResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 档案号
|
||||
@@ -19,19 +19,24 @@ public class MealUserResponse
|
||||
/// </summary>
|
||||
public decimal Balance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 余额(充值)
|
||||
/// </summary>
|
||||
public decimal BalanceOfRecharge { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 余额(餐补)
|
||||
/// </summary>
|
||||
public decimal BalanceOfSubsidies { get; set; }
|
||||
// /// <summary>
|
||||
// /// 余额(充值)
|
||||
// /// </summary>
|
||||
// public decimal BalanceOfRecharge { get; set; }
|
||||
//
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 余额(餐补)
|
||||
// /// </summary>
|
||||
// public decimal BalanceOfSubsidies { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门名称
|
||||
/// </summary>
|
||||
public string DepartmentName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 餐补总额
|
||||
/// </summary>
|
||||
public decimal? MealSupplementAmount { get; set; }
|
||||
}
|
||||
@@ -4,9 +4,9 @@ using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Services;
|
||||
|
||||
public interface IMealUserService : IScopeDependency
|
||||
public interface IGainfoMealService : IScopeDependency
|
||||
{
|
||||
Task<Pagination<MealUserResponse>> GetPageAsync(PageDto request);
|
||||
Task<Pagination<GainfoMealResponse>> GetPageAsync(GainfoMealPageRequest request);
|
||||
|
||||
Task MigrationAsync(GainfoBalanceMigrationRequest request);
|
||||
}
|
||||
@@ -107,9 +107,7 @@ public class GainfoGroupService : IGainfoGroupService
|
||||
var entities = request.UserNos.Select(x => new GainfoGroupRelationshipEntity
|
||||
{
|
||||
GroupCode = request.GroupCode,
|
||||
UserNo = x,
|
||||
|
||||
|
||||
UserNo = x
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(entities);
|
||||
|
||||
@@ -13,18 +13,18 @@ using SqlSugar;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Services.Implements;
|
||||
|
||||
public class MealUserService : IMealUserService
|
||||
public class GainfoMealService : IGainfoMealService
|
||||
{
|
||||
private readonly IDbContext _dbContext;
|
||||
private readonly ICurrentUser _currentUser;
|
||||
|
||||
public MealUserService(IDbContext dbContext, ICurrentUser currentUser)
|
||||
public GainfoMealService(IDbContext dbContext, ICurrentUser currentUser)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_currentUser = currentUser;
|
||||
}
|
||||
|
||||
public async Task<Pagination<MealUserResponse>> GetPageAsync(PageDto request)
|
||||
public async Task<Pagination<GainfoMealResponse>> GetPageAsync(GainfoMealPageRequest request)
|
||||
{
|
||||
var tenantId = _currentUser.GetStringTenantId();
|
||||
|
||||
@@ -37,11 +37,11 @@ public class MealUserService : IMealUserService
|
||||
|| gainfo.Name.Contains(request.Search)
|
||||
|| gainfoLeave.Name.Contains(request.Search))
|
||||
.Where((meal, gainfo, gainfoLeave) => gainfo.Factory == tenantId || gainfoLeave.Factory == tenantId)
|
||||
.Select((meal, gainfo, gainfoLeave, dept1, dept2) => new MealUserResponse
|
||||
.Select((meal, gainfo, gainfoLeave, dept1, dept2) => new GainfoMealResponse
|
||||
{
|
||||
Balance = meal.Balance,
|
||||
BalanceOfRecharge = meal.BalanceOfRecharge,
|
||||
BalanceOfSubsidies = meal.BalanceOfSubsidies,
|
||||
// BalanceOfRecharge = meal.BalanceOfRecharge,
|
||||
// BalanceOfSubsidies = meal.BalanceOfSubsidies,
|
||||
UserCode = meal.UserCode,
|
||||
UserName = SqlFunc.IsNull(gainfo.Name, gainfoLeave.Name),
|
||||
UserNo = SqlFunc.IsNull(gainfo.No, gainfoLeave.No),
|
||||
@@ -49,6 +49,21 @@ public class MealUserService : IMealUserService
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
|
||||
var userCodes = page.Data.Select(x => x.UserCode).ToList();
|
||||
var summary = await _dbContext.Queryable<MealSupplementRecordEntity>()
|
||||
.Where(x => userCodes.Contains(x.Code))
|
||||
.WhereIF(request.DateTimePeriod?.Start.HasValue == true && request.DateTimePeriod?.End.HasValue == true,
|
||||
x => x.Date >= request.DateTimePeriod.Start && x.Date <= request.DateTimePeriod.End)
|
||||
.GroupBy(x => x.Code)
|
||||
.Select(x => new
|
||||
{
|
||||
x.Code,
|
||||
Amount = SqlFunc.AggregateSum(x.Amount)
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
page.Data.ForEach(x => { x.MealSupplementAmount = summary.FirstOrDefault(item => item.Code == x.UserCode)?.Amount ?? 0; });
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
@@ -72,7 +87,7 @@ public class MealUserService : IMealUserService
|
||||
.SetColumns(x => x.Version == x.Version + 1)
|
||||
.Where(x => x.UserCode == request.BeforeCode) //不需要判断version
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
|
||||
//转移到现有人员
|
||||
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == request.NowCode).SingleAsync();
|
||||
gainfo.ThrowIfNull("目标人员不存在");
|
||||
@@ -27,8 +27,15 @@ public class GainfoOutsourceService : IGainfoOutsourceService
|
||||
public async Task SaveAsync(GainfoOutsourceRequest request)
|
||||
{
|
||||
await CheckDuplicate(request.IdNo, request.Code);
|
||||
var sapCodeExists = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == request.Factory).Where(x => x.Code == request.ExternalInfo.SapCode).AnyAsync();
|
||||
sapCodeExists.ThrowIfFalse("对接人不属于当前基地");
|
||||
var sapCodeExists = await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => x.Code == request.ExternalInfo.SapCode)
|
||||
.AnyAsync();
|
||||
sapCodeExists.ThrowIfFalse("对接人不存在");
|
||||
var isOutsource = await _dbContext.Queryable<OutsourceEntity>()
|
||||
.Where(x => x.Code == request.ExternalInfo.SapCode)
|
||||
.AnyAsync();
|
||||
isOutsource.ThrowIfTrue("对接人不可为外包人员");
|
||||
|
||||
|
||||
if (!request.Id.HasValue)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user