PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs
@@ -1,5 +1,7 @@ using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder; using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder; using System.Linq.Expressions; using Volo.Abp; using Volo.Abp.Application.Services; namespace CMS.Plugin.PipeLineLems.Application.Contracts.Services; @@ -49,4 +51,23 @@ /// <param name="input"></param> /// <returns></returns> Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetCallMaterialOrderInput input); /// <summary> /// 根据条件获取叫料单表列表 /// </summary> /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, CancellationToken cancellationToken = default); /// <summary> /// 根据条件获取单个叫料单表 /// </summary> /// <param name="whereConditions"></param> /// <param name="isMultipleThrowException">是否查询出多条就报错</param> /// <param name="cancellationToken"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> Task<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool isMultipleThrowException = false, CancellationToken cancellationToken = default); } PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs
@@ -18,16 +18,16 @@ /// </summary> public class CallMaterialOrderAppService : CMSPluginAppService, ICallMaterialOrderAppService { private readonly ICallMaterialOrderRepository callMaterialOrderRepository; private readonly ICallMaterialOrderRepository _callMaterialOrderRepository; private readonly SharedService _sharedService; private readonly IServiceProvider _serviceProvider; /// <summary> /// Initializes a new instance of the <see cref="CallMaterialOrderAppService"/> class. /// </summary> /// <param name="CallMaterialOrderRepository">The task job repository.</param> public CallMaterialOrderAppService(ICallMaterialOrderRepository _CallMaterialOrderRepository, SharedService sharedService, IServiceProvider serviceProvider) public CallMaterialOrderAppService(ICallMaterialOrderRepository callMaterialOrderRepository, SharedService sharedService, IServiceProvider serviceProvider) { callMaterialOrderRepository = _CallMaterialOrderRepository; _callMaterialOrderRepository = callMaterialOrderRepository; _sharedService = sharedService; _serviceProvider = serviceProvider; } @@ -39,7 +39,7 @@ /// <returns></returns> public virtual async Task<CallMaterialOrderDto> GetAsync(Guid id) { return ObjectMapper.Map<CallMaterialOrder, CallMaterialOrderDto>(await callMaterialOrderRepository.GetAsync(id)); return ObjectMapper.Map<CallMaterialOrder, CallMaterialOrderDto>(await _callMaterialOrderRepository.GetAsync(id)); } public virtual async Task CallMaterialByDataIdentifier(Guid id) @@ -49,7 +49,7 @@ public virtual async Task<CallMaterialOrder> FindByWmsTaskNoAsync(string wmsTaskNo) { return await callMaterialOrderRepository.FindByWmsTaskNoAsync(wmsTaskNo); return await _callMaterialOrderRepository.FindByWmsTaskNoAsync(wmsTaskNo); } /// <summary> @@ -73,8 +73,8 @@ #endregion var count = await callMaterialOrderRepository.GetCountAsync(whereConditions); var list = await callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); var count = await _callMaterialOrderRepository.GetCountAsync(whereConditions); var list = await _callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); return new PagedResultDto<CallMaterialOrderDto>(count, ObjectMapper.Map<List<CallMaterialOrder>, List<CallMaterialOrderDto>>(list)); } @@ -112,20 +112,20 @@ { await CheckCreateOrUpdateDtoAsync(input); var exist = await callMaterialOrderRepository.NameExistAsync(input.DataIdentifier); var exist = await _callMaterialOrderRepository.NameExistAsync(input.DataIdentifier); if (exist) { throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.DataIdentifier]); } var maxSort = await callMaterialOrderRepository.GetMaxSortAsync(); var maxSort = await _callMaterialOrderRepository.GetMaxSortAsync(); var sort = input.Sort ?? maxSort; var insertObj = ObjectMapper.Map<CallMaterialOrderCreateDto, CallMaterialOrder>(input); insertObj.Sort = sort; input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); await callMaterialOrderRepository.InsertAsync(insertObj); await _callMaterialOrderRepository.InsertAsync(insertObj); //if (input.Sort.HasValue && insertObj.Sort != maxSort) //{ @@ -146,8 +146,8 @@ { await CheckCreateOrUpdateDtoAsync(input); var updateObj = await callMaterialOrderRepository.GetAsync(id); var exist = await callMaterialOrderRepository.NameExistAsync(input.DataIdentifier, updateObj.Id); var updateObj = await _callMaterialOrderRepository.GetAsync(id); var exist = await _callMaterialOrderRepository.NameExistAsync(input.DataIdentifier, updateObj.Id); if (exist) { throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.DataIdentifier]); @@ -165,7 +165,7 @@ updateObj.Remark = input.Remark; await callMaterialOrderRepository.UpdateAsync(updateObj); await _callMaterialOrderRepository.UpdateAsync(updateObj); return ObjectMapper.Map<CallMaterialOrder, CallMaterialOrderDto>(updateObj); } @@ -217,7 +217,7 @@ /// <returns></returns> public virtual Task DeleteAsync(Guid id) { return callMaterialOrderRepository.DeleteAsync(id); return _callMaterialOrderRepository.DeleteAsync(id); } /// <summary> @@ -241,7 +241,7 @@ /// <returns></returns> public virtual async Task AdjustSortAsync(Guid id, int sort) { var list = await callMaterialOrderRepository.GetListAsync(null, nameof(CallMaterialOrder.Sort)); var list = await _callMaterialOrderRepository.GetListAsync(null, nameof(CallMaterialOrder.Sort)); if (list != null && list.Any()) { var initSort = 1; @@ -268,7 +268,7 @@ } } await callMaterialOrderRepository.UpdateManyAsync(list); await _callMaterialOrderRepository.UpdateManyAsync(list); } /// <summary> @@ -313,7 +313,7 @@ throw new UserFriendlyException(errorMsg); } var oldCallMaterialOrder = await callMaterialOrderRepository.FindByNameAsync(impItem.DataIdentifier); var oldCallMaterialOrder = await _callMaterialOrderRepository.FindByNameAsync(impItem.DataIdentifier); if (oldCallMaterialOrder != null) { var callMaterialOrderUpdateDto = new CallMaterialOrderUpdateDto @@ -400,7 +400,7 @@ #endregion var list = await callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); var list = await _callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); var result = ObjectMapper.Map<List<CallMaterialOrder>, List<CallMaterialOrderDto>>(list); var sheets = new Dictionary<string, object> @@ -426,4 +426,28 @@ return Task.CompletedTask; } /// <summary> /// 根据条件获取叫料单表列表 /// </summary> /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, CancellationToken cancellationToken = default) { return await _callMaterialOrderRepository.GetListByFilterAsync(whereConditions); } /// <summary> /// 根据条件获取单个叫料单表 /// </summary> /// <param name="whereConditions"></param> /// <param name="isMultipleThrowException">是否查询出多条就报错</param> /// <param name="cancellationToken"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> public async Task<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool isMultipleThrowException = false, CancellationToken cancellationToken = default) { return await _callMaterialOrderRepository.GetSingleByFilterAsync(whereConditions, isMultipleThrowException); } } PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs
@@ -54,5 +54,23 @@ /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<CallMaterialOrder, bool>>> whereConditions, CancellationToken cancellationToken = default); Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<CallMaterialOrder, bool>>> whereConditions, CancellationToken cancellationToken = default); /// <summary> /// 根据条件获取叫料单表列表 /// </summary> /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, CancellationToken cancellationToken = default); /// <summary> /// 根据条件获取单个叫料单表 /// </summary> /// <param name="whereConditions"></param> /// <param name="isMultipleThrowException">是否查询出多条就报错</param> /// <param name="cancellationToken"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> Task<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool isMultipleThrowException = false, CancellationToken cancellationToken = default); } PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs
@@ -3,7 +3,8 @@ using CmsQueryExtensions.Extension; using Microsoft.EntityFrameworkCore; using System.Linq.Dynamic.Core; using System.Linq.Expressions; using System.Linq.Expressions; using Volo.Abp; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; @@ -118,5 +119,56 @@ { return (await GetQueryableAsync()) .Where(x => !x.IsDeleted).IncludeDetails(); } } /// <summary> /// 根据条件获取叫料单表列表 /// </summary> /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .IncludeDetails() .WhereIf(whereConditions != null, whereConditions) .Where(x => !x.IsDeleted) .OrderByDescending(x => x.CreationTime) .ToListAsync(GetCancellationToken(cancellationToken)); } /// <summary> /// 根据条件获取单个叫料单表 /// </summary> /// <param name="whereConditions"></param> /// <param name="isMultipleThrowException">是否查询出多条就报错</param> /// <param name="cancellationToken"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> public async Task<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool isMultipleThrowException = false, CancellationToken cancellationToken = default) { if (isMultipleThrowException) { var entitys = await (await GetDbSetAsync()) .IncludeDetails() .WhereIf(whereConditions != null, whereConditions) .Where(x => !x.IsDeleted) .OrderByDescending(x => x.CreationTime) .ToListAsync(GetCancellationToken(cancellationToken)); if (entitys?.Count > 1) { throw new UserFriendlyException("查询到多条记录"); } return entitys?.FirstOrDefault(); } else { return await (await GetDbSetAsync()) .IncludeDetails() .WhereIf(whereConditions != null, whereConditions) .Where(x => !x.IsDeleted) .OrderByDescending(x => x.CreationTime) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } } } PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
@@ -377,8 +377,7 @@ pipeSpecCode3 = new_workPlanList[i].PipeSpecCode; } } //获取 批次 await callMaterialOrderAppService.wh Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?> { { "打码工件1",code1}, @@ -391,7 +390,7 @@ { "打码管段名称", new_workPlanList.First().PipeSectionName }, { "打码原料管型号", new_workPlanList.First().MaterialMode }, { "打码原料标识", new_workPlanList.First().DataIdentifier }, { "打码原料管批次", new_workPlanList.First() }, { "打码原料管批次", callMaterialOrder.MaterialBatch },//批次 }; _variableService.WriteValueAsync(keyValuePairs); @@ -662,7 +661,8 @@ { "切割管段编码", new_workPlanList.First().PipeSpecCode }, { "切割管段名称", new_workPlanList.First().PipeSectionName }, { "切割原料管型号", new_workPlanList.First().MaterialMode }, { "切割原料标识", new_workPlanList.First().DataIdentifier } { "切割原料标识", new_workPlanList.First().DataIdentifier }, { "切割原料管批次", callMaterialOrder.MaterialBatch },//批次 }; _variableService.WriteValueAsync(keyValuePairs);