public AssetExchangeCreatedEvent(Guid aggregateId, AssetExchange assetExchange, string message) { AssetName = assetExchange.AssetName; RequestOrgIdentifier = assetExchange.RequestOrgIdentifier; ExchangeOrgIdentifier = assetExchange.ExchangeOrgIdentifier; TargetOrgIdentifier = assetExchange.TargetOrgIdentifier; Message = message; AggregateId = aggregateId; }
/// <summary> /// 创建一个资产调换 /// </summary> /// <param name="asset"></param> /// <param name="user"></param> /// <param name="targetOrg"></param> /// <param name="exchangeOrg"></param> /// <param name="message"></param> /// <returns></returns> public async Task <AssetExchange> CreateAssetExchange(Asset asset, IUser user, Organization targetOrg, Organization exchangeOrg, string message) { asset.StatusChanged(AssetStatus.在途); var assetExchange = new AssetExchange(user, targetOrg, exchangeOrg, asset.Id, asset.AssetName, message); _assetRepository.Update(asset); return(await _assetExchangeRepository.AddAsync(assetExchange)); }
/// <summary> /// 删除资产调换 /// </summary> /// <param name="asset"></param> /// <param name="apply"></param> public void RemoveAssetExchange(Asset asset, AssetExchange apply) { //如果这条申请的状态已经是完成状态,那么就直接删除,不用调整资产的状态了。 if (apply.Status != AuditEntityStatus.已完成) { asset.StatusChanged(AssetStatus.在用); _assetRepository.Update(asset); } _assetExchangeRepository.Remove(apply); }
/// <summary> /// 处理资产调换 /// </summary> /// <param name="asset"></param> /// <param name="apply"></param> /// <param name="handleMessage"></param> /// <returns></returns> public async Task HandleAssetExchange(Asset asset, AssetExchange apply, string handleMessage) { //资产状态变化 asset.StatusChanged(AssetStatus.在用); asset.LastModifyDateTime = DateTime.Now; asset.LatestDeployRecord = $"从【{asset.StoredOrgIdentifier}】到【{apply.ExchangeOrgIdentifier}】"; asset.AssetLocation = "暂无"; asset.StoredOrgIdentifier = apply.ExchangeOrgIdentifier; asset.StoredOrgName = apply.ExchangeOrgNam; //申请状态变化 apply.Complete(handleMessage); //产生一条新的记录 var deploy = new AssetDeploy() { Id = Guid.NewGuid(), AssetDeployCategory = AssetDeployCategory.资产机构间调配, CreateDateTime = DateTime.Now, AssetTagNumber = asset.AssetTagNumber, AssetName = asset.AssetName, AssetId = asset.Id, AssetNo = asset.AssetNo, Org2 = apply.Org2, ExportOrgInfo = new OrganizationInfo { OrgId = apply.RequestOrgId, OrgIdentifier = apply.RequestOrgIdentifier, OrgNam = apply.RequestOrgNam }, ImportOrgInfo = new OrganizationInfo { OrgId = apply.ExchangeOrgId, OrgIdentifier = apply.ExchangeOrgIdentifier, OrgNam = apply.ExchangeOrgNam }, AuthorizeOrgInfo = new OrganizationInfo { OrgId = apply.TargetOrgId, OrgIdentifier = apply.TargetOrgIdentifier, OrgNam = apply.TargetOrgNam } }; //保存到数据库 _assetRepository.Update(asset); _assetExchangeRepository.Update(apply); await _assetDeployRepository.AddAsync(deploy); }
/// <summary> /// 撤销资产调换 /// </summary> /// <param name="apply"></param> /// <param name="handleMessage"></param> public void RevokeAssetExchange(AssetExchange apply, string handleMessage) { apply.Revoke(handleMessage); _assetExchangeRepository.Update(apply); }