/// <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));
        }
Ejemplo n.º 2
0
 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);
 }