diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml
index 475f184a..355a4fb3 100644
--- a/Tiobon.Core.Api/Tiobon.Core.Model.xml
+++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml
@@ -28277,6 +28277,11 @@
是否可以取消
+
+
+ 是否为主面试官
+
+
教育背景(Dto.View1)
diff --git a/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs b/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs
index 6f5a8fe5..0a69a0d2 100644
--- a/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs
+++ b/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs
@@ -267,4 +267,9 @@ public class Ghrh_ResumeDto : Ghrh_Resume
///
public bool IsAllowCancel { get; set; } = false;
+ ///
+ /// 是否为主面试官
+ ///
+ public bool IsPrimary { get; set; } = true;
+
}
diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
index cf099542..65ed7601 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
@@ -338,6 +338,26 @@ public class Ghre_CourseServices : BaseServices().Where(x => x.CourseIds.Contains(id.ToString()) && x.Id != id).ToListAsync();
+ for (int j = 0; j < wares.Count; j++)
+ {
+ var courseIds2 = new List();
+ if (!string.IsNullOrWhiteSpace(wares[j].CourseIds))
+ courseIds2 = JsonConvert.DeserializeObject>(wares[j].CourseIds);
+ courseIds2 = courseIds2.Where(x => x != id).ToList();
+ wares[j].CourseIds = JsonConvert.SerializeObject(courseIds2);
+ }
+ await Db.Updateable(wares).UpdateColumns(it => new { it.CourseIds }).ExecuteCommandAsync();
+
+ }
+ #endregion
+ }
#endregion
if (entity.Status == Consts.DIC_COURSE_STATUS.RELEASED)
diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs
index b5d1af81..2f5eac1e 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs
@@ -29,12 +29,15 @@ public class Ghre_CourseWareServices : BaseServices Add(InsertGhre_CourseWareInput entity)
{
+ if (await base.AnyAsync(x => x.CourseWareName == entity.CourseWareName && x.VersionNo == entity.VersionNo))
+ throw new Exception("已存在相同课名称和版本号数据!");
if (entity.CourseIds2.Any())
{
entity.CourseIds = JsonConvert.SerializeObject(entity.CourseIds2);
var courses = await _ghre_CourseServices.Query(x => entity.CourseIds2.Contains(x.Id));
entity.CourseNames = string.Join(",", courses.Select(x => x.CourseName));
}
+
var result = await base.Add(entity);
entity.Attachments.ForEach(x =>
{
@@ -47,6 +50,9 @@ public class Ghre_CourseWareServices : BaseServices Update(long Id, EditGhre_CourseWareInput editModel)
{
+ if (await base.AnyAsync(x => x.CourseWareName == editModel.CourseWareName && x.VersionNo == editModel.VersionNo && x.Id != Id))
+ throw new Exception("已存在相同课名称和版本号数据!");
+
if (editModel.CourseIds2.Any())
{
editModel.CourseIds = JsonConvert.SerializeObject(editModel.CourseIds2);
diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
index b50eb6c1..b282c17d 100644
--- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
+++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
@@ -1875,7 +1875,7 @@ END";
record.InterviewAddress = body.InterviewAddress;
});
- await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status", "UpdateTime", "UpdateBy"]);
+ await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status", "InterviewStepName", "RemarkSz", "InterviewAddress", "UpdateTime", "UpdateBy"]);
await _ghrh_InterviewOrderServices.Update(order, ["InterviewStepName", "UpdateTime", "UpdateBy"]);
await LogRecord(order.Id, $"安排面试,面试时间:{body.Time},面试地点:{body.InterviewAddress},面试备注:{body.Remark ?? "无"}", id, records[0].Id, "ScheduleInterview", true);
@@ -2234,7 +2234,7 @@ END";
if (order != null)
{
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
- await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
+ //await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{
@@ -2441,7 +2441,7 @@ END";
await Update(entity, ["Status"]);
await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
- await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
+ //await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
await LogRecord(order.Id, isOffer == true ? "标记为已报到!" : "标记为未报到!", id, null, "CheckIn");
}
else
@@ -2552,7 +2552,7 @@ END";
{
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
- await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
+ //await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
await LogRecord(order.Id, "转入待发Offer!", id, null, "TransferWaitSendOffer");
}
}
@@ -2661,13 +2661,16 @@ END";
C.CancelReason,
CONVERT
(BIT, CASE B.[Round] WHEN C.[Round] THEN 'true' ELSE 'false' END) AS IsAllowAssess,
- ISNULL(A.UpdateTime, A.CreateTime) CreateTime1
+ ISNULL(A.UpdateTime, A.CreateTime) CreateTime1,
+ C.IsPrimary
FROM Ghrh_Resume A
JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId
JOIN Ghrh_InterviewRecord C
ON B.ID = C.OrderId
AND B.[Round] = C.[Round]
-WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable = 1";
+WHERE A.IsEnable = 1 AND C.IsEnable = 1
+-- AND C.Status = A.Status AND B.IsEnable = 1
+";
if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "CreateTime1 ASC";
@@ -2703,11 +2706,14 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable =
break;
case "WaitInterview":
if (jsonParam.columnValue.ObjToInt() == 1)
- sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
+ sql += $" AND B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
break;
case "HasInterview":
if (jsonParam.columnValue.ObjToInt() == 1)
- sql += $" AND (C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR C.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')";
+ {
+ sql += $" AND (B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')";
+ sql += $" AND (C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')";
+ }
break;
case "WaitSendOffer":
if (jsonParam.columnValue.ObjToInt() == 1)
@@ -3517,12 +3523,18 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable =
if (records[j].Round == order.Round && assessConfigId.ObjToString() == "IsPass")
{
if (assessContent == "1")
+ {
isPass = true;
+ records[j].IsPass = true;
+ }
}
if (records[j].Round == order.Round && assessConfigId.ObjToString() == "EvaluateContent")
{
evaluateContent = assessContent;
+ records[j].InterviewResult = isPass == records[j].IsPass == false ? "面试不通过" : "面试通过";
+ records[j].InterviewResultRemark = evaluateContent;
}
+ records[j].AssessTime = DateTime.Now;
await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput()
{
InterviewAssessId = interviewAssessId,
@@ -3555,22 +3567,17 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable =
if (source == "ess")
{
- var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId());
- record.InterviewResult = InterviewResult;
- record.InterviewResultRemark = evaluateContent;
- record.IsPass = isPass;
- record.AssessTime = DateTime.Now;
- record.Status = Status;
- await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]);
+ var record = records.Where(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()).FirstOrDefault();
+ if (record != null)
+ {
+ record.Status = Status;
+ await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]);
+ }
}
else
{
records.ForEach(record =>
{
- record.InterviewResult = InterviewResult;
- record.InterviewResultRemark = evaluateContent;
- record.IsPass = isPass;
- record.AssessTime = DateTime.Now;
record.Status = Status;
});
await _ghrh_InterviewRecordServices.Update(records, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]);
diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml
index 475f184a..355a4fb3 100644
--- a/Tiobon.Core/Tiobon.Core.Model.xml
+++ b/Tiobon.Core/Tiobon.Core.Model.xml
@@ -28277,6 +28277,11 @@
是否可以取消
+
+
+ 是否为主面试官
+
+
教育背景(Dto.View1)