public async Task <ResultEntity> AddSendLetter(LetterSendEditDto sendLetter) { var result = new ResultEntity(); var letter = Mapper.Map <Letter>(sendLetter); if (string.IsNullOrWhiteSpace(letter.BarcodeNo)) { var receiveDepartment = await _departmentManager.GetAsync(sendLetter.ReceiveDepartmentId); var sendDepartmentCode = TextHelper.RepairZeroRight(await _departmentManager.GetDepartmentCode(sendLetter.SendDepartmentId), 11); var receiveDepartmentCode = TextHelper.RepairZeroRight(await _departmentManager.GetDepartmentCode(sendLetter.ReceiveDepartmentId), 11); letter.LetterType = letter.GetSendLetterType(sendDepartmentCode, receiveDepartmentCode); if (receiveDepartment.ReceiveChannel == EnumChannel.机要通信) { letter.LetterType = EnumLetterType.发信; } int serialNumber; var barcodeNo = ""; switch (letter.LetterType) { case EnumLetterType.发信: switch (receiveDepartment.ReceiveChannel) { case EnumChannel.城交换: serialNumber = await _serialNumberManager.GetSerialNumber(letter.SendDepartmentId, EnumSerialNumberType.城交换); barcodeNo = _barcodeManager.MakeBarcodeLength26(sendDepartmentCode, receiveDepartmentCode, letter.SecretLevel, letter.UrgencyLevel, serialNumber); break; case EnumChannel.机要通信: serialNumber = await _serialNumberManager.GetSerialNumber(letter.SendDepartmentId, EnumSerialNumberType.机要通信); barcodeNo = _barcodeManager.MakeBarcodeLength33(sendDepartmentCode, receiveDepartmentCode, letter.SecretLevel, letter.UrgencyLevel, serialNumber); break; } break; case EnumLetterType.内交换: serialNumber = await _serialNumberManager.GetSerialNumber(letter.SendDepartmentId, EnumSerialNumberType.内部交换); barcodeNo = _barcodeManager.MakeBarcodeLength33(sendDepartmentCode, receiveDepartmentCode, letter.SecretLevel, letter.UrgencyLevel, serialNumber); break; default: throw new ArgumentOutOfRangeException($"发信类型有误"); } if (barcodeNo == "") { result.Message = "条码生成失败"; return(result); } letter.BarcodeNo = barcodeNo; letter.LetterNo = letter.GetLetterNo(barcodeNo); } else { var receiveDepartment = await _departmentManager.GetAsync(sendLetter.ReceiveDepartmentId); var sendDepartment = await _departmentManager.GetAsync(sendLetter.SendDepartmentId); var sendDepartmentCode = TextHelper.RepairZeroRight(await _departmentManager.GetDepartmentCode(sendLetter.SendDepartmentId), 11); var receiveDepartmentCode = TextHelper.RepairZeroRight(await _departmentManager.GetDepartmentCode(sendLetter.ReceiveDepartmentId), 11); letter.LetterType = letter.GetSendLetterType(sendDepartmentCode, receiveDepartmentCode); letter.LetterNo = letter.GetLetterNo(letter.BarcodeNo); if (receiveDepartment.ReceiveChannel == EnumChannel.机要通信) { letter.LetterType = EnumLetterType.发信; } if (sendDepartment.ReceiveChannel == EnumChannel.机要通信) { letter.LetterType = EnumLetterType.收信; } } await _letterRepository.AddAsync(letter); var barcode = new Barcode { BarcodeNo = letter.BarcodeNo, Entity = EnumBarcodeEntity.信件, Souce = EnumBarcodeSouce.本系统, Status = EnumBarcodeStatus.已就绪, SubStatus = EnumBarcodeSubStatus.正常, CreateTime = DateTime.Now, CreateBy = letter.CreateBy }; barcode.BarcodeType = barcode.AnalysisBarcodeType(letter.BarcodeNo); await _barcodeRepository.AddAsync(barcode); var baroceLog = new BarcodeLog { BarcodeNumber = letter.BarcodeNo, BarcodeStatus = EnumBarcodeStatus.已就绪, DepartmentId = letter.SendDepartmentId, OperationTime = DateTime.Now, OperatorId = letter.CreateBy, }; await _barcodeLogRepository.AddAsync(baroceLog); result.Success = true; await _unitOfWork.CommitAsync(); result.Data = letter.Id; return(result); }
public async Task <DepartmentEditDto> GetForEditByIdAsync(int id) { return(Mapper.Map <DepartmentEditDto>(await _departmentManager.GetAsync(id))); }