using AutoMapper.Internal.Mappers; using Microsoft.AspNetCore.Mvc; using Shentun.Peis.Asbitems; using Shentun.Peis.Models; using Shentun.Peis.MedicalPackageDetails; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; using Volo.Abp.Identity; using Volo.Abp; using Microsoft.EntityFrameworkCore; using Microsoft.AspNetCore.Authorization; using Shentun.Peis.CustomerOrgGroupDetails; namespace Shentun.Peis.MedicalPackageDetails { /// /// 体检套餐包含的组合项目 /// [ApiExplorerSettings(GroupName = "Work")] [Authorize] public class MedicalPackageDetailAppService : ApplicationService { private readonly IRepository _repository; private readonly IRepository _userRepository; private readonly MedicalPackageDetailManager _manager; public MedicalPackageDetailAppService(IRepository repository, IRepository userRepository, MedicalPackageDetailManager manager) { this._repository = repository; this._userRepository = userRepository; this._manager = manager; } ///// ///// 创建 ///// ///// ///// //[HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetail")] //public async Task CreateMedicalPackageDetailAsync(CreateMedicalPackageDetailDto input) //{ // var createEntity = ObjectMapper.Map(input); // var entity = await _repository.InsertAsync(createEntity); // var dto = ObjectMapper.Map(entity); // return dto; //} /// /// 批量创建 先删除 /// /// /// /// [HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetailmany")] public async Task CreateMedicalPackageDetailManyAsync(CreateMedicalPackageDetailManyDto input) { //删除套餐明细 按套餐ID await _manager.CheckAndDeleteAsync(input.MedicalPackageId); if (input.Details.Any()) { List medicalPackageDetails = new List(); foreach (var details in input.Details) { var entity = new MedicalPackageDetail { Amount = details.Amount, Price = details.Price, MedicalPackageId = input.MedicalPackageId, AsbitemId = details.AsbitemId }; medicalPackageDetails.Add(_manager.CreateAsync(entity)); } if (medicalPackageDetails.Count > 0) { await _repository.InsertManyAsync(medicalPackageDetails); } } } ///// ///// 删除 ///// ///// 体检套餐ID ///// 组合项目ID ///// //public async Task DeleteAsync(Guid MedicalPackageId, Guid AsbitemId) //{ // await _repository.DeleteAsync(d => d.AsbitemId == AsbitemId && d.MedicalPackageId == MedicalPackageId); //} /// /// 获取列表 体检套餐包含的组合项目 /// /// /// [HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")] public async Task> GetMedicalPackageInAsbitemAsync(MedicalPackageInAsbitemDto input) { var entlist = (await _repository.GetDbSetAsync()).Include(c => c.Asbitem) .Where(m => m.MedicalPackageId == input.MedicalPackageId).ToList(); var userList = await _userRepository.GetListAsync(); var entdto = entlist.Select(s => new MedicalPackageDetailDto { ClinicalMeaning = s.Asbitem.ClinicalMeaning, CreationTime = s.Asbitem.CreationTime, CreatorId = s.Asbitem.CreatorId, DefaultResult = s.Asbitem.DefaultResult, DeviceTypeId = s.Asbitem.DeviceTypeId, DiagnosisFunction = s.Asbitem.DiagnosisFunction, DisplayName = s.Asbitem.DisplayName, DisplayOrder = s.Asbitem.DisplayOrder, ForSexId = s.Asbitem.ForSexId, Id = s.Asbitem.Id, //InvoiceItemTypeId = s.Asbitem.InvoiceItemTypeId, IsActive = s.Asbitem.IsActive, IsBeforeEat = s.Asbitem.IsBeforeEat, IsCheck = s.Asbitem.IsCheck, IsContinueProcess = s.Asbitem.IsContinueProcess, IsDiagnosisFunction = s.Asbitem.IsDiagnosisFunction, IsItemResultMerger = s.Asbitem.IsItemResultMerger, IsPictureRotate = s.Asbitem.IsPictureRotate, ItemTypeId = s.Asbitem.ItemTypeId, LastModificationTime = s.Asbitem.LastModificationTime, LastModifierId = s.Asbitem.LastModifierId, Price = s.Asbitem.Price, QueueTime = s.Asbitem.QueueTime, ShortName = s.Asbitem.ShortName, SimpleCode = s.Asbitem.SimpleCode, AsbitemMoney = s.Amount * s.Asbitem.Price, Discount = s.Asbitem.Price == 0 ? 100 : Math.Round(s.Price * 100 / s.Asbitem.Price, 2), MedicalPackageDetailAmount = s.Amount, MedicalPackageDetailMoney = s.Amount * s.Price, MedicalPackageDetailPrice = s.Price, CreatorName = EntityHelper.GetSurnameNoSql(userList, s.Asbitem.CreatorId), LastModifierName = EntityHelper.GetSurnameNoSql(userList, s.Asbitem.LastModifierId), MaritalStatusId = s.Asbitem.MaritalStatusId, IsDiscount = s.Asbitem.IsDiscount }).ToList(); return entdto; } } }