孤兰 2 months ago
commit 7bd6d6c92f
  1. 5
      Tiobon.Core.Api/Controllers/Ghre/Ghre_DaySalaryEntry_BoltoneController.cs
  2. 50
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  3. 86
      Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs
  4. 2
      Tiobon.Core.Services/Ghrh/Ghrh_OfferApplyOrderServices.cs
  5. 2
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -21,8 +21,11 @@ public class Ghre_DaySalaryEntry_BoltoneController : BaseController<IGhre_DaySal
public override async Task<ServiceResult<string>> Insert([FromBody] InsertGhre_DaySalaryEntry_BoltoneInput insertModel) public override async Task<ServiceResult<string>> Insert([FromBody] InsertGhre_DaySalaryEntry_BoltoneInput insertModel)
{ {
insertModel.SubmitDate = DateTime.Now; insertModel.SubmitDate = DateTime.Now;
if (await _service.AnyAsync(x => x.IDNo == insertModel.IDNo && x.SubmitDate.Value.Date == DateTime.Now.Date))
return Success<string>(null, "提交成功");
var id = await _service.Add(insertModel); var id = await _service.Add(insertModel);
var data = Success<string>(null, "新增成功"); var data = Success<string>(null, "提交成功");
data.Success = id > 0; data.Success = id > 0;
if (data.Success) if (data.Success)
data.Data = id.ObjToString(); data.Data = id.ObjToString();

@ -170,12 +170,29 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
if (entity.Score > paper.TotalScore) if (entity.Score > paper.TotalScore)
return ServiceResult.OprateFailed($"调整后得分为【{score1}】,不可大于卷面总分【{Regex.Replace(paper.TotalScore.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(paper.TotalScore.ToString(), @"\.(0+)$", "")}】!"); return ServiceResult.OprateFailed($"调整后得分为【{score1}】,不可大于卷面总分【{Regex.Replace(paper.TotalScore.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(paper.TotalScore.ToString(), @"\.(0+)$", "")}】!");
#region 处理最终得分
var exam = await Db.Queryable<Ghre_Exam>().Where(x => x.Id == entity.ExamId).FirstAsync();
if (exam != null)
{
if (exam.OnlineScorePercentage != null && exam.OfflineScorePercentage != null)
if (exam.OnlineScorePercentage > 0 && exam.OfflineScorePercentage > 0)
{
decimal OnlineScorePercentage = exam.OnlineScorePercentage.Value / 100;
decimal OfflineScorePercentage = exam.OfflineScorePercentage.Value / 100;
entity.FinallyScore = (entity.Score + (entity.AdjustScore ?? 0)) * OnlineScorePercentage;
if (entity.ActualScore != null && entity.ActualScore > 0)
entity.FinallyScore += entity.ActualScore * OfflineScorePercentage;
}
}
#endregion
var paperId = entity.ExamPaperId; var paperId = entity.ExamPaperId;
var examPaper = await Db.Queryable<Ghre_ExamPaper>().Where(x => x.Id == paperId).FirstAsync(); var examPaper = await Db.Queryable<Ghre_ExamPaper>().Where(x => x.Id == paperId).FirstAsync();
if (examPaper != null) if (examPaper != null)
entity.IsPass = examPaper.PassScore > (entity.Score + entity.AdjustScore) ? false : true; entity.IsPass = examPaper.PassScore > (entity.Score + entity.AdjustScore) ? false : true;
await Update(entity, ["IsPass", "AdjustScore", "UpdateTime", "UpdateBy"]); await Update(entity, ["IsPass", "AdjustScore", "FinallyScore", "UpdateTime", "UpdateBy"]);
return ServiceResult.OprateSuccess("修改成功!"); return ServiceResult.OprateSuccess("修改成功!");
@ -195,8 +212,23 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
//string score1 = Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(entity.Score.ToString(), @"\.(0+)$", ""); //string score1 = Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "");
#region 处理最终得分
var exam = await Db.Queryable<Ghre_Exam>().Where(x => x.Id == entity.ExamId).FirstAsync();
if (exam != null)
{
if (exam.OnlineScorePercentage != null && exam.OfflineScorePercentage != null)
if (exam.OnlineScorePercentage > 0 && exam.OfflineScorePercentage > 0)
{
decimal OnlineScorePercentage = exam.OnlineScorePercentage.Value / 100;
decimal OfflineScorePercentage = exam.OfflineScorePercentage.Value / 100;
entity.FinallyScore = (entity.Score + (entity.AdjustScore ?? 0)) * OnlineScorePercentage;
if (entity.ActualScore != null && entity.ActualScore > 0)
entity.FinallyScore += entity.ActualScore * OfflineScorePercentage;
}
}
#endregion
await Update(entity, ["ActualScore", "UpdateTime", "UpdateBy"]); await Update(entity, ["ActualScore", "FinallyScore", "UpdateTime", "UpdateBy"]);
return ServiceResult.OprateSuccess("修改成功!"); return ServiceResult.OprateSuccess("修改成功!");
} }
@ -1137,11 +1169,23 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
UPDATE Ghre_ExamRecordAnswer SET IsEnable=1 WHERE IsEnable=2 AND ExamRecordId='{record.Id}';"; UPDATE Ghre_ExamRecordAnswer SET IsEnable=1 WHERE IsEnable=2 AND ExamRecordId='{record.Id}';";
await Db.Ado.ExecuteCommandAsync(sql); await Db.Ado.ExecuteCommandAsync(sql);
} }
#region 处理最终得分
if (exam.OnlineScorePercentage != null && exam.OfflineScorePercentage != null)
if (exam.OnlineScorePercentage > 0 && exam.OfflineScorePercentage > 0)
{
decimal OnlineScorePercentage = exam.OnlineScorePercentage.Value / 100;
decimal OfflineScorePercentage = exam.OfflineScorePercentage.Value / 100;
record.FinallyScore = (record.Score + (record.AdjustScore ?? 0)) * OnlineScorePercentage;
if (record.ActualScore != null && record.ActualScore > 0)
record.FinallyScore += record.ActualScore * OfflineScorePercentage;
}
#endregion
} }
#endregion #endregion
record.UpdateTime = DateTime.Now; record.UpdateTime = DateTime.Now;
await Update(record, new List<string> { "Status", "Score", "AdjustScore", "ActualEndTime", "ScoreStatus", "UpdateTime", "ExamDate", "AnswerCount" }, null, $"Id='{record.Id}'"); await Update(record, new List<string> { "Status", "Score", "FinallyScore", "AdjustScore", "ActualEndTime", "ScoreStatus", "UpdateTime", "ExamDate", "AnswerCount" }, null, $"Id='{record.Id}'");
if (exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM) if (exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM)
await Task.Factory.StartNew(async () => await DealPass(Db, studyRecordId)); await Task.Factory.StartNew(async () => await DealPass(Db, studyRecordId));

