using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Ropin.Inspection.Api.Common; using Ropin.Inspection.Model; using Ropin.Inspection.Model.SearchModel; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Service.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Ropin.Inspection.Api.Controllers { /// <summary> /// 巡检点人员 /// </summary> public class TispSpotUserController : BaseController { public ILogger<TispSpotUserController> _logger { get; } private readonly ITispSpotUserService _tispSpotUserService; /// <summary> /// 构造函数 /// </summary> /// <param name="tispSpotUserService"></param> /// <param name="logger"></param> public TispSpotUserController(ITispSpotUserService tispSpotUserService, ILogger<TispSpotUserController> logger) { _tispSpotUserService = tispSpotUserService; _logger = logger; } /// <summary> /// 通过ID获取巡检点人员信息 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("GetSpotUserAsync/{id}")] public async Task<ApiResult> GetSpotUserAsync(Guid id) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { var spot = await _tispSpotUserService.GetByIdAsync(id); return new ApiResult<TispSpotUserViewModel>(spot); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 获取所有巡检点人员 /// </summary> /// <returns></returns> [HttpGet("GetSpotUsersAsync")] public async Task<ApiResult> GetSpotUsersAsync() { try { var spotList = await _tispSpotUserService.GetAllAsync(); return new ApiResult<IEnumerable<TispSpotUserViewModel>>(spotList); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 分组获取巡检点人员分配列表 /// </summary> /// <param name="searchViewModel"></param> /// <returns></returns> //[HttpGet("GetSpotUsersAsyncByPage")] //public async Task<ApiResult> GetSpotUsersAsyncByPage([FromQuery] TispSpotUserSearchModel searchViewModel) [HttpPost("GetSpotUsersAsyncByPage")] public async Task<ApiResult> GetSpotUsersAsyncByPage(TispSpotUserSearchModel searchViewModel) { try { if (null == searchViewModel) { return new ApiResult(ReturnCode.ArgsError); } var list = await _tispSpotUserService.GetSpotUsersAsyncByPage(searchViewModel); return new ApiResult<PagesModel<TispSpotUsersViewModel>>(new PagesModel<TispSpotUsersViewModel>(list?.ToList(), searchViewModel)); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 创建巡检点人员 /// </summary> /// <param name="spot"></param> /// <returns></returns> [Route("CreateSpotUserAsync")] [HttpPost] public async Task<ApiResult> CreateSpotUserAsync(TispSpotUserViewModel spot) { if (spot == null) { return new ApiResult(ReturnCode.ArgsError); } try { await _tispSpotUserService.CreateOneAsync(spot); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 人员分配巡检点 /// </summary> /// <param name="createViewModel"></param> /// <returns></returns> [Route("CreateSpotUsersAsync")] [HttpPost] public async Task<ApiResult> CreateSpotUsersAsync(TispSpotUserCreateViewModel createViewModel) { if (createViewModel == null) { return new ApiResult(ReturnCode.ArgsError); } if (createViewModel.spotIdList == null) { throw new Exception("请选择巡检点"); } if (createViewModel.userIdList == null) { throw new Exception("请巡检点所分配的人员"); } try { await _tispSpotUserService.CreateSpotsUserAsync(createViewModel); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 巡检点分配人员 /// </summary> /// <param name="createViewModel"></param> /// <returns></returns> [Route("CreateSpotsUsersAsync")] [HttpPost] public async Task<ApiResult> CreateSpotsUsersAsync(TispSpotUserCreateViewModel createViewModel) { if (createViewModel == null) { return new ApiResult(ReturnCode.ArgsError); } if (createViewModel.spotIdList == null) { throw new Exception("请选择巡检点"); } if (createViewModel.userIdList == null) { throw new Exception("请巡检点所分配的人员"); } try { await _tispSpotUserService.CreateSpotsUsersAsync(createViewModel); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 删除巡检点人员 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpDelete("DeleteSpotUserAsync/{id}")] public async Task<ApiResult> DeleteSpotUserAsync(Guid id) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { await _tispSpotUserService.DeleteAsync(id); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 更新巡检点人员 /// </summary> /// <param name="id"></param> /// <param name="updateModel"></param> /// <returns></returns> [HttpPut("UpdateSpotUserAsync/{id}")] public async Task<ApiResult> UpdateSpotUserAsync(Guid id, TispSpotUserUpdateViewModel updateModel) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { await _tispSpotUserService.UpdateAsync(id, updateModel); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } //指定巡检点修改相关的巡检人员 //指定巡检人员修改相关的巡检点 /// <summary> /// 指定巡检点Id查询分配的巡检人员信息 /// </summary> /// <param name="spotId">巡检点Id</param> /// <returns></returns> [Route("GetBySpotIdAsync/{spotId}")] [HttpGet] public async Task<ApiResult> GetBySpotIdAsync(Guid spotId) { try { var list = await _tispSpotUserService.GetBySpotIdAsync(spotId); return new ApiResult<IEnumerable<TispSpotUserViewModel>>(list); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 指定人员Id查询分配的巡检点信息 /// </summary> /// <param name="userId"></param> /// <returns></returns> [Route("GetByUserIdAsync/{userId}")] [HttpGet] public async Task<ApiResult> GetByUserIdAsync(Guid userId) { try { var list = await _tispSpotUserService.GetByUserIdAsync(userId); return new ApiResult<IEnumerable<TispUserStoreRouteSpotViewModel>>(list); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 分页获取所有巡检点的分配人员详细信息 /// </summary> /// <returns></returns> [Route("GetAsyncByPage")] [HttpGet] public async Task<ApiResult> GetAsyncByPage([FromQuery] TispSpotUserSearchModel searchViewModel) { try { if (null == searchViewModel) { return new ApiResult(ReturnCode.ArgsError); } var list = await _tispSpotUserService.GetAsyncByPage(searchViewModel.PageSize, searchViewModel.PageIndex); return new ApiResult<PagesModel<TispSpotUserViewModel>>(new PagesModel<TispSpotUserViewModel>(list?.ToList(), searchViewModel)); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } } }