using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Authorization; using MadRunFabric.Common; using Microsoft.Extensions.Logging; using SignTokenApi.IRepositories; using System.Security.Claims; using Microsoft.Extensions.Configuration; using SignTokenApi.Model; using MadRunFabric.Model; namespace SignTokenApi.Controllers { /// /// 班别表 - 普通排班(保洁,保安) - 公示系统展示 /// [Authorize] [ApiVersion("6.0")] [Route("api/[controller]")] [Produces("application/json")] public class WorkClassController : BaseController { private readonly ILogger _logger; private readonly IConfiguration _configuration; private readonly ISys_Work_ClassGroupRepository _sys_work_classgrouprepository; private readonly ISys_User_AccountRepository _sys_user_accountRepository; public WorkClassController( ILogger logger, IConfiguration configuration, ISys_Work_ClassGroupRepository sys_work_classgrouprepository, ISys_User_AccountRepository sys_user_accountRepository ) { _logger = logger; _configuration = configuration; _sys_work_classgrouprepository = sys_work_classgrouprepository; _sys_user_accountRepository = sys_user_accountRepository; } /// /// 获取班别列表 by page /// /// /// /// /// /// /// [HttpGet("getlistbypage")] public IActionResult GetListByPageAsync(string keyword, string projectid, int pageindex = 1, int pagesize = 10) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; string allprojectrole = _configuration["allprojectrole"]; var userinfo = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole).ToJson().ToObject(); //获取数据 int recordCount = 0; var result = _sys_work_classgrouprepository.GetListsByPage(keyword, projectid, userinfo, pageindex, pagesize, out recordCount); var obj = new { rows = result.ToList(), total = recordCount }; return Success("获取成功", obj); } /// /// 获取所有班别列表 - 下拉 /// /// [HttpGet("getlistdrop")] public async Task GetListdrop(string projectid) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; string allprojectrole = _configuration["allprojectrole"]; var userinfo = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole).ToJson().ToObject(); var list = await _sys_work_classgrouprepository.Get(p => p.isdelete == 0); if (userinfo.isallproject == 0) list = list.Where(it => userinfo.projectlist.Contains(it.projectid)); if (!string.IsNullOrEmpty(projectid)) list = list.Where(it => it.projectid == projectid); //排班排序 DateTime dtNow = DateTime.Now; string dayNow = dtNow.ToString("yyyy-MM-dd"); var lists = list; var result = lists.Select(p => new { id = p.id, projectid = p.projectid, usertype = p.usertype, code = p.code, name = p.name, starttime = p.starttime, endtime = p.endtime, orderbytime = DateTime.Parse(dayNow + " " + p.starttime), remark = p.remark, createby = p.createby, createtime = p.createtime, isdelete = p.isdelete }).ToList().OrderBy(x => x.orderbytime); return Success("获取成功", result); } /// /// 获取班别详情 by id /// /// /// [HttpGet("getdetailes")] public async Task GetDetailsAsync(string id) { if (string.IsNullOrEmpty(id)) return Error("参数错误"); var model = await _sys_work_classgrouprepository.GetSingle(id); if (model != null) { return Success("获取成功!", model); } return Error("获取失败"); } /// /// 添加班别 /// /// [HttpPost("add")] public async Task AddAsync(WorkClassInput input) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value; if (string.IsNullOrEmpty(input.name)) return Error("名称不能为空"); var model = new Sys_Work_ClassGroup(); //model.id = input.id; model.projectid = input.projectid; model.usertype = input.usertype; model.name = input.name; model.code = input.code; model.starttime = input.starttime; model.endtime = input.endtime; model.remark = input.remark; model.createby = usercode; model.createname = username; model.createtime = DateTime.Now.ToLocalTime(); bool b = await _sys_work_classgrouprepository.Add(model); if (b) return Success("添加成功"); return Error("添加失败"); } /// /// 修改班别信息 /// /// /// /// /// [HttpPost("update")] public async Task UpdateAsync(WorkClassInput input) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value; if (string.IsNullOrEmpty(input.name)) return Error("名称不能为空"); var model = await _sys_work_classgrouprepository.GetSingle(input.id); if (model == null) return Error("参数错误"); model.id = input.id; model.projectid = input.projectid; model.usertype = input.usertype; model.name = input.name; model.code = input.code; model.starttime = input.starttime; model.endtime = input.endtime; model.remark = input.remark; model.createby = usercode; model.createname = username; model.createtime = DateTime.Now.ToLocalTime(); bool b = await _sys_work_classgrouprepository.Update(model); if (b) return Success("保存成功"); return Error("保存失败"); } /// /// 删除班别信息 by ids /// /// string[] id /// [HttpPost("delete")] public async Task DeleteAsync(string[] ids) { string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; var res = 0; if (ids != null && ids.Length > 0) { foreach (var item in ids) { var ml = await _sys_work_classgrouprepository.GetSingle(item); ml.isdelete = 1; ml.deleteby = usercode; ml.deletetime = DateTime.Now.ToLocalTime(); if (_sys_work_classgrouprepository.Update(ml).Result) res += 1; } if (res == ids.Length) return Success("删除成功"); else if (res > 0 && res < ids.Length) return Error("部分删除失败,请查看后重新操作"); else return Error("删除失败,请查看后重新操作"); } else return Error("请选择要删除的记录"); } } }