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.

522 lines
22 KiB

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
3 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
2 years ago
3 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
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
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 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
3 years ago
3 years ago
3 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
2 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
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 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
2 years ago
2 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 Microsoft.EntityFrameworkCore;
  5. using Shentun.Peis.CustomerOrgGroupDetails;
  6. using Shentun.Peis.CustomerOrgGroups;
  7. using Shentun.Peis.CustomerOrgRegisters;
  8. using Shentun.Peis.CustomerOrgs;
  9. using Shentun.Peis.HelperDto;
  10. using Shentun.Peis.Models;
  11. using Shentun.Peis.PatientRegisters;
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using Volo.Abp;
  18. using Volo.Abp.Application.Dtos;
  19. using Volo.Abp.Application.Services;
  20. using Volo.Abp.Domain.Repositories;
  21. using Volo.Abp.Identity;
  22. using Xceed.Document.NET;
  23. namespace Shentun.Peis.CustomerOrgGroups
  24. {
  25. /// <summary>
  26. /// 团检分组
  27. /// </summary>
  28. [ApiExplorerSettings(GroupName = "Work")]
  29. [Authorize]
  30. public class CustomerOrgGroupAppService : CrudAppService<
  31. CustomerOrgGroup, //The Book entity
  32. CustomerOrgGroupDto, //Used to show books
  33. Guid, //Primary key of the book entity
  34. PagedAndSortedResultRequestDto, //Used for paging/sorting
  35. CreateCustomerOrgGroupDto,
  36. UpdateCustomerOrgGroupDto>
  37. {
  38. private readonly IRepository<CustomerOrgRegister, Guid> _customerOrgRegisterRepository;
  39. private readonly ICustomerOrgGroupDetailRepository _customerOrgGroupDetailRepository;
  40. private readonly IRepository<IdentityUser, Guid> _userRepository;
  41. private readonly CustomerOrgGroupManager _manager;
  42. private readonly CacheService _cacheService;
  43. private readonly CustomerOrgGroupDetailManager _customerOrgGroupDetailManager;
  44. public CustomerOrgGroupAppService(
  45. IRepository<CustomerOrgGroup, Guid> repository,
  46. IRepository<CustomerOrgRegister, Guid> customerOrgRegisterRepository,
  47. ICustomerOrgGroupDetailRepository customerOrgGroupDetailRepository,
  48. IRepository<IdentityUser, Guid> userRepository,
  49. CustomerOrgGroupManager manager,
  50. CacheService cacheService,
  51. CustomerOrgGroupDetailManager customerOrgGroupDetailManager)
  52. : base(repository)
  53. {
  54. this._customerOrgRegisterRepository = customerOrgRegisterRepository;
  55. _customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
  56. _userRepository = userRepository;
  57. _manager = manager;
  58. _cacheService = cacheService;
  59. _customerOrgGroupDetailManager = customerOrgGroupDetailManager;
  60. }
  61. /// <summary>
  62. /// 获取通过主键
  63. /// </summary>
  64. /// <param name="id"></param>
  65. /// <returns></returns>
  66. public override async Task<CustomerOrgGroupDto> GetAsync(Guid id)
  67. {
  68. var entityDto = await base.GetAsync(id);
  69. entityDto.CreatorName = _cacheService.GetSurnameAsync(entityDto.CreatorId).Result;
  70. entityDto.LastModifierName = _cacheService.GetSurnameAsync(entityDto.LastModifierId).Result;
  71. return entityDto;
  72. }
  73. /// <summary>
  74. /// 获取列表 团检分组
  75. /// </summary>
  76. /// <param name="input"></param>
  77. /// <returns></returns>
  78. [RemoteService(false)]
  79. public override async Task<PagedResultDto<CustomerOrgGroupDto>> GetListAsync(PagedAndSortedResultRequestDto input)
  80. {
  81. return await base.GetListAsync(input);
  82. }
  83. [RemoteService(false)]
  84. public override Task<CustomerOrgGroupDto> CreateAsync(CreateCustomerOrgGroupDto input)
  85. {
  86. return base.CreateAsync(input);
  87. }
  88. /// <summary>
  89. /// 获取列表 团检分组 可以带名字 次数 单位ID 检查
  90. /// </summary>
  91. /// <param name="input"></param>
  92. /// <returns></returns>
  93. [HttpGet("api/app/customerorggroup/getlistinfilter")]
  94. public async Task<List<CustomerOrgGroupOrCustomerOrgDto>> GetListInFilterAsync(GetListDto input)
  95. {
  96. var oldlist = (await Repository.GetQueryableAsync()).
  97. Include(x => x.CustomerOrgRegister).
  98. Include(x => x.CustomerOrgRegister.CustomerOrg).AsEnumerable();
  99. if (!string.IsNullOrEmpty(input.Filter))
  100. oldlist = oldlist.Where(m => m.DisplayName.Contains(input.Filter));
  101. if (input.CustomerOrgId != null && input.CustomerOrgId != Guid.Empty)
  102. oldlist = oldlist.Where(m => m.CustomerOrgRegister.CustomerOrg.Id == input.CustomerOrgId);
  103. if (input.CustomerOrgRegisterId != null && input.CustomerOrgRegisterId != Guid.Empty)
  104. oldlist = oldlist.Where(m => m.CustomerOrgRegisterId == input.CustomerOrgRegisterId);
  105. if (input.MedicalTimes != null)
  106. oldlist = oldlist.Where(m => m.CustomerOrgRegister.MedicalTimes == input.MedicalTimes);
  107. var entdto = oldlist.OrderBy(o => o.CustomerOrgRegister.CustomerOrg.DisplayOrder)
  108. .ThenBy(o => o.CustomerOrgRegister.MedicalTimes)
  109. .ThenBy(o => o.DisplayOrder)
  110. .Select(s => new CustomerOrgGroupOrCustomerOrgDto
  111. {
  112. CreationTime = s.CreationTime,
  113. CreatorId = s.CreatorId,
  114. DisplayName = s.DisplayName,
  115. DisplayOrder = s.DisplayOrder,
  116. Id = s.Id,
  117. LastModificationTime = s.LastModificationTime,
  118. LastModifierId = s.LastModifierId,
  119. Price = s.Price,
  120. ForSexId = s.ForSexId,
  121. Remark = s.Remark,
  122. MaritalStatusId = s.MaritalStatusId,
  123. JobTitle = s.JobTitle,
  124. JobPost = s.JobPost,
  125. AgeUpperLimit = s.AgeUpperLimit,
  126. AgeLowerLimit = s.AgeLowerLimit,
  127. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  128. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result,
  129. CustomerOrgId = s.CustomerOrgRegister.CustomerOrgId,
  130. CustomerOrgName = s.CustomerOrgRegister.CustomerOrg.DisplayName,
  131. MedicalTimes = s.CustomerOrgRegister.MedicalTimes,
  132. CustomerOrgRegisterId = s.CustomerOrgRegisterId,
  133. CanAddMoney = s.CanAddMoney
  134. }).OrderBy(m => m.DisplayOrder).ToList();
  135. return entdto;
  136. }
  137. [HttpPost("api/app/CustomerOrgGroup/GetListForPatentRegisterByFilter")]
  138. public async Task<List<CustomerOrgGroupForPatientRegisterDto>> GetListForPatentRegisterByFilterAsync(GetListDto input)
  139. {
  140. var oldlist = (await Repository.GetQueryableAsync()).
  141. Include(x => x.CustomerOrgRegister).
  142. Include(x => x.CustomerOrgRegister.CustomerOrg).AsEnumerable();
  143. if (!string.IsNullOrEmpty(input.Filter))
  144. oldlist = oldlist.Where(m => m.DisplayName.Contains(input.Filter));
  145. if (input.CustomerOrgId != null && input.CustomerOrgId != Guid.Empty)
  146. oldlist = oldlist.Where(m => m.CustomerOrgRegister.CustomerOrg.Id == input.CustomerOrgId);
  147. if (input.CustomerOrgRegisterId != null && input.CustomerOrgRegisterId != Guid.Empty)
  148. oldlist = oldlist.Where(m => m.CustomerOrgRegisterId == input.CustomerOrgRegisterId);
  149. if (input.MedicalTimes != null)
  150. oldlist = oldlist.Where(m => m.CustomerOrgRegister.MedicalTimes == input.MedicalTimes);
  151. var entdto = oldlist.OrderBy(o => o.CustomerOrgRegister.CustomerOrg.DisplayOrder)
  152. .ThenBy(o => o.CustomerOrgRegister.MedicalTimes)
  153. .ThenBy(o => o.DisplayOrder)
  154. .Select(s => new CustomerOrgGroupForPatientRegisterDto
  155. {
  156. Id = s.Id,
  157. DisplayName = s.DisplayName,
  158. DisplayOrder = s.DisplayOrder,
  159. Price = s.Price,
  160. ForSexId = s.ForSexId,
  161. MaritalStatusId = s.MaritalStatusId,
  162. JobTitle = s.JobTitle,
  163. JobPost = s.JobPost,
  164. AgeUpperLimit = s.AgeUpperLimit,
  165. AgeLowerLimit = s.AgeLowerLimit,
  166. CustomerOrgRegisterId = s.CustomerOrgRegisterId
  167. }).OrderBy(m => m.DisplayOrder).ToList();
  168. return entdto;
  169. }
  170. /// <summary>
  171. /// 创建单位分组
  172. /// </summary>
  173. /// <param name="input"></param>
  174. /// <returns></returns>
  175. [HttpPost("api/customerorggroup/createcustomerorggroupincustomerorgregister")]
  176. public async Task<CustomerOrgGroupDto> CreateCustomerOrgGroupInCustomerOrgRegisterAsync(CreateCustomerOrgGroupInCustomerOrgRegisterDto input)
  177. {
  178. var createEntity = ObjectMapper.Map<CreateCustomerOrgGroupDto, CustomerOrgGroup>(input);
  179. var entity = await _manager.CreateAsync(input.IsMaxMedicalTimes, input.CustomerOrgRegisterId, input.CustomerOrgId, createEntity);
  180. //检查体检次数是否完成
  181. await _manager.CheckCustomerOrgRegisterStatus(entity.CustomerOrgRegisterId);
  182. entity = await Repository.InsertAsync(entity);
  183. var dto = ObjectMapper.Map<CustomerOrgGroup, CustomerOrgGroupDto>(entity);
  184. return dto;
  185. }
  186. [HttpPost("api/app/CustomerOrgGroup/CreateCustomerOrgGroupWithDetail")]
  187. public async Task<CustomerOrgGroupDto> CreateCustomerOrgGroupWithDetailAsync(CreateCustomerOrgGroupWithDetailDto input)
  188. {
  189. var createEntity = ObjectMapper.Map<CreateCustomerOrgGroupDto, CustomerOrgGroup>(input);
  190. var entity = await _manager.CreateAsync(input.IsMaxMedicalTimes, input.CustomerOrgRegisterId, input.CustomerOrgId, createEntity);
  191. //检查体检次数是否完成
  192. await _manager.CheckCustomerOrgRegisterStatus(entity.CustomerOrgRegisterId);
  193. entity = await Repository.InsertAsync(entity);
  194. //插入明细
  195. if (input.Details.Any())
  196. {
  197. var createEntityList = ObjectMapper.Map<List<CreateCustomerOrgGroupDetail_Detail>, List<CustomerOrgGroupDetail>>(input.Details);
  198. var list = new List<CustomerOrgGroupDetail>();
  199. foreach (var item in createEntityList)
  200. {
  201. item.CustomerOrgGroupId = entity.Id;
  202. var customerOrgGroupDetail = _customerOrgGroupDetailManager.CreateAsync(item);
  203. list.Add(customerOrgGroupDetail);
  204. }
  205. var sumMonkey = list.Sum(o => o.Price * o.Amount);
  206. entity.Price = sumMonkey;
  207. entity = await Repository.InsertAsync(entity);
  208. await _customerOrgGroupDetailRepository.InsertManyAsync(list);
  209. }
  210. var dto = ObjectMapper.Map<CustomerOrgGroup, CustomerOrgGroupDto>(entity);
  211. return dto;
  212. }
  213. /// <summary>
  214. /// 更新
  215. /// </summary>
  216. /// <param name="id"></param>
  217. /// <param name="input"></param>
  218. /// <returns></returns>
  219. public override async Task<CustomerOrgGroupDto> UpdateAsync(Guid id, UpdateCustomerOrgGroupDto input)
  220. {
  221. var entity = await Repository.GetAsync(id);
  222. var sourceEntity = ObjectMapper.Map<UpdateCustomerOrgGroupDto, CustomerOrgGroup>(input);
  223. //检查体检次数是否完成
  224. await _manager.CheckCustomerOrgRegisterStatus(entity.CustomerOrgRegisterId);
  225. await _manager.UpdateAsync(sourceEntity, entity);
  226. //修改明细价格,只修改价格不为0的
  227. var detailList = (await _customerOrgGroupDetailRepository.GetQueryableAsync()).
  228. Where(o => o.CustomerOrgGroupId == id && o.Price != 0).ToList();
  229. if (detailList.Any())
  230. {
  231. var sumMoney = detailList.Sum(o => o.Amount * o.Price);
  232. if (entity.Price == 0)
  233. {
  234. foreach (var item in detailList)
  235. {
  236. item.Price = 0;
  237. }
  238. }
  239. else
  240. {
  241. //按原来的比例重新计算
  242. if (entity.Price != sumMoney)
  243. {
  244. var percentage = entity.Price / sumMoney;
  245. foreach (var item in detailList)
  246. {
  247. item.Price = Math.Round(percentage * item.Price, 2);
  248. }
  249. //自动分摊小数
  250. var newSumMoney = detailList.Sum(o => o.Amount * o.Price);
  251. var differenceMoney = entity.Price - newSumMoney;
  252. if (differenceMoney != 0)
  253. {
  254. foreach (var item in detailList)
  255. {
  256. //不允许算出负数,并且必须能反算出正确的价格
  257. if ((item.Price * item.Amount + differenceMoney) ==
  258. (item.Price + Math.Round((differenceMoney / item.Amount), 2)) * item.Amount &&
  259. (item.Price + Math.Round((differenceMoney / item.Amount), 2)) > 0)
  260. {
  261. item.Price = item.Price + Math.Round((differenceMoney / item.Amount), 2);
  262. break;
  263. }
  264. }
  265. }
  266. differenceMoney = entity.Price - detailList.Sum(o => o.Amount * o.Price);
  267. if (differenceMoney != 0)
  268. {
  269. throw new UserFriendlyException("无法反算出组合项目价格");
  270. }
  271. }
  272. }
  273. }
  274. entity = await Repository.UpdateAsync(entity);
  275. if (detailList.Count() > 0)
  276. {
  277. await _customerOrgGroupDetailRepository.UpdateManyAsync(detailList);
  278. }
  279. return ObjectMapper.Map<CustomerOrgGroup, CustomerOrgGroupDto>(entity);
  280. }
  281. /// <summary>
  282. /// 删除
  283. /// </summary>
  284. /// <param name="id"></param>
  285. /// <returns></returns>
  286. public override async Task DeleteAsync(Guid id)
  287. {
  288. await _manager.CheckAndDeleteAsync(id);
  289. }
  290. /// <summary>
  291. /// 修改排序 置顶,置底
  292. /// </summary>
  293. /// <param name="id">需要修改的ID</param>
  294. /// <param name="SortType">修改方式:1 置顶 2 置底</param>
  295. /// <returns></returns>
  296. [HttpPut("api/app/customerorggroup/updatemanysort")]
  297. public async Task UpdateManySortAsync(Guid id, int SortType)
  298. {
  299. await _manager.UpdateManySortAsync(id, SortType);
  300. }
  301. /// <summary>
  302. /// 修改排序 拖拽
  303. /// </summary>
  304. /// <param name="input"></param>
  305. /// <returns></returns>
  306. [HttpPut("api/app/customerorggroup/updatesortmany")]
  307. public async Task UpdateSortManyAsync(UpdateSortManyDto input)
  308. {
  309. await _manager.UpdateSortManyAsync(input);
  310. }
  311. /// <summary>
  312. /// 获取体检分组列表 按单位ID检索 查询最后一次
  313. /// </summary>
  314. /// <param name="CustomerOrgId"></param>
  315. /// <returns></returns>
  316. public async Task<List<CustomerOrgGroupDto>> GetListInCustomerOrgIdAsync(Guid CustomerOrgId)
  317. {
  318. var CustomerOrgRegisterId = (await _customerOrgRegisterRepository.GetListAsync(m => m.CustomerOrgId == CustomerOrgId))
  319. .OrderByDescending(x => x.MedicalTimes).Select(s => s.Id).FirstOrDefault();
  320. if (CustomerOrgRegisterId != Guid.Empty)
  321. {
  322. var entlist = await Repository.GetListAsync(m => m.CustomerOrgRegisterId == CustomerOrgRegisterId);
  323. //var userList = await _userRepository.GetListAsync();
  324. var entdto = entlist.Select(s => new CustomerOrgGroupDto
  325. {
  326. CreationTime = s.CreationTime,
  327. CreatorId = s.CreatorId,
  328. DisplayName = s.DisplayName,
  329. DisplayOrder = s.DisplayOrder,
  330. Id = s.Id,
  331. LastModificationTime = s.LastModificationTime,
  332. LastModifierId = s.LastModifierId,
  333. Price = s.Price,
  334. ForSexId = s.ForSexId,
  335. Remark = s.Remark,
  336. MaritalStatusId = s.MaritalStatusId,
  337. JobTitle = s.JobTitle,
  338. JobPost = s.JobPost,
  339. AgeUpperLimit = s.AgeUpperLimit,
  340. AgeLowerLimit = s.AgeLowerLimit,
  341. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  342. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result,
  343. CustomerOrgRegisterId = CustomerOrgRegisterId
  344. }).ToList();
  345. return entdto;
  346. }
  347. return new List<CustomerOrgGroupDto>();
  348. }
  349. /// <summary>
  350. /// 获取体检分组列表 按单位登记ID
  351. /// </summary>
  352. /// <param name="input"></param>
  353. /// <returns></returns>
  354. [HttpPut("api/app/CustomerOrgGroup/GetListByCustomerOrgRegisterId")]
  355. public async Task<List<CustomerOrgGroupDto>> GetListByCustomerOrgRegisterIdAsync(CustomerOrgRegisterIdInputDto input)
  356. {
  357. var entlist = await Repository.GetListAsync(m => m.CustomerOrgRegisterId == input.CustomerOrgRegisterId);
  358. var entdto = entlist.Select(s => new CustomerOrgGroupDto
  359. {
  360. CreationTime = s.CreationTime,
  361. CreatorId = s.CreatorId,
  362. DisplayName = s.DisplayName,
  363. DisplayOrder = s.DisplayOrder,
  364. Id = s.Id,
  365. LastModificationTime = s.LastModificationTime,
  366. LastModifierId = s.LastModifierId,
  367. Price = s.Price,
  368. ForSexId = s.ForSexId,
  369. Remark = s.Remark,
  370. MaritalStatusId = s.MaritalStatusId,
  371. JobTitle = s.JobTitle,
  372. JobPost = s.JobPost,
  373. AgeUpperLimit = s.AgeUpperLimit,
  374. AgeLowerLimit = s.AgeLowerLimit,
  375. CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
  376. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result,
  377. CustomerOrgRegisterId = input.CustomerOrgRegisterId
  378. }).ToList();
  379. return entdto;
  380. return new List<CustomerOrgGroupDto>();
  381. }
  382. /// <summary>
  383. /// 复制上次分组
  384. /// </summary>
  385. /// <returns></returns>
  386. [HttpPost("api/app/CustomerOrgGroup/CopyLastGrouping")]
  387. public async Task CopyLastGroupingAsync(CustomerOrgRegisterIdInputDto input)
  388. {
  389. if (input == null)
  390. throw new UserFriendlyException("请求参数有误");
  391. var customerOrgRegisterEnt = await _customerOrgRegisterRepository.GetAsync(input.CustomerOrgRegisterId);
  392. if (customerOrgRegisterEnt == null)
  393. throw new UserFriendlyException("单位体检次数不存在");
  394. if (customerOrgRegisterEnt.IsComplete == 'Y')
  395. throw new UserFriendlyException("该单位体检次数已完成,无法复制");
  396. var prevCustomerOrgRegister = (await _customerOrgRegisterRepository.GetQueryableAsync())
  397. .Where(m => m.CustomerOrgId == customerOrgRegisterEnt.CustomerOrgId && m.MedicalTimes < customerOrgRegisterEnt.MedicalTimes)
  398. .OrderByDescending(o => o.MedicalTimes).FirstOrDefault();
  399. if (prevCustomerOrgRegister != null)
  400. {
  401. #region 创建分组、明细
  402. //上一次体检次数的分组
  403. var prevCustomerOrgGroupList = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgRegisterId == prevCustomerOrgRegister.Id);
  404. foreach (var group in prevCustomerOrgGroupList)
  405. {
  406. Guid customerOrgGroupId = GuidGenerator.Create();
  407. var newCustomerOrgGroup = new CustomerOrgGroup(customerOrgGroupId)
  408. {
  409. AgeLowerLimit = group.AgeLowerLimit,
  410. AgeUpperLimit = group.AgeUpperLimit,
  411. CustomerOrgRegisterId = customerOrgRegisterEnt.Id,
  412. DisplayName = group.DisplayName,
  413. DisplayOrder = group.DisplayOrder,
  414. ForSexId = group.ForSexId,
  415. JobPost = group.JobPost,
  416. JobTitle = group.JobTitle,
  417. MaritalStatusId = group.MaritalStatusId,
  418. Price = group.Price,
  419. Remark = group.Remark
  420. };
  421. await Repository.InsertAsync(newCustomerOrgGroup, true);
  422. #region 创建分组明细
  423. var prevCustomerOrgGroupDetailList = (await _customerOrgGroupDetailRepository.GetQueryableAsync()).Where(m => m.CustomerOrgGroupId == group.Id);
  424. foreach (var customerOrgGroupDetail in prevCustomerOrgGroupDetailList)
  425. {
  426. var newcustomerOrgGroupDetail = new CustomerOrgGroupDetail
  427. {
  428. Amount = customerOrgGroupDetail.Amount,
  429. AsbitemId = customerOrgGroupDetail.AsbitemId,
  430. CustomerOrgGroupId = customerOrgGroupId,
  431. Price = customerOrgGroupDetail.Price
  432. };
  433. await _customerOrgGroupDetailRepository.InsertAsync(newcustomerOrgGroupDetail);
  434. }
  435. #endregion
  436. }
  437. #endregion
  438. }
  439. else
  440. {
  441. throw new UserFriendlyException("上一次单位体检次数不存在");
  442. }
  443. }
  444. }
  445. }