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,168 +391,156 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId) ...@@ -391,168 +391,156 @@ 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); assCategorys.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
if (aCategory != null && aCategory.Any()) _perforPerAssessCategoryRepository.UpdateRange(assCategorys.ToArray());
{
var newaCategorys = aCategory.Select(t => new per_assess_category
{
Id = 0,
AllotId = allot.ID,
AssessCode = t.AssessCode,
AssessName = t.AssessName,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
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()) var newassCategorys = prevassCategorys.Select(t => new per_assess_category
{ {
aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == -1); Id = 0,
if (aScheme != null && aScheme.Any()) AllotId = allot.ID,
{ AssessCode = t.AssessCode,
var newaSchemes = aScheme.Select(t => new per_assess_scheme AssessName = t.AssessName,
{ CreateBy = t.CreateBy,
Id = 0, CreateTime = operatingTime,
AllotId = allot.ID, UpdateBy = t.UpdateBy,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id, UpdateTime = operatingTime,
SchemeCode = t.SchemeCode, }).ToArray();
SchemeName = t.SchemeName, _perforPerAssessCategoryRepository.AddRange(newassCategorys);
SchemeRemarks = t.SchemeRemarks, #endregion
CreateBy = t.CreateBy, //查询插入的考核类型
CreateTime = dateTimeNow, var newperAssCategorys = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
UpdateBy = t.UpdateBy, #region 考核方案加载上月
UpdateTime = dateTimeNow, var perAssSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
}); var prevAssSchemes = perAssSchemes.Where(w => w.AllotId == prevAllotId).ToList();
var aSchemeTemp = _perforPerAssessSchemeRepository.AddRange(newaSchemes.ToArray()); if (!prevAssSchemes.Any()) return;
var assSchemes = perAssSchemes.Where(w => w.AllotId == allot.ID).ToList();
} if (assSchemes.Any())
}
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); assSchemes.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
if (aSchemeItems != null && aSchemeItems.Any()) _perforPerAssessSchemeRepository.UpdateRange(assSchemes.ToArray());
{
var newaSchemeItems = aSchemeItems.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,
ItemCode = t.ItemCode,
ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
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); var newaSchemes = prevAssSchemes.Select(t => new per_assess_scheme
if (flag || aSchemeTarget == null || !aSchemeTarget.Any())
{ {
aSchemeTarget = _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == -1); Id = 0,
if (aSchemeTarget != null && aSchemeTarget.Any()) AllotId = allot.ID,
{ AssessId = newperAssCategorys.Find(w => w.AssessCode == prevassCategorys.Find(s => s.Id == t.AssessId)?.AssessCode && w.AllotId == allot.ID).Id,
var newaSchemeTarget = aSchemeTarget.Select(t => new per_assess_scheme_target SchemeCode = t.SchemeCode,
{ SchemeName = t.SchemeName,
Id = 0, SchemeRemarks = t.SchemeRemarks,
AllotId = allot.ID, CreateBy = t.CreateBy,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id, CreateTime = operatingTime,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id, UpdateBy = t.UpdateBy,
UnitCode = t.UnitCode, UpdateTime = operatingTime,
UnitType = t.UnitType, }).ToArray();
AccountingUnit = t.AccountingUnit, _perforPerAssessSchemeRepository.AddRange(newaSchemes);
CreateBy = t.CreateBy, #endregion
CreateTime = dateTimeNow, //查询插入的考核方案
UpdateBy = t.UpdateBy, var newperAssSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
UpdateTime = dateTimeNow, #region 考核方案指标项加载上月
}); var perAssSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID);
var aSchemeTargetTemp = _perforPerAssessSchemeTargetRepository.AddRange(newaSchemeTarget.ToArray()); 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
{
if (flag || aIssueScheme == null || !aIssueScheme.Any()) Id = 0,
AllotId = allot.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,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore,
CreateBy = t.CreateBy,
CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = operatingTime,
});
_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())
{ {
aIssueScheme = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == -1); assIssueSchemes.ForEach(w => { w.AllotId = -1; w.UpdateTime = operatingTime; });
if (aIssueScheme != null && aIssueScheme.Any()) _perforPerAssessIssueSchemeRepository.UpdateRange(assIssueSchemes.ToArray());
{
var newaIssueSchemess = aIssueScheme.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,
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,
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,
ItemCode = t.ItemCode,
ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2,
AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
BonusPoint = null,
BonusPointRemark = null,
Deduction = null,
DeductionRemark = null,
TargetUnitCode = t.TargetUnitCode,
TargetUnitType = t.TargetUnitType,
TargetAccountingUnit = t.TargetAccountingUnit,
SubmitBy = null,
SubmitTime = null,
AuditBy = null,
AuditTime = null,
AuditRemark = null,
});
var aIssueSchemeTemp = _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess.ToArray());
}
} }
} var newaIssueSchemess = prevAssIssueSchemes.Select(t => new per_assess_issue_scheme
{
Id = 0,
AllotId = allot.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 = 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 = 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,
AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = t.CreateBy,
CreateTime = operatingTime,
UpdateBy = t.UpdateBy,
UpdateTime = operatingTime,
BonusPoint = null,
BonusPointRemark = null,
Deduction = null,
DeductionRemark = null,
TargetUnitCode = t.TargetUnitCode,
TargetUnitType = t.TargetUnitType,
TargetAccountingUnit = t.TargetAccountingUnit,
SubmitBy = null,
SubmitTime = null,
AuditBy = null,
AuditTime = null,
AuditRemark = null,
}).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