Browse Source

更新Kitting BUG

dev_DY_CC
赵新宇 1 year ago
parent
commit
8a8fe4d120
  1. 43
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs
  2. 43
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs
  3. 27
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs
  4. 28
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs
  5. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs
  6. 13
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs
  7. 44
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs
  8. 222
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs
  9. 31
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs
  10. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs
  11. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs
  12. 1
      be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs

43
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs

@ -0,0 +1,43 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Json;
using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas;
/// <summary>
/// 器具控制器
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}Equipment")]
public class EquipmentController : AbpController
{
private readonly IEquipmentAppService _dictApp;
/// <summary>
///
/// </summary>
/// <param name="dictApp"></param>
public EquipmentController(IEquipmentAppService dictApp,IOptions<AbpJsonOptions> options)
{
_dictApp = dictApp;
var str = options.Value.DefaultDateTimeFormat;
Console.WriteLine(str);
}
/// <summary>
/// 按代码获取字典
/// </summary>
/// <param name="code">字典代码</param>
/// <returns></returns>
[HttpGet("by-code")]
public virtual async Task<EquipmentDTO> GetByCodeAsync(string code)
{
var dtos = await _dictApp.GetByCodeAsync(code).ConfigureAwait(false);
return dtos;
}
}

43
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs

@ -0,0 +1,43 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Json;
using Win_in.Sfs.Basedata.Application.Contracts;
namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas;
/// <summary>
/// 器具控制器
/// </summary>
[ApiController]
[Route($"{PdaHostConst.ROOT_ROUTE}Kitting")]
public class KittingController : AbpController
{
private readonly IKittingAppService _dictApp;
/// <summary>
///
/// </summary>
/// <param name="dictApp"></param>
public KittingController(IKittingAppService dictApp,IOptions<AbpJsonOptions> options)
{
_dictApp = dictApp;
var str = options.Value.DefaultDateTimeFormat;
Console.WriteLine(str);
}
/// <summary>
/// 按代码获取字典
/// </summary>
/// <param name="code">字典代码</param>
/// <returns></returns>
[HttpGet("by-code")]
public virtual async Task<KittingDTO> GetByCodeAsync(string code)
{
var dtos = await _dictApp.GetByCodeAsync(code).ConfigureAwait(false);
return dtos;
}
}

27
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs

