feat 内部余额写入

This commit is contained in:
2024-06-10 19:13:43 +08:00
parent d8d14610e9
commit 47e92be51f
16 changed files with 199 additions and 17 deletions

View File

@@ -494,6 +494,58 @@ public class BalanceService : IBalanceService
return page;
}
public async Task Import(BalanceHainingImportRequest request)
{
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == request.UserCode).SingleAsync();
gainfo.ThrowIfNull($"工号{request.UserCode}不存在");
var gainfoMeal = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserCode == request.UserCode).SingleAsync();
await _dbContext.InsertAsync(new BalanceRecordEntity
{
Amount = request.Amount,
ApplicationType = request.ApplicationType,
Type = request.Type,
BusinessPlaceCode = request.BusinessPlaceCode,
BusinessShiftCode = null,
ShiftType = request.ShiftType,
CostDate = request.CostDate,
CostDateTime = request.CostDateTime,
UserNo = gainfo.No,
No = request.No,
UserCode = gainfo.Code,
TenantId = request.Factory,
Status = BalanceRecordStatusEnumType.Valid,
Source = request.Source,
Remark = request.Remark,
CostId = gainfo.CostId,
SubsidiesFromMonth = request.CostDate.ToString("yyyyMM"),
OriginTenantId = gainfo.Factory,
Werks = gainfo.Werks,
Name = gainfo.Name,
IsCostCrossTenant = false,
DepartmentNo = gainfo.DepartmentNo,
DeviceUniqueNo = request.DeviceUniqueNo,
IsDeleted = false,
CreatedBy = 1,
CreateTime = DateTime.Now,
ModifiedBy = 1,
ModifiedTime = DateTime.Now,
});
var newBalance = gainfoMeal.Balance += request.Amount;
await _dbContext.Updateable<GainfoMealEntity>()
.SetColumns(x => x.Balance == newBalance)
.SetColumns(x => x.ModifiedBy == 1)
.SetColumns(x => x.ModifiedTime == DateTime.Now)
.SetColumns(x => x.Version == x.Version + 1)
.Where(x => x.UserCode == request.UserCode && x.Version == gainfoMeal.Version)
.ExecuteCommandThrowVersionAsync("写入失败,正在消费中");
}
/// <summary>
/// 获取离线设备