Merge branch 'master' into development
This commit is contained in:
@@ -27,20 +27,20 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
|
||||
public async Task AssignAsync(DevicePermissionSaveReuqest reuqest)
|
||||
{
|
||||
var tenantId = reuqest.AssignType == AssignTypeEnumType.Department ? reuqest.TenantId : _currentUser.GetStringTenantId();
|
||||
|
||||
//删除当前匹配的基地权限
|
||||
var p = await _dbContext.Queryable<DevicePermissionEntity>()
|
||||
.Where(x => x.AssignType == reuqest.AssignType)
|
||||
.Where(x => x.AssignValue == reuqest.AssignValue)
|
||||
.Where(x => x.UniqueType == reuqest.UniqueType)
|
||||
.Where(x => x.TenantId == tenantId)
|
||||
.ToListAsync();
|
||||
|
||||
await _dbContext.DeleteReallyAsync(p);
|
||||
|
||||
await GenerateDeviceTasksAsync(async () =>
|
||||
{
|
||||
var tenantId = reuqest.AssignType == AssignTypeEnumType.Department ? reuqest.TenantId : _currentUser.GetStringTenantId();
|
||||
|
||||
//删除当前匹配的基地权限
|
||||
var p = await _dbContext.Queryable<DevicePermissionEntity>()
|
||||
.Where(x => x.AssignType == reuqest.AssignType)
|
||||
.Where(x => x.AssignValue == reuqest.AssignValue)
|
||||
.Where(x => x.UniqueType == reuqest.UniqueType)
|
||||
.Where(x => x.TenantId == tenantId)
|
||||
.ToListAsync();
|
||||
|
||||
await _dbContext.DeleteReallyAsync(p);
|
||||
|
||||
//保存配置的权限
|
||||
if (reuqest.Codes.IsPresent())
|
||||
{
|
||||
@@ -481,12 +481,13 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
//获取人员的分组,跨基地
|
||||
var gainfoGroups = gainfoGroupRelationships.Where(x => x.UserNo == userNo).Select(x => x.GroupCode).ToList();
|
||||
|
||||
//按User获取权限
|
||||
//按用户
|
||||
var du = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.User, userNo);
|
||||
var gu = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo);
|
||||
deviceCodes.AddRange(du);
|
||||
deviceGroupCodes.AddRange(gu);
|
||||
|
||||
//按用户组
|
||||
foreach (var groupCode in gainfoGroups)
|
||||
{
|
||||
var dg = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Group, groupCode.ToString());
|
||||
@@ -495,12 +496,14 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
deviceGroupCodes.AddRange(gg);
|
||||
}
|
||||
|
||||
//按部门
|
||||
var gainfoFactoryDevicePermissions = devicePermissions.Where(x => x.TenantId == gainfo.Factory).ToList();
|
||||
var dd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Department, gainfo.DepartmentNo);
|
||||
var gd = GetAssignCodesInternal(gainfoFactoryDevicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Department, gainfo.DepartmentNo);
|
||||
deviceCodes.AddRange(dd);
|
||||
deviceGroupCodes.AddRange(gd);
|
||||
|
||||
//按厂区
|
||||
var dt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Tenant, gainfo.Factory);
|
||||
var gt = GetAssignCodesInternal(devicePermissions, deviceGroups, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.Tenant, gainfo.Factory);
|
||||
deviceCodes.AddRange(du);
|
||||
|
||||
@@ -233,8 +233,11 @@ public class GainfoService : IGainfoService
|
||||
|
||||
gainfo.ThrowIfNull("人员档案信息不存在");
|
||||
|
||||
var dbContext = _dbContext.ChangeDb("face");
|
||||
var face = await dbContext.Queryable<GainfoFaceEntity>().Where(x => x.UserCode == gainfo.Code).SingleAsync();
|
||||
|
||||
var userId = _currentUser.GetIntSubjectId();
|
||||
|
||||
var faceContext = _dbContext.ChangeDb("face");
|
||||
var face = await faceContext.Queryable<GainfoFaceEntity>().Where(x => x.UserCode == gainfo.Code).SingleAsync();
|
||||
|
||||
var taskType = face == null ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Update;
|
||||
|
||||
@@ -244,10 +247,14 @@ public class GainfoService : IGainfoService
|
||||
face = new GainfoFaceEntity
|
||||
{
|
||||
UserCode = gainfo.Code,
|
||||
Face = request.Face
|
||||
Face = request.Face,
|
||||
CreateTime = DateTime.Now,
|
||||
ModifiedTime = DateTime.Now,
|
||||
CreatedBy = userId,
|
||||
ModifiedBy = userId
|
||||
};
|
||||
|
||||
await dbContext.InsertAsync(face);
|
||||
await faceContext.InsertAsync(face);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -258,7 +265,9 @@ public class GainfoService : IGainfoService
|
||||
}
|
||||
|
||||
face.Face = request.Face;
|
||||
await dbContext.UpdateAsync(face);
|
||||
face.ModifiedBy = userId;
|
||||
face.ModifiedTime = DateTime.Now;
|
||||
await faceContext.UpdateAsync(face);
|
||||
}
|
||||
|
||||
//生成任务
|
||||
|
||||
@@ -64,15 +64,32 @@ public class OrderService : IOrderService
|
||||
.FirstAsync();
|
||||
|
||||
gainfo.ThrowIfNull($"用户{request.UserUniqueNo}不存在,无法操作");
|
||||
|
||||
var canteenUserExists = await _dbContext.Queryable<CanteenUserEntity>()
|
||||
.Where(x => x.UserNo == gainfo.No)
|
||||
.AnyAsync();
|
||||
canteenUserExists.ThrowIfFalse($"就餐用户{request.UserUniqueNo}不存在,无法操作");
|
||||
|
||||
//消费权限控制
|
||||
await CheckPAsync(gainfo.No, request.DeviceUniqueNo);
|
||||
|
||||
var canteenUserExists = await _dbContext.Queryable<CanteenUserEntity>()
|
||||
.Where(x => x.UserNo == gainfo.No)
|
||||
.AnyAsync();
|
||||
|
||||
if (!canteenUserExists)
|
||||
{
|
||||
await _dbContext.InsertAsync(new CanteenUserEntity
|
||||
{
|
||||
UserNo = gainfo.No,
|
||||
Balance = 0,
|
||||
BalanceOfRecharge = 0,
|
||||
BalanceOfSubsidies = 0,
|
||||
UserType = CanteenUserEnumType.LocalTenant,
|
||||
TenantId = gainfo.Factory,
|
||||
Version = 0,
|
||||
|
||||
CreatedBy = 1,
|
||||
CreateTime = DateTime.Now,
|
||||
ModifiedBy = 1,
|
||||
ModifiedTime = DateTime.Now,
|
||||
});
|
||||
}
|
||||
|
||||
//消费
|
||||
if (request.Type == BalanceRecordTypeEnumType.Out)
|
||||
{
|
||||
|
||||
@@ -30,6 +30,8 @@ public class SyncOriginCardInfoJob
|
||||
|
||||
public async Task RunAsync()
|
||||
{
|
||||
_logger.LogInformation("调度任务:{job}.开始执行", nameof(SyncOriginCardInfoJob));
|
||||
|
||||
_dbContext.Client.QueryFilter.ClearAndBackup<ITenantId>();
|
||||
_sqlSugarOptionsService.IgnoreTenant = true;
|
||||
try
|
||||
@@ -49,14 +51,14 @@ public class SyncOriginCardInfoJob
|
||||
|
||||
//获取人员信息
|
||||
var userCodes = logs.Select(x => x.UserUniqueNo).ToList();
|
||||
var gainfos = await _dbContext.Queryable<GainfoEntity>().Where(x => userCodes.Contains(x.Code)).Select(x => new { x.Code, x.CardNo }).ToListAsync();
|
||||
var gainfoCodes = await _dbContext.Queryable<GainfoEntity>().Where(x => userCodes.Contains(x.Code)).Select(x => x.Code).ToListAsync();
|
||||
|
||||
var requests = logs.Select(x => new UploadAttendanceRequest
|
||||
{
|
||||
Id = x.Id,
|
||||
RaiseDateTime = x.RaiseDateTime,
|
||||
ZNOTE = devices.First(item => item.UniqueNo == x.DeviceUniqueNo).DeployPlace,
|
||||
ZWORKCODE = gainfos.FirstOrDefault(item => item.Code == x.UserUniqueNo)?.Code?.TrimEnd('\0'),
|
||||
ZWORKCODE = gainfoCodes.Contains(x.UserUniqueNo) ? x.UserUniqueNo?.TrimEnd('\0') : string.Empty,
|
||||
|
||||
}).Where(x => x.ZWORKCODE.IsPresent()).ToList();
|
||||
|
||||
@@ -86,6 +88,8 @@ public class SyncOriginCardInfoJob
|
||||
{
|
||||
_sqlSugarOptionsService.IgnoreTenant = false;
|
||||
_dbContext.Client.QueryFilter.Restore();
|
||||
|
||||
_logger.LogInformation("调度任务:{job}.结束", nameof(SyncOriginCardInfoJob));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ public class SyncPersonJob
|
||||
|
||||
public async Task RunAsync()
|
||||
{
|
||||
_logger.LogInformation("开始获取SAP人员");
|
||||
var personResp = await _jinkoSapService.GetPersonsAsync();
|
||||
var persons = personResp.Person.Items;
|
||||
_departmentChanges = personResp.DepartmentInfo.Items;
|
||||
@@ -56,6 +57,8 @@ public class SyncPersonJob
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_logger.LogInformation("同步SAP人员数据结束");
|
||||
}
|
||||
|
||||
private async Task<int> SavePerson(List<SapPersonItem> persons)
|
||||
|
||||
@@ -115,7 +115,7 @@ public class JinkoSapService : IJinkoSapService
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "获取人事范围{werk}失败:" + ex.Message, item);
|
||||
_logger.LogError(ex, "获取人事范围{werk}失败:" + ex.Message, item.Werk);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user