@ -7,17 +7,26 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
{
/// <summary>
/// 类型
/// </summary>
[Display(Name = "类型")]
public string Type { get; set; } = string.Empty;
/// <summary>
/// 器具编号
/// </summary>
[Display(Name = "器具编号")]
[Display(Name = "器具代码")]
[Required(ErrorMessage = "{0}是必填项")]
public string Code { get; set; }
/// <summary>
/// 类型
/// 标包数量
/// </summary>
[Display(Name = "类型")]
public string Type { get; set; } = string.Empty;
[Display(Name = "标包数")]
[Required(ErrorMessage = "{0}是必填项")]
public decimal StdQty { get; set; }
/// <summary>
/// 型号
/// </summary>
@ -26,11 +35,13 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
/// <summary>
/// 库位编号
/// </summary>
[Display(Name = "库位编号")]
[Display(Name = "库位代码")]
[Required(ErrorMessage = "{0}是必填项")]
public string LocCode { get; set; } = string.Empty;
/// <summary>
/// 状态
/// </summary>
[Display(Name = "状态")]
public int State { get; set; } = 0;
@ -46,11 +57,7 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
[Display(Name = "创建时间")]
public DateTime CreatTime { get; set; }=DateTime.Now;
/// <summary>
/// 标包数量
/// </summary>
[Display(Name = "标包数")]
public decimal StdQty { get; set; }
//#region Base
///// <summary>

28
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs

@ -9,17 +9,26 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "物品")]
public class EquipmentImportInput : SfsBaseDataImportInputBase
{
/// <summary>
/// 类型
/// </summary>
[Display(Name = "类型")]
public string Type { get; set; } = string.Empty;
/// <summary>
/// 器具编号
/// </summary>
[Display(Name = "器具编号")]
[Display(Name = "器具代码")]
[Required(ErrorMessage = "{0}是必填项")]
public string Code { get; set; }
/// <summary>
/// 类型
/// 标包数量
/// </summary>
[Display(Name = "类型")]
public string Type { get; set; } = string.Empty;
[Display(Name = "标包数")]
[Required(ErrorMessage = "{0}是必填项")]
public decimal StdQty { get; set; }
/// <summary>
/// 型号
/// </summary>
@ -28,13 +37,16 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase
/// <summary>
/// 库位编号
/// </summary>
[Display(Name = "库位编号")]
[Display(Name = "库位代码")]
[Required(ErrorMessage = "{0}是必填项")]
public string LocCode { get; set; } = string.Empty;
/// <summary>
/// 状态
/// </summary>
[Display(Name = "状态")]
public int State { get; set; } = 0;
/// <summary>
/// 创建人
/// </summary>
@ -47,12 +59,6 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase
[Display(Name = "创建时间")]
public DateTime CreatTime { get; set; } = DateTime.Now;
/// <summary>
/// 标包数量
/// </summary>
[Display(Name = "标包数")]
public decimal StdQty { get; set; }

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs

@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
@ -8,7 +10,7 @@ using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "Kitting箱")]
public class KittingDTO : SfsBaseDataDTOBase, IHasCode, IHasName
public class KittingDTO : EntityDto<Guid>, IHasCode, IHasName
{
[Display(Name ="编号")]
public string Code { get; set; }

13
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs

@ -1,5 +1,10 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;
using Volo.Abp.MultiTenancy;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Basedata.Kittings.Inputs;
@ -8,7 +13,7 @@ using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Basedata.Application.Contracts;
public class KittingEditInput : SfsBaseDataCreateOrUpdateInputBase
public class KittingEditInput : EntityDto<Guid>, IMultiTenant, IRemark, IHasExtraProperties
{
public string Code { get; set; }
@ -17,5 +22,11 @@ public class KittingEditInput : SfsBaseDataCreateOrUpdateInputBase
public virtual List<KittingDetailInput> Details { get; set; }=new List<KittingDetailInput>();
[DefaultValue(null)]
public Guid? TenantId { get; set; }
public string Remark { get; set; }
[DefaultValue("{}")]
public ExtraPropertyDictionary ExtraProperties { get; set; }
}

44
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Basedata.Domain;
@ -10,9 +11,50 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "Kitting箱")]
public class KittingImportInput : SfsBaseDataImportInputBase
{
/// <summary>
/// Kitting编码
/// </summary>
[Display(Name ="Kitting编码")]
public string Code { get; set; }
/// <summary>
/// Kitting名称
/// </summary>
[Display(Name = "Kitting名称")]
public string Name { get; set; }
/// <summary>
/// 物料编码
/// </summary>
[Display(Name = "物料编码")]
public string PartCode { set; get; }
/// <summary>
/// 描述1
/// </summary>
[Display(Name = "物料描述1")]
public string Desc1 { set; get; }
/// <summary>
/// 描述2
/// </summary>
[Display(Name = "物料描述2")]
public string Desc2 { set; get; }
/// <summary>
/// 包装数量
/// </summary>
[Display(Name = "包装数量")]
public decimal Qty { set; get; }
/// <summary>
/// 配置
/// </summary>
[Display(Name = "配置")]
public string Conf { set; get; }
//[Display(Name = "租户ID")]
//public Guid? TenantId
//{
// set; get;
//}
//[Display(Name = "备注")]
//public string Remark { get; set; }
}

222
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs

