/// <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())); }
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)); }
/// <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))); }
/// <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("处理成功!")); }
/// <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("处理成功!")); }