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/updateToLeave")] [IgnoreTenant] public async Task UpdatePersonAsync(CodeRequest request) { await _gainfoUpdateService.UpdatePersonAsync(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 GetOrgsSync() { return await _jinkoSapService.GetSapOrganizationsAsync(); } [HttpGet("/api/sync/positions")] public async Task 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 Test(DateTime date, string factory) { return await _jinkoJipApi.GetBusinessTripInfosByFactoryAsync(factory, date, date); } }