/////////// /// <summary> /// 更新作业单据信息 /// </summary> /// <param name="dtos">包含更新信息的物料DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> AddTask(params MatStorageModifyInfoInputDto[] dtos) { List <string> names = new List <string>(); // MatStorageModifyInfoRepository.UnitOfWork.BeginTransaction(); foreach (MatStorageModifyInfoInputDto dto in dtos) { names.Add(dto.StorageModifyCode); List <Guid> MaterialBatchIds = new List <Guid>(); // var setResult = await SetMaterialOutStorageMaterialBatch(dto.Id, dto, dto.UserName); if (setResult.ResultType.Equals(OperationResultType.Error)) { return(setResult); } // dto.FinishTime = DateTime.Now; //调整结束 dto.StorageModifyState = (int)StorageModifyStateEnumModel.StorageModifyState.StorageModifyFinishState; // int count = 0; // MatStorageModifyInfo materialoutstorageInfo = new MatStorageModifyInfo(); materialoutstorageInfo = dto.MapTo(materialoutstorageInfo); // count += await MatStorageModifyInfoRepository.UpdateAsync(materialoutstorageInfo); } MatStorageModifyInfoRepository.UnitOfWork.Commit(); return(new OperationResult(OperationResultType.Success, "库位“{0}”更新成功".FormatWith(names.ExpandAndToString()))); }
/// <summary> /// 更新库存调整信息 /// </summary> /// <param name="inputDtos"></param> /// <returns></returns> public async Task <OperationResult> Update(params MatStorageModifyInfoInputDto[] inputDtos) { inputDtos.CheckNotNull("inputDtos"); // foreach (MatStorageModifyInfoInputDto dtoData in inputDtos) { if (string.IsNullOrEmpty(dtoData.StorageModifyCode)) { return(new OperationResult(OperationResultType.Error, "请正确填写单据编号,该组数据不被存储。")); } //if (string.IsNullOrEmpty(dtoData.WareHouseName)) // return new OperationResult(OperationResultType.Error, "请正确填写仓库名称,该组数据不被存储。"); // if (dtoData.CurrentAmount > 500) { return(new OperationResult(OperationResultType.Error, $"调整数量不能大于500,该组数据不被存储。")); } if (dtoData.CurrentAmount > dtoData.FullPalletQuantity) { return(new OperationResult(OperationResultType.Error, "调整数量(" + dtoData.CurrentAmount.ToString() + ")大于满盘数量(" + dtoData.FullPalletQuantity.ToString() + "),该组数据不被存储。")); } // //// //if (MatStorageModifyInfoRepository.CheckExists(x => x.WareHouseCode == dtoData.WareHouseCode && x.Id != dtoData.Id )) // return new OperationResult(OperationResultType.Error, $"仓库编号 {dtoData.WareHouseCode} 的数据已存在,该组数据不被存储。"); //if (MaterialInStorageRepository.CheckExists(x => x.WareHouseName == dtoData.WareHouseName && x.Id != dtoData.Id )) // return new OperationResult(OperationResultType.Error, $"仓库名称 {dtoData.WareHouseName} 的数据已存在,该组数据不被存储。"); } // MatStorageModifyInfoRepository.UnitOfWork.BeginTransaction(); // //MaterialInfo info = new MaterialInfo(); //foreach (var item in inputDtos) //{ // info = MaterialInfoRepository.TrackEntities.Where(m => m.Id == item.Material_Id).FirstOrDefault(); // item.Material = info; //} //// //MaterialInStorageTypeInfo matwarehousetypeinfo = new MaterialInStorageTypeInfo(); //foreach (var item in inputDtos) //{ // matwarehousetypeinfo = MaterialInStorageTypeInfoRepository.TrackEntities.Where(m => m.Id == item.MaterialInStorageType_Id).FirstOrDefault(); // item.MaterialInStorageType = matwarehousetypeinfo; //} // // MaterialBatchInfo materialbatchinfo = new MaterialBatchInfo(); foreach (var item in inputDtos) { materialbatchinfo = MaterialBatchInfoRepository.TrackEntities.Where(m => m.Id == item.MaterialBatch_Id).FirstOrDefault(); item.MaterialBatch = materialbatchinfo; } // var result = await MatStorageModifyInfoRepository.UpdateAsync(inputDtos); MatStorageModifyInfoRepository.UnitOfWork.Commit(); return(result); }
/// <summary> /// 物理删除库存调整信息 /// </summary> /// <param name="ids"></param> /// <returns></returns> public async Task <OperationResult> Delete(params Guid[] ids) { ids.CheckNotNull("ids"); MatStorageModifyInfoRepository.UnitOfWork.BeginTransaction(); var result = await MatStorageModifyInfoRepository.DeleteAsync(ids); MatStorageModifyInfoRepository.UnitOfWork.Commit(); return(result); }
/// <summary> /// 增加库存调整信息 /// </summary> /// <param name="inputDtos"></param> /// <returns></returns> public async Task <OperationResult> Add(params MatStorageModifyInfoInputDto[] inputDtos) { inputDtos.CheckNotNull("inputDtos"); foreach (var dtoData in inputDtos) { if (string.IsNullOrEmpty(dtoData.StorageModifyCode)) { return(new OperationResult(OperationResultType.Error, "请正确填写单据编号,该组数据不被存储。")); } //if (string.IsNullOrEmpty(dtoData.WareHouseName)) // return new OperationResult(OperationResultType.Error, "请正确填写仓库名称,该组数据不被存储。"); // if (dtoData.CurrentAmount > 500) { return(new OperationResult(OperationResultType.Error, $"调整数量不能大于500,该组数据不被存储。")); } if (dtoData.CurrentAmount > dtoData.FullPalletQuantity) { return(new OperationResult(OperationResultType.Error, "调整数量(" + dtoData.CurrentAmount.ToString() + ")大于满盘数量(" + dtoData.FullPalletQuantity.ToString() + "),该组数据不被存储。")); } // //// //if (MaterialInStorageRepository.CheckExists(x => x.WareHouseCode == dtoData.WareHouseCode)) // return new OperationResult(OperationResultType.Error, $"仓库编号 {dtoData.WareHouseCode} 的数据已存在,该组数据不被存储。"); //if (MaterialInStorageRepository.CheckExists(x => x.WareHouseName == dtoData.WareHouseName)) // return new OperationResult(OperationResultType.Error, $"仓库名称 {dtoData.WareHouseName} 的数据已存在,该组数据不被存储。"); //// //dtoData.Material = MaterialInfoRepository.TrackEntities.Where(m => m.Id == dtoData.Material_Id).FirstOrDefault(); //if (Equals(dtoData.Material, null)) //{ // return new OperationResult(OperationResultType.Error, $"对应的物料信息不存在,该组数据不被存储。"); //} //// //dtoData.MaterialInStorageType = MaterialInStorageTypeInfoRepository.TrackEntities.Where(m => m.Id == dtoData.MaterialInStorageType_Id).FirstOrDefault(); //if (Equals(dtoData.MaterialInStorageType, null)) //{ // return new OperationResult(OperationResultType.Error, $"对应的仓库类型不存在,该组数据不被存储。"); //} // dtoData.MaterialBatch = MaterialBatchInfoRepository.TrackEntities.Where(m => m.Id == dtoData.MaterialBatch_Id).FirstOrDefault(); if (Equals(dtoData.MaterialBatch, null)) { return(new OperationResult(OperationResultType.Error, $"对应的批次不存在,该组数据不被存储。")); } } MatStorageModifyInfoRepository.UnitOfWork.BeginTransaction(); var result = await MatStorageModifyInfoRepository.InsertAsync(inputDtos); MatStorageModifyInfoRepository.UnitOfWork.Commit(); // return(result); }
/// <summary> /// 检查实体是否存在 /// </summary> /// <param name="predicate"></param> /// <param name="id"></param> /// <returns></returns> public bool CheckExists(Expression <Func <MatStorageModifyInfo, bool> > predicate, Guid id) { return(MatStorageModifyInfoRepository.CheckExists(predicate, id)); }