You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

226 lines
8.7 KiB

3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
  1. using AutoMapper.Internal.Mappers;
  2. using Microsoft.AspNetCore.Authorization;
  3. using Microsoft.AspNetCore.Mvc;
  4. using NPOI.OpenXmlFormats.Dml;
  5. using Shentun.Peis.CustomerOrgRegisters;
  6. using Shentun.Peis.CustomerOrgs;
  7. using Shentun.Peis.HelperDto;
  8. using Shentun.Peis.Models;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using Volo.Abp;
  15. using Volo.Abp.Application.Dtos;
  16. using Volo.Abp.Application.Services;
  17. using Volo.Abp.Domain.Repositories;
  18. using Volo.Abp.Identity;
  19. using Volo.Abp.ObjectMapping;
  20. namespace Shentun.Peis.CustomerOrgRegisters
  21. {
  22. /// <summary>
  23. /// 单位体检次数
  24. /// </summary>
  25. [ApiExplorerSettings(GroupName = "Work")]
  26. [Authorize]
  27. public class CustomerOrgRegisterAppService : CrudAppService<
  28. CustomerOrgRegister, //The Book entity
  29. CustomerOrgRegisterDto, //Used to show books
  30. Guid, //Primary key of the book entity
  31. PagedAndSortedResultRequestDto, //Used for paging/sorting
  32. CreateCustomerOrgRegisterDto,
  33. UpdateCustomerOrgRegisterDto>
  34. {
  35. private readonly IRepository<IdentityUser, Guid> _userRepository;
  36. private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
  37. private readonly CustomerOrgManager _customerOrgManager;
  38. private readonly CustomerOrgRegisterManager _manager;
  39. public CustomerOrgRegisterAppService(
  40. IRepository<CustomerOrgRegister, Guid> repository,
  41. IRepository<IdentityUser, Guid> userRepository,
  42. IRepository<CustomerOrg, Guid> customerOrgRepository,
  43. CustomerOrgManager customerOrgManager,
  44. CustomerOrgRegisterManager manager)
  45. : base(repository)
  46. {
  47. _userRepository = userRepository;
  48. this._customerOrgRepository = customerOrgRepository;
  49. this._customerOrgManager = customerOrgManager;
  50. _manager = manager;
  51. }
  52. /// <summary>
  53. /// 获取通过主键
  54. /// </summary>
  55. /// <param name="id"></param>
  56. /// <returns></returns>
  57. public override async Task<CustomerOrgRegisterDto> GetAsync(Guid id)
  58. {
  59. return await base.GetAsync(id);
  60. }
  61. /// <summary>
  62. /// 获取列表 团检体检登记 遗弃
  63. /// </summary>
  64. /// <param name="input"></param>
  65. /// <returns></returns>
  66. public override async Task<PagedResultDto<CustomerOrgRegisterDto>> GetListAsync(PagedAndSortedResultRequestDto input)
  67. {
  68. return await base.GetListAsync(input);
  69. }
  70. /// <summary>
  71. /// 获取列表 团检体检登记 带搜索计划名称
  72. /// </summary>
  73. /// <param name="input"></param>
  74. /// <returns></returns>
  75. public async Task<PagedResultDto<CustomerOrgRegisterDto>> GetListInFilterAsync(GetListInFilterDto input)
  76. {
  77. int totalCount = 0;
  78. if (!string.IsNullOrEmpty(input.Filter))
  79. totalCount = (await Repository.GetListAsync()).Where(m => m.RegisterName.Contains(input.Filter)).Count();
  80. else
  81. totalCount = await Repository.CountAsync();
  82. var entlist = await Repository.GetListAsync();
  83. if (!string.IsNullOrEmpty(input.Filter))
  84. entlist = entlist.Where(m => m.RegisterName.Contains(input.Filter)).ToList();
  85. //分页
  86. entlist = entlist.OrderBy(m => m.CreationTime).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).ToList();
  87. var userList = await _userRepository.GetListAsync();
  88. var entdto = entlist.Select(s => new CustomerOrgRegisterDto
  89. {
  90. CreationTime = s.CreationTime,
  91. CreatorId = s.CreatorId,
  92. Id = s.Id,
  93. LastModificationTime = s.LastModificationTime,
  94. LastModifierId = s.LastModifierId,
  95. //BeginTime = s.BeginTime.ToDateTime(TimeOnly.MinValue),
  96. //EndTime = s.EndTime.GetValueOrDefault().ToDateTime(TimeOnly.MinValue),
  97. BeginTime = s.BeginTime.ToString("yyyy/MM/dd"),
  98. EndTime = s.EndTime.GetValueOrDefault().ToDateTime(TimeOnly.MinValue).ToString("yyyy/MM/dd"),
  99. RegisterName = s.RegisterName,
  100. RegisterNo = s.RegisterNo,
  101. MedicalTimes = s.MedicalTimes,
  102. IsComplete = s.IsComplete,
  103. CustomerOrgId = s.CustomerOrgId,
  104. CreatorName = EntityHelper.GetUserNameNoSql(userList, s.CreatorId),
  105. LastModifierName = EntityHelper.GetUserNameNoSql(userList, s.LastModifierId)
  106. }).ToList();
  107. return new PagedResultDto<CustomerOrgRegisterDto>(totalCount, entdto);
  108. }
  109. /// <summary>
  110. /// 创建 只传单位ID
  111. /// </summary>
  112. /// <param name="CustomerOrgId">单位ID</param>
  113. /// <returns></returns>
  114. [HttpPost("api/customerorgregister/createcustomerorgregister")]
  115. public async Task<CustomerOrgRegisterDto> CreateCustomerOrgRegisterAsync(Guid CustomerOrgId)
  116. {
  117. var CustomerOrgParenId = EntityHelper.GetParentNoSql(await _customerOrgRepository.GetListAsync(), CustomerOrgId); //获取一级单位ID
  118. var entity = await _manager.CreateAsync(CustomerOrgParenId);
  119. entity = await Repository.InsertAsync(entity);
  120. var dto = ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  121. return dto;
  122. }
  123. /// <summary>
  124. /// 更新 是否完成状态
  125. /// </summary>
  126. /// <param name="id"></param>
  127. /// <param name="IsComplete">是否完成(Y N)</param>
  128. /// <returns></returns>
  129. public async Task<CustomerOrgRegisterDto> UpdateStateAsync(Guid id, char IsComplete)
  130. {
  131. var entity = await _manager.UpdateStateAsync(id, IsComplete);
  132. return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  133. }
  134. /// <summary>
  135. /// 更新
  136. /// </summary>
  137. /// <param name="id"></param>
  138. /// <param name="input"></param>
  139. /// <returns></returns>
  140. public override async Task<CustomerOrgRegisterDto> UpdateAsync(Guid id, UpdateCustomerOrgRegisterDto input)
  141. {
  142. var entity = await Repository.GetAsync(id);
  143. var sourceEntity = ObjectMapper.Map<UpdateCustomerOrgRegisterDto, CustomerOrgRegister>(input);
  144. _manager.UpdateAsync(sourceEntity, entity);
  145. entity = await Repository.UpdateAsync(entity);
  146. return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  147. }
  148. /// <summary>
  149. /// 删除
  150. /// </summary>
  151. /// <param name="id"></param>
  152. /// <returns></returns>
  153. public override async Task DeleteAsync(Guid id)
  154. {
  155. await _manager.CheckAndDeleteAsync(id);
  156. }
  157. /// <summary>
  158. /// 获取团检体检登记列表,根据单位ID过滤查询
  159. /// </summary>
  160. /// <param name="CustomerOrgId"></param>
  161. /// <returns></returns>
  162. [HttpGet("api/app/customerorgregister/getlistincustomerorgid")]
  163. public async Task<List<CustomerOrgRegisterDto>> GetListInCustomerOrgIdAsync(Guid CustomerOrgId)
  164. {
  165. var entlist = await Repository.GetListAsync();
  166. //if (CustomerOrgId != Guid.Empty)
  167. entlist = entlist.Where(m => m.CustomerOrgId == CustomerOrgId).ToList();
  168. var userList = await _userRepository.GetListAsync();
  169. var entdto = entlist.Select(s => new CustomerOrgRegisterDto
  170. {
  171. CreationTime = s.CreationTime,
  172. CreatorId = s.CreatorId,
  173. Id = s.Id,
  174. LastModificationTime = s.LastModificationTime,
  175. LastModifierId = s.LastModifierId,
  176. //BeginTime = s.BeginTime.ToDateTime(TimeOnly.MinValue),
  177. //EndTime = s.EndTime.GetValueOrDefault().ToDateTime(TimeOnly.MinValue),
  178. BeginTime = s.BeginTime.ToString("yyyy/MM/dd"),
  179. EndTime = s.EndTime.GetValueOrDefault().ToDateTime(TimeOnly.MinValue).ToString("yyyy/MM/dd"),
  180. RegisterName = s.RegisterName,
  181. RegisterNo = s.RegisterNo,
  182. MedicalTimes = s.MedicalTimes,
  183. IsComplete = s.IsComplete,
  184. CustomerOrgId = s.CustomerOrgId,
  185. CreatorName = EntityHelper.GetUserNameNoSql(userList, s.CreatorId),
  186. LastModifierName = EntityHelper.GetUserNameNoSql(userList, s.LastModifierId)
  187. }).OrderBy(o => o.MedicalTimes).ToList();
  188. return entdto;
  189. }
  190. }
  191. }