Commit e236fada by wyc

加载上月优化(绩效考核)

parent 063afbf9
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace Performance.Repository namespace Performance.Repository
{ {
/// <summary> /// <summary>
/// per_assess_category Repository /// --˷ Repository
/// </summary> /// </summary>
public partial class PerforPerAssessCategoryRepository : PerforRepository<per_assess_category> public partial class PerforPerAssessCategoryRepository : PerforRepository<per_assess_category>
{ {
......
...@@ -768,7 +768,7 @@ public void NewCopy(CopyRequest request) ...@@ -768,7 +768,7 @@ public void NewCopy(CopyRequest request)
{ "agains", (allot, prevAllotId) =>_copyService.Copy_Agains(allot, prevAllotId, delHistotyData:true) }, { "agains", (allot, prevAllotId) =>_copyService.Copy_Agains(allot, prevAllotId, delHistotyData:true) },
{ "accountings", (allot, prevAllotId) =>_copyService.Copy_Accountings(allot, prevAllotId, delHistotyData:true) }, { "accountings", (allot, prevAllotId) =>_copyService.Copy_Accountings(allot, prevAllotId, delHistotyData:true) },
{ "attendanceType", (allot, prevAllotId) =>_copyService.Copy_AttendanceType(allot, prevAllotId) }, { "attendanceType", (allot, prevAllotId) =>_copyService.Copy_AttendanceType(allot, prevAllotId) },
{ "assessType", (allot, prevAllotId) =>_copyService.Copy_AssessType(allot, prevAllotId, delHistotyData:true) }, { "assessType", (allot, prevAllotId) =>_copyService.Copy_AssessType(allot, prevAllotId) },
{ "department", (allot, prevAllotId) =>_copyService.Copy_DeptDic(allot, prevAllotId, delHistotyData:true) }, { "department", (allot, prevAllotId) =>_copyService.Copy_DeptDic(allot, prevAllotId, delHistotyData:true) },
{ "deptdetail", (allot, prevAllotId) =>_copyService.Copy_Deptdetail(allot, prevAllotId, delHistotyData:true) }, { "deptdetail", (allot, prevAllotId) =>_copyService.Copy_Deptdetail(allot, prevAllotId, delHistotyData:true) },
{ "empdetail", (allot, prevAllotId) =>_copyService.Copy_Empdetail(allot, prevAllotId, delHistotyData:true) }, { "empdetail", (allot, prevAllotId) =>_copyService.Copy_Empdetail(allot, prevAllotId, delHistotyData:true) },
......
...@@ -391,81 +391,88 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId) ...@@ -391,81 +391,88 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId)
_perforPerAttendanceDeptRepository.AddRange(newAttDepts.ToArray()); _perforPerAttendanceDeptRepository.AddRange(newAttDepts.ToArray());
} }
} }
public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyData = false) /// <summary>
/// 加载上月绩效考核
/// </summary>
/// <param name="allot"></param>
/// <param name="prevAllotId"></param>
public void Copy_AssessType(per_allot allot, int prevAllotId)
{ {
var flag = delHistotyData;
_logger.LogInformation($"copy assessType"); _logger.LogInformation($"copy assessType");
var aCategory = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID); var operatingTime = DateTime.Now;
if (delHistotyData && aCategory != null && aCategory.Any()) #region 考核类型加载上月
flag = _perforPerAssessCategoryRepository.RemoveRange(aCategory.ToArray()); //查询本月和上月的类型
var aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID); var perAssCategorys = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID || t.AllotId == prevAllotId);
if (delHistotyData && aScheme != null && aScheme.Any()) //查询上月有没有类型,没有就跳过
flag = _perforPerAssessSchemeRepository.RemoveRange(aScheme.ToArray()); var prevassCategorys = perAssCategorys.Where(w => w.AllotId == prevAllotId).ToList();
var aSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID); if (!prevassCategorys.Any()) return;
if (delHistotyData && aSchemeItems != null && aSchemeItems.Any()) //查询本月类型,如果存在就改为-1
flag = _perforPerAssessSchemeItemsRepository.RemoveRange(aSchemeItems.ToArray()); var assCategorys = perAssCategorys.Where(w => w.AllotId == allot.ID).ToList();
var aSchemeTarget = _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == allot.ID); if (assCategorys.Any())
if (delHistotyData && aSchemeTarget != null && aSchemeTarget.Any())
flag = _perforPerAssessSchemeTargetRepository.RemoveRange(aSchemeTarget.ToArray());
var aIssueScheme = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aIssueScheme != null && aIssueScheme.Any())
flag = _perforPerAssessIssueSchemeRepository.RemoveRange(aIssueScheme.ToArray());
var dateTimeNow = DateTime.Now;
if (flag || aCategory == null || !aCategory.Any())
{
aCategory = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == -1);
if (aCategory != null && aCategory.Any())
{ {
var newaCategorys = aCategory.Select(t => new per_assess_category assCategorys.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
_perforPerAssessCategoryRepository.UpdateRange(assCategorys.ToArray());
}
//将上月的加载到本月
var newassCategorys = prevassCategorys.Select(t => new per_assess_category
{ {
Id = 0, Id = 0,
AllotId = allot.ID, AllotId = allot.ID,
AssessCode = t.AssessCode, AssessCode = t.AssessCode,
AssessName = t.AssessName, AssessName = t.AssessName,
CreateBy = t.CreateBy, CreateBy = t.CreateBy,
CreateTime = dateTimeNow, CreateTime = operatingTime,
UpdateBy = t.UpdateBy, UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow, UpdateTime = operatingTime,
}); }).ToArray();
var aCategoryTemp = _perforPerAssessCategoryRepository.AddRange(newaCategorys.ToArray()); _perforPerAssessCategoryRepository.AddRange(newassCategorys);
} #endregion
} //查询插入的考核类型
var aCategoryss = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID); var newperAssCategorys = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aScheme == null || !aScheme.Any()) #region 考核方案加载上月
{ var perAssSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == -1); var prevAssSchemes = perAssSchemes.Where(w => w.AllotId == prevAllotId).ToList();
if (aScheme != null && aScheme.Any()) if (!prevAssSchemes.Any()) return;
{ var assSchemes = perAssSchemes.Where(w => w.AllotId == allot.ID).ToList();
var newaSchemes = aScheme.Select(t => new per_assess_scheme if (assSchemes.Any())
{
assSchemes.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
_perforPerAssessSchemeRepository.UpdateRange(assSchemes.ToArray());
}
var newaSchemes = prevAssSchemes.Select(t => new per_assess_scheme
{ {
Id = 0, Id = 0,
AllotId = allot.ID, AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id, AssessId = newperAssCategorys.Find(w => w.AssessCode == prevassCategorys.Find(s => s.Id == t.AssessId)?.AssessCode && w.AllotId == allot.ID).Id,
SchemeCode = t.SchemeCode, SchemeCode = t.SchemeCode,
SchemeName = t.SchemeName, SchemeName = t.SchemeName,
SchemeRemarks = t.SchemeRemarks, SchemeRemarks = t.SchemeRemarks,
CreateBy = t.CreateBy, CreateBy = t.CreateBy,
CreateTime = dateTimeNow, CreateTime = operatingTime,
UpdateBy = t.UpdateBy, UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow, UpdateTime = operatingTime,
}); }).ToArray();
var aSchemeTemp = _perforPerAssessSchemeRepository.AddRange(newaSchemes.ToArray()); _perforPerAssessSchemeRepository.AddRange(newaSchemes);
#endregion
} //查询插入的考核方案
} var newperAssSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
var aSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID); #region 考核方案指标项加载上月
if (flag || aSchemeItems == null || !aSchemeItems.Any()) var perAssSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
{ var prevAssSchemeItems = perAssSchemeItems.Where(w => w.AllotId == prevAllotId).ToList();
aSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == -1); if (!prevAssSchemeItems.Any()) return;
if (aSchemeItems != null && aSchemeItems.Any()) var assSchemeItems = perAssSchemeItems.Where(w => w.AllotId == allot.ID).ToList();
{ if (assSchemeItems.Any())
var newaSchemeItems = aSchemeItems.Select(t => new per_assess_scheme_items {
assSchemeItems.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
_perforPerAssessSchemeItemsRepository.UpdateRange(assSchemeItems.ToArray());
}
var newaSchemeItems = prevAssSchemeItems.Select(t => new per_assess_scheme_items
{ {
Id = 0, Id = 0,
AllotId = allot.ID, AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id, AssessId = newperAssCategorys.Find(w => w.AssessCode == prevassCategorys.Find(s => s.Id == t.AssessId)?.AssessCode && w.AllotId == allot.ID).Id,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id, SchemeId = newperAssSchemes.Find(w => w.SchemeCode == prevAssSchemes.Find(s => s.Id == t.SchemeId)?.SchemeCode && w.AllotId == allot.ID).Id,
ItemCode = t.ItemCode, ItemCode = t.ItemCode,
ItemName1 = t.ItemName1, ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2, ItemName2 = t.ItemName2,
...@@ -475,53 +482,35 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -475,53 +482,35 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AssessNorm = t.AssessNorm, AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore, AssessScore = t.AssessScore,
CreateBy = t.CreateBy, CreateBy = t.CreateBy,
CreateTime = dateTimeNow, CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aSchemeItemsTemp = _perforPerAssessSchemeItemsRepository.AddRange(newaSchemeItems.ToArray());
}
}
var aSchemeItemss = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aSchemeTarget == null || !aSchemeTarget.Any())
{
aSchemeTarget = _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == -1);
if (aSchemeTarget != null && aSchemeTarget.Any())
{
var newaSchemeTarget = aSchemeTarget.Select(t => new per_assess_scheme_target
{
Id = 0,
AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy, UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow, UpdateTime = operatingTime,
}); });
var aSchemeTargetTemp = _perforPerAssessSchemeTargetRepository.AddRange(newaSchemeTarget.ToArray()); _perforPerAssessSchemeItemsRepository.AddRange(newaSchemeItems.ToArray());
} #endregion
} //查询插入的考核方案指标项
var newperAssSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aIssueScheme == null || !aIssueScheme.Any()) #region 考核方案下发到责任科室指标清单加载上月
{ var perAssIssueSchemes = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
aIssueScheme = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == -1); var prevAssIssueSchemes = perAssIssueSchemes.Where(w => w.AllotId == prevAllotId).ToList();
if (aIssueScheme != null && aIssueScheme.Any()) if (!prevAssSchemeItems.Any()) return;
{ var assIssueSchemes = perAssIssueSchemes.Where(w => w.AllotId == allot.ID).ToList();
var newaIssueSchemess = aIssueScheme.Select(t => new per_assess_issue_scheme if (assIssueSchemes.Any())
{
assIssueSchemes.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
_perforPerAssessIssueSchemeRepository.UpdateRange(assIssueSchemes.ToArray());
}
var newaIssueSchemess = prevAssIssueSchemes.Select(t => new per_assess_issue_scheme
{ {
Id = 0, Id = 0,
AllotId = allot.ID, AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id, AssessId = newperAssCategorys.Find(w => w.AssessCode == prevassCategorys.Find(s => s.Id == t.AssessId)?.AssessCode && w.AllotId == allot.ID).Id,
AssessCode = t.AssessCode, AssessCode = t.AssessCode,
AssessName = t.AssessName, AssessName = t.AssessName,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id, SchemeId = newperAssSchemes.Find(w => w.SchemeCode == prevAssSchemes.Find(s => s.Id == t.SchemeId)?.SchemeCode && w.AllotId == allot.ID).Id,
SchemeCode = t.SchemeCode, SchemeCode = t.SchemeCode,
SchemeName = t.SchemeName, SchemeName = t.SchemeName,
ItemId = aSchemeItemss.FirstOrDefault(w => w.ItemCode == aSchemeItems.FirstOrDefault(s => s.Id == t.ItemId).ItemCode && w.AllotId == allot.ID).Id, ItemId = newperAssSchemeItems.Find(w => w.ItemCode == prevAssSchemeItems.Find(s => s.Id == t.ItemId)?.ItemCode && w.AllotId == allot.ID).Id,
ItemCode = t.ItemCode, ItemCode = t.ItemCode,
ItemName1 = t.ItemName1, ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2, ItemName2 = t.ItemName2,
...@@ -532,9 +521,9 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -532,9 +521,9 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AccountingUnit = t.AccountingUnit, AccountingUnit = t.AccountingUnit,
State = (int)Assess.AssessState.未提交, State = (int)Assess.AssessState.未提交,
CreateBy = t.CreateBy, CreateBy = t.CreateBy,
CreateTime = dateTimeNow, CreateTime = operatingTime,
UpdateBy = t.UpdateBy, UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow, UpdateTime = operatingTime,
BonusPoint = null, BonusPoint = null,
BonusPointRemark = null, BonusPointRemark = null,
Deduction = null, Deduction = null,
...@@ -547,12 +536,11 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -547,12 +536,11 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AuditBy = null, AuditBy = null,
AuditTime = null, AuditTime = null,
AuditRemark = null, AuditRemark = null,
}); }).ToArray();
var aIssueSchemeTemp = _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess.ToArray()); _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess);
} #endregion
}
}
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment