/// <summary> /// Handle前检查 /// </summary> /// <param name="entity"></param> protected virtual void PreCheckForHandle(PostIncomeInfo entity, string confirmedSOSysNoStr) { entity.Validate(p => p.SysNo != null, () => { throw new ArgumentNullException("entity.SysNo"); }) .Validate(p => p.HandleStatus != null, () => { throw new ArgumentNullException("entity.HandleStatus"); }); var soSysNoList = confirmedSOSysNoStr.Replace(",", ".") .Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries) .Distinct().ToList() .ConvertAll(s => Int32.Parse(s)); var soList = ExternalDomainBroker.GetSOBaseInfoList(soSysNoList); if (soList.Count != soSysNoList.Count) { var exceptSysNoList = soSysNoList.Except(soList.Select(s => s.SysNo.Value)).ToList(); ThrowBizException("PostIncome_InvalidSOSysNo", string.Join(".", exceptSysNoList)); } else { var recTotal = soList.Sum(s => s.ReceivableAmount); if (recTotal > entity.IncomeAmt.Value) { ThrowBizException("PostIncome_ReceivableAmtMoreThanIncomeAmt"); } } }