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.

271 lines
11 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
3 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
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 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
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 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
3 years ago
3 years ago
3 years ago
2 years ago
3 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. 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. [HttpPost("api/app/CustomerOrgRegister/GetById")]
  70. public async Task<CustomerOrgRegisterDto> GetByIdAsync(CustomerOrgRegisterIdInputDto input)
  71. {
  72. return await base.GetAsync(input.CustomerOrgRegisterId);
  73. }
  74. /// <summary>
  75. /// 获取列表 团检体检登记 遗弃
  76. /// </summary>
  77. /// <param name="input"></param>
  78. /// <returns></returns>
  79. [RemoteService(false)]
  80. public override async Task<PagedResultDto<CustomerOrgRegisterDto>> GetListAsync(PagedAndSortedResultRequestDto input)
  81. {
  82. return await base.GetListAsync(input);
  83. }
  84. /// <summary>
  85. /// 获取列表 团检体检登记 带搜索计划名称
  86. /// </summary>
  87. /// <param name="input"></param>
  88. /// <returns></returns>
  89. public async Task<List<CustomerOrgRegisterDto>> GetListInFilterAsync(GetListInFilterDto input)
  90. {
  91. var entlist = await Repository.GetQueryableAsync();
  92. if (!string.IsNullOrEmpty(input.Filter))
  93. entlist = entlist.Where(m => m.RegisterName.Contains(input.Filter));
  94. var entdto = entlist.Select(s => new CustomerOrgRegisterDto
  95. {
  96. CreationTime = s.CreationTime,
  97. CreatorId = s.CreatorId,
  98. Id = s.Id,
  99. LastModificationTime = s.LastModificationTime,
  100. LastModifierId = s.LastModifierId,
  101. BeginTime = DataHelper.ConversionDateToString(s.BeginTime),
  102. EndTime = DataHelper.ConversionDateToString(s.EndTime),
  103. RegisterName = s.RegisterName,
  104. RegisterNo = s.RegisterNo,
  105. MedicalTimes = s.MedicalTimes,
  106. IsComplete = s.IsComplete,
  107. CustomerOrgId = s.CustomerOrgId,
  108. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  109. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
  110. }).OrderBy(m => m.CreationTime).ToList();
  111. return entdto;
  112. }
  113. /// <summary>
  114. /// 新增体检次数 只传单位ID
  115. /// </summary>
  116. /// <param name="CustomerOrgId">单位ID</param>
  117. /// <returns></returns>
  118. [HttpPost("api/customerorgregister/createcustomerorgregister")]
  119. public async Task<CustomerOrgRegisterDto> CreateCustomerOrgRegisterAsync(Guid CustomerOrgId)
  120. {
  121. var customerOrg = await _customerOrgRepository.GetAsync(CustomerOrgId);
  122. var pathCode = customerOrg.PathCode.Substring(0, 5);
  123. var topParentCustomerOrg = await _customerOrgRepository.GetAsync(o => o.PathCode == pathCode);
  124. var CustomerOrgParenId = topParentCustomerOrg.Id; //获取一级单位ID
  125. var entity = await _manager.CreateAsync(CustomerOrgParenId);
  126. entity = await Repository.InsertAsync(entity);
  127. var dto = ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  128. return dto;
  129. }
  130. /// <summary>
  131. /// 更新 是否完成状态
  132. /// </summary>
  133. /// <param name="id"></param>
  134. /// <param name="IsComplete">是否完成(Y N)</param>
  135. /// <returns></returns>
  136. public async Task<CustomerOrgRegisterDto> UpdateStateAsync(Guid id, char IsComplete)
  137. {
  138. var entity = await _manager.UpdateStateAsync(id, IsComplete);
  139. return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  140. }
  141. /// <summary>
  142. /// 更新 不需要使用
  143. /// </summary>
  144. /// <param name="id"></param>
  145. /// <param name="input"></param>
  146. /// <returns></returns>
  147. [RemoteService(false)]
  148. public override async Task<CustomerOrgRegisterDto> UpdateAsync(Guid id, UpdateCustomerOrgRegisterDto input)
  149. {
  150. //var entity = await Repository.GetAsync(id);
  151. //var sourceEntity = ObjectMapper.Map<UpdateCustomerOrgRegisterDto, CustomerOrgRegister>(input);
  152. //_manager.UpdateAsync(sourceEntity, entity);
  153. //entity = await Repository.UpdateAsync(entity);
  154. //return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
  155. return await base.UpdateAsync(id, input);
  156. }
  157. /// <summary>
  158. /// 删除
  159. /// </summary>
  160. /// <param name="id"></param>
  161. /// <returns></returns>
  162. public override async Task DeleteAsync(Guid id)
  163. {
  164. await _manager.CheckAndDeleteAsync(id);
  165. }
  166. /// <summary>
  167. /// 获取团检体检登记列表,根据单位ID过滤查询
  168. /// </summary>
  169. /// <param name="CustomerOrgId"></param>
  170. /// <returns></returns>
  171. [HttpGet("api/app/customerorgregister/getlistincustomerorgid")]
  172. public async Task<List<CustomerOrgRegisterDto>> GetListInCustomerOrgIdAsync(Guid CustomerOrgId)
  173. {
  174. #region 查找一级单位
  175. var customerOrgEnt = await _customerOrgRepository.FirstOrDefaultAsync(f => f.Id == CustomerOrgId);
  176. if (customerOrgEnt != null && customerOrgEnt.ParentId != null && customerOrgEnt.PathCode.Length > 5)
  177. {
  178. string topPathCode = customerOrgEnt.PathCode.Substring(0, 5);
  179. customerOrgEnt = await _customerOrgRepository.FirstOrDefaultAsync(f => f.PathCode == topPathCode);
  180. if (customerOrgEnt != null)
  181. {
  182. CustomerOrgId = customerOrgEnt.Id;
  183. }
  184. }
  185. #endregion
  186. var entlist = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgId == CustomerOrgId).ToList();
  187. var entdto = entlist.Select(s => new CustomerOrgRegisterDto
  188. {
  189. CreationTime = s.CreationTime,
  190. CreatorId = s.CreatorId,
  191. Id = s.Id,
  192. LastModificationTime = s.LastModificationTime,
  193. LastModifierId = s.LastModifierId,
  194. BeginTime = DataHelper.ConversionDateToString(s.BeginTime),
  195. EndTime = DataHelper.ConversionDateToString(s.EndTime),
  196. RegisterName = s.RegisterName,
  197. RegisterNo = s.RegisterNo,
  198. MedicalTimes = s.MedicalTimes,
  199. IsComplete = s.IsComplete,
  200. CustomerOrgId = s.CustomerOrgId,
  201. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  202. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
  203. }).OrderBy(o => o.MedicalTimes).ToList();
  204. return entdto;
  205. }
  206. /// <summary>
  207. ///
  208. /// </summary>
  209. /// <param name="input"></param>
  210. /// <returns></returns>
  211. [HttpPost("api/app/CustomerOrgRegister/GetLastCustomerOrgRegisterByCustomerOrgId")]
  212. public async Task<CustomerOrgRegisterDto> GetLastCustomerOrgRegisterByCustomerOrgId(CustomerOrgIdInputDto input)
  213. {
  214. var entity = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgId == input.CustomerOrgId)
  215. .OrderByDescending(o => o.MedicalTimes).FirstOrDefault();
  216. var entdto = new CustomerOrgRegisterDto()
  217. {
  218. CreationTime = entity.CreationTime,
  219. CreatorId = entity.CreatorId,
  220. Id = entity.Id,
  221. LastModificationTime = entity.LastModificationTime,
  222. LastModifierId = entity.LastModifierId,
  223. BeginTime = DataHelper.ConversionDateToString(entity.BeginTime),
  224. EndTime = DataHelper.ConversionDateToString(entity.EndTime),
  225. RegisterName = entity.RegisterName,
  226. RegisterNo = entity.RegisterNo,
  227. MedicalTimes = entity.MedicalTimes,
  228. IsComplete = entity.IsComplete,
  229. CustomerOrgId = entity.CustomerOrgId,
  230. CreatorName = _cacheService.GetSurnameAsync(entity.CreatorId).Result,
  231. LastModifierName = _cacheService.GetSurnameAsync(entity.LastModifierId).Result
  232. };
  233. return entdto;
  234. }
  235. }
  236. }