@ -1,4 +1,5 @@
using MySqlX.XDevAPI.Common; using MySqlX.XDevAPI.Common;
using NPOI.OpenXmlFormats;
using NPOI.SS.Formula.Functions; using NPOI.SS.Formula.Functions;
using OfficeOpenXml.FormulaParsing; using OfficeOpenXml.FormulaParsing;
using Org.BouncyCastle.Utilities; using Org.BouncyCastle.Utilities;
@ -120,7 +121,40 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Bolt
dynamic obj = new ExpandoObject(); dynamic obj = new ExpandoObject();
dynamic result = new ExpandoObject(); dynamic result = new ExpandoObject();
var result2 = await _staffServices.QueryFilterPage(filter); var titleSkills = await base.QueryFilterPage(new QueryBody()
{
menuName = "F_TitleSkill_Boltone",
pageNum = 1,
pageSize = 10000,
orderBy = ""
});
var group1 = titleSkills.result.DT_TableDataT1
.Select(x => new
{
x.DeptId,
x.TitleId
}).Distinct().ToList();
string condition = "1=1";
if (group1.Any())
{
condition += "AND (";
var i = 0;
group1.ForEach(x =>
{
if (i == 0)
condition += $"(DeptId={x.DeptId} AND TitleId={x.TitleId})";
else
condition += $"OR (DeptId={x.DeptId} AND TitleId={x.TitleId})";
i++;
});
condition += ")";
}
var result2 = await _staffServices.QueryFilterPage(filter, condition);
var DT_TableDataT1 = result2.result.DT_TableDataT1; var DT_TableDataT1 = result2.result.DT_TableDataT1;
@ -131,16 +165,9 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Bolt
}; };
var module = await _commonServices.GetModuleInfoAsync(param); var module = await _commonServices.GetModuleInfoAsync(param);
var titleSkills = await base.QueryFilterPage(new QueryBody()
{
menuName = "F_TitleSkill_Boltone",
pageNum = 1,
pageSize = 10000,
orderBy = ""
});
var columns = new JArray(); var columns = new JArray();
var src = Db.Queryable<Ghre_StudyRecord>();
for (int i = 0; i < result2.result.DT_TableDataT1.Count; i++) for (int i = 0; i < result2.result.DT_TableDataT1.Count; i++)
{ {
var column = result2.result.DT_TableDataT1[i]; var column = result2.result.DT_TableDataT1[i];
@ -155,25 +182,36 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Bolt
new JProperty("StaffType1Label", column.StaffType1Label), new JProperty("StaffType1Label", column.StaffType1Label),
new JProperty("TitleName", column.TitleName), new JProperty("TitleName", column.TitleName),
}; };
//× 生手 技能有效期内所对应课程还未分配或课程学习时长为0 //× 生手 技能有效期内所对应课程还未分配或课程学习时长为0
//◑ 受训中 技能有效期内所对应课程学习时长大于0小时 //◑ 受训中 技能有效期内所对应课程学习时长大于0小时
//☆ 熟练工 技能有效期内所对应的课程学习状态为已完成(含必修、选修课程状态) //☆ 熟练工 技能有效期内所对应的课程学习状态为已完成(含必修、选修课程状态)
//★ 可带教 员工技能所对应的课程学习状态已完成,且通过讲师课程培训学习和考核 //★ 可带教 员工技能所对应的课程学习状态已完成,且通过讲师课程培训学习和考核
titleSkills.result.DT_TableDataT1.ForEach(item => for (int j = 0; j < titleSkills.result.DT_TableDataT1.Count; j++)
{ {
var item = titleSkills.result.DT_TableDataT1[j];
if (column.DeptID != item.DeptId || column.TitleID != item.TitleId)
continue;
var key = item.CourseId + "_" + item.DeptId + "_" + item.TitleId + "_" + item.RequiredElective; var key = item.CourseId + "_" + item.DeptId + "_" + item.TitleId + "_" + item.RequiredElective;
//if (dict.ContainsKey(column.Id.ObjToString()))
//{ var value = "×";
// var ids = dict[column.Id.ObjToString()];
// if (ids.Where(id => id == x.TitleID).Any()) if (await src.Where(x =>
// item.Add(new JProperty("Title_" + x.TitleNo, "✔")); x.CourseId == item.CourseId &&
// else x.StaffId == column.StaffID &&
// item.Add(new JProperty("Title_" + x.TitleNo, "")); x.StudyStatus == "NoFinish" &&
//} ((x.CourseBeginTime >= item.EffectiveDate && x.CourseBeginTime <= item.ExpiryDate) || (x.CourseEndTime >= item.EffectiveDate && x.CourseEndTime <= item.ExpiryDate))
//else ).AnyAsync())
item1.Add(new JProperty(key, "★")); value = "◑";
}); if (await src.Where(x =>
x.CourseId == item.CourseId &&
x.StaffId == column.StaffID &&
x.StudyStatus == "HasFinish" &&
((x.CourseBeginTime >= item.EffectiveDate && x.CourseBeginTime <= item.ExpiryDate) || (x.CourseEndTime >= item.EffectiveDate && x.CourseEndTime <= item.ExpiryDate))
).AnyAsync())
value = "☆";
item1.Add(new JProperty(key, value));
}
columns.Add(item1); columns.Add(item1);
} }

@ -149,7 +149,7 @@ public class Ghrh_OfferApplyOrderServices : BaseServices<Ghrh_OfferApplyOrder, G
SET @ErrorMsg = NULL; SET @ErrorMsg = NULL;
EXEC @return_value = GHR30.dbo.[PT_GHR30_FlowApply] EXEC @return_value = dbo.[PT_GHR30_FlowApply]
@ID = {id}, @ID = {id},
@FlowID = {@FlowID}, @FlowID = {@FlowID},
@UserID = {App.User.ID}, @UserID = {App.User.ID},

@ -5093,7 +5093,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
sql = @$"DECLARE @return_value int; sql = @$"DECLARE @return_value int;
EXEC @return_value = GHR30.dbo.[PA_NewStaff] EXEC @return_value = dbo.[PA_NewStaff]
@StaffID = {staffId}; @StaffID = {staffId};
SELECT @return_value as N'@Return Value';"; SELECT @return_value as N'@Return Value';";

Loading…
Cancel
Save