/// <summary> /// 创建资产交回 /// </summary> /// <param name="asset"></param> /// <param name="user"></param> /// <param name="targetOrg"></param> /// <param name="message"></param> /// <returns></returns> public async Task <AssetReturn> CreateAssetReturn(Asset asset, IUser user, Organization targetOrg, string message) { asset.StatusChanged(AssetStatus.在途); var assetReturn = new AssetReturn(user, targetOrg, asset.Id, asset.AssetName, message); _assetRepository.Update(asset); return(await _assetReturnRepository.AddAsync(assetReturn)); }
public AssetReturnRevokedEvent(Guid aggregateId, AssetReturn assetReturn, string message) { AssetName = assetReturn.AssetName; RequestOrgIdentifier = assetReturn.RequestOrgIdentifier; TargetOrgIdentifier = assetReturn.TargetOrgIdentifier; Message = message; AggregateId = aggregateId; }
/// <summary> /// 删除资产交回 /// </summary> /// <param name="asset"></param> /// <param name="apply"></param> public void RemoveAssetReturn(Asset asset, AssetReturn apply) { //如果这条申请的状态已经是完成状态,那么就直接删除,不用调整资产的状态了。 if (apply.Status != AuditEntityStatus.已完成) { asset.StatusChanged(AssetStatus.在用); _assetRepository.Update(asset); } _assetReturnRepository.Remove(apply); }
/// <summary> /// 处理资产交回 /// </summary> /// <param name="asset"></param> /// <param name="apply"></param> /// <param name="handleMessage"></param> /// <returns></returns> public async Task HandleAssetReturn(Asset asset, AssetReturn apply, string handleMessage) { //资产状态变化 asset.StatusChanged(AssetStatus.在库); asset.LastModifyDateTime = DateTime.Now; asset.LatestDeployRecord = $"从【{asset.StoredOrgIdentifier}】到【{apply.TargetOrgIdentifier}】"; asset.AssetLocation = "暂无"; asset.StoredOrgIdentifier = apply.TargetOrgIdentifier; asset.StoredOrgName = apply.TargetOrgNam; //申请状态变化 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.TargetOrgId, OrgIdentifier = apply.TargetOrgIdentifier, OrgNam = apply.TargetOrgNam }, AuthorizeOrgInfo = new OrganizationInfo() { OrgId = apply.TargetOrgId, OrgIdentifier = apply.TargetOrgIdentifier, OrgNam = apply.TargetOrgNam } }; //保存到数据库 _assetRepository.Update(asset); _assetReturnRepository.Update(apply); await _assetDeployRepository.AddAsync(deploy); }
/// <summary> /// 撤销资产交回 /// </summary> /// <param name="apply"></param> /// <param name="handleMessage"></param> public void RevokeAssetReturn(AssetReturn apply, string handleMessage) { apply.Revoke(handleMessage); _assetReturnRepository.Update(apply); }