|
|
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{
/// <summary>
/// 体检套餐包含的组合项目
/// </summary>
[ApiExplorerSettings(GroupName = "Work")] [Authorize] public class MedicalPackageDetailAppService : ApplicationService { private readonly IRepository<MedicalPackageDetail> _repository; private readonly IRepository<IdentityUser, Guid> _userRepository; private readonly MedicalPackageDetailManager _manager;
public MedicalPackageDetailAppService(IRepository<MedicalPackageDetail> repository, IRepository<IdentityUser, Guid> userRepository, MedicalPackageDetailManager manager) { this._repository = repository; this._userRepository = userRepository; this._manager = manager; }
///// <summary>
///// 创建
///// </summary>
///// <param name="input"></param>
///// <returns></returns>
//[HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetail")]
//public async Task<MedicalPackageDetailDto> CreateMedicalPackageDetailAsync(CreateMedicalPackageDetailDto input)
//{
// var createEntity = ObjectMapper.Map<CreateMedicalPackageDetailDto, MedicalPackageDetail>(input);
// var entity = await _repository.InsertAsync(createEntity);
// var dto = ObjectMapper.Map<MedicalPackageDetail, MedicalPackageDetailDto>(entity);
// return dto;
//}
/// <summary>
/// 批量创建 先删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
[HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetailmany")] public async Task CreateMedicalPackageDetailManyAsync(CreateMedicalPackageDetailManyDto input) { //删除套餐明细 按套餐ID
await _manager.CheckAndDeleteAsync(input.MedicalPackageId);
if (input.Details.Any()) { List<MedicalPackageDetail> medicalPackageDetails = new List<MedicalPackageDetail>(); 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); }
}
}
///// <summary>
///// 删除
///// </summary>
///// <param name="MedicalPackageId">体检套餐ID</param>
///// <param name="AsbitemId">组合项目ID</param>
///// <returns></returns>
//public async Task DeleteAsync(Guid MedicalPackageId, Guid AsbitemId)
//{
// await _repository.DeleteAsync(d => d.AsbitemId == AsbitemId && d.MedicalPackageId == MedicalPackageId);
//}
/// <summary>
/// 获取列表 体检套餐包含的组合项目
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/medicalpackagedetail/getmedicalpackageinasbitem")] public async Task<List<MedicalPackageDetailDto>> 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) }).ToList();
return entdto;
}
}}
|