| 
						 | 
						using AutoMapper.Internal.Mappers;using Microsoft.AspNetCore.Authorization;using Microsoft.AspNetCore.Mvc;using NPOI.OpenXmlFormats.Dml;using Shentun.Peis.CustomerOrgRegisters;using Shentun.Peis.CustomerOrgs;using Shentun.Peis.HelperDto;using Shentun.Peis.Models;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Volo.Abp;using Volo.Abp.Application.Dtos;using Volo.Abp.Application.Services;using Volo.Abp.Domain.Repositories;using Volo.Abp.Identity;using Volo.Abp.ObjectMapping;
namespace Shentun.Peis.CustomerOrgRegisters{
    /// <summary>
    /// 单位体检次数
    /// </summary>
    [ApiExplorerSettings(GroupName = "Work")]    [Authorize]    public class CustomerOrgRegisterAppService : CrudAppService<            CustomerOrgRegister, //The Book entity
            CustomerOrgRegisterDto, //Used to show books
            Guid, //Primary key of the book entity
            PagedAndSortedResultRequestDto, //Used for paging/sorting
            CreateCustomerOrgRegisterDto,            UpdateCustomerOrgRegisterDto>    {        private readonly IRepository<IdentityUser, Guid> _userRepository;        private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;        private readonly CustomerOrgManager _customerOrgManager;        private readonly CustomerOrgRegisterManager _manager;        private readonly CacheService _cacheService;        public CustomerOrgRegisterAppService(            IRepository<CustomerOrgRegister, Guid> repository,            IRepository<IdentityUser, Guid> userRepository,             IRepository<CustomerOrg, Guid> customerOrgRepository,            CustomerOrgManager customerOrgManager,            CustomerOrgRegisterManager manager,             CacheService cacheService)            : base(repository)        {            _userRepository = userRepository;            this._customerOrgRepository = customerOrgRepository;            this._customerOrgManager = customerOrgManager;            _manager = manager;            _cacheService = cacheService;        }        /// <summary>
        /// 获取通过主键
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public override async Task<CustomerOrgRegisterDto> GetAsync(Guid id)        {            return await base.GetAsync(id);        }        /// <summary>
        /// 获取列表  团检体检登记  遗弃
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [RemoteService(false)]        public override async Task<PagedResultDto<CustomerOrgRegisterDto>> GetListAsync(PagedAndSortedResultRequestDto input)        {            return await base.GetListAsync(input);        }
        /// <summary>
        /// 获取列表  团检体检登记  带搜索计划名称
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<List<CustomerOrgRegisterDto>> GetListInFilterAsync(GetListInFilterDto input)        {            var entlist = await Repository.GetQueryableAsync();
            if (!string.IsNullOrEmpty(input.Filter))                entlist = entlist.Where(m => m.RegisterName.Contains(input.Filter));
            var entdto = entlist.Select(s => new CustomerOrgRegisterDto            {                CreationTime = s.CreationTime,                CreatorId = s.CreatorId,                Id = s.Id,                LastModificationTime = s.LastModificationTime,                LastModifierId = s.LastModifierId,                BeginTime = DataHelper.ConversionDateToString(s.BeginTime),                EndTime = DataHelper.ConversionDateToString(s.EndTime),                RegisterName = s.RegisterName,                RegisterNo = s.RegisterNo,                MedicalTimes = s.MedicalTimes,                IsComplete = s.IsComplete,                CustomerOrgId = s.CustomerOrgId,                CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,                LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result            }).OrderBy(m => m.CreationTime).ToList();
            return entdto;
        }
        /// <summary>
        /// 新增体检次数 只传单位ID
        /// </summary>
        /// <param name="CustomerOrgId">单位ID</param>
        /// <returns></returns>
        [HttpPost("api/customerorgregister/createcustomerorgregister")]        public async Task<CustomerOrgRegisterDto> CreateCustomerOrgRegisterAsync(Guid CustomerOrgId)        {            var customerOrg = await _customerOrgRepository.GetAsync(CustomerOrgId);            var pathCode = customerOrg.PathCode.Substring(0, 5);            var topParentCustomerOrg = await _customerOrgRepository.GetAsync(o => o.PathCode == pathCode);            var CustomerOrgParenId = topParentCustomerOrg.Id;  //获取一级单位ID
            var entity = await _manager.CreateAsync(CustomerOrgParenId);            entity = await Repository.InsertAsync(entity);            var dto = ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);            return dto;        }
        /// <summary>
        /// 更新 是否完成状态
        /// </summary>
        /// <param name="id"></param>
        /// <param name="IsComplete">是否完成(Y N)</param>
        /// <returns></returns>
        public async Task<CustomerOrgRegisterDto> UpdateStateAsync(Guid id, char IsComplete)        {            var entity = await _manager.UpdateStateAsync(id, IsComplete);            return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);        }
        /// <summary>
        /// 更新  不需要使用
        /// </summary>
        /// <param name="id"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        [RemoteService(false)]        public override async Task<CustomerOrgRegisterDto> UpdateAsync(Guid id, UpdateCustomerOrgRegisterDto input)        {            //var entity = await Repository.GetAsync(id);
            //var sourceEntity = ObjectMapper.Map<UpdateCustomerOrgRegisterDto, CustomerOrgRegister>(input);
            //_manager.UpdateAsync(sourceEntity, entity);
            //entity = await Repository.UpdateAsync(entity);
            //return ObjectMapper.Map<CustomerOrgRegister, CustomerOrgRegisterDto>(entity);
            return await base.UpdateAsync(id, input);        }        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public override async Task DeleteAsync(Guid id)        {            await _manager.CheckAndDeleteAsync(id);        }
        /// <summary>
        /// 获取团检体检登记列表,根据单位ID过滤查询
        /// </summary>
        /// <param name="CustomerOrgId"></param>
        /// <returns></returns>
        [HttpGet("api/app/customerorgregister/getlistincustomerorgid")]        public async Task<List<CustomerOrgRegisterDto>> GetListInCustomerOrgIdAsync(Guid CustomerOrgId)        {
            //if (CustomerOrgId != Guid.Empty)
            var entlist = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgId == CustomerOrgId).ToList();
            var entdto = entlist.Select(s => new CustomerOrgRegisterDto            {                CreationTime = s.CreationTime,                CreatorId = s.CreatorId,                Id = s.Id,                LastModificationTime = s.LastModificationTime,                LastModifierId = s.LastModifierId,                BeginTime = DataHelper.ConversionDateToString(s.BeginTime),                EndTime = DataHelper.ConversionDateToString(s.EndTime),                RegisterName = s.RegisterName,                RegisterNo = s.RegisterNo,                MedicalTimes = s.MedicalTimes,                IsComplete = s.IsComplete,                CustomerOrgId = s.CustomerOrgId,                CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,                LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result            }).OrderBy(o => o.MedicalTimes).ToList();
            return entdto;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("api/app/CustomerOrgRegister/GetLastCustomerOrgRegisterByCustomerOrgId")]        public async Task<CustomerOrgRegisterDto> GetLastCustomerOrgRegisterByCustomerOrgId(CustomerOrgIdInputDto input)        {            var entity = (await Repository.GetQueryableAsync()).Where(m => m.CustomerOrgId == input.CustomerOrgId)                .OrderByDescending(o=>o.MedicalTimes).FirstOrDefault();
            var entdto = new CustomerOrgRegisterDto()            {                CreationTime = entity.CreationTime,                CreatorId = entity.CreatorId,                Id = entity.Id,                LastModificationTime = entity.LastModificationTime,                LastModifierId = entity.LastModifierId,                BeginTime = DataHelper.ConversionDateToString(entity.BeginTime),                EndTime = DataHelper.ConversionDateToString(entity.EndTime),                RegisterName = entity.RegisterName,                RegisterNo = entity.RegisterNo,                MedicalTimes = entity.MedicalTimes,                IsComplete = entity.IsComplete,                CustomerOrgId = entity.CustomerOrgId,                CreatorName = _cacheService.GetSurnameAsync(entity.CreatorId).Result,                LastModifierName = _cacheService.GetSurnameAsync(entity.LastModifierId).Result            };
            return entdto;        }    }}
  |