/// <summary> /// 批量保存富士II类信息 /// </summary> /// <param name="infos">富士II类信息</param> /// <param name="type">费用类型</param> /// <returns>保存结果</returns> public JsonResult SaveFujiClass2s(List <FujiClass2Info> infos, FujiClass2Info.SectionType type) { if (CheckSession() == false) { return(Json(ResultModelBase.CreateTimeoutModel(), JsonRequestBehavior.AllowGet)); } if (CheckSessionID() == false) { return(Json(ResultModelBase.CreateLogoutModel(), JsonRequestBehavior.AllowGet)); } ResultModelBase result = new ResultModelBase(); try { this.fujiClassManager.SaveFujiClass2s(infos, type, GetLoginUser()); } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message); result.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage); } return(Json(result, JsonRequestBehavior.AllowGet)); }
public void SaveFujiClass2s(List <FujiClass2Info> infos, FujiClass2Info.SectionType type, UserInfo userInfo) { List <FujiClass2Info> existsInfos = this.QueryFujiClass2sByIDs(infos.Select(info => info.ID).ToList()); DataTable dt = FujiClass2Info.ConvertFujiClass2DataTable(infos); switch (type) { case FujiClass2Info.SectionType.Labour: this.fujiClassDao.UpdateFujiClass2Labour(dt); break; case FujiClass2Info.SectionType.Contract: this.fujiClassDao.UpdateFujiClass2Contract(dt); break; case FujiClass2Info.SectionType.Spare: this.fujiClassDao.UpdateFujiClass2Spare(dt); break; case FujiClass2Info.SectionType.Repair: this.fujiClassDao.UpdateFujiClass2Repair(dt); this.UpdateFaultRates(infos.SelectMany(info => info.Repairs).ToList()); break; } //转换日志信息 infos.Sort(); existsInfos.Sort(); List <AuditHdrInfo> audits = new List <AuditHdrInfo>(); int len = existsInfos.Count; for (int i = 0; i < len; i++) { AuditHdrInfo audit = existsInfos[i].ConvertAudit(infos[i], userInfo); audit.DetailInfo = audit.DetailInfo.Concat(FaultRateInfo.ConvertAuditDetail(existsInfos[i].Repairs, infos[i].Repairs)).ToList(); audits.Add(audit); } DataTable auditDT = audits.ConvertAuditDT(); DataTable auditDetailDT = null; this.auditDao.AddAuditHdr(auditDT); for (int i = 0; i < len; i++) { if (auditDetailDT == null) { auditDetailDT = audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"])); } else { auditDetailDT.Merge(audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"]))); } } this.auditDao.AddAuditDetail(auditDetailDT); }