diff --git a/BasicData/Tnb.BasicData/BasMbomService.cs b/BasicData/Tnb.BasicData/BasMbomService.cs index 586fc06c..356f7cb4 100644 --- a/BasicData/Tnb.BasicData/BasMbomService.cs +++ b/BasicData/Tnb.BasicData/BasMbomService.cs @@ -133,6 +133,7 @@ namespace Tnb.BasicData [HttpPost] public async Task SaveData(MbomSaveDataInput mbomSaveDataInput) { + ErrorCode errorCode = ErrorCode.COM1008; DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { //新增 @@ -158,6 +159,13 @@ namespace Tnb.BasicData create_time = DateTime.Now, }; + + if (await _repository.IsAnyAsync(x => + x.material_id == mbomSaveDataInput.material_id && x.version == mbomSaveDataInput.version)) + { + errorCode = ErrorCode.COM1004; + throw Oops.Oh(ErrorCode.COM1004); + } await _repository.InsertAsync(mbom); List processes = new List(); List inputs = new List(); @@ -233,6 +241,13 @@ namespace Tnb.BasicData } else//修改 { + if (await _repository.IsAnyAsync(x => + x.material_id == mbomSaveDataInput.material_id && x.version == mbomSaveDataInput.version && x.id!=mbomSaveDataInput.id)) + { + errorCode = ErrorCode.COM1004; + throw Oops.Oh(ErrorCode.COM1004); + } + string orgId = _userManager.GetUserInfo().Result.organizeId; await _repository.UpdateAsync(x=>new BasMbom() { @@ -334,11 +349,25 @@ namespace Tnb.BasicData { if (!string.IsNullOrEmpty(mbomSaveDataInput.id)) { - throw Oops.Oh(ErrorCode.COM1001); + if (errorCode != ErrorCode.COM1004) + { + throw Oops.Oh(ErrorCode.COM1001); + } + else + { + throw Oops.Oh(errorCode); + } } else { - throw Oops.Oh(ErrorCode.COM1000); + if (errorCode != ErrorCode.COM1004) + { + throw Oops.Oh(ErrorCode.COM1000); + } + else + { + throw Oops.Oh(errorCode); + } } }