/// <summary> /// 补录情况 /// </summary> /// <param name="para"></param> private static void TotalUp2_BuLu(AssetM para) { // 查询最后更新资产日期 DateTimeOffset lastUpDay = AssetDal.GetLastUpDay(); // 表里没有有效更新数据,这种情况也不更新总值. if (lastUpDay == default) { para.ErrorCode = 302; para.ErrorMsg = "没有任何更新记录,不可更新总值!"; return; } // 如果日期不是今天,(也就是今天没有更新过资产).再查询这个日期的总值记录, // 如果没有记录,那么补录(总值日期为这天). // 如果有记录,那么不可以更新. int lastday = int.Parse(lastUpDay.ToString("yyyyMMdd")); if (lastday < int.Parse(DateTimeOffset.Now.ToString("yyyyMMdd"))) { AssetM totalByDay = TotalDayDal.GetLastValue(lastday); if (totalByDay == null) { // 补录 AssetM totalVal = ValueTotal(); if (totalVal.ErrorCode != 200) { para.ErrorCode = 304; para.ErrorMsg = "补录失败,获取总值出错!"; return; } para.Id = RandHelp.NewGuid(); para.Value = totalVal.Value; para.Ctime = DateTimeOffset.Now; para.TotalDate = lastday; TotalDayDal.UpdateVal(para); if (para.ErrorCode == 200) { para.ErrorCode = 201; para.ErrorMsg = "补录成功!"; } } else { para.ErrorCode = 303; para.ErrorMsg = "今天没更新资产,不可更新总值!"; } } // }
/// <summary> /// 更新总资产数据表 /// </summary> /// <returns></returns> public static AssetM TotalUp() { AssetM m = new AssetM(); // 1.过时检查 TotalUp1_LastTime(m); if (m.ErrorCode > 300) { return(m); } // 2.补录情况 TotalUp2_BuLu(m); if (m.ErrorCode > 300) { return(m); } // 2.1补录成功情况 if (m.ErrorCode == 201) { return(m); } // 写入数据 AssetM totalVal = ValueTotal(); if (totalVal.ErrorCode != ErrCode.Success) { m.ErrorCode = 306; m.ErrorMsg = "更新失败,获取总值出错!"; return(m); } m.Id = RandHelp.NewGuid(); m.Value = totalVal.Value; m.Ctime = DateTimeOffset.Now; m.TotalDate = int.Parse(DateTimeOffset.Now.ToString("yyyyMMdd")); TotalDayDal.UpdateVal(m); return(m); }