@ -1,19 +1,29 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using EFCore.BulkExtensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using NUglify.Helpers;
using Omu.ValueInjecter;
using Volo.Abp;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Basedata.Kittings.Inputs;
using Win_in.Sfs.Shared;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport;
namespace Win_in.Sfs.Basedata.Application;
@ -25,13 +35,15 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt
{
private new readonly IKittingRepository _repository;
private readonly IExportImportService _excelService;
private readonly IKittingManager _manager;
public KittingAppService(IKittingRepository repository, IDistributedCache<KittingDTO> cache, IKittingManager manager) : base(repository,cache)
public KittingAppService(IKittingRepository repository, IDistributedCache<KittingDTO> cache, IKittingManager manager, IExportImportService excelService) : base(repository,cache)
{
_repository = repository;
_manager = manager;
_excelService = excelService;
//base.CreatePolicyName = KittingPermissions.Create;
//base.UpdatePolicyName = KittingPermissions.Update;
//base.DeletePolicyName = KittingPermissions.Delete;
@ -62,7 +74,6 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt
// first.AddDetails(itm);
//}
//var entity= await _repository.UpdateAsync(first).ConfigureAwait(false);
//return ObjectMapper.Map<Kitting, KittingDTO>(entity);
}
else
@ -98,23 +109,13 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt
//var ids=input.Details.Select(p => p.Id);
//first.Details.Where(p =>ids.Contains(p.Id));
return base.UpdateAsync(id, input);
//var entity = ObjectMapper.Map<KittingEditInput, Kitting>(input);
////entity.SetId(id);
////entity.Code = first.Code;
//await _repository.UpsertAsync(entity).ConfigureAwait(false);
//var firstEntity = detailquery.FirstOrDefault(p => p.Id == id);
//return ObjectMapper.Map<Kitting, KittingDTO>(first);
@ -139,10 +140,207 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase<Kitting, Kitt
{
var entity = ObjectMapper.Map<KittingEditInput, Kitting>(input);
await _repository.UpsertAsync(entity).ConfigureAwait(false);
}
[HttpPost("import")]
[Consumes("multipart/form-data")]
public override async Task<IActionResult> ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file)
{
var query= _repository.WithDetails().AsNoTracking();
using var ms = new MemoryStream();
await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false);
var inputFileBytes = ms.GetAllBytes();
var importList= _excelService.Import<KittingImportInput>(inputFileBytes).ToList();
var checklist=importList.GroupBy(p => new { p.Code, p.PartCode }).Where(g => g.Count() > 1).Select(p => new { Code = p.Key.Code, PartCode = p.Key.PartCode });//导入重复报错
//检测是否导入重复
var codeList=importList.Select(p=>p.Code).Distinct().ToList();
var includeList = query.Where(p => codeList.Contains(p.Code)).ToList();
var existCodeList = includeList.Select(p => p.Code).ToList();
var newCodeList = from itm in codeList
join itm1 in existCodeList on itm equals itm1
into temp
from tm in temp.DefaultIfEmpty()
where tm == null
select itm;
if(newCodeList.Any())
{
#region 新KITTING
var newKittingList = importList.Where(p => newCodeList.Contains(p.Code)).ToList();//新Kitting
List<KittingEditInput> newKittingInputList = new List<KittingEditInput>();
List<Kitting> newMainList = new List<Kitting>();
List<KittingDetail> newdetailList = new List<KittingDetail>();
foreach (var itm in newCodeList)
{
var newDetail = newKittingList.Where(p => p.Code == itm).ToList();
var first = newDetail.FirstOrDefault();
var kitting = new KittingEditInput();
kitting.InjectFrom(first);
foreach (var detail in newDetail)
{
var inputdetail = new KittingDetailInput();
inputdetail.InjectFrom(detail);
kitting.Details.Add(inputdetail);
}
newKittingInputList.Add(kitting);
}
var kittingList = ObjectMapper.Map<List<KittingEditInput>, List<Kitting>>(newKittingInputList);
foreach (var itm in kittingList)
{
var id = Guid.NewGuid();
itm.SetId(id);
//newMainList.Add(itm);
foreach (var detail in itm.Details)
{
detail.SetId(Guid.NewGuid());
detail.MasterId = id;
//newdetailList.Add(detail);
}
}
await _repository.InsertManyAsync(kittingList).ConfigureAwait(false);
//await _repository.GetDbContext().BulkInsertAsync(newMainList).ConfigureAwait(false);
//await _repository.GetDbContext().BulkInsertAsync<KittingDetail>(newdetailList).ConfigureAwait(false);
#endregion
}
if (existCodeList.Any())
{
var existKittingList = importList.Where(p => existCodeList.Contains(p.Code)).ToList();//新Kitting
List<KittingEditInput> existKittingInputList = new List<KittingEditInput>();
List<KittingDetail> existKittingDetailList = new List<KittingDetail>();
List<KittingDetail> newKittingDetailList = new List<KittingDetail>();
foreach (var include in includeList)
{
var newDetail = existKittingList.Where(p => p.Code == include.Code).ToList();
var innerExist = from itm in newDetail
join itm1 in include.Details on itm.PartCode equals itm1.PartCode
select itm;
if (innerExist.Any())
{
var list = innerExist.ToList();
foreach (var itm in include.Details)
{
var entity = list.FirstOrDefault(p => p.PartCode == itm.PartCode);
itm.Desc1 = entity.Desc1;
itm.Desc2 = entity.Desc2;
itm.Qty = entity.Qty;
itm.Conf = entity.Conf;
//existKittingDetailList.Add(itm);
}
}
//var leftExist = from itm in newDetail
// join itm1 in include.Details on itm.PartCode equals itm1.PartCode
// into temp
// from tm in temp.DefaultIfEmpty()
// where tm == null
// select itm;
//if (leftExist.Any())
//{
// var list = leftExist.ToList();
// foreach (var itm in list)
// {
// var detail = new KittingDetail();
// detail.InjectFrom(itm);
// detail.SetId(Guid.NewGuid());
// detail.MasterId = include.Id;
// //newKittingDetailList.Add(detail);
// }
//}
//var entity = new KittingEditInput();
//entity.InjectFrom(include);
//foreach (var detail in include.Details)
//{
// var detailInput = new KittingDetailInput();
// detailInput.InjectFrom(detail);
// entity.Details.Add(detailInput);
//}
//var newDetail = existKittingList.Where(p => p.Code == entity.Code).ToList();
//var innerExist = from itm in newDetail
// join itm1 in entity.Details on itm.PartCode equals itm1.PartCode
// select itm;
//if (innerExist.Any())
//{
// var list = innerExist.ToList();
// foreach (var itm in entity.Details)
// {
// var l = list.FirstOrDefault(p => p.PartCode == itm.PartCode);
// itm.Desc1 = l.Desc1;
// itm.Desc2 = l.Desc2;
// itm.Qty = l.Qty;
// itm.Conf = l.Conf;
// }
//}
//var leftExist = from itm in newDetail
// join itm1 in entity.Details on itm.PartCode equals itm1.PartCode
// into temp
// from tm in temp.DefaultIfEmpty()
// where tm == null
// select itm;
//if (leftExist.Any())
//{
// var list = leftExist.ToList();
// foreach (var itm in list)
// {
// var detail = new KittingDetailInput();
// detail.InjectFrom(itm);
// detail.Id = Guid.NewGuid();
// detail.MasterId = entity.Id;
// entity.Details.Add(detail);
// }
//}
//existKittingInputList.Add(entity);
}
// List<Kitting> list1 = new List<Kitting>();
// foreach (var itm in existKittingInputList)
// {
// Kitting kitting = new Kitting();
// kitting.InjectFrom(itm);
// kitting.SetId(itm.Id);
// foreach (var detail in itm.Details)
// {
// KittingDetail kittingDetail = new KittingDetail();
// kittingDetail.InjectFrom(detail);
// kittingDetail.SetId(detail.Id);
// kitting.AddDetails(kittingDetail);
// }
// list1.Add(kitting);
// }
//var details= list1.Select(p => p.Details).ToList();
// //await _repository.GetDbContext().BulkInsertAsync(newKittingDetailList).ConfigureAwait(continueOnCapturedContext: false);
// //await _repository.GetDbContext().BulkUpdateAsync(existKittingDetailList).ConfigureAwait(continueOnCapturedContext: false);
// // var ls= ObjectMapper.Map< List<KittingEditInput> ,List <Kitting>>(existKittingInputList);
// //await _repository.UpdateManyAsync(list1,true).ConfigureAwait(continueOnCapturedContext: false);
// await _manager.ImportDataAsync(includeList).ConfigureAwait(false);
}
return new JsonResult(new { Code = 200, Message = "" });
}

