|
|
using AutoMapper.Internal.Mappers;using Microsoft.AspNetCore.Mvc;using Shentun.Peis.Diagnosises;using Shentun.Peis.AsbitemDetails;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 TencentCloud.Ame.V20190916.Models;using Microsoft.EntityFrameworkCore;using Shentun.Peis.Items;using Volo.Abp;using Shentun.Peis.Models;using Microsoft.AspNetCore.Authorization;
namespace Shentun.Peis.AsbitemDetails{
/// <summary>
/// 组合项目包含的小项目
/// </summary>
[ApiExplorerSettings(GroupName = "Work")] [Authorize] public class AsbitemDetailAppService : ApplicationService { private readonly IRepository<AsbitemDetail> _repository; private readonly IRepository<IdentityUser, Guid> _userRepository; private readonly AsbitemDetailManager _manager;
public AsbitemDetailAppService(IRepository<AsbitemDetail> repository, IRepository<IdentityUser, Guid> userRepository, AsbitemDetailManager manager) { this._repository = repository; this._userRepository = userRepository; this._manager = manager; }
/// <summary>
/// 创建
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[RemoteService(false)] public async Task<AsbitemDetailDto> CreateAsync(CreateAsbitemDetailDto input) { var createEntity = ObjectMapper.Map<CreateAsbitemDetailDto, AsbitemDetail>(input); var entity = await _repository.InsertAsync(createEntity); var dto = ObjectMapper.Map<AsbitemDetail, AsbitemDetailDto>(entity); return dto; }
/// <summary>
/// 批量创建 先删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/asbitemdetail/createasbitemdetailmany")] public async Task CreateAsbitemDetailManyAsync(CreateAsbitemDetailDto input) { await _manager.CheckAndDeleteAsync(input.AsbitemId);
if (input.Details.Any()) { List<AsbitemDetail> asbitemDetails = new List<AsbitemDetail>(); foreach (var details in input.Details) { var entity = new AsbitemDetail { AsbitemId = input.AsbitemId, ItemId = details.ItemId }; asbitemDetails.Add(_manager.CreateAsbitemAsync(entity)); }
if (asbitemDetails.Count > 0) { await _repository.InsertManyAsync(asbitemDetails); } } }
/// <summary>
/// 获取列表 组合项目包含的小项目
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<List<ItemDto>> GetAsbitemDetailInItemAsync(AsbitemDetailInItemDto input) {
var entlist = _repository.GetDbSetAsync().Result.Include(c => c.Item) .Where(m => m.AsbitemId == input.AsbitemId).ToList();
var userList = await _userRepository.GetListAsync();
var entdto = entlist.Select(s => new ItemDto { CreationTime = s.Item.CreationTime, CreatorId = s.Item.CreatorId, DisplayName = s.Item.DisplayName, DisplayOrder = s.Item.DisplayOrder, Id = s.Item.Id, ItemTypeId = s.Item.ItemTypeId, LastModificationTime = s.Item.LastModificationTime, LastModifierId = s.Item.LastModifierId, SimpleCode = s.Item.SimpleCode, CalculationFunction = s.Item.CalculationFunction, DefaultResult = s.Item.DefaultResult, DiagnosisFunction = s.Item.DiagnosisFunction, EnglishShortName = s.Item.EnglishShortName, InputCheck = s.Item.InputCheck, IsActive = s.Item.IsActive, IsCalculationItem = s.Item.IsCalculationItem, IsContinueProcess = s.Item.IsContinueProcess, IsDiagnosisFunction = s.Item.IsDiagnosisFunction, IsNameIntoSummary = s.Item.IsNameIntoSummary, IsProduceSummary = s.Item.IsProduceSummary, Price = s.Item.Price, PriceItemId = s.Item.PriceItemId, ReferenceRangeTypeFlag = s.Item.ReferenceRangeTypeFlag, ResultTemplateTypeFlag = s.Item.ResultTemplateTypeFlag, UnitId = s.Item.UnitId, CreatorName = EntityHelper.GetUserNameNoSql(userList, s.Item.CreatorId), LastModifierName = EntityHelper.GetUserNameNoSql(userList, s.Item.LastModifierId) }).ToList();
return entdto;
}
}}
|