颐和api

WorkClassController.cs 8.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.AspNetCore.Authorization;
  7. using MadRunFabric.Common;
  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 WorkClassController : BaseController
  24. {
  25. private readonly ILogger<WorkClassController> _logger;
  26. private readonly IConfiguration _configuration;
  27. private readonly ISys_Work_ClassGroupRepository _sys_work_classgrouprepository;
  28. private readonly ISys_User_AccountRepository _sys_user_accountRepository;
  29. public WorkClassController(
  30. ILogger<WorkClassController> logger,
  31. IConfiguration configuration,
  32. ISys_Work_ClassGroupRepository sys_work_classgrouprepository,
  33. ISys_User_AccountRepository sys_user_accountRepository
  34. )
  35. {
  36. _logger = logger;
  37. _configuration = configuration;
  38. _sys_work_classgrouprepository = sys_work_classgrouprepository;
  39. _sys_user_accountRepository = sys_user_accountRepository;
  40. }
  41. /// <summary>
  42. /// 获取班别列表 by page
  43. /// </summary>
  44. /// <param name="keyword"></param>
  45. /// <param name="stime"></param>
  46. /// <param name="etime"></param>
  47. /// <param name="pageindex"></param>
  48. /// <param name="pagesize"></param>
  49. /// <returns></returns>
  50. [HttpGet("getlistbypage")]
  51. public IActionResult GetListByPageAsync(string keyword, string projectid, int pageindex = 1, int pagesize = 10)
  52. {
  53. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  54. string allprojectrole = _configuration["allprojectrole"];
  55. var userinfo = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole).ToJson().ToObject<UserInfoModel>();
  56. //获取数据
  57. int recordCount = 0;
  58. var result = _sys_work_classgrouprepository.GetListsByPage(keyword, projectid, userinfo, pageindex, pagesize, out recordCount);
  59. var obj = new
  60. {
  61. rows = result.ToList(),
  62. total = recordCount
  63. };
  64. return Success("获取成功", obj);
  65. }
  66. /// <summary>
  67. /// 获取所有班别列表 - 下拉
  68. /// </summary>
  69. /// <returns></returns>
  70. [HttpGet("getlistdrop")]
  71. public async Task<IActionResult> GetListdrop(string projectid)
  72. {
  73. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  74. string allprojectrole = _configuration["allprojectrole"];
  75. var userinfo = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole).ToJson().ToObject<UserInfoModel>();
  76. var list = await _sys_work_classgrouprepository.Get(p => p.isdelete == 0);
  77. if (userinfo.isallproject == 0)
  78. list = list.Where(it => userinfo.projectlist.Contains(it.projectid));
  79. if (!string.IsNullOrEmpty(projectid))
  80. list = list.Where(it => it.projectid == projectid);
  81. //排班排序
  82. DateTime dtNow = DateTime.Now;
  83. string dayNow = dtNow.ToString("yyyy-MM-dd");
  84. var lists = list;
  85. var result = lists.Select(p => new
  86. {
  87. id = p.id,
  88. projectid = p.projectid,
  89. usertype = p.usertype,
  90. code = p.code,
  91. name = p.name,
  92. starttime = p.starttime,
  93. endtime = p.endtime,
  94. orderbytime = DateTime.Parse(dayNow + " " + p.starttime),
  95. remark = p.remark,
  96. createby = p.createby,
  97. createtime = p.createtime,
  98. isdelete = p.isdelete
  99. }).ToList().OrderBy(x => x.orderbytime);
  100. return Success("获取成功", result);
  101. }
  102. /// <summary>
  103. /// 获取班别详情 by id
  104. /// </summary>
  105. /// <param name="id"></param>
  106. /// <returns></returns>
  107. [HttpGet("getdetailes")]
  108. public async Task<IActionResult> GetDetailsAsync(string id)
  109. {
  110. if (string.IsNullOrEmpty(id))
  111. return Error("参数错误");
  112. var model = await _sys_work_classgrouprepository.GetSingle(id);
  113. if (model != null)
  114. {
  115. return Success("获取成功!", model);
  116. }
  117. return Error("获取失败");
  118. }
  119. /// <summary>
  120. /// 添加班别
  121. /// </summary>
  122. /// <returns></returns>
  123. [HttpPost("add")]
  124. public async Task<IActionResult> AddAsync(WorkClassInput input)
  125. {
  126. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  127. string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  128. if (string.IsNullOrEmpty(input.name))
  129. return Error("名称不能为空");
  130. var model = new Sys_Work_ClassGroup();
  131. //model.id = input.id;
  132. model.projectid = input.projectid;
  133. model.usertype = input.usertype;
  134. model.name = input.name;
  135. model.code = input.code;
  136. model.starttime = input.starttime;
  137. model.endtime = input.endtime;
  138. model.remark = input.remark;
  139. model.createby = usercode;
  140. model.createname = username;
  141. model.createtime = DateTime.Now.ToLocalTime();
  142. bool b = await _sys_work_classgrouprepository.Add(model);
  143. if (b)
  144. return Success("添加成功");
  145. return Error("添加失败");
  146. }
  147. /// <summary>
  148. /// 修改班别信息
  149. /// </summary>
  150. /// <param name="id"></param>
  151. /// <param name="provincecode"></param>
  152. /// <param name="provincename"></param>
  153. /// <returns></returns>
  154. [HttpPost("update")]
  155. public async Task<IActionResult> UpdateAsync(WorkClassInput input)
  156. {
  157. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  158. string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  159. if (string.IsNullOrEmpty(input.name))
  160. return Error("名称不能为空");
  161. var model = await _sys_work_classgrouprepository.GetSingle(input.id);
  162. if (model == null)
  163. return Error("参数错误");
  164. model.id = input.id;
  165. model.projectid = input.projectid;
  166. model.usertype = input.usertype;
  167. model.name = input.name;
  168. model.code = input.code;
  169. model.starttime = input.starttime;
  170. model.endtime = input.endtime;
  171. model.remark = input.remark;
  172. model.createby = usercode;
  173. model.createname = username;
  174. model.createtime = DateTime.Now.ToLocalTime();
  175. bool b = await _sys_work_classgrouprepository.Update(model);
  176. if (b)
  177. return Success("保存成功");
  178. return Error("保存失败");
  179. }
  180. /// <summary>
  181. /// 删除班别信息 by ids
  182. /// </summary>
  183. /// <param name="ids">string[] id</param>
  184. /// <returns></returns>
  185. [HttpPost("delete")]
  186. public async Task<IActionResult> DeleteAsync(string[] ids)
  187. {
  188. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  189. var res = 0;
  190. if (ids != null && ids.Length > 0)
  191. {
  192. foreach (var item in ids)
  193. {
  194. var ml = await _sys_work_classgrouprepository.GetSingle(item);
  195. ml.isdelete = 1;
  196. ml.deleteby = usercode;
  197. ml.deletetime = DateTime.Now.ToLocalTime();
  198. if (_sys_work_classgrouprepository.Update(ml).Result)
  199. res += 1;
  200. }
  201. if (res == ids.Length)
  202. return Success("删除成功");
  203. else if (res > 0 && res < ids.Length)
  204. return Error("部分删除失败,请查看后重新操作");
  205. else
  206. return Error("删除失败,请查看后重新操作");
  207. }
  208. else
  209. return Error("请选择要删除的记录");
  210. }
  211. }
  212. }