合并
This commit is contained in:
@@ -8,6 +8,4 @@ public class DevicePageRequest : PageDto
|
|||||||
/// 平台
|
/// 平台
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Brand { get; set; }
|
public string Brand { get; set; }
|
||||||
|
|
||||||
public string MyProperty { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ public class DeviceUnderGroupResponse
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Brand { get; set; }
|
public string Brand { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否启用
|
||||||
|
/// </summary>
|
||||||
public bool Enable { get; set; }
|
public bool Enable { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Dlhis.Common.Api\Dlhis.Common.Api.csproj" />
|
<ProjectReference Include="..\Dlhis.Common.Api\Dlhis.Common.Api.csproj" />
|
||||||
<ProjectReference Include="..\Dlhis.Entity\Dlhis.Entity.csproj" />
|
<ProjectReference Include="..\Dlhis.Entity\Dlhis.Entity.csproj" />
|
||||||
|
<ProjectReference Include="..\Dlhis.User.Api\Dlhis.User.Api.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class MealUserService : IMealUserService
|
|||||||
|
|
||||||
public async Task AddAsync(MealUserAddRequest request)
|
public async Task AddAsync(MealUserAddRequest request)
|
||||||
{
|
{
|
||||||
// 获取档案信息
|
//todo 获取档案信息
|
||||||
|
|
||||||
var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
|
var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
|
||||||
.Where(x => x.No.ToString() == request.UserId)
|
.Where(x => x.No.ToString() == request.UserId)
|
||||||
@@ -42,7 +42,7 @@ public class MealUserService : IMealUserService
|
|||||||
|
|
||||||
var entity = new CanteenUserEntity
|
var entity = new CanteenUserEntity
|
||||||
{
|
{
|
||||||
UserId = request.UserId,
|
UserNo = request.UserId,
|
||||||
UserType = request.UserType,
|
UserType = request.UserType,
|
||||||
UserCode = gainfoEntity.Code,
|
UserCode = gainfoEntity.Code,
|
||||||
CarNo = gainfoEntity.CarNo,
|
CarNo = gainfoEntity.CarNo,
|
||||||
@@ -57,7 +57,7 @@ public class MealUserService : IMealUserService
|
|||||||
public async Task<MealUserResponse> GetMealUserAsync(string userId)
|
public async Task<MealUserResponse> GetMealUserAsync(string userId)
|
||||||
{
|
{
|
||||||
return await _dbContext.Queryable<CanteenUserEntity>()
|
return await _dbContext.Queryable<CanteenUserEntity>()
|
||||||
.Where(x => x.UserId == userId)
|
.Where(x => x.UserNo == userId)
|
||||||
.Select<MealUserResponse>()
|
.Select<MealUserResponse>()
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,5 +78,15 @@ public class GainfosController : ControllerBase
|
|||||||
{
|
{
|
||||||
await _gainfoService.OnboardingAsync(request);
|
await _gainfoService.OnboardingAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 当前人员信息
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("current")]
|
||||||
|
public async Task<GainfoCurrentResponse> CurrentUserInfoAsync()
|
||||||
|
{
|
||||||
|
return await _gainfoService.CurrentUserInfoAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Dlhis.Basic.Organization.Response;
|
using Dlhis.Basic.Organization.Response;
|
||||||
using Dlhis.Basic.Organization.Services;
|
using Dlhis.Basic.Organization.Services;
|
||||||
|
using Dlhis.User.Api.Response;
|
||||||
using Kurisu.AspNetCore.MVC;
|
using Kurisu.AspNetCore.MVC;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@@ -27,7 +28,7 @@ public class WerksController : ControllerBase
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("list")]
|
[HttpGet("list")]
|
||||||
public async Task<List<WerkResponse>> GetListAsync()
|
public async Task<List<TenantResponse>> GetListAsync()
|
||||||
{
|
{
|
||||||
return await _werkService.GetListAsync();
|
return await _werkService.GetListAsync();
|
||||||
}
|
}
|
||||||
@@ -37,7 +38,7 @@ public class WerksController : ControllerBase
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("current")]
|
[HttpGet("current")]
|
||||||
public async Task<WerkResponse> GetCurrentAsync()
|
public async Task<TenantResponse> GetCurrentAsync()
|
||||||
{
|
{
|
||||||
return await _werkService.GetCurrentAsync();
|
return await _werkService.GetCurrentAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ public class DepartmentTreeResponse
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 部门号
|
/// 部门号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Code { get; set; }
|
public string No { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 部门名称
|
/// 部门名称
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Dlhis.Basic.Organization.Response;
|
||||||
|
|
||||||
|
public class GainfoCurrentMealInfoResponse
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 余额
|
||||||
|
/// </summary>
|
||||||
|
public decimal Balance { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
using Dlhis.Entity.Basic.Enums;
|
||||||
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
|
|
||||||
|
namespace Dlhis.Basic.Organization.Response;
|
||||||
|
|
||||||
|
public class GainfoCurrentResponse
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 用户档案号
|
||||||
|
/// </summary>
|
||||||
|
public string UserNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用户姓名
|
||||||
|
/// </summary>
|
||||||
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 性别枚举
|
||||||
|
/// </summary>
|
||||||
|
public GenderEnumType Gender { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 性别描述
|
||||||
|
/// </summary>
|
||||||
|
public string GenderDesc => Gender.GetDescription();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 工号
|
||||||
|
/// </summary>
|
||||||
|
public string UserCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 部门号
|
||||||
|
/// </summary>
|
||||||
|
public string DepartmentNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 部门名称
|
||||||
|
/// </summary>
|
||||||
|
public string DepartmentName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 出生日期/生日
|
||||||
|
/// </summary>
|
||||||
|
public DateTime Birthday { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 就餐信息
|
||||||
|
/// </summary>
|
||||||
|
public GainfoCurrentMealInfoResponse MealInfo { get; set; }
|
||||||
|
}
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
using SqlSugar;
|
|
||||||
|
|
||||||
namespace Dlhis.Basic.Organization.Response;
|
|
||||||
|
|
||||||
public class WerkResponse
|
|
||||||
{
|
|
||||||
public long Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 代号
|
|
||||||
/// </summary>
|
|
||||||
public string Code { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 名称
|
|
||||||
/// </summary>
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 是否可见
|
|
||||||
/// </summary>
|
|
||||||
public bool Visible { get; set; }
|
|
||||||
}
|
|
||||||
@@ -16,4 +16,6 @@ public interface IGainfoService : IScopeDependency
|
|||||||
Task DimissionAsync(GainfoDImissionRequest request);
|
Task DimissionAsync(GainfoDImissionRequest request);
|
||||||
|
|
||||||
Task OnboardingAsync(GainfoDImissionRequest request);
|
Task OnboardingAsync(GainfoDImissionRequest request);
|
||||||
|
|
||||||
|
Task<GainfoCurrentResponse> CurrentUserInfoAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using Dlhis.Basic.Organization.Response;
|
using Dlhis.User.Api.Response;
|
||||||
|
|
||||||
namespace Dlhis.Basic.Organization.Services;
|
namespace Dlhis.Basic.Organization.Services;
|
||||||
|
|
||||||
public interface IWerkService : IScopeDependency
|
public interface IWerkService : IScopeDependency
|
||||||
{
|
{
|
||||||
Task<List<WerkResponse>> GetListAsync();
|
Task<List<TenantResponse>> GetListAsync();
|
||||||
|
|
||||||
Task<WerkResponse> GetCurrentAsync();
|
Task<TenantResponse> GetCurrentAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class DepartmentService : IDepartmentService
|
|||||||
public async Task<List<DepartmentTreeResponse>> GetTreeAsync()
|
public async Task<List<DepartmentTreeResponse>> GetTreeAsync()
|
||||||
{
|
{
|
||||||
var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync();
|
var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync();
|
||||||
var tops = departments.Where(x => x.PCode.IsEmpty()).Adapt<List<DepartmentTreeResponse>>();
|
var tops = departments.Where(x => x.PNo.IsEmpty()).Adapt<List<DepartmentTreeResponse>>();
|
||||||
|
|
||||||
tops.ForEach(x =>
|
tops.ForEach(x =>
|
||||||
{
|
{
|
||||||
@@ -31,7 +31,7 @@ public class DepartmentService : IDepartmentService
|
|||||||
|
|
||||||
private void RecursionGetNext(DepartmentTreeResponse current, List<DepartmentEntity> departments)
|
private void RecursionGetNext(DepartmentTreeResponse current, List<DepartmentEntity> departments)
|
||||||
{
|
{
|
||||||
var next = departments.Where(x => x.PCode == current.Code).ToList();
|
var next = departments.Where(x => x.PNo == current.No).ToList();
|
||||||
current.Next = next.Adapt<List<DepartmentTreeResponse>>();
|
current.Next = next.Adapt<List<DepartmentTreeResponse>>();
|
||||||
foreach (var item in next)
|
foreach (var item in next)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using Dlhis.Entity.Basic.Entity;
|
|||||||
using Dlhis.Entity.Basic.Enums;
|
using Dlhis.Entity.Basic.Enums;
|
||||||
using Kurisu.AspNetCore.Utils.Extensions;
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
using Kurisu.Core.DataAccess.Dto;
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Kurisu.Core.User.Abstractions;
|
||||||
using Kurisu.SqlSugar.Attributes;
|
using Kurisu.SqlSugar.Attributes;
|
||||||
using Kurisu.SqlSugar.Extensions;
|
using Kurisu.SqlSugar.Extensions;
|
||||||
using Kurisu.SqlSugar.Services;
|
using Kurisu.SqlSugar.Services;
|
||||||
@@ -15,11 +16,13 @@ public class GainfoService : IGainfoService
|
|||||||
{
|
{
|
||||||
private readonly IGainfoStore _gainfoStore;
|
private readonly IGainfoStore _gainfoStore;
|
||||||
private readonly IDbContext _dbContext;
|
private readonly IDbContext _dbContext;
|
||||||
|
private readonly ICurrentUser _currentUser;
|
||||||
|
|
||||||
public GainfoService(IGainfoStore gainfoStore, IDbContext dbContext)
|
public GainfoService(IGainfoStore gainfoStore, IDbContext dbContext, ICurrentUser currentUser)
|
||||||
{
|
{
|
||||||
_gainfoStore = gainfoStore;
|
_gainfoStore = gainfoStore;
|
||||||
_dbContext = dbContext;
|
_dbContext = dbContext;
|
||||||
|
_currentUser = currentUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -32,7 +35,7 @@ public class GainfoService : IGainfoService
|
|||||||
request.DepartmentNos = await GetRecursionDepartmentNosAsync(request.DepartmentNos);
|
request.DepartmentNos = await GetRecursionDepartmentNosAsync(request.DepartmentNos);
|
||||||
|
|
||||||
var page = await _gainfoStore.Queryable(request.Status)
|
var page = await _gainfoStore.Queryable(request.Status)
|
||||||
.WhereIF(request.DepartmentNos.Any(), gainfo => request.DepartmentNos.Contains(gainfo.DepartmentNo))
|
.WhereIF(request.DepartmentNos.IsPresent(), gainfo => request.DepartmentNos.Contains(gainfo.DepartmentNo))
|
||||||
.Select<GainfoPageResponse>()
|
.Select<GainfoPageResponse>()
|
||||||
.ToPageListAsync(request);
|
.ToPageListAsync(request);
|
||||||
|
|
||||||
@@ -112,6 +115,33 @@ public class GainfoService : IGainfoService
|
|||||||
await _gainfoStore.InsertAsync(gainfo);
|
await _gainfoStore.InsertAsync(gainfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<GainfoCurrentResponse> CurrentUserInfoAsync()
|
||||||
|
{
|
||||||
|
var identityId = _currentUser.GetIntSubjectId();
|
||||||
|
|
||||||
|
var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
|
||||||
|
.LeftJoin<DepartmentEntity>((ga, department) => ga.DepartmentNo == department.No)
|
||||||
|
.LeftJoin<CanteenUserEntity>((ga, department, mealUser) => ga.No == mealUser.UserNo)
|
||||||
|
.Where((ga, department) => ga.IdentityUserId == identityId)
|
||||||
|
.Select((ga, department, mealUser) => new GainfoCurrentResponse
|
||||||
|
{
|
||||||
|
UserNo = ga.No,
|
||||||
|
Birthday = ga.Birthday,
|
||||||
|
DepartmentNo = department.No,
|
||||||
|
DepartmentName = department.Name,
|
||||||
|
Gender = ga.Gender,
|
||||||
|
UserCode = ga.Code,
|
||||||
|
UserName = ga.Name,
|
||||||
|
MealInfo = new GainfoCurrentMealInfoResponse
|
||||||
|
{
|
||||||
|
Balance = mealUser.Balance
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.FirstAsync();
|
||||||
|
|
||||||
|
return gainfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------help methods ------------------------------------------------
|
//-------------------------------------------help methods ------------------------------------------------
|
||||||
|
|
||||||
@@ -128,26 +158,26 @@ public class GainfoService : IGainfoService
|
|||||||
}
|
}
|
||||||
|
|
||||||
var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync();
|
var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync();
|
||||||
var currentNos = departments.Where(x => departmentNos.Contains(x.Code)).ToList();
|
var currentNos = departments.Where(x => departmentNos.Contains(x.No)).ToList();
|
||||||
|
|
||||||
foreach (var item in currentNos)
|
foreach (var item in currentNos)
|
||||||
{
|
{
|
||||||
RecursionGetNext(item.Code, departments, departmentNos);
|
RecursionGetNext(item.No, departments, departmentNos);
|
||||||
}
|
}
|
||||||
|
|
||||||
return departmentNos.Distinct().ToList();
|
return departmentNos.Distinct().ToList();
|
||||||
|
|
||||||
void RecursionGetNext(string currentCode, List<DepartmentEntity> departments, List<string> result)
|
void RecursionGetNext(string currentCode, List<DepartmentEntity> departments, List<string> result)
|
||||||
{
|
{
|
||||||
var next = departments.Where(x => x.PCode == currentCode).ToList();
|
var next = departments.Where(x => x.PNo == currentCode).ToList();
|
||||||
foreach (var item in next)
|
foreach (var item in next)
|
||||||
{
|
{
|
||||||
result.Add(item.Code);
|
result.Add(item.No);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var item in next)
|
foreach (var item in next)
|
||||||
{
|
{
|
||||||
RecursionGetNext(item.Code, departments, result);
|
RecursionGetNext(item.No, departments, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,39 @@
|
|||||||
/*using Dlhis.Basic.Organization.Response;
|
using Dlhis.User.Api;
|
||||||
using Dlhis.Entity.Basic.Entity;
|
using Dlhis.User.Api.Response;
|
||||||
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
|
using Kurisu.Core.Result;
|
||||||
using Kurisu.Core.User.Abstractions;
|
using Kurisu.Core.User.Abstractions;
|
||||||
using Kurisu.SqlSugar.Services;
|
|
||||||
|
|
||||||
namespace Dlhis.Basic.Organization.Services.Implements;
|
namespace Dlhis.Basic.Organization.Services.Implements;
|
||||||
|
|
||||||
public class WerkService : IWerkService
|
public class WerkService : IWerkService
|
||||||
{
|
{
|
||||||
private readonly IDbContext _dbContext;
|
|
||||||
private readonly ICurrentUser _currentUser;
|
private readonly ICurrentUser _currentUser;
|
||||||
|
private readonly ITenantApi _tenantApi;
|
||||||
|
|
||||||
public WerkService(IDbContext dbContext, ICurrentUser currentUser)
|
public WerkService(ICurrentUser currentUser, ITenantApi tenantApi)
|
||||||
{
|
{
|
||||||
_dbContext = dbContext;
|
|
||||||
_currentUser = currentUser;
|
_currentUser = currentUser;
|
||||||
|
_tenantApi = tenantApi;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<WerkResponse>> GetListAsync()
|
public async Task<List<TenantResponse>> GetListAsync()
|
||||||
{
|
{
|
||||||
return await _dbContext.Queryable<WerkEntity>()
|
var tenantResult = await _tenantApi.GetTenantsAsync();
|
||||||
.Select<WerkResponse>()
|
(tenantResult.Code == ApiStateCode.Success).ThrowIfFalse(tenantResult.Msg);
|
||||||
.ToListAsync();
|
|
||||||
|
var tenants = tenantResult.Data;
|
||||||
|
return tenants;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<WerkResponse> GetCurrentAsync()
|
public async Task<TenantResponse> GetCurrentAsync()
|
||||||
{
|
{
|
||||||
var tenant = _currentUser.GetStringTenantId();
|
var tenant = _currentUser.GetStringTenantId();
|
||||||
return await _dbContext.Queryable<WerkEntity>()
|
var tenantResult = await _tenantApi.GetTenantsAsync();
|
||||||
.Where(x => x.Code == tenant)
|
(tenantResult.Code == ApiStateCode.Success).ThrowIfFalse(tenantResult.Msg);
|
||||||
.Select<WerkResponse>()
|
|
||||||
.FirstAsync();
|
var tenants = tenantResult.Data;
|
||||||
|
return tenants.FirstOrDefault(x => x.Code == tenant);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
@@ -19,7 +19,10 @@ public class SqlSugarPack : BaseAppPack
|
|||||||
#if DEBUG
|
#if DEBUG
|
||||||
using var scope = app.ApplicationServices.CreateScope();
|
using var scope = app.ApplicationServices.CreateScope();
|
||||||
var db = scope.ServiceProvider.GetService<ISqlSugarClient>();
|
var db = scope.ServiceProvider.GetService<ISqlSugarClient>();
|
||||||
var tables = App.ActiveTyps.Where(x => x.IsDefined(typeof(SugarTable), false)).ToArray();
|
var tables = App.ActiveTyps.Where(x => x.IsDefined(typeof(SugarTable), false))
|
||||||
|
.Where(x => !x.IsDefined(typeof(SkipScanAttribute), false))
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
db.DbMaintenance.CreateDatabase();
|
db.DbMaintenance.CreateDatabase();
|
||||||
db.CodeFirst.InitTables(tables);
|
db.CodeFirst.InitTables(tables);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"InternalRequest": {
|
"InternalRequest": {
|
||||||
"CommonRequestUrl": "http://localhost:5001"
|
"CommonRequestUrl": "http://localhost:5001",
|
||||||
|
"UserRequestUrl": "http://localhost:5004"
|
||||||
},
|
},
|
||||||
"SwaggerOptions": {
|
"SwaggerOptions": {
|
||||||
"Enable": true,
|
"Enable": true,
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
},
|
},
|
||||||
"AllowedHosts": "*",
|
"AllowedHosts": "*",
|
||||||
"InternalRequest": {
|
"InternalRequest": {
|
||||||
"CommonRequestUrl": "http://common"
|
"CommonRequestUrl": "http://common",
|
||||||
|
"UserRequestUrl": "http://user"
|
||||||
},
|
},
|
||||||
"SqlSugarOptions": {
|
"SqlSugarOptions": {
|
||||||
"DefaultConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=yikatong;charset=utf8mb4;",
|
"DefaultConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=yikatong;charset=utf8mb4;",
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ using Microsoft.AspNetCore.Mvc;
|
|||||||
|
|
||||||
namespace Dlhis.Canteen.Order.Controllers;
|
namespace Dlhis.Canteen.Order.Controllers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 充值/消费
|
||||||
|
/// </summary>
|
||||||
[Authorize]
|
[Authorize]
|
||||||
[Route("api/[controller]")]
|
[Route("api/[controller]")]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
|
|||||||
@@ -61,11 +61,11 @@ public class OrderService : IOrderService
|
|||||||
|
|
||||||
//根据档案号
|
//根据档案号
|
||||||
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>()
|
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>()
|
||||||
.Where(x => x.UserId == request.UserUniqueNo || x.UserCode == request.UserUniqueNo)
|
.Where(x => x.UserNo == request.UserUniqueNo || x.UserCode == request.UserUniqueNo)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
|
|
||||||
var gafinfo = await _dbContext.Queryable<GainfoEntity>()
|
var gafinfo = await _dbContext.Queryable<GainfoEntity>()
|
||||||
.Where(x => x.No == canteenUser.UserId)
|
.Where(x => x.No == canteenUser.UserNo)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
|
|
||||||
var settings = await _canteenSettingService.GetUserSettingAsync(gafinfo.No);
|
var settings = await _canteenSettingService.GetUserSettingAsync(gafinfo.No);
|
||||||
@@ -104,7 +104,7 @@ public class OrderService : IOrderService
|
|||||||
OrderStatus = CanteenOrderStatusEnumType.Wait,
|
OrderStatus = CanteenOrderStatusEnumType.Wait,
|
||||||
Name = gafinfo.Name,
|
Name = gafinfo.Name,
|
||||||
Source = request.Source,
|
Source = request.Source,
|
||||||
UserId = canteenUser.UserId,
|
UserId = canteenUser.UserNo,
|
||||||
UserCode = canteenUser.UserCode,
|
UserCode = canteenUser.UserCode,
|
||||||
Amount = request.Amount,
|
Amount = request.Amount,
|
||||||
BusinessPlaceCode = businessPlace.Code,
|
BusinessPlaceCode = businessPlace.Code,
|
||||||
@@ -209,7 +209,7 @@ public class OrderService : IOrderService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>().Where(x => x.UserId == order.UserId).FirstAsync();
|
var canteenUser = await _dbContext.Queryable<CanteenUserEntity>().Where(x => x.UserNo == order.UserId).FirstAsync();
|
||||||
//金额+-
|
//金额+-
|
||||||
canteenUser.Balance += order.Amount;
|
canteenUser.Balance += order.Amount;
|
||||||
|
|
||||||
@@ -224,7 +224,7 @@ public class OrderService : IOrderService
|
|||||||
var effect = await _dbContext.Updateable<CanteenUserEntity>()
|
var effect = await _dbContext.Updateable<CanteenUserEntity>()
|
||||||
.SetColumns(x => x.Balance == canteenUser.Balance + order.Amount)
|
.SetColumns(x => x.Balance == canteenUser.Balance + order.Amount)
|
||||||
.SetColumns(x => x.Version == x.Version + 1)
|
.SetColumns(x => x.Version == x.Version + 1)
|
||||||
.Where(x => x.UserId == order.UserId && x.Version == canteenUser.Version)//必须与查询时的version一致
|
.Where(x => x.UserNo == order.UserId && x.Version == canteenUser.Version)//必须与查询时的version一致
|
||||||
.ExecuteCommandAsync();
|
.ExecuteCommandAsync();
|
||||||
|
|
||||||
if (effect <= 0)
|
if (effect <= 0)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class CanteenSettingService : ICanteenSettingService
|
|||||||
public async Task<Pagination<CanteenSettingResponse>> GetPageAsync(CanteenSettingPageRequest request)
|
public async Task<Pagination<CanteenSettingResponse>> GetPageAsync(CanteenSettingPageRequest request)
|
||||||
{
|
{
|
||||||
var page = await _context.Queryable<CanteenSettingEntity>()
|
var page = await _context.Queryable<CanteenSettingEntity>()
|
||||||
.LeftJoin<CanteenUserEntity>((setting, user) => setting.UniqueValue == user.UserId)
|
.LeftJoin<CanteenUserEntity>((setting, user) => setting.UniqueValue == user.UserNo)
|
||||||
.WhereIF(request.UniqueType.HasValue, setting => setting.UniqueType == request.UniqueType)
|
.WhereIF(request.UniqueType.HasValue, setting => setting.UniqueType == request.UniqueType)
|
||||||
.WhereIF(request.Item.HasValue, setting => setting.Item == request.Item)
|
.WhereIF(request.Item.HasValue, setting => setting.Item == request.Item)
|
||||||
.WhereIF(request.Search.IsPresent(), setting => setting.UniqueValue.Contains(request.Search))
|
.WhereIF(request.Search.IsPresent(), setting => setting.UniqueValue.Contains(request.Search))
|
||||||
|
|||||||
@@ -11,9 +11,4 @@ public class SqlSugarPack : BaseAppPack
|
|||||||
{
|
{
|
||||||
services.AddSqlSugar();
|
services.AddSqlSugar();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class CanteenUserEntity : SugarBaseEntity, IVersion, ITenantId
|
|||||||
/// 档案号
|
/// 档案号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(IsNullable = false, ColumnDescription = "档案号")]
|
[SugarColumn(IsNullable = false, ColumnDescription = "档案号")]
|
||||||
public string UserId { get; set; }
|
public string UserNo { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -13,13 +13,13 @@ public class DepartmentEntity : SugarBaseEntity
|
|||||||
/// 部门号
|
/// 部门号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "部门号")]
|
[SugarColumn(ColumnDescription = "部门号")]
|
||||||
public string Code { get; set; }
|
public string No { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上级部门号
|
/// 上级部门号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "上级部门号")]
|
[SugarColumn(ColumnDescription = "上级部门号")]
|
||||||
public string PCode { get; set; }
|
public string PNo { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 部门名称
|
/// 部门名称
|
||||||
|
|||||||
@@ -148,6 +148,12 @@ public class GainfoEntity : SugarBaseEntity
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "在职状态")]
|
[SugarColumn(ColumnDescription = "在职状态")]
|
||||||
public string Employed { get; set; }
|
public string Employed { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 身份认证用户Id
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnDescription = "身份认证用户Id")]
|
||||||
|
public int IdentityUserId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
//[SugarTable(TableName = "GainfoLeave", TableDescription = "离职人员档案表")]
|
//[SugarTable(TableName = "GainfoLeave", TableDescription = "离职人员档案表")]
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ public enum GenderEnumType
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 女性
|
/// 女性
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Description("女性")]
|
[Description("女")]
|
||||||
Female = 0,
|
Female = 0,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 男性
|
/// 男性
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Description("男性")]
|
[Description("男")]
|
||||||
Male = 1,
|
Male = 1,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Dlhis.Entity.Canteen.Enums;
|
using Dlhis.Entity.Canteen.Enums;
|
||||||
using Kurisu.Core.DataAccess.Entity;
|
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using SqlSugar.DbConvert;
|
using SqlSugar.DbConvert;
|
||||||
|
|
||||||
@@ -9,7 +8,7 @@ namespace Dlhis.Entity.Canteen.Entities;
|
|||||||
/// 就餐订单
|
/// 就餐订单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarTable(TableName = "CanteenOrder", TableDescription = "就餐订单")]
|
[SugarTable(TableName = "CanteenOrder", TableDescription = "就餐订单")]
|
||||||
public class CanteenOrderEntity : BalanceRecordEntity, ITenantId
|
public class CanteenOrderEntity : BalanceRecordEntity
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求json
|
/// 请求json
|
||||||
@@ -40,5 +39,4 @@ public class CanteenOrderEntity : BalanceRecordEntity, ITenantId
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "处理结果")]
|
[SugarColumn(ColumnDescription = "处理结果")]
|
||||||
public string Result { get; set; }
|
public string Result { get; set; }
|
||||||
public string TenantId { get; set; }
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using Kurisu.SqlSugar;
|
using Dlhis.Entity.Device.Enums;
|
||||||
|
using Kurisu.SqlSugar;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
|
using SqlSugar.DbConvert;
|
||||||
|
|
||||||
namespace Dlhis.Entity.Device.Entities;
|
namespace Dlhis.Entity.Device.Entities;
|
||||||
|
|
||||||
@@ -9,10 +11,16 @@ namespace Dlhis.Entity.Device.Entities;
|
|||||||
[SugarTable(TableName = "DeviceTask")]
|
[SugarTable(TableName = "DeviceTask")]
|
||||||
public class DeviceTaskEntity : SugarBaseEntity
|
public class DeviceTaskEntity : SugarBaseEntity
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 任务类型
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
|
||||||
|
public DeviceTaskEnumType Type { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户档案号
|
/// 用户档案号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string UserId { get; set; }
|
public string UserNo { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户学工号
|
/// 用户学工号
|
||||||
@@ -34,6 +42,11 @@ public class DeviceTaskEntity : SugarBaseEntity
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int RetryCount { get; set; }
|
public int RetryCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务下发状态
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
|
||||||
|
public DeviceTaskStatusEnumType Status { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 处理结果
|
/// 处理结果
|
||||||
|
|||||||
30
Src/Dlhis.Entity/Device/Enums/DeviceTaskEnumType.cs
Normal file
30
Src/Dlhis.Entity/Device/Enums/DeviceTaskEnumType.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace Dlhis.Entity.Device.Enums;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备任务类型
|
||||||
|
/// </summary>
|
||||||
|
[Description("设备任务类型")]
|
||||||
|
public enum DeviceTaskEnumType
|
||||||
|
{
|
||||||
|
// 状态:ADD-准备下发;ADDOK-下发成功;DEL-准备删除;DELOK-删除成功;AERR-下发错误;DERR-删除错误;UUU-先删除后下发;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加
|
||||||
|
/// </summary>
|
||||||
|
[Description("添加")]
|
||||||
|
Add = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除
|
||||||
|
/// </summary>
|
||||||
|
[Description("删除")]
|
||||||
|
Delete = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除后添加
|
||||||
|
/// </summary>
|
||||||
|
[Description("删除后添加")]
|
||||||
|
AddAfterDelete = 3,
|
||||||
|
}
|
||||||
34
Src/Dlhis.Entity/Device/Enums/DeviceTaskStatusEnumType.cs
Normal file
34
Src/Dlhis.Entity/Device/Enums/DeviceTaskStatusEnumType.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace Dlhis.Entity.Device.Enums;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备任务下发状态
|
||||||
|
/// </summary>
|
||||||
|
[Description("设备任务下发状态")]
|
||||||
|
public enum DeviceTaskStatusEnumType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 待下发
|
||||||
|
/// </summary>
|
||||||
|
[Description("待下发")]
|
||||||
|
Wait = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 处理中
|
||||||
|
/// </summary>
|
||||||
|
[Description("处理中")]
|
||||||
|
Process = 5,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 下发完成
|
||||||
|
/// </summary>
|
||||||
|
[Description("下发完成")]
|
||||||
|
Success = 10,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 异常
|
||||||
|
/// </summary>
|
||||||
|
[Description("异常")]
|
||||||
|
Error = 99,
|
||||||
|
}
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<configuration>
|
|
||||||
<appSettings>
|
|
||||||
<!--接口服务器地址 后面不要带 "/"-->
|
|
||||||
<add key="ServerUrl" value="http://172.16.7.58:8125"/>
|
|
||||||
<!--接口登录用户名-->
|
|
||||||
<add key="UserName" value="admin_ws"/>
|
|
||||||
<!--接口登录密码-->
|
|
||||||
<add key="Password" value="jinkohr@2017"/>
|
|
||||||
<!--同步人事信息时间-->
|
|
||||||
<add key="SyncTime" value="00:00"/>
|
|
||||||
<!--考勤记录上传间隔-->
|
|
||||||
<add key="AttendanceUploadInterval" value="30"/>
|
|
||||||
<!--考勤记录上传间隔-->
|
|
||||||
<add key="AttendanceUploadUrl" value="http://172.16.7.110:8121/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/zhrf_swipe_data_saven/210/zhrf_swipe_data_save/zhrf_swipe_data_save?sap-client=210"/>
|
|
||||||
<!--迪联数据库连接-->
|
|
||||||
<add key="DlhisDatabase" value="server=192.168.199.124,32634;uid=sa;pwd=@Z!123456;database=test;"/>
|
|
||||||
<add key="Werks" value="aaa,bbb"/>
|
|
||||||
<!--人事信息开始同步日期-->
|
|
||||||
<add key="BeginSyncDate" value="2020-5-1"/>
|
|
||||||
<!--HTTP api 监听端口-->
|
|
||||||
<add key="ApiPort" value="8099"/>
|
|
||||||
<add key="EHRWebServiceUserName" value="mes_wsuser"/>
|
|
||||||
<add key="EHRWebServicePassword" value="pid12345"/>
|
|
||||||
<add key="EHRInsertRecordApiUrl" value="http://172.16.7.70:50000/dir/wsdl?p=ic/0dba887338dd39cebd17fdf55f2f8430"/>
|
|
||||||
<add key="EHRDeleteRecordApiUrl" value="http://172.16.7.70:50000/dir/wsdl?p=ic/d8b0cfae38313211a93cb5d813ea0062"/>
|
|
||||||
<add key="EHRSavePhotoApiUrl" value="http://172.16.7.70:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=DLDM&receiverParty=&receiverService=&interface=SI_DLDM2EHR_InsertRecord_Out&interfaceNamespace=urn%3Ajinkosolar.com%3Adldm%3Aehr_insert_record"/>
|
|
||||||
<add key="EHR_GET_WORK_CARD_INFOApiUrl" value="http://sappipap01.jinkosolar.cn:50100/RESTAdapter/Rest/EHR_GET_WORK_CARD_INFO/"/>
|
|
||||||
<!--获取员工卡片信息-->
|
|
||||||
<add key="RestUserName" value="DL_USER"/>
|
|
||||||
<add key="RestPassword" value="MWLnaIbGtI9Q4N"/>
|
|
||||||
<!--RESULT 账号与密码-->
|
|
||||||
</appSettings>
|
|
||||||
<startup>
|
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
|
|
||||||
</startup>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
</configuration>
|
|
||||||
<!--
|
|
||||||
PERNR NUMC 人员号
|
|
||||||
WERKS CHAR 人事范围
|
|
||||||
ORGEH NUMC 组织单位
|
|
||||||
PLANS NUMC 岗位
|
|
||||||
ZZ_SJGH CHAR 直接上级工号
|
|
||||||
ZZ_AQJB CHAR 安全级别
|
|
||||||
NAME CHAR 姓名
|
|
||||||
GESCH CHAR 性别代码
|
|
||||||
GBDAT DATS 出生日期
|
|
||||||
ZZ_SFZH CHAR 身份证号码
|
|
||||||
ZTELE CHAR 座机号
|
|
||||||
ZWORKCODE CHAR OA工号
|
|
||||||
ZMOBILE CHAR 手机
|
|
||||||
ZEMAIL CHAR 电子邮件
|
|
||||||
ZSTATUS CHAR 状态
|
|
||||||
|
|
||||||
-->
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
<DockerfileContext>..\..</DockerfileContext>
|
<DockerfileContext>..\..</DockerfileContext>
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
namespace Dlhis.ScheduledTask.Entities
|
using SqlSugar;
|
||||||
{
|
|
||||||
public class GainfoSap
|
|
||||||
{
|
|
||||||
public GainfoSap()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
namespace Dlhis.ScheduledTask.Entities;
|
||||||
|
|
||||||
|
[SugarTable(TableName = "GainfoSap")]
|
||||||
|
public class GainfoSapEntity
|
||||||
|
{
|
||||||
|
|
||||||
[PkColumn]
|
[PkColumn]
|
||||||
public int id { get; set; }
|
public int id { get; set; }
|
||||||
@@ -94,22 +93,21 @@
|
|||||||
public string guestno { get; set; }
|
public string guestno { get; set; }
|
||||||
public string ZZ_KLX { get; set; }
|
public string ZZ_KLX { get; set; }
|
||||||
public DateTime? DAT01 { get; set; }
|
public DateTime? DAT01 { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class UpdateColumnAttribute : Attribute
|
public class UpdateColumnAttribute : Attribute
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PkColumnAttribute : Attribute
|
public class PkColumnAttribute : Attribute
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class IgnoreColumnAttribute : Attribute
|
public class IgnoreColumnAttribute : Attribute
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ using System.Text;
|
|||||||
using Dlhis.ScheduledTask.Configurations;
|
using Dlhis.ScheduledTask.Configurations;
|
||||||
using Kurisu.SqlSugar.Services;
|
using Kurisu.SqlSugar.Services;
|
||||||
using Dlhis.Entity.Basic.Entity;
|
using Dlhis.Entity.Basic.Entity;
|
||||||
using Dlhis.ScheduledTask.Wsproxy.Dlhis.JinkoHr.WsProxy;
|
|
||||||
using Dlhis.Entity.Basic.Enums;
|
using Dlhis.Entity.Basic.Enums;
|
||||||
|
|
||||||
namespace Dlhis.ScheduledTask.Job
|
namespace Dlhis.ScheduledTask.Job
|
||||||
@@ -22,7 +21,7 @@ namespace Dlhis.ScheduledTask.Job
|
|||||||
private List<ZHRS_ORG> lastUpdatedOrgList = new List<ZHRS_ORG>();
|
private List<ZHRS_ORG> lastUpdatedOrgList = new List<ZHRS_ORG>();
|
||||||
private List<ZHRS_POST> lastUpdatedPositionList = new List<ZHRS_POST>();
|
private List<ZHRS_POST> lastUpdatedPositionList = new List<ZHRS_POST>();
|
||||||
private readonly ServiceSettings serviceSettings;
|
private readonly ServiceSettings serviceSettings;
|
||||||
private readonly ZHRS_WERKS[] werks;
|
|
||||||
private readonly IDbContext _dbContext;
|
private readonly IDbContext _dbContext;
|
||||||
public SyncPersonJob(IDbContext dbContext)
|
public SyncPersonJob(IDbContext dbContext)
|
||||||
{
|
{
|
||||||
@@ -141,7 +140,7 @@ namespace Dlhis.ScheduledTask.Job
|
|||||||
return failure;
|
return failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SavePerson(GainfoSap item)
|
private async Task SavePerson(GainfoSapEntity item)
|
||||||
{
|
{
|
||||||
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdNo == item.idno).FirstAsync();
|
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdNo == item.idno).FirstAsync();
|
||||||
if (gainfo != null)
|
if (gainfo != null)
|
||||||
@@ -191,7 +190,7 @@ namespace Dlhis.ScheduledTask.Job
|
|||||||
await _dbContext.InsertAsync(info);
|
await _dbContext.InsertAsync(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private async Task UpdatePerson(GainfoSap item)
|
private async Task UpdatePerson(GainfoSapEntity item)
|
||||||
{
|
{
|
||||||
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdNo == item.idno).FirstAsync();
|
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.IdNo == item.idno).FirstAsync();
|
||||||
if (gainfo != null)
|
if (gainfo != null)
|
||||||
@@ -242,58 +241,58 @@ namespace Dlhis.ScheduledTask.Job
|
|||||||
var headerValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials));
|
var headerValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials));
|
||||||
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", headerValue);
|
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", headerValue);
|
||||||
|
|
||||||
List<PersonDetail> persons = new List<PersonDetail>();
|
List<PersonDetail> persons = new();
|
||||||
foreach (var item in werks)
|
//foreach (var item in werks)
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var body = new
|
|
||||||
{
|
|
||||||
T_WERKS = new
|
|
||||||
{
|
|
||||||
item = new List<object>
|
|
||||||
{
|
|
||||||
new
|
|
||||||
{
|
|
||||||
item.WERKS
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
T_PERSON = Array.Empty<string>(),
|
|
||||||
T_PNO = Array.Empty<string>(),
|
|
||||||
};
|
|
||||||
var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
|
|
||||||
|
|
||||||
var response = httpClient.PostAsync("http://sappipap01.jinkosolar.cn:50100/RESTAdapter/Rest/EHR_PERSONNEL/", content).Result;
|
|
||||||
|
|
||||||
var jsonResponse = response.Content.ReadAsStringAsync().Result;
|
|
||||||
if (response.IsSuccessStatusCode)
|
|
||||||
{
|
|
||||||
PersonResult personResp = JsonConvert.DeserializeObject<PersonResult>(jsonResponse);
|
|
||||||
if (personResp?.T_PERSON?.item?.Any() == true)
|
|
||||||
{
|
|
||||||
persons.AddRange(personResp.T_PERSON.item);
|
|
||||||
//log.Info($"人事范围[{item.WERKS}]获取{personResp.T_PERSON.item.Count}条数据");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new Exception($"请求异常:{response.StatusCode}:" + jsonResponse);
|
|
||||||
}
|
|
||||||
// this is webservice call
|
|
||||||
//var personResp = archivesClient.ZHRF_SYN_03(new ZHRF_SYN_03()
|
|
||||||
//{
|
//{
|
||||||
// //I_DATE = Settings.BeginSyncDate.ToString("yyy-MM-dd"),
|
// try
|
||||||
// T_PERSON = Array.Empty<ZHRS_PERSON>(),
|
// {
|
||||||
// T_PNO = Array.Empty<ZHRS_PNO>(),
|
// var body = new
|
||||||
// T_WERKS = new ZHRS_WERKS[] { item },
|
// {
|
||||||
//});
|
// T_WERKS = new
|
||||||
}
|
// {
|
||||||
catch (Exception ex)
|
// item = new List<object>
|
||||||
{
|
// {
|
||||||
//log.Error($"人事范围[{item.WERKS}]获取失败:{ex.Message}", ex);
|
// new
|
||||||
}
|
// {
|
||||||
}
|
// item.WERKS
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// T_PERSON = Array.Empty<string>(),
|
||||||
|
// T_PNO = Array.Empty<string>(),
|
||||||
|
// };
|
||||||
|
// var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
|
// var response = httpClient.PostAsync("http://sappipap01.jinkosolar.cn:50100/RESTAdapter/Rest/EHR_PERSONNEL/", content).Result;
|
||||||
|
|
||||||
|
// var jsonResponse = response.Content.ReadAsStringAsync().Result;
|
||||||
|
// if (response.IsSuccessStatusCode)
|
||||||
|
// {
|
||||||
|
// PersonResult personResp = JsonConvert.DeserializeObject<PersonResult>(jsonResponse);
|
||||||
|
// if (personResp?.T_PERSON?.item?.Any() == true)
|
||||||
|
// {
|
||||||
|
// persons.AddRange(personResp.T_PERSON.item);
|
||||||
|
// //log.Info($"人事范围[{item.WERKS}]获取{personResp.T_PERSON.item.Count}条数据");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// throw new Exception($"请求异常:{response.StatusCode}:" + jsonResponse);
|
||||||
|
// }
|
||||||
|
// // this is webservice call
|
||||||
|
// //var personResp = archivesClient.ZHRF_SYN_03(new ZHRF_SYN_03()
|
||||||
|
// //{
|
||||||
|
// // //I_DATE = Settings.BeginSyncDate.ToString("yyy-MM-dd"),
|
||||||
|
// // T_PERSON = Array.Empty<ZHRS_PERSON>(),
|
||||||
|
// // T_PNO = Array.Empty<ZHRS_PNO>(),
|
||||||
|
// // T_WERKS = new ZHRS_WERKS[] { item },
|
||||||
|
// //});
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// //log.Error($"人事范围[{item.WERKS}]获取失败:{ex.Message}", ex);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
return new PersonResult()
|
return new PersonResult()
|
||||||
{
|
{
|
||||||
@@ -312,11 +311,11 @@ namespace Dlhis.ScheduledTask.Job
|
|||||||
var needRemove = sapList.Intersect(lastUpdatedPersonList, new ZHRS_PERSONComparer());
|
var needRemove = sapList.Intersect(lastUpdatedPersonList, new ZHRS_PERSONComparer());
|
||||||
return sapList.Except(needRemove, new ZHRS_PERSONComparer()).ToList();
|
return sapList.Except(needRemove, new ZHRS_PERSONComparer()).ToList();
|
||||||
}
|
}
|
||||||
private List<GainfoSap> ToGainfoSap(List<PersonDetail> data)
|
private List<GainfoSapEntity> ToGainfoSap(List<PersonDetail> data)
|
||||||
{
|
{
|
||||||
return data.Select(person =>
|
return data.Select(person =>
|
||||||
{
|
{
|
||||||
GainfoSap o = null;
|
GainfoSapEntity o = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -337,7 +336,7 @@ namespace Dlhis.ScheduledTask.Job
|
|||||||
var sex = person.GESCH == "2" ? "F" : "M";
|
var sex = person.GESCH == "2" ? "F" : "M";
|
||||||
|
|
||||||
person.ZZ_SFZH = person.ZZ_SFZH?.TrimStart();
|
person.ZZ_SFZH = person.ZZ_SFZH?.TrimStart();
|
||||||
o = new GainfoSap
|
o = new GainfoSapEntity
|
||||||
{
|
{
|
||||||
gname = person.NAME,
|
gname = person.NAME,
|
||||||
ename = person.ZWORKCODE,
|
ename = person.ZWORKCODE,
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
using Hangfire;
|
using Hangfire;
|
||||||
|
|
||||||
namespace Dlhis.ScheduledTask.Job
|
namespace Dlhis.ScheduledTask.Job;
|
||||||
|
|
||||||
|
public static class UseHangfire
|
||||||
{
|
{
|
||||||
public static class UseHangfire
|
|
||||||
{
|
|
||||||
public static void UseHangfireto(this IServiceCollection services)
|
public static void UseHangfireto(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
GlobalConfiguration.Configuration.UseActivator(new HangfireActivator(services.BuildServiceProvider()));
|
GlobalConfiguration.Configuration.UseActivator(new HangfireActivator(services.BuildServiceProvider()));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ public class SqlSugarPack : BaseAppPack
|
|||||||
|
|
||||||
public override void ConfigureServices(IServiceCollection services)
|
public override void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddHttpContextAccessor();
|
|
||||||
services.AddSqlSugar();
|
services.AddSqlSugar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,6 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
},
|
},
|
||||||
"applicationUrl": "http://localhost:5010"
|
"applicationUrl": "http://localhost:5010"
|
||||||
},
|
|
||||||
"Docker": {
|
|
||||||
"commandName": "Docker",
|
|
||||||
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
|
|
||||||
"environmentVariables": {
|
|
||||||
"ASPNETCORE_URLS": "http://+:80"
|
|
||||||
},
|
|
||||||
"publishAllPorts": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Request;
|
||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Response;
|
||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Services;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace Dlhis.ScheduledTask.TaskAssignment.Controllers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备任务下发
|
||||||
|
/// </summary>
|
||||||
|
[Authorize]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class DeviceTaskAssignmentsController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly IDeviceTaskAssignmentService _deviceTaskAssignmentService;
|
||||||
|
|
||||||
|
public DeviceTaskAssignmentsController(IDeviceTaskAssignmentService deviceTaskAssignmentService)
|
||||||
|
{
|
||||||
|
_deviceTaskAssignmentService = deviceTaskAssignmentService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备任务下发分页
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("page")]
|
||||||
|
public async Task<Pagination<DeviceTaskAssignmentResponse>> GetPageAsync([FromQuery] DeviceTaskAssignmentRequest request)
|
||||||
|
{
|
||||||
|
return await _deviceTaskAssignmentService.GetPageAsync(request);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
|
||||||
|
namespace Dlhis.ScheduledTask.TaskAssignment.Request;
|
||||||
|
|
||||||
|
public class DeviceTaskAssignmentRequest : PageDto
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
using Dlhis.Entity.Device.Enums;
|
||||||
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
|
|
||||||
|
namespace Dlhis.ScheduledTask.TaskAssignment.Response;
|
||||||
|
|
||||||
|
public class DeviceTaskAssignmentResponse
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 任务类型
|
||||||
|
/// </summary>
|
||||||
|
public DeviceTaskEnumType Type { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务类型描述
|
||||||
|
/// </summary>
|
||||||
|
public string TypeDesc => Type.GetDescription();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用户档案号
|
||||||
|
/// </summary>
|
||||||
|
public string UserNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用户学工号
|
||||||
|
/// </summary>
|
||||||
|
public string UserCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用户名
|
||||||
|
/// </summary>
|
||||||
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备唯一号
|
||||||
|
/// </summary>
|
||||||
|
public string DeviceUniqueNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重试次数
|
||||||
|
/// </summary>
|
||||||
|
public int RetryCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务下发状态
|
||||||
|
/// </summary>
|
||||||
|
public DeviceTaskStatusEnumType Status { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务下发状态描述
|
||||||
|
/// </summary>
|
||||||
|
public string StatusDesc => Status.GetDescription();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 处理结果
|
||||||
|
/// </summary>
|
||||||
|
public string ResultMessage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 数据状态最新修改时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime LastUpdateTime { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Request;
|
||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Response;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
|
||||||
|
namespace Dlhis.ScheduledTask.TaskAssignment.Services;
|
||||||
|
|
||||||
|
public interface IDeviceTaskAssignmentService : IScopeDependency
|
||||||
|
{
|
||||||
|
Task<Pagination<DeviceTaskAssignmentResponse>> GetPageAsync(DeviceTaskAssignmentRequest request);
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
using Dlhis.Entity.Device.Entities;
|
||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Request;
|
||||||
|
using Dlhis.ScheduledTask.TaskAssignment.Response;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Kurisu.SqlSugar.Extensions;
|
||||||
|
using Kurisu.SqlSugar.Services;
|
||||||
|
|
||||||
|
namespace Dlhis.ScheduledTask.TaskAssignment.Services.Implements;
|
||||||
|
|
||||||
|
public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||||
|
{
|
||||||
|
private readonly IDbContext _dbContext;
|
||||||
|
|
||||||
|
public DeviceTaskAssignmentService(IDbContext dbContext)
|
||||||
|
{
|
||||||
|
_dbContext = dbContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Pagination<DeviceTaskAssignmentResponse>> GetPageAsync(DeviceTaskAssignmentRequest request)
|
||||||
|
{
|
||||||
|
var page = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||||
|
.Select((deviceTask) => new DeviceTaskAssignmentResponse
|
||||||
|
{
|
||||||
|
DeviceUniqueNo = deviceTask.DeviceUniqueNo,
|
||||||
|
ResultMessage = deviceTask.ResultMessage,
|
||||||
|
RetryCount = deviceTask.RetryCount,
|
||||||
|
Status = deviceTask.Status,
|
||||||
|
UserNo = deviceTask.UserNo,
|
||||||
|
UserName = deviceTask.UserName,
|
||||||
|
UserCode = deviceTask.UserCode,
|
||||||
|
Type = deviceTask.Type,
|
||||||
|
LastUpdateTime = deviceTask.ModifiedTime
|
||||||
|
})
|
||||||
|
.ToPageListAsync(request);
|
||||||
|
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,851 +0,0 @@
|
|||||||
namespace Dlhis.ScheduledTask.Wsproxy
|
|
||||||
{
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
// Runtime Version:4.0.30319.42000
|
|
||||||
//
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
//
|
|
||||||
// This source code was auto-generated by wsdl, Version=4.6.1055.0.
|
|
||||||
//
|
|
||||||
namespace Dlhis.JinkoHr.WsProxy
|
|
||||||
{
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
// CODEGEN: The optional WSDL extension element 'Policy' from namespace 'http://schemas.xmlsoap.org/ws/2004/09/policy' was not handled.
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
|
||||||
//[System.Web.Services.WebServiceBindingAttribute(Name = "ZHRF_SYN_03N", Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
/*public partial class ZHRF_SYN_03N : System.Web.Services.Protocols.SoapHttpClientProtocol
|
|
||||||
{
|
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback ZHRF_SYN_03OperationCompleted;
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public ZHRF_SYN_03N()
|
|
||||||
{
|
|
||||||
this.Url = "http://172.16.7.58:8125/sap/bc/srt/rfc/sap/zhrf_syn_03n/800/zhrf_syn" +
|
|
||||||
"_03n/zhrf_syn_03n";
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public event ZHRF_SYN_03CompletedEventHandler ZHRF_SYN_03Completed;
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:sap-com:document:sap:rfc:functions:ZHRF_SYN_03N:ZHRF_SYN_03Request", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
|
|
||||||
[return: System.Xml.Serialization.XmlElementAttribute("ZHRF_SYN_03Response", Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
public ZHRF_SYN_03Response ZHRF_SYN_03([System.Xml.Serialization.XmlElementAttribute("ZHRF_SYN_03", Namespace = "urn:sap-com:document:sap:rfc:functions")] ZHRF_SYN_03 ZHRF_SYN_031)
|
|
||||||
{
|
|
||||||
object[] results = this.Invoke("ZHRF_SYN_03", new object[] {
|
|
||||||
ZHRF_SYN_031});
|
|
||||||
return ((ZHRF_SYN_03Response)(results[0]));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public System.IAsyncResult BeginZHRF_SYN_03(ZHRF_SYN_03 ZHRF_SYN_031, System.AsyncCallback callback, object asyncState)
|
|
||||||
{
|
|
||||||
return this.BeginInvoke("ZHRF_SYN_03", new object[] {
|
|
||||||
ZHRF_SYN_031}, callback, asyncState);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public ZHRF_SYN_03Response EndZHRF_SYN_03(System.IAsyncResult asyncResult)
|
|
||||||
{
|
|
||||||
object[] results = this.EndInvoke(asyncResult);
|
|
||||||
return ((ZHRF_SYN_03Response)(results[0]));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public void ZHRF_SYN_03Async(ZHRF_SYN_03 ZHRF_SYN_031)
|
|
||||||
{
|
|
||||||
this.ZHRF_SYN_03Async(ZHRF_SYN_031, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public void ZHRF_SYN_03Async(ZHRF_SYN_03 ZHRF_SYN_031, object userState)
|
|
||||||
{
|
|
||||||
if ((this.ZHRF_SYN_03OperationCompleted == null))
|
|
||||||
{
|
|
||||||
this.ZHRF_SYN_03OperationCompleted = new System.Threading.SendOrPostCallback(this.OnZHRF_SYN_03OperationCompleted);
|
|
||||||
}
|
|
||||||
this.InvokeAsync("ZHRF_SYN_03", new object[] {
|
|
||||||
ZHRF_SYN_031}, this.ZHRF_SYN_03OperationCompleted, userState);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnZHRF_SYN_03OperationCompleted(object arg)
|
|
||||||
{
|
|
||||||
if ((this.ZHRF_SYN_03Completed != null))
|
|
||||||
{
|
|
||||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
|
||||||
this.ZHRF_SYN_03Completed(this, new ZHRF_SYN_03CompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public new void CancelAsync(object userState)
|
|
||||||
{
|
|
||||||
base.CancelAsync(userState);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/* /// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.SerializableAttribute()]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]*/
|
|
||||||
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
public partial class ZHRF_SYN_03
|
|
||||||
{
|
|
||||||
|
|
||||||
private string i_DATEField;
|
|
||||||
|
|
||||||
private ZHRS_PERSON[] t_PERSONField;
|
|
||||||
|
|
||||||
private ZHRS_PNO[] t_PNOField;
|
|
||||||
|
|
||||||
private ZHRS_WERKS[] t_WERKSField;
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string I_DATE
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.i_DATEField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.i_DATEField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
|
|
||||||
public ZHRS_PERSON[] T_PERSON
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.t_PERSONField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.t_PERSONField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
|
|
||||||
public ZHRS_PNO[] T_PNO
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.t_PNOField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.t_PNOField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
|
|
||||||
public ZHRS_WERKS[] T_WERKS
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.t_WERKSField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.t_WERKSField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.SerializableAttribute()]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
|
||||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
public partial class ZHRS_PERSON
|
|
||||||
{
|
|
||||||
|
|
||||||
private string pERNRField;
|
|
||||||
|
|
||||||
private string wERKSField;
|
|
||||||
|
|
||||||
private string oRGEHField;
|
|
||||||
|
|
||||||
private string pLANSField;
|
|
||||||
|
|
||||||
private string zZ_SJGHField;
|
|
||||||
|
|
||||||
private string zZ_AQJBField;
|
|
||||||
|
|
||||||
private string nAMEField;
|
|
||||||
|
|
||||||
private string gESCHField;
|
|
||||||
|
|
||||||
private string gBDATField;
|
|
||||||
|
|
||||||
private string zZ_SFZHField;
|
|
||||||
|
|
||||||
private string zTELEField;
|
|
||||||
|
|
||||||
private string zWORKCODEField;
|
|
||||||
|
|
||||||
private string zMOBILEField;
|
|
||||||
|
|
||||||
private string zEMAILField;
|
|
||||||
|
|
||||||
private string zSTATUSField;
|
|
||||||
private string zZZ_XSQYField;
|
|
||||||
private string zKOSTLField;
|
|
||||||
private string zZZ_ZDField;
|
|
||||||
private string zZ_ZJField;
|
|
||||||
private string zZRZRQField;
|
|
||||||
private string zZLZRQField;
|
|
||||||
private string zMASSGField;
|
|
||||||
private string zMGTXTField;
|
|
||||||
|
|
||||||
private string zBEGDAField;
|
|
||||||
|
|
||||||
private string zENDDAField;
|
|
||||||
|
|
||||||
private string zSTELLField;
|
|
||||||
|
|
||||||
private string zSTELL_NMField;
|
|
||||||
|
|
||||||
private string zZADZHField;
|
|
||||||
|
|
||||||
private string zSTAT2Field;
|
|
||||||
|
|
||||||
private string zZCJRQField;
|
|
||||||
|
|
||||||
private string zZZZRQField;
|
|
||||||
|
|
||||||
private string zMASSNField;
|
|
||||||
|
|
||||||
private string zMNTXTField;
|
|
||||||
|
|
||||||
private string zXUELIField;
|
|
||||||
|
|
||||||
private string zZ_KLXField;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string PERNR
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.pERNRField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.pERNRField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string WERKS
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.wERKSField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.wERKSField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ORGEH
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.oRGEHField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.oRGEHField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string PLANS
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.pLANSField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.pLANSField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZ_SJGH
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZ_SJGHField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZ_SJGHField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZ_AQJB
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZ_AQJBField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZ_AQJBField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string NAME
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.nAMEField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.nAMEField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string GESCH
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.gESCHField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.gESCHField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string GBDAT
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.gBDATField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.gBDATField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZ_SFZH
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZ_SFZHField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZ_SFZHField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZTELE
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zTELEField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zTELEField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZWORKCODE
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zWORKCODEField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zWORKCODEField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZMOBILE
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zMOBILEField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zMOBILEField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZEMAIL
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zEMAILField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zEMAILField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZSTATUS
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zSTATUSField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zSTATUSField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZ_XSQY
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZZ_XSQYField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZZ_XSQYField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string KOSTL
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zKOSTLField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zKOSTLField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZ_ZD
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZZ_ZDField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZZ_ZDField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
/// <remarks/>
|
|
||||||
public string Z_ZJ
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZ_ZJField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZ_ZJField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZRZRQ
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZRZRQField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZRZRQField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZLZRQ
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zZLZRQField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zZLZRQField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string MASSG
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zMASSGField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zMASSGField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string MGTXT
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zMGTXTField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zMGTXTField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string BEGDA
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zBEGDAField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zBEGDAField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ENDDA
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zENDDAField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zENDDAField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string STELL
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zSTELLField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zSTELLField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string STELL_NM
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zSTELL_NMField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zSTELL_NMField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZADZH
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zZADZHField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zZADZHField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string STAT2
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zSTAT2Field;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zSTAT2Field = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZCJRQ
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zZCJRQField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zZCJRQField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZZRQ
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zZZZRQField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zZZZRQField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string MASSN
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zMASSNField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zMASSNField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string MNTXT
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zMNTXTField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zMNTXTField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZXUELI
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zXUELIField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zXUELIField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZZ_KLX
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return zZ_KLXField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
zZ_KLXField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.SerializableAttribute()]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
|
||||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
public partial class ZHRS_WERKS
|
|
||||||
{
|
|
||||||
|
|
||||||
private string wERKSField;
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string WERKS
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.wERKSField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.wERKSField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.SerializableAttribute()]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
|
||||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
public partial class ZHRS_PNO
|
|
||||||
{
|
|
||||||
|
|
||||||
private string zWORKCODEField;
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
public string ZWORKCODE
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.zWORKCODEField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.zWORKCODEField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.SerializableAttribute()]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
|
||||||
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:sap-com:document:sap:rfc:functions")]
|
|
||||||
public partial class ZHRF_SYN_03Response
|
|
||||||
{
|
|
||||||
|
|
||||||
private ZHRS_PERSON[] t_PERSONField;
|
|
||||||
|
|
||||||
private ZHRS_PNO[] t_PNOField;
|
|
||||||
|
|
||||||
private ZHRS_WERKS[] t_WERKSField;
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
|
|
||||||
public ZHRS_PERSON[] T_PERSON
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.t_PERSONField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.t_PERSONField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
|
|
||||||
public ZHRS_PNO[] T_PNO
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.t_PNOField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.t_PNOField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
|
||||||
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = false)]
|
|
||||||
public ZHRS_WERKS[] T_WERKS
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.t_WERKSField;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
this.t_WERKSField = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
public delegate void ZHRF_SYN_03CompletedEventHandler(object sender, ZHRF_SYN_03CompletedEventArgs e);
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
|
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
|
||||||
public partial class ZHRF_SYN_03CompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
|
||||||
{
|
|
||||||
|
|
||||||
private object[] results;
|
|
||||||
|
|
||||||
internal ZHRF_SYN_03CompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
|
||||||
base(exception, cancelled, userState)
|
|
||||||
{
|
|
||||||
this.results = results;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
public ZHRF_SYN_03Response Result
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
this.RaiseExceptionIfNecessary();
|
|
||||||
return ((ZHRF_SYN_03Response)(this.results[0]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,5 +4,28 @@
|
|||||||
"Default": "Information",
|
"Default": "Information",
|
||||||
"Microsoft.AspNetCore": "Warning"
|
"Microsoft.AspNetCore": "Warning"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"SwaggerOptions": {
|
||||||
|
"Enable": true,
|
||||||
|
"Authority": "https://yikatong.isawesome.cn/oauth2",
|
||||||
|
"ClientId": "4fb184324eac4180",
|
||||||
|
"ClientSecret": "8ac8f235152f1524",
|
||||||
|
"Scopes": {
|
||||||
|
"openid": "openid",
|
||||||
|
"profile": "profile",
|
||||||
|
"yikatong": "yikatong"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IdentityServerOptions": {
|
||||||
|
"Authority": "https://yikatong.isawesome.cn/oauth2",
|
||||||
|
"RequireHttpsMetadata": true,
|
||||||
|
"Issuer": "identity.isawesome.cn",
|
||||||
|
"Audience": "",
|
||||||
|
"Pat": {
|
||||||
|
"Enable": false,
|
||||||
|
"Scheme": "token",
|
||||||
|
"ClientId": "reference",
|
||||||
|
"ClientSecret": "123456"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,29 @@
|
|||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"HangfireConnection": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=HangFire;charset=utf8mb4;Allow User Variables=true;"
|
"HangfireConnection": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=HangFire;charset=utf8mb4;Allow User Variables=true;"
|
||||||
},
|
},
|
||||||
|
"SwaggerOptions": {
|
||||||
|
"Enable": true,
|
||||||
|
"Authority": "http://identity.oauth.svc.cluster.local",
|
||||||
|
"ClientId": "4fb184324eac4180",
|
||||||
|
"ClientSecret": "8ac8f235152f1524",
|
||||||
|
"Scopes": {
|
||||||
|
"openid": "openid",
|
||||||
|
"profile": "profile",
|
||||||
|
"yikatong": "yikatong"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IdentityServerOptions": {
|
||||||
|
"Authority": "http://identity.oauth.svc.cluster.local",
|
||||||
|
"RequireHttpsMetadata": false,
|
||||||
|
"Issuer": "identity.isawesome.cn",
|
||||||
|
"Audience": "",
|
||||||
|
"Pat": {
|
||||||
|
"Enable": false,
|
||||||
|
"Scheme": "token",
|
||||||
|
"ClientId": "reference",
|
||||||
|
"ClientSecret": "123456"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ServiceSettings": {
|
"ServiceSettings": {
|
||||||
"ServerUrl": "http://172.16.7.58:8125",
|
"ServerUrl": "http://172.16.7.58:8125",
|
||||||
"UserName": "admin_ws",
|
"UserName": "admin_ws",
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"InternalRequest": {
|
"InternalRequest": {
|
||||||
"CommonRequestUrl": "http://common",
|
"CommonRequestUrl": "http://localhost:5001",
|
||||||
"UserRequestUrl": "http://localhost:5010"
|
"UserRequestUrl": "http://localhost:5004"
|
||||||
},
|
},
|
||||||
"SwaggerOptions": {
|
"SwaggerOptions": {
|
||||||
"Enable": true,
|
"Enable": true,
|
||||||
|
|||||||
14
Src/Dlhis.User.Api/ITenantApi.cs
Normal file
14
Src/Dlhis.User.Api/ITenantApi.cs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
using Dlhis.User.Api.Response;
|
||||||
|
using Kurisu.Core.Result;
|
||||||
|
using Kurisu.RemoteCall.Attributes;
|
||||||
|
|
||||||
|
namespace Dlhis.User.Api;
|
||||||
|
|
||||||
|
|
||||||
|
[EnableRemoteClient(Name = "user-service", BaseUrl = "${InternalRequest:UserRequestUrl}")]
|
||||||
|
public interface ITenantApi
|
||||||
|
{
|
||||||
|
[Auth]
|
||||||
|
[Get("/api/tenants/list")]
|
||||||
|
Task<DefaultApiResult<List<TenantResponse>>> GetTenantsAsync();
|
||||||
|
}
|
||||||
10
Src/Dlhis.User.Api/Response/TenantResponse.cs
Normal file
10
Src/Dlhis.User.Api/Response/TenantResponse.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Dlhis.User.Api.Response;
|
||||||
|
|
||||||
|
public class TenantResponse
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Code { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
<DockerfileContext>..\..</DockerfileContext>
|
<DockerfileContext>..\..</DockerfileContext>
|
||||||
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
42
Src/Dlhis.User/Identity/Controllers/TenantsController.cs
Normal file
42
Src/Dlhis.User/Identity/Controllers/TenantsController.cs
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
using Dlhis.User.Identity.Request;
|
||||||
|
using Dlhis.User.Identity.Response;
|
||||||
|
using Dlhis.User.Identity.Services;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace Dlhis.User.Identity.Controllers;
|
||||||
|
|
||||||
|
[Authorize]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class TenantsController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly ITenantService _tenantService;
|
||||||
|
|
||||||
|
public TenantsController(ITenantService tenantService)
|
||||||
|
{
|
||||||
|
_tenantService = tenantService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取租户分页
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("page")]
|
||||||
|
public async Task<Pagination<TenantResponse>> GetPageAsync([FromQuery] TenantPageRequest request)
|
||||||
|
{
|
||||||
|
return await _tenantService.GetPageAsync(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取所有租户
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("list")]
|
||||||
|
public async Task<List<TenantResponse>> GetListAsync()
|
||||||
|
{
|
||||||
|
return await _tenantService.GetListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
8
Src/Dlhis.User/Identity/Request/TenantPageRequest.cs
Normal file
8
Src/Dlhis.User/Identity/Request/TenantPageRequest.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
|
||||||
|
namespace Dlhis.User.Identity.Request
|
||||||
|
{
|
||||||
|
public class TenantPageRequest : PageDto
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
10
Src/Dlhis.User/Identity/Response/TenantResponse.cs
Normal file
10
Src/Dlhis.User/Identity/Response/TenantResponse.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Dlhis.User.Identity.Response;
|
||||||
|
|
||||||
|
public class TenantResponse
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Code { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
12
Src/Dlhis.User/Identity/Services/ITenantService.cs
Normal file
12
Src/Dlhis.User/Identity/Services/ITenantService.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
using Dlhis.User.Identity.Request;
|
||||||
|
using Dlhis.User.Identity.Response;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
|
||||||
|
namespace Dlhis.User.Identity.Services;
|
||||||
|
|
||||||
|
public interface ITenantService : IScopeDependency
|
||||||
|
{
|
||||||
|
Task<Pagination<TenantResponse>> GetPageAsync(TenantPageRequest request);
|
||||||
|
|
||||||
|
Task<List<TenantResponse>> GetListAsync();
|
||||||
|
}
|
||||||
27
Src/Dlhis.User/Identity/Services/Implements/RoleService.cs
Normal file
27
Src/Dlhis.User/Identity/Services/Implements/RoleService.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using Dlhis.Entity.Sys.Entities;
|
||||||
|
using Dlhis.User.Identity.Request;
|
||||||
|
using Dlhis.User.Identity.Response;
|
||||||
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Kurisu.SqlSugar.Extensions;
|
||||||
|
using Kurisu.SqlSugar.Services;
|
||||||
|
|
||||||
|
namespace Dlhis.User.Identity.Services.Implements;
|
||||||
|
|
||||||
|
public class RoleService : IRoleService
|
||||||
|
{
|
||||||
|
private readonly IDbContext _dbContext;
|
||||||
|
|
||||||
|
public RoleService(IDbContext dbContext)
|
||||||
|
{
|
||||||
|
_dbContext = dbContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Pagination<RoleRespone>> GetPageAsync(RolePageRequest request)
|
||||||
|
{
|
||||||
|
return await _dbContext.Queryable<RoleEntity>()
|
||||||
|
.WhereIF(request.Search.IsPresent(), x => x.Name.Contains(request.Search) || x.NormalizedName.Contains(request.Search))
|
||||||
|
.Select<RoleRespone>()
|
||||||
|
.ToPageListAsync(request);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
Src/Dlhis.User/Identity/Services/Implements/TenantService.cs
Normal file
34
Src/Dlhis.User/Identity/Services/Implements/TenantService.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using Dlhis.Entity.Sys.Entities;
|
||||||
|
using Dlhis.User.Identity.Request;
|
||||||
|
using Dlhis.User.Identity.Response;
|
||||||
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Kurisu.SqlSugar.Extensions;
|
||||||
|
using Kurisu.SqlSugar.Services;
|
||||||
|
|
||||||
|
namespace Dlhis.User.Identity.Services.Implements;
|
||||||
|
|
||||||
|
public class TenantService : ITenantService
|
||||||
|
{
|
||||||
|
private readonly IDbContext _dbContext;
|
||||||
|
|
||||||
|
public TenantService(IDbContext dbContext)
|
||||||
|
{
|
||||||
|
_dbContext = dbContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Pagination<TenantResponse>> GetPageAsync(TenantPageRequest request)
|
||||||
|
{
|
||||||
|
return await _dbContext.Queryable<TenantEntity>()
|
||||||
|
.WhereIF(request.Search.IsPresent(), (tenant) => tenant.Name.Contains(request.Search))
|
||||||
|
.Select<TenantResponse>()
|
||||||
|
.ToPageListAsync(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<TenantResponse>> GetListAsync()
|
||||||
|
{
|
||||||
|
return await _dbContext.Queryable<TenantEntity>()
|
||||||
|
.Select<TenantResponse>()
|
||||||
|
.ToListAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
},
|
},
|
||||||
"dotnetRunMessages": true,
|
"dotnetRunMessages": true,
|
||||||
"applicationUrl": "http://localhost:5010"
|
"applicationUrl": "http://localhost:5004"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"$schema": "https://json.schemastore.org/launchsettings.json"
|
"$schema": "https://json.schemastore.org/launchsettings.json"
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
"Scopes": {
|
"Scopes": {
|
||||||
"openid": "openid",
|
"openid": "openid",
|
||||||
"profile": "profile",
|
"profile": "profile",
|
||||||
"role": "role",
|
|
||||||
"yikatong": "yikatong"
|
"yikatong": "yikatong"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
"Scopes": {
|
"Scopes": {
|
||||||
"openid": "openid",
|
"openid": "openid",
|
||||||
"profile": "profile",
|
"profile": "profile",
|
||||||
"role": "role",
|
|
||||||
"yikatong": "yikatong"
|
"yikatong": "yikatong"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user