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.

246 lines
9.6 KiB

2 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
2 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
2 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
2 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
2 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
2 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
2 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
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 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. private readonly CacheService _cacheService;
  40. public CustomerOrgRegisterAppService(
  41. IRepository<CustomerOrgRegister, Guid> repository,
  42. IRepository<IdentityUser, Guid> userRepository,
  43. IRepository<CustomerOrg, Guid> customerOrgRepository,
  44. CustomerOrgManager customerOrgManager,
  45. CustomerOrgRegisterManager manager,
  46. CacheService cacheService)
  47. : base(repository)
  48. {
  49. _userRepository = userRepository;
  50. this._customerOrgRepository = customerOrgRepository;
  51. this._customerOrgManager = customerOrgManager;
  52. _manager = manager;
  53. _cacheService = cacheService;
  54. }
  55. /// <summary>
  56. /// 获取通过主键
  57. /// </summary>
  58. /// <param name="id"></param>
  59. /// <returns></returns>
  60. public override async Task<CustomerOrgRegisterDto> GetAsync(Guid id)
  61. {
  62. return await base.GetAsync(id);
  63. }
  64. /// <summary>
  65. /// 获取列表 团检体检登记 遗弃
  66. /// </summary>
  67. /// <param name="input"></param>
  68. /// <returns></returns>
  69. [RemoteService(false)]
  70. public override async Task<PagedResultDto<CustomerOrgRegisterDto>> GetListAsync(PagedAndSortedResultRequestDto input)
  71. {
  72. return await base.GetListAsync(input);
  73. }
  74. /// <summary>
  75. /// 获取列表 团检体检登记 带搜索计划名称
  76. /// </summary>
  77. /// <param name="input"></param>
  78. /// <returns></returns>
  79. public async Task<List<CustomerOrgRegisterDto>> GetListInFilterAsync(GetListInFilterDto input)
  80. {
  81. var entlist = await Repository.GetQueryableAsync();
  82. if (!string.IsNullOrEmpty(input.Filter))
  83. entlist = entlist.Where(m => m.RegisterName.Contains(input.Filter));
  84. var entdto = entlist.Select(s => new CustomerOrgRegisterDto
  85. {
  86. CreationTime = s.CreationTime,
  87. CreatorId = s.CreatorId,
  88. Id = s.Id,
  89. LastModificationTime = s.LastModificationTime,
  90. LastModifierId = s.LastModifierId,
  91. BeginTime = DataHelper.ConversionDateToString(s.BeginTime),
  92. EndTime = DataHelper.ConversionDateToString(s.EndTime),
  93. RegisterName = s.RegisterName,
  94. RegisterNo = s.RegisterNo,
  95. MedicalTimes = s.MedicalTimes,
  96. IsComplete = s.IsComplete,
  97. CustomerOrgId = s.CustomerOrgId,
  98. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  99. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
  100. }).OrderBy(m => m.CreationTime).ToList();
  101. return entdto;
  102. }
  103. /// <summary>
  104. /// 新增体检次数 只传单位ID
  105. /// </summary>
  106. /// <param name="CustomerOrgId">单位ID</param>
  107. /// <returns></returns>
  108. [HttpPost("api/customerorgregister/createcustomerorgregister")]
  109. public async Task<CustomerOrgRegisterDto> CreateCustomerOrgRegisterAsync(Guid CustomerOrgId)
  110. {
  111. var customerOrg = await _customerOrgRepository.GetAsync(CustomerOrgId);
  112. var pathCode = customerOrg.PathCode.Substring(0, 5);
  113. var topParentCustomerOrg = await _customerOrgRepository.GetAsync(o => o.PathCode == pathCode);
  114. var CustomerOrgParenId = topParentCustomerOrg.Id; //获取一级单位ID
  115. var entity = await _manager.CreateAsync(CustomerOrgParenId);
  116. entity = await Repository.InsertAsync(entity);
  117. var dto = ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  118. return dto;
  119. }
  120. /// <summary>
  121. /// 更新 是否完成状态
  122. /// </summary>
  123. /// <param name="id"></param>
  124. /// <param name="IsComplete">是否完成(Y N)</param>
  125. /// <returns></returns>
  126. public async Task<CustomerOrgRegisterDto> UpdateStateAsync(Guid id, char IsComplete)
  127. {
  128. var entity = await _manager.UpdateStateAsync(id, IsComplete);
  129. return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  130. }
  131. /// <summary>
  132. /// 更新 不需要使用
  133. /// </summary>
  134. /// <param name="id"></param>
  135. /// <param name="input"></param>
  136. /// <returns></returns>
  137. [RemoteService(false)]
  138. public override async Task<CustomerOrgRegisterDto> UpdateAsync(Guid id, UpdateCustomerOrgRegisterDto input)
  139. {
  140. //var entity = await Repository.GetAsync(id);
  141. //var sourceEntity = ObjectMapper.Map<UpdateCustomerOrgRegisterDto, CustomerOrgRegister>(input);
  142. //_manager.UpdateAsync(sourceEntity, entity);
  143. //entity = await Repository.UpdateAsync(entity);
  144. //return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  145. return await base.UpdateAsync(id, input);
  146. }
  147. /// <summary>
  148. /// 删除
  149. /// </summary>
  150. /// <param name="id"></param>
  151. /// <returns></returns>
  152. public override async Task DeleteAsync(Guid id)
  153. {
  154. await _manager.CheckAndDeleteAsync(id);
  155. }
  156. /// <summary>
  157. /// 获取团检体检登记列表,根据单位ID过滤查询
  158. /// </summary>
  159. /// <param name="CustomerOrgId"></param>
  160. /// <returns></returns>
  161. [HttpGet("api/app/customerorgregister/getlistincustomerorgid")]
  162. public async Task<List<CustomerOrgRegisterDto>> GetListInCustomerOrgIdAsync(Guid CustomerOrgId)
  163. {
  164. //if (CustomerOrgId != Guid.Empty)
  165. var entlist = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgId == CustomerOrgId).ToList();
  166. var entdto = entlist.Select(s => new CustomerOrgRegisterDto
  167. {
  168. CreationTime = s.CreationTime,
  169. CreatorId = s.CreatorId,
  170. Id = s.Id,
  171. LastModificationTime = s.LastModificationTime,
  172. LastModifierId = s.LastModifierId,
  173. BeginTime = DataHelper.ConversionDateToString(s.BeginTime),
  174. EndTime = DataHelper.ConversionDateToString(s.EndTime),
  175. RegisterName = s.RegisterName,
  176. RegisterNo = s.RegisterNo,
  177. MedicalTimes = s.MedicalTimes,
  178. IsComplete = s.IsComplete,
  179. CustomerOrgId = s.CustomerOrgId,
  180. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  181. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
  182. }).OrderBy(o => o.MedicalTimes).ToList();
  183. return entdto;
  184. }
  185. /// <summary>
  186. ///
  187. /// </summary>
  188. /// <param name="input"></param>
  189. /// <returns></returns>
  190. [HttpPost("api/app/CustomerOrgRegister/GetLastCustomerOrgRegisterByCustomerOrgId")]
  191. public async Task<CustomerOrgRegisterDto> GetLastCustomerOrgRegisterByCustomerOrgId(CustomerOrgIdInputDto input)
  192. {
  193. var entity = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgId == input.CustomerOrgId)
  194. .OrderByDescending(o=>o.MedicalTimes).FirstOrDefault();
  195. var entdto = new CustomerOrgRegisterDto()
  196. {
  197. CreationTime = entity.CreationTime,
  198. CreatorId = entity.CreatorId,
  199. Id = entity.Id,
  200. LastModificationTime = entity.LastModificationTime,
  201. LastModifierId = entity.LastModifierId,
  202. BeginTime = DataHelper.ConversionDateToString(entity.BeginTime),
  203. EndTime = DataHelper.ConversionDateToString(entity.EndTime),
  204. RegisterName = entity.RegisterName,
  205. RegisterNo = entity.RegisterNo,
  206. MedicalTimes = entity.MedicalTimes,
  207. IsComplete = entity.IsComplete,
  208. CustomerOrgId = entity.CustomerOrgId,
  209. CreatorName = _cacheService.GetSurnameAsync(entity.CreatorId).Result,
  210. LastModifierName = _cacheService.GetSurnameAsync(entity.LastModifierId).Result
  211. };
  212. return entdto;
  213. }
  214. }
  215. }