Example #1
0
        /// <summary>
        /// 获取列表数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResultList <XsLadeBaseDO> > GetAllSync(XsLadeBaseDTO model)
        {
            var expression = model.GetExpression();
            var orders     = model.GetOrder();
            var entities   = await _xsLadeBaseRepository.GetAllAsync(expression, isMaster : false, orderByFields : orders);

            return(ApiResultUtil.IsSuccess <XsLadeBaseDO>(entities?.ToList()));
        }
Example #2
0
 public Task <ApiResult <XsLadeBaseVO> > GetByLadeIdSync([FromQuery] XsLadeBaseDTO model)
 {
     if (string.IsNullOrWhiteSpace(model.XLB_LadeId))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed <XsLadeBaseVO>("发货单编号不允许为空!")));
     }
     if (string.IsNullOrWhiteSpace(model.XLB_Firm))
     {
         return(Task.FromResult(ApiResultUtil.IsFailed <XsLadeBaseVO>("所属企业不允许为空!")));
     }
     return(factory.GetGrain <IXsLadeBaseGrain>(System.Guid.NewGuid().ToString()).GetByLadeIdSync(model));
 }
Example #3
0
        /// <summary>
        /// 根据企业主键和发货单编号,查发货单数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult <XsLadeBaseVO> > GetByLadeIdSync(XsLadeBaseDTO model)
        {
            var expression = model.GetExpression2();
            var entitys    = await _xsLadeBaseRepository.GetAllAsync(expression, isMaster : false);

            if (entitys.AsList().Count == 0)
            {
                return(ApiResultUtil.IsFailed <XsLadeBaseVO>("当前企业该发货单编号不存在,请核对!"));
            }
            else if (entitys.AsList().Count > 1)
            {
                return(ApiResultUtil.IsFailed <XsLadeBaseVO>("当前企业该发货单编号存在多条,请核对!"));
            }
            var xsLadeBaseVO = this.ObjectMapper.Map <XsLadeBaseVO>(entitys.FirstOrDefault());

            if (xsLadeBaseVO.XLB_Status == "2")
            {
                return(ApiResultUtil.IsFailed <XsLadeBaseVO>("该发货单已冲红,请核对!"));
            }

            //查客商名称
            if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Client))
            {
                var xsCompyBaseResult = await _orleansClient.GetGrain <IXsCompyBaseStateGrain>(xsLadeBaseVO.XLB_Firm).GetAllSync(new XsCompyBaseDTO {
                    Ids = new List <string> {
                        xsLadeBaseVO.XLB_Client
                    }
                });

                if (xsCompyBaseResult.Success && xsCompyBaseResult.Data.Count > 0)
                {
                    xsLadeBaseVO.XLB_ClientName = xsCompyBaseResult.Data[0].XOB_Name;
                }
            }
            //查企业名称
            if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Firm))
            {
                var pbBasicFirmResult = await _orleansClient.GetGrain <IPbBasicFirmStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new PbBasicFirmDTO {
                    Ids = new List <string> {
                        xsLadeBaseVO.XLB_Firm
                    }
                });

                if (pbBasicFirmResult.Success && pbBasicFirmResult.Data.Count > 0)
                {
                    xsLadeBaseVO.XLB_FirmName = pbBasicFirmResult.Data[0].PBF_ShortName;
                }
            }
            //查物料名称
            if (!string.IsNullOrEmpty(xsLadeBaseVO.XLB_Cement))
            {
                var pbCodeMaterialResult = await _orleansClient.GetGrain <IPbCodeMaterialStateGrain>(xsLadeBaseVO.XLB_Firm).GetAllSync(new PbCodeMaterialDTO {
                    Ids = new List <string> {
                        xsLadeBaseVO.XLB_Cement
                    }
                });

                if (pbCodeMaterialResult.Success && pbCodeMaterialResult.Data.Count > 0)
                {
                    xsLadeBaseVO.XLB_CementName = pbCodeMaterialResult.Data[0].PCM_Name;
                }
            }

            return(await Task.FromResult(ApiResultUtil.IsSuccess(xsLadeBaseVO)));
        }
Example #4
0
        /// <summary>
        /// 删除发货单作废
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> DelAsync(SubmitDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            if (dto.Version != this.State.Version)
            {
                return(ApiResultUtil.IsFailed("数据已被修改,请重新再加载!"));
            }
            dto.Version++;

            #region  除发货单作废
            //查对应发货单
            var xsLadeBaseResult = await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(this.State.XLR_Lade).GetAsync();

            XsLadeBaseDTO xsLadeBaseDTO = xsLadeBaseResult.Success ? this.ObjectMapper.Map <XsLadeBaseDTO>(xsLadeBaseResult.Data) : null;
            //删除发货单作废
            XsLadeRimpactState xsLadeRimpactState = this.State;
            xsLadeRimpactState.IsDel        = 1;
            xsLadeRimpactState.ModityBy     = model.UserId;
            xsLadeRimpactState.ModityByName = model.UserName;
            xsLadeRimpactState.ModityDate   = System.DateTime.Now;
            xsLadeRimpactState.Version      = dto.Version;
            XsLadeRimpactDO xsLadeRimpactDO = this.ObjectMapper.Map <XsLadeRimpactDO>(xsLadeRimpactState);
            bool            bRet            = await _xsLadeRimpactRepository.SetAsync(xsLadeRimpactDO);;
            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据更新失败!"));
            }
            #endregion

            //查对应应收款
            IList <XsReceReceivableDO> xsReceReceivableDOs = new List <XsReceReceivableDO>();
            if (xsLadeRimpactState.XLR_Type == "101")//本月
            {
                #region 更新发货单状态
                xsLadeBaseDTO.XLB_Status = "1";
                await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(xsLadeBaseDTO.Id).UpdateAsync(new SubmitDTO <XsLadeBaseDTO>
                {
                    Data     = xsLadeBaseDTO,
                    UserId   = model.UserId,
                    UserName = model.UserName
                });

                #endregion

                #region 还原应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.XLR_Lade,
                    XRC_Origins = { "102", "103", "104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        xsReceReceivableDO.IsDel = 0;
                        XsReceReceivableDTO xsReceReceivableDTO = this.ObjectMapper.Map <XsReceReceivableDTO>(xsReceReceivableDO);
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).UpdateAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }
            else if (xsLadeRimpactState.XLR_Type == "102")//跨月
            {
                #region  除调整应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.Id,
                    XRC_Origins = { "4102", "4103", "4104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        xsReceReceivableDO.IsDel = 1;
                        XsReceReceivableDTO xsReceReceivableDTO = this.ObjectMapper.Map <XsReceReceivableDTO>(xsReceReceivableDO);
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).UpdateAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }

            await this.Persist(ProcessAction.Update, xsLadeRimpactState);

            return(ApiResultUtil.IsSuccess("处理成功!"));
        }