31
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs

@ -17,6 +17,33 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
.ReverseMap();
CreateMap<KittingImportInput, Kitting>()
.IgnoreAuditedObjectProperties()
.Ignore(x => x.Details)
.Ignore(x => x.TenantId)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.Remark)
.Ignore(x => x.ConcurrencyStamp)
.Ignore(x => x.Id);
CreateMap<KittingImportInput, KittingDetail>()
.IgnoreAuditedObjectProperties()
//.ForMember(x => x., y => y.MapFrom(t => t.Code))
.ForMember(x => x.PartCode, y => y.MapFrom(t => t.PartCode))
.ForMember(x => x.Desc1, y => y.MapFrom(t => t.Desc1))
.ForMember(x => x.Desc2, y => y.MapFrom(t => t.Desc2))
.Ignore(x => x.MasterId)
.Ignore(x => x.TenantId)
.Ignore(x => x.Remark)
.Ignore(x => x.Id);
// CreateMap<DictImportInput, Dict>()
// .IgnoreAuditedObjectProperties()
@ -37,9 +64,9 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
// .Ignore(x => x.Id);
CreateMap<KittingDetailInput, KittingDetail>()
.IgnoreAuditedObjectProperties()
.IgnoreAuditedObjectProperties();
// .ForMember(x => x.MasterId, y => y.MapFrom(t => t.MasterId))
;
CreateMap<KittingEditInput, Kitting>()
.IgnoreAuditedObjectProperties()

1
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs

@ -38,6 +38,7 @@ public class KittingDetail : AuditedEntity<Guid>, IMultiTenant, IRemark
public string Remark { get; set; }
public void SetId(Guid guid)
{
Id= guid;

3
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs

@ -19,10 +19,7 @@ public class KittingEfCoreRepository : SfsBaseDataEfCoreRepositoryBase<BasedataD
{
var main=DbContext.Set<Kitting>();
var detail=DbContext.Set<KittingDetail>();
var dbSet = await GetDbSetAsync().ConfigureAwait(false);
var exist = await main.FirstOrDefaultAsync(p => p.Code == newData.Code).ConfigureAwait(false);
if (exist == null)
{

1
be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs

@ -399,6 +399,7 @@ public abstract class SfsCrudWithDetailsAppServiceBase<TEntity, TEntityDto, TReq
TEntity entity = await GetEntityByIdAsync(id).ConfigureAwait(continueOnCapturedContext: false);
entity.FromObject(input);
await Repository.UpdateAsync(entity, autoSave: true).ConfigureAwait(continueOnCapturedContext: false);
// await Repository.up(entity, autoSave: true).ConfigureAwait(continueOnCapturedContext: false);
var dto = entity.ToObject<TEntityDto>();
await Cache.SetItemAsync(dto.Id.ToString(), dto, SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
return dto;

Loading…
Cancel
Save