Files
jinko.yikatong/Src/Dlhis.Basic/Organization/Controllers/SyncController.cs
2025-11-17 11:41:45 +08:00

72 lines
2.2 KiB
C#

using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Services;
using Dlhis.Jip.Api;
using Dlhis.Jip.Api.Responses;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.Organization.Controllers;
[AllowAnonymous]
[ApiController]
[Route("/api/[controller]")]
public class SyncController : ControllerBase
{
private readonly IGainfoUpdateService _gainfoUpdateService;
private readonly IJinkoSapService _jinkoSapService;
private readonly IJinkoJipApi _jinkoJipApi;
private readonly ISapBusinessTripService _sapBusinessTripService;
public SyncController(IGainfoUpdateService gainfoUpdateService,
IJinkoSapService jinkoSapService,
IJinkoJipApi jinkoJipApi,
ISapBusinessTripService sapBusinessTripService)
{
_gainfoUpdateService = gainfoUpdateService;
_jinkoSapService = jinkoSapService;
_jinkoJipApi = jinkoJipApi;
_sapBusinessTripService = sapBusinessTripService;
}
[HttpPost("/api/sync/gainfo/werk")]
[IgnoreTenant]
public async Task TodoByWerkAsync(CodeRequest request)
{
await _gainfoUpdateService.TodoByWerkAsync(request.Code);
}
[HttpPost("/api/sync/gainfo/user")]
[IgnoreTenant]
public async Task TodoByCodeAsync(CodeRequest request)
{
await _gainfoUpdateService.TodoByCodeAsync(request.Code);
}
[HttpGet("/api/sync/orgs")]
public async Task<SapOrganizationResponse> GetOrgsSync()
{
return await _jinkoSapService.GetSapOrganizationsAsync();
}
[HttpGet("/api/sync/positions")]
public async Task<SapPositionResponse> GetPositionsAsync()
{
return await _jinkoSapService.GetPositionsAsync();
}
[HttpPost("/api/sync/businessTrips")]
[IgnoreTenant]
public async Task GetBusinessTripsAsync(CodeRequest request)
{
await _sapBusinessTripService.HandlerBusinessTripsByFactoryAsync(request.Code);
}
[HttpGet("/api/sync/test")]
[IgnoreTenant]
public async Task<object> Test(DateTime date, string factory)
{
return await _jinkoJipApi.GetBusinessTripInfosByFactoryAsync(factory, date, date);
}
}