public void UpdateKPIType(T_HR_KPITYPE entType, List <T_HR_KPIREMIND> addList, List <T_HR_KPIREMIND> updateList, List <T_HR_KPIREMIND> delList, ref string strMsg) { try { //实体不存在 if (entType == null) { // throw new Exception("{REQUIREDFIELDS}"); strMsg = "{REQUIREDFIELDS}"; return; } //评分方式不存在 if (entType.T_HR_SCORETYPE == null) { // throw new Exception("{KPITYPEREQUIREDFIELDS}"); strMsg = "{KPITYPEREQUIREDFIELDS}"; return; } //更新KPI类别信息 var ents = from ent in dal.GetObjects <T_HR_KPITYPE>() where ent.KPITYPEID == entType.KPITYPEID select ent; if (ents.Count() > 0) { //edm = this.DataContext; // 1s 冉龙军 //edm.Connection.Open(); //if (edm.Connection.State == System.Data.ConnectionState.Closed) //{ // edm.Connection.Open(); //} //// 1e //tran = edm.Connection.BeginTransaction(); //更新KPI类别信息和评分方式 var ent = ents.FirstOrDefault(); //更新KPI类别信息 Utility.CloneEntity(entType, ent); //Utility.RefreshEntity(ent); dal.UpdateFromContext(ent); dal.SaveContextChanges(); //更新评分方式 var scoreTypes = from sco in dal.GetObjects <T_HR_SCORETYPE>() where sco.SCORETYPEID == entType.T_HR_SCORETYPE.SCORETYPEID select sco; if (scoreTypes.Count() > 0) { T_HR_SCORETYPE scoreType = scoreTypes.FirstOrDefault(); Utility.CloneEntity <T_HR_SCORETYPE>(entType.T_HR_SCORETYPE, scoreType); // 1s 冉龙军 //ent.T_HR_SCORETYPE.T_HR_RANDOMGROUPReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_RANDOMGROUP", // "RANDOMGROUPID", entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP.RANDOMGROUPID); if (entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP != null) { //Utility.CloneEntity<T_HR_RANDOMGROUP>(entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP, ent.T_HR_SCORETYPE.T_HR_RANDOMGROUP); scoreType.T_HR_RANDOMGROUPReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_RANDOMGROUP", "RANDOMGROUPID", entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP.RANDOMGROUPID); } //Utility.RefreshEntity(scoreType); dal.Update(scoreType); if (entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP != null) { string strSql = @" update T_HR_SCORETYPE set RANDOMGROUPID ='" + entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP.RANDOMGROUPID + "'"; dal.ExecuteCustomerSql(strSql); } else { string strSql = @" update T_HR_SCORETYPE set RANDOMGROUPID =''"; dal.ExecuteCustomerSql(strSql); } } // 1e //Utility.RefreshEntity(entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP); //Utility.CloneEntity<T_HR_RANDOMGROUP>(entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP, ent.T_HR_SCORETYPE.T_HR_RANDOMGROUP); #region 更新提醒信息 //增加提醒信息 if (addList != null && addList.Count > 0) { foreach (T_HR_KPIREMIND remind in addList) { var tempEnt = dal.GetObjects <T_HR_KPIREMIND>().FirstOrDefault(s => s.REMINDID == remind.REMINDID); if (tempEnt == null) { //添加提醒信息 //ent.T_HR_SCORETYPE.T_HR_KPIREMIND.Add(remind); //断开外键 Utility.RefreshEntity(remind); //添加提醒信息 dal.AddToContext(remind); //this.DataContext.AddObject("T_HR_KPIREMIND", remind); } } } //删除提醒信息 if (delList != null && delList.Count > 0) { foreach (T_HR_KPIREMIND remind in delList) { var tempEnt = dal.GetObjects <T_HR_KPIREMIND>().FirstOrDefault(s => s.REMINDID == remind.REMINDID); if (tempEnt != null) { //断开外键 Utility.RefreshEntity(tempEnt); //删除提醒信息 //ent.T_HR_SCORETYPE.T_HR_KPIREMIND.Remove(remind); //dal.Delete(remind); dal.DeleteFromContext(remind); //this.DataContext.DeleteObject(tempEnt); } } } //更新提醒信息 if (updateList != null && updateList.Count > 0) { foreach (T_HR_KPIREMIND remind in updateList) { var ress = from re in dal.GetObjects <T_HR_KPIREMIND>() where re.REMINDID == remind.REMINDID select re; if (ress.Count() > 0) { var re = ress.FirstOrDefault(); Utility.CloneEntity(remind, re); dal.UpdateFromContext(re); } //foreach (T_HR_KPIREMIND re in ent.T_HR_SCORETYPE.T_HR_KPIREMIND) //{ // if (remind.REMINDID.Equals(re.REMINDID)) // { // //更新KPI类别信息 // Utility.CloneEntity(remind, re); // break; // } //} //var tempEnt = DataContext.T_HR_KPIREMIND.FirstOrDefault(s => s.REMINDID == remind.REMINDID); //if (tempEnt != null) //{ // //更新提醒信息 // Utility.CloneEntity<T_HR_KPIREMIND>(tempEnt, remind); //} } } #endregion 更新提醒信息 //统一提交 dal.SaveContextChanges(); //DataContext.SaveChanges(); //tran.Commit(); } } catch (Exception ex) { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + " UpdateKPITypes:" + ex.Message); //if (tran != null) // tran.Rollback(); //throw ex; } finally { } }
/// <summary> /// 增加KPI类别信息和评分方式 /// </summary> /// <param name="entity">KPI类别实体.评分方式</param> public void AddKPIType(T_HR_KPITYPE entTemp, ref string strMsg) { try { // 1s 冉龙军 //DataContext.Connection.Open(); //if ( DataContext.Connection.State == System.Data.ConnectionState.Closed) //{ // DataContext.Connection.Open(); //} //// 1e //tran = DataContext.Connection.BeginTransaction(); dal.BeginTransaction(); //实体不存在 if (entTemp == null) { // throw new Exception("{REQUIREDFIELDS}"); strMsg = "{REQUIREDFIELDS}"; return; } //评分方式不存在 if (entTemp.T_HR_SCORETYPE == null) { // throw new Exception("{KPITYPEREQUIREDFIELDS}"); strMsg = "{KPITYPEREQUIREDFIELDS}"; return; } //保存评分方式 T_HR_SCORETYPE score = entTemp.T_HR_SCORETYPE; var scoreType = dal.GetObjects <T_HR_SCORETYPE>().FirstOrDefault(s => s.SCORETYPEID == score.SCORETYPEID); if (scoreType != null) { // throw new Exception("Repetition"); strMsg = "评分方式重复"; return; } T_HR_SCORETYPE entST = new T_HR_SCORETYPE(); Utility.CloneEntity <T_HR_SCORETYPE>(score, entST); if (score.T_HR_RANDOMGROUP != null) { entST.T_HR_RANDOMGROUPReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_RANDOMGROUP", "RANDOMGROUPID", score.T_HR_RANDOMGROUP.RANDOMGROUPID); } Utility.RefreshEntity(entST); //保存提醒信息 if (score.T_HR_KPIREMIND != null) { List <T_HR_KPIREMIND> remindList = score.T_HR_KPIREMIND.ToList(); foreach (T_HR_KPIREMIND remind in remindList) { entST.T_HR_KPIREMIND.Add(remind); Utility.RefreshEntity(remind); } } //保存KPI点信息 var tempEnt = dal.GetObjects <T_HR_KPITYPE>().FirstOrDefault(s => s.KPITYPEID == entTemp.KPITYPEID); if (tempEnt != null) { // throw new Exception("Repetition"); strMsg = "KPI点信息重复"; } T_HR_KPITYPE ent = new T_HR_KPITYPE(); Utility.CloneEntity <T_HR_KPITYPE>(entTemp, ent); //更新KPI点的外键关联 ent.T_HR_SCORETYPE = entST; Utility.RefreshEntity(ent); dal.Add(entST); //提交事务 dal.CommitTransaction(); } catch (Exception ex) { dal.RollbackTransaction(); SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + " AddKPIType:" + ex.Message); strMsg = ex.Message; } finally { } }