附件保存优化

master
xiaochanghai 6 months ago
parent ad58cd89d7
commit a810fe2e77
  1. 5
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  2. 5
      Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs
  3. 20
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  4. 6
      Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs
  5. 45
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  6. 5
      Tiobon.Core/Tiobon.Core.Model.xml

@ -28277,6 +28277,11 @@
是否可以取消 是否可以取消
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_ResumeDto.IsPrimary">
<summary>
是否为主面试官
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_ResumeEduBGDto"> <member name="T:Tiobon.Core.Model.Models.Ghrh_ResumeEduBGDto">
<summary> <summary>
教育背景(Dto.View1) 教育背景(Dto.View1)

@ -267,4 +267,9 @@ public class Ghrh_ResumeDto : Ghrh_Resume
/// </summary> /// </summary>
public bool IsAllowCancel { get; set; } = false; public bool IsAllowCancel { get; set; } = false;
/// <summary>
/// 是否为主面试官
/// </summary>
public bool IsPrimary { get; set; } = true;
} }

@ -338,6 +338,26 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
entity.PublishTime = DateTime.Now; entity.PublishTime = DateTime.Now;
} }
else if (status == Consts.DIC_COURSE_STATUS.DRAFT && entity.Status == Consts.DIC_COURSE_STATUS.RELEASED)
{
#region 课程ID 同步至课件
if (!entity.CourseWareId.IsNull())
{
var wares = await Db.Queryable<Ghre_CourseWare>().Where(x => x.CourseIds.Contains(id.ToString()) && x.Id != id).ToListAsync();
for (int j = 0; j < wares.Count; j++)
{
var courseIds2 = new List<long>();
if (!string.IsNullOrWhiteSpace(wares[j].CourseIds))
courseIds2 = JsonConvert.DeserializeObject<List<long>>(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 #endregion
if (entity.Status == Consts.DIC_COURSE_STATUS.RELEASED) if (entity.Status == Consts.DIC_COURSE_STATUS.RELEASED)

@ -29,12 +29,15 @@ public class Ghre_CourseWareServices : BaseServices<Ghre_CourseWare, Ghre_Course
public override async Task<long> Add(InsertGhre_CourseWareInput entity) public override async Task<long> Add(InsertGhre_CourseWareInput entity)
{ {
if (await base.AnyAsync(x => x.CourseWareName == entity.CourseWareName && x.VersionNo == entity.VersionNo))
throw new Exception("已存在相同课名称和版本号数据!");
if (entity.CourseIds2.Any()) if (entity.CourseIds2.Any())
{ {
entity.CourseIds = JsonConvert.SerializeObject(entity.CourseIds2); entity.CourseIds = JsonConvert.SerializeObject(entity.CourseIds2);
var courses = await _ghre_CourseServices.Query(x => entity.CourseIds2.Contains(x.Id)); var courses = await _ghre_CourseServices.Query(x => entity.CourseIds2.Contains(x.Id));
entity.CourseNames = string.Join(",", courses.Select(x => x.CourseName)); entity.CourseNames = string.Join(",", courses.Select(x => x.CourseName));
} }
var result = await base.Add(entity); var result = await base.Add(entity);
entity.Attachments.ForEach(x => entity.Attachments.ForEach(x =>
{ {
@ -47,6 +50,9 @@ public class Ghre_CourseWareServices : BaseServices<Ghre_CourseWare, Ghre_Course
public override async Task<bool> Update(long Id, EditGhre_CourseWareInput editModel) public override async Task<bool> 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()) if (editModel.CourseIds2.Any())
{ {
editModel.CourseIds = JsonConvert.SerializeObject(editModel.CourseIds2); editModel.CourseIds = JsonConvert.SerializeObject(editModel.CourseIds2);

@ -1875,7 +1875,7 @@ END";
record.InterviewAddress = body.InterviewAddress; 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 _ghrh_InterviewOrderServices.Update(order, ["InterviewStepName", "UpdateTime", "UpdateBy"]);
await LogRecord(order.Id, $"安排面试,面试时间:{body.Time},面试地点:{body.InterviewAddress},面试备注:{body.Remark ?? ""}", id, records[0].Id, "ScheduleInterview", true); await LogRecord(order.Id, $"安排面试,面试时间:{body.Time},面试地点:{body.InterviewAddress},面试备注:{body.Remark ?? ""}", id, records[0].Id, "ScheduleInterview", true);
@ -2234,7 +2234,7 @@ END";
if (order != null) if (order != null)
{ {
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer); 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() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
{ {
@ -2441,7 +2441,7 @@ END";
await Update(entity, ["Status"]); await Update(entity, ["Status"]);
await _ghrh_InterviewOrderServices.Update(order, ["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"); await LogRecord(order.Id, isOffer == true ? "标记为已报到!" : "标记为未报到!", id, null, "CheckIn");
} }
else else
@ -2552,7 +2552,7 @@ END";
{ {
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); 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"); await LogRecord(order.Id, "转入待发Offer!", id, null, "TransferWaitSendOffer");
} }
} }
@ -2661,13 +2661,16 @@ END";
C.CancelReason, C.CancelReason,
CONVERT CONVERT
(BIT, CASE B.[Round] WHEN C.[Round] THEN 'true' ELSE 'false' END) AS IsAllowAssess, (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 FROM Ghrh_Resume A
JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId
JOIN Ghrh_InterviewRecord C JOIN Ghrh_InterviewRecord C
ON B.ID = C.OrderId ON B.ID = C.OrderId
AND B.[Round] = C.[Round] 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)) if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "CreateTime1 ASC"; 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; break;
case "WaitInterview": case "WaitInterview":
if (jsonParam.columnValue.ObjToInt() == 1) if (jsonParam.columnValue.ObjToInt() == 1)
sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'"; sql += $" AND B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
break; break;
case "HasInterview": case "HasInterview":
if (jsonParam.columnValue.ObjToInt() == 1) 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; break;
case "WaitSendOffer": case "WaitSendOffer":
if (jsonParam.columnValue.ObjToInt() == 1) 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 (records[j].Round == order.Round && assessConfigId.ObjToString() == "IsPass")
{ {
if (assessContent == "1") if (assessContent == "1")
{
isPass = true; isPass = true;
records[j].IsPass = true;
}
} }
if (records[j].Round == order.Round && assessConfigId.ObjToString() == "EvaluateContent") if (records[j].Round == order.Round && assessConfigId.ObjToString() == "EvaluateContent")
{ {
evaluateContent = assessContent; 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() await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput()
{ {
InterviewAssessId = interviewAssessId, 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") if (source == "ess")
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()); var record = records.Where(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()).FirstOrDefault();
record.InterviewResult = InterviewResult; if (record != null)
record.InterviewResultRemark = evaluateContent; {
record.IsPass = isPass; record.Status = Status;
record.AssessTime = DateTime.Now; await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]);
record.Status = Status; }
await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]);
} }
else else
{ {
records.ForEach(record => records.ForEach(record =>
{ {
record.InterviewResult = InterviewResult;
record.InterviewResultRemark = evaluateContent;
record.IsPass = isPass;
record.AssessTime = DateTime.Now;
record.Status = Status; record.Status = Status;
}); });
await _ghrh_InterviewRecordServices.Update(records, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]); await _ghrh_InterviewRecordServices.Update(records, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]);

@ -28277,6 +28277,11 @@
是否可以取消 是否可以取消
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_ResumeDto.IsPrimary">
<summary>
是否为主面试官
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_ResumeEduBGDto"> <member name="T:Tiobon.Core.Model.Models.Ghrh_ResumeEduBGDto">
<summary> <summary>
教育背景(Dto.View1) 教育背景(Dto.View1)

Loading…
Cancel
Save