Browse Source

新增datachange的查询和修改接口

集成Redis
郑勃旭 2 years ago
parent
commit
92cb868a51
  1. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ExchangeDatas/IExchangeDataAppService.cs
  2. 70
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ExchangeDatas/ExchangeDataAppService.cs

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/ExchangeDatas/IExchangeDataAppService.cs

@ -11,4 +11,7 @@ public interface IExchangeDataAppService
// Task<SfsImportResult> ImportMergeAsync(IFormFile formFile, EnumFileType fileType = EnumFileType.Excel, EnumImportMethod method = EnumImportMethod.Update, bool isAllowPartImport = false); // Task<SfsImportResult> ImportMergeAsync(IFormFile formFile, EnumFileType fileType = EnumFileType.Excel, EnumImportMethod method = EnumImportMethod.Update, bool isAllowPartImport = false);
Task<List<ExchangeDataDTO>> GetToBeProcessedListAsync(int batchSize); Task<List<ExchangeDataDTO>> GetToBeProcessedListAsync(int batchSize);
Task<ExchangeDataDTO> ReSendByNumberAsync(Guid id); Task<ExchangeDataDTO> ReSendByNumberAsync(Guid id);
Task<List<ExchangeDataDTO>> GetToBeProcessedListPostAsync(int batchSize);
Task<List<ExchangeDataDTO>> GetToBeProcessedListOnlyReadAsync(int batchSize);
Task<List<ExchangeDataDTO>> UpdateStatusByIdListAsync(List<Guid> list);
} }

70
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/ExchangeDatas/ExchangeDataAppService.cs

@ -1,9 +1,14 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping; using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Store.Application.Contracts; using Win_in.Sfs.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
@ -72,4 +77,69 @@ public class ExchangeDataAppService
return new ExchangeDataDTO() { Id = entityNew.Id }; return new ExchangeDataDTO() { Id = entityNew.Id };
} }
[HttpPost("by-batchsize-post")]
public virtual async Task<List<ExchangeDataDTO>> GetToBeProcessedListPostAsync(int batchSize)
{
var resultList=new List<ExchangeData>();
var entities = await
(await _repository.GetDbSetAsync().ConfigureAwait(false))
.Where(p => p.Status == EnumExchangeDataStatus.Unread)
.OrderBy(p => p.WriteTime)
.Take(batchSize)
.ToListAsync().ConfigureAwait(false);
foreach (var entity in entities)
{
entity.Status = EnumExchangeDataStatus.Success;
entity.ReadTime = Clock.Now;
entity.Reader = "DataExchange.Agent";
resultList.Add(await _repository.UpdateAsync(entity).ConfigureAwait(false));
}
var dtos = ObjectMapper.Map<List<ExchangeData>, List<ExchangeDataDTO>>(resultList);
return dtos;
}
[HttpPost("by-batchsize-only-read")]
public virtual async Task<List<ExchangeDataDTO>> GetToBeProcessedListOnlyReadAsync(int batchSize)
{
var entities = await
(await _repository.GetDbSetAsync().ConfigureAwait(false))
.Where(p => p.Status == EnumExchangeDataStatus.Unread)
.OrderBy(p => p.WriteTime)
.Take(batchSize)
.ToListAsync().ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<ExchangeData>, List<ExchangeDataDTO>>(entities);
return dtos;
}
[HttpPost("update-status-by-id-list")]
public virtual async Task<List<ExchangeDataDTO>> UpdateStatusByIdListAsync(List<Guid> list)
{
List<ExchangeData> listExchangeDatas = new EditableList<ExchangeData>();
var resultList = new List<ExchangeData>();
foreach (var id in list)
{
listExchangeDatas.Add(await _repository.GetAsync(id).ConfigureAwait(false));
}
listExchangeDatas.ForEach(p =>
{
p.Status = EnumExchangeDataStatus.Success;
p.ReadTime = Clock.Now;
p.Reader = "DataExchange.Agent";
});
foreach (var entity in listExchangeDatas)
{
resultList.Add(await _repository.UpdateAsync(entity).ConfigureAwait(false));
}
var dtos = ObjectMapper.Map<List<ExchangeData>, List<ExchangeDataDTO>>(resultList);
return dtos;
}
} }

Loading…
Cancel
Save