Commit e236fada by wyc

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

parent 063afbf9
......@@ -8,7 +8,7 @@
namespace Performance.Repository
{
/// <summary>
/// per_assess_category Repository
/// --˷ Repository
/// </summary>
public partial class PerforPerAssessCategoryRepository : PerforRepository<per_assess_category>
{
......
......@@ -768,7 +768,7 @@ public void NewCopy(CopyRequest request)
{ "agains", (allot, prevAllotId) =>_copyService.Copy_Agains(allot, prevAllotId, delHistotyData:true) },
{ "accountings", (allot, prevAllotId) =>_copyService.Copy_Accountings(allot, prevAllotId, delHistotyData:true) },
{ "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) },
{ "deptdetail", (allot, prevAllotId) =>_copyService.Copy_Deptdetail(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)
_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");
var aCategory = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aCategory != null && aCategory.Any())
flag = _perforPerAssessCategoryRepository.RemoveRange(aCategory.ToArray());
var aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aScheme != null && aScheme.Any())
flag = _perforPerAssessSchemeRepository.RemoveRange(aScheme.ToArray());
var aSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aSchemeItems != null && aSchemeItems.Any())
flag = _perforPerAssessSchemeItemsRepository.RemoveRange(aSchemeItems.ToArray());
var aSchemeTarget = _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == allot.ID);
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 operatingTime = DateTime.Now;
#region 考核类型加载上月
//查询本月和上月的类型
var perAssCategorys = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID || t.AllotId == prevAllotId);
//查询上月有没有类型,没有就跳过
var prevassCategorys = perAssCategorys.Where(w => w.AllotId == prevAllotId).ToList();
if (!prevassCategorys.Any()) return;
//查询本月类型,如果存在就改为-1
var assCategorys = perAssCategorys.Where(w => w.AllotId == allot.ID).ToList();
if (assCategorys.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,
AllotId = allot.ID,
AssessCode = t.AssessCode,
AssessName = t.AssessName,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aCategoryTemp = _perforPerAssessCategoryRepository.AddRange(newaCategorys.ToArray());
}
}
var aCategoryss = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aScheme == null || !aScheme.Any())
{
aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == -1);
if (aScheme != null && aScheme.Any())
{
var newaSchemes = aScheme.Select(t => new per_assess_scheme
UpdateTime = operatingTime,
}).ToArray();
_perforPerAssessCategoryRepository.AddRange(newassCategorys);
#endregion
//查询插入的考核类型
var newperAssCategorys = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
#region 考核方案加载上月
var perAssSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
var prevAssSchemes = perAssSchemes.Where(w => w.AllotId == prevAllotId).ToList();
if (!prevAssSchemes.Any()) return;
var assSchemes = perAssSchemes.Where(w => w.AllotId == allot.ID).ToList();
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,
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,
SchemeName = t.SchemeName,
SchemeRemarks = t.SchemeRemarks,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aSchemeTemp = _perforPerAssessSchemeRepository.AddRange(newaSchemes.ToArray());
}
}
var aSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aSchemeItems == null || !aSchemeItems.Any())
{
aSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == -1);
if (aSchemeItems != null && aSchemeItems.Any())
{
var newaSchemeItems = aSchemeItems.Select(t => new per_assess_scheme_items
UpdateTime = operatingTime,
}).ToArray();
_perforPerAssessSchemeRepository.AddRange(newaSchemes);
#endregion
//查询插入的考核方案
var newperAssSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
#region 考核方案指标项加载上月
var perAssSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
var prevAssSchemeItems = perAssSchemeItems.Where(w => w.AllotId == prevAllotId).ToList();
if (!prevAssSchemeItems.Any()) return;
var assSchemeItems = perAssSchemeItems.Where(w => w.AllotId == allot.ID).ToList();
if (assSchemeItems.Any())
{
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,
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,
AssessId = newperAssCategorys.Find(w => w.AssessCode == prevassCategorys.Find(s => s.Id == t.AssessId)?.AssessCode && 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,
ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2,
......@@ -475,53 +482,35 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
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,
CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
UpdateTime = operatingTime,
});
var aSchemeTargetTemp = _perforPerAssessSchemeTargetRepository.AddRange(newaSchemeTarget.ToArray());
}
}
if (flag || aIssueScheme == null || !aIssueScheme.Any())
{
aIssueScheme = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == -1);
if (aIssueScheme != null && aIssueScheme.Any())
{
var newaIssueSchemess = aIssueScheme.Select(t => new per_assess_issue_scheme
_perforPerAssessSchemeItemsRepository.AddRange(newaSchemeItems.ToArray());
#endregion
//查询插入的考核方案指标项
var newperAssSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
#region 考核方案下发到责任科室指标清单加载上月
var perAssIssueSchemes = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
var prevAssIssueSchemes = perAssIssueSchemes.Where(w => w.AllotId == prevAllotId).ToList();
if (!prevAssSchemeItems.Any()) return;
var assIssueSchemes = perAssIssueSchemes.Where(w => w.AllotId == allot.ID).ToList();
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,
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,
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,
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,
ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2,
......@@ -532,9 +521,9 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AccountingUnit = t.AccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
UpdateTime = operatingTime,
BonusPoint = null,
BonusPointRemark = null,
Deduction = null,
......@@ -547,12 +536,11 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AuditBy = null,
AuditTime = null,
AuditRemark = null,
});
var aIssueSchemeTemp = _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess.ToArray());
}
}
}
}).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