颐和api

WorkClassUserController.cs 9.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using MadRunFabric.Common;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.Extensions.Logging;
  9. using SignTokenApi.IRepositories;
  10. using System.Security.Claims;
  11. using Microsoft.Extensions.Configuration;
  12. using SignTokenApi.Model;
  13. using MadRunFabric.Model;
  14. namespace SignTokenApi.Controllers
  15. {
  16. /// <summary>
  17. /// 排班管理 - 普通排班(保洁,保安) - 公示系统展示
  18. /// </summary>
  19. [Authorize]
  20. [ApiVersion("6.0")]
  21. [Route("api/[controller]")]
  22. [Produces("application/json")]
  23. public class WorkClassUserController : BaseController
  24. {
  25. private readonly ILogger<WorkClassUserController> _logger;
  26. private readonly IConfiguration _configuration;
  27. private readonly ISys_Work_ClassGroup_User_MapRepository _sys_work_classgroup_user_maprepository;
  28. //private readonly ISys_User_AccountRepository _sys_user_accountRepository;
  29. private readonly ISys_Work_ClassGroupRepository _sys_work_classgroupRepository;
  30. private readonly ISys_Work_UserRepository _sys_work_userRepository;
  31. private readonly ISys_DictionaryValueRepository _sys_dictionaryvalueRepository;
  32. public WorkClassUserController(
  33. ILogger<WorkClassUserController> logger,
  34. IConfiguration configuration,
  35. ISys_Work_ClassGroup_User_MapRepository sys_work_classgroup_user_maprepository,
  36. //ISys_User_AccountRepository sys_user_accountRepository,
  37. ISys_Work_ClassGroupRepository sys_work_classgroupRepository,
  38. ISys_Work_UserRepository sys_work_userRepository,
  39. ISys_DictionaryValueRepository sys_dictionaryvalueRepository
  40. )
  41. {
  42. _logger = logger;
  43. _configuration = configuration;
  44. _sys_work_classgroup_user_maprepository = sys_work_classgroup_user_maprepository;
  45. _sys_work_classgroupRepository = sys_work_classgroupRepository;
  46. _sys_work_userRepository = sys_work_userRepository;
  47. _sys_dictionaryvalueRepository = sys_dictionaryvalueRepository;
  48. }
  49. /// <summary>
  50. /// 获取角色分类(角色,班次,用户)
  51. /// </summary>
  52. /// <param name="projectid"></param>
  53. /// <param name="startdate"></param>
  54. /// <returns></returns>
  55. [HttpGet("getclassanduserlist")]
  56. public async Task<IActionResult> GetClassAndUserListAsync(string projectid, string usertype)
  57. {
  58. //获取班次
  59. var list_class = await _sys_work_classgroupRepository.Get(x => x.isdelete == 0);
  60. //获取用户
  61. var list_user = await _sys_work_userRepository.Get(x => x.isdelete == 0);
  62. #region 条件查询
  63. if (!string.IsNullOrEmpty(projectid))
  64. {
  65. list_class = list_class.Where(x => x.projectid == projectid);
  66. list_user = list_user.Where(x => x.projectid == projectid);
  67. }
  68. //获取角色分类(字典)
  69. var list_usertype = list_user.Select(x => x.usertype).Distinct().ToList();
  70. var list_dic = await _sys_dictionaryvalueRepository.Get(x => list_usertype.Contains(x.id));
  71. #endregion
  72. var list = list_dic.Select(p =>
  73. {
  74. var list_c = list_class.Where(x => x.usertype == p.id).Select(s=> {
  75. return new
  76. {
  77. s.code,
  78. s.name,
  79. s.starttime,
  80. s.endtime
  81. };
  82. });
  83. var list_u = list_user.Where(x => x.usertype == p.id).Select(s =>
  84. {
  85. return new
  86. {
  87. s.id,
  88. s.username
  89. };
  90. });
  91. return new
  92. {
  93. p.id, //code
  94. p.name, //角色
  95. list_class = list_c, //班别list
  96. list_user = list_u //用户list
  97. };
  98. });
  99. return Success("获取成功", list);
  100. }
  101. /// <summary>
  102. /// 获取排班标记
  103. /// </summary>
  104. /// <param name="projectid"></param>
  105. /// <param name="startdate"></param>
  106. /// <returns></returns>
  107. [HttpGet("getusermarker")]
  108. public IActionResult GetClassGroupMarker(string projectid, string usercode,string starttime,string endtime)
  109. {
  110. var result = _sys_work_classgroup_user_maprepository.GetWorkClassGroupUserMarker(projectid, usercode, starttime, endtime);
  111. return Success("获取成功", result);
  112. }
  113. /// <summary>
  114. /// 添加排班用户
  115. /// </summary>
  116. /// <returns></returns>
  117. [HttpPost("saveuser")]
  118. public async Task<IActionResult> SaveClassGroupUserAsync(WorkClassGroupUserMapInput input)
  119. {
  120. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  121. string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  122. #region 验证判断
  123. if(string.IsNullOrEmpty(input.projectid))
  124. return Error("请选择项目");
  125. if (string.IsNullOrEmpty(input.usertype))
  126. return Error("请选择职务");
  127. if (string.IsNullOrEmpty(input.date.ToString()))
  128. return Error("请选择日期");
  129. if (input.userlist == null && input.userlist.Count <= 0)
  130. return Error("请选中员工");
  131. #endregion
  132. var model = new Sys_Work_ClassGroup_User_Map();
  133. model.projectid = input.projectid;
  134. model.classcode = input.classcode;
  135. model.usertype = input.usertype;
  136. model.userlist = input.userlist;
  137. model.date = input.date;
  138. model.remark = input.remark;
  139. model.isdelete = 0;
  140. model.createby = usercode;
  141. model.createname = username;
  142. model.createtime = DateTime.Now;
  143. if (await _sys_work_classgroup_user_maprepository.Add(model))
  144. return Success("保存成功");
  145. return Error("保存失败");
  146. }
  147. /// <summary>
  148. /// 修改排班用户
  149. /// </summary>
  150. /// <param name="id"></param>
  151. /// <param name="date"></param>
  152. /// <returns></returns>
  153. [HttpPost("update")]
  154. public async Task<IActionResult> UpdateAsync(WorkClassGroupUserMapInput input)
  155. {
  156. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  157. string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  158. if (string.IsNullOrEmpty(input.id))
  159. return Error("参数错误");
  160. if (string.IsNullOrEmpty(input.date.ToString()))
  161. return Error("日期不能为空");
  162. var model = await _sys_work_classgroup_user_maprepository.GetSingle(input.id);
  163. if (model == null)
  164. return Error("参数错误!");
  165. model.date = input.date;
  166. bool b = await _sys_work_classgroup_user_maprepository.UpdateOne(model);
  167. if (b)
  168. return Success("保存成功");
  169. return Error("保存失败");
  170. }
  171. /// <summary>
  172. /// 删除排班信息 by ids
  173. /// </summary>
  174. /// <param name="ids">string[] id</param>
  175. /// <returns></returns>
  176. [HttpPost("delete")]
  177. public async Task<IActionResult> DeleteAsync(string[] ids)
  178. {
  179. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  180. var res = 0;
  181. if (ids != null && ids.Length > 0)
  182. {
  183. foreach (var item in ids)
  184. {
  185. if (await _sys_work_classgroup_user_maprepository.Remove(item))
  186. res += 1;
  187. }
  188. if (res == ids.Length)
  189. return Success("删除成功");
  190. else if (res > 0 && res < ids.Length)
  191. return Error("部分删除失败,请查看后重新操作");
  192. else
  193. return Error("删除失败,请查看后重新操作");
  194. }
  195. else
  196. return Error("请选择要删除的记录");
  197. }
  198. #region 公示系统 - 省三院
  199. /// <summary>
  200. /// 获取当天排班信息 - 树形
  201. /// </summary>
  202. /// <param name="projectid"></param>
  203. /// <param name="code">字典编码</param>
  204. /// <returns></returns>
  205. [HttpGet("getuserlistbyday")]
  206. public IActionResult GetUserListByDayAsync(string projectid,string code)
  207. {
  208. var result = _sys_work_classgroup_user_maprepository.GetUserListByDay(projectid, code);
  209. return Success("获取成功", result);
  210. }
  211. #endregion
  212. }
  213. }