Example #5
0
        /// <summary>
        /// 新增发货单作废
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResult> AddAsync(SubmitDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            #region 插入发货单作废
            //查对应发货单
            ApiResult <XsLadeBaseVO> xsLadeBaseResult = await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(dto.XLR_Lade).GetAsync();

            XsLadeBaseDTO xsLadeBaseDTO = xsLadeBaseResult.Success ? this.ObjectMapper.Map <XsLadeBaseDTO>(xsLadeBaseResult.Data) : null;
            //插入发货单作废
            XsLadeRimpactDO xsLadeRimpactDO = this.ObjectMapper.Map <XsLadeRimpactDO>(dto);
            xsLadeRimpactDO.XLR_Total    = xsLadeBaseDTO.XLB_FactTotal;
            xsLadeRimpactDO.CreateBy     = model.UserId;
            xsLadeRimpactDO.CreateByName = model.UserName;
            xsLadeRimpactDO.CreateDate   = System.DateTime.Now;
            xsLadeRimpactDO.ModityBy     = model.UserId;
            xsLadeRimpactDO.ModityByName = model.UserName;
            xsLadeRimpactDO.ModityDate   = System.DateTime.Now;
            bool bRet = await _xsLadeRimpactRepository.AddAsync(xsLadeRimpactDO);;
            if (!bRet)
            {
                return(ApiResultUtil.IsFailed("数据插入失败!"));
            }
            #endregion

            if (dto.XLR_Type == "101")//本月
            {
                #region 更新发货单状态
                xsLadeBaseDTO.XLB_Status = "2";
                await this.GrainFactory.GetGrain <IXsLadeBaseStateGrain>(xsLadeBaseDTO.Id).UpdateAsync(new SubmitDTO <XsLadeBaseDTO>
                {
                    Data     = xsLadeBaseDTO,
                    UserId   = model.UserId,
                    UserName = model.UserName
                });

                #endregion

                #region  除应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.XLR_Lade,
                    XRC_Origins = { "102", "103", "104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        xsReceReceivableDO.IsDel = 1;
                        XsReceReceivableDTO xsReceReceivableDTO = this.ObjectMapper.Map <XsReceReceivableDTO>(xsReceReceivableDO);
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).UpdateAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }
            else if (dto.XLR_Type == "102")//跨月
            {
                #region 插入调整应收款
                var xsReceReceivableResult = await this.GrainFactory.GetGrain <IXsReceReceivableGrain>(this.GrainId).GetAllSync(new XsReceReceivableDTO
                {
                    XRC_BillID  = dto.XLR_Lade,
                    XRC_Origins = { "102", "103", "104" }
                });

                if (xsReceReceivableResult.Success && xsReceReceivableResult.Data.Count > 0)
                {
                    foreach (XsReceReceivableDO xsReceReceivableDO in xsReceReceivableResult.Data)
                    {
                        XsReceReceivableDTO xsReceReceivableDTO = new XsReceReceivableDTO
                        {
                            Id          = await this.GrainFactory.GetGrain <IUtcUID>(GrainIdKey.UtcUIDGrainKey).NewID(),
                            XRC_SetDate = xsLadeRimpactDO.XLR_SetDate,
                            XRC_BillID  = xsLadeRimpactDO.Id,//作废主键
                            XRC_Origin  = "4" + xsReceReceivableDO.XRC_Origin,
                            XRC_Total   = -xsReceReceivableDO.XRC_Total,
                            XRC_Firm    = xsLadeRimpactDO.XLR_Firm
                        };
                        await this.GrainFactory.GetGrain <IXsReceReceivableStateGrain>(xsReceReceivableDTO.Id).AddAsync(new SubmitDTO <XsReceReceivableDTO>
                        {
                            Data     = xsReceReceivableDTO,
                            UserId   = model.UserId,
                            UserName = model.UserName
                        });
                    }
                }
                #endregion
            }

            //更新服务状态
            XsLadeRimpactState xsLadeRimpactState = this.ObjectMapper.Map <XsLadeRimpactState>(xsLadeRimpactDO);

            await this.Persist(ProcessAction.Create, xsLadeRimpactState);

            return(ApiResultUtil.IsSuccess("处理成功!"));
        }