|
|
|
@ -1,8 +1,8 @@ |
|
|
|
|
using DinkToPdf; |
|
|
|
|
using DinkToPdf.Contracts; |
|
|
|
|
using Microsoft.AspNetCore.Hosting; |
|
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
|
using Microsoft.Extensions.Hosting; |
|
|
|
|
using System.ComponentModel.Design; |
|
|
|
|
using System.IO.Compression; |
|
|
|
|
using static Tiobon.Core.Model.Consts; |
|
|
|
|
|
|
|
|
@ -399,6 +399,7 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins |
|
|
|
|
//x.InterviewResult = "推荐中"; |
|
|
|
|
x.TransferStaffType = sendOfferConfig?.ConfigValue ?? "System"; |
|
|
|
|
} |
|
|
|
|
x.IsAllowAssess = true; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
@ -2666,7 +2667,7 @@ FROM Ghrh_Resume A |
|
|
|
|
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";
|
|
|
|
|
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"; |
|
|
|
@ -3134,7 +3135,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 获取评估单表单信息 |
|
|
|
|
public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, long? orderId = null) |
|
|
|
|
public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, long? orderId = null, [FromBody] ResumeAssessForm assessForm = null) |
|
|
|
|
{ |
|
|
|
|
dynamic result = new ExpandoObject(); |
|
|
|
|
|
|
|
|
@ -3229,12 +3230,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
if (assessDetail != null) |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3252,12 +3253,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
if (assessDetail != null) |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3273,12 +3274,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
if (assessDetail != null) |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3294,12 +3295,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
if (assessDetail != null) |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3355,7 +3356,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ObjToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ObjToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
@ -3363,7 +3364,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3381,7 +3382,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
|
|
|
|
|
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) |
|
|
|
|
continue; |
|
|
|
@ -3390,7 +3391,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3406,7 +3407,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
@ -3415,7 +3416,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3431,7 +3432,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var record = records[i]; |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); |
|
|
|
|
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault(); |
|
|
|
|
|
|
|
|
|
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) |
|
|
|
|
continue; |
|
|
|
@ -3441,7 +3442,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt() == 1 ? "通过" : "不通过")); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr") |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3456,7 +3457,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 面试评估 |
|
|
|
|
public async Task<ServiceResult> AssessInterview(long id, int status, List<Dictionary<string, object>> input) |
|
|
|
|
public async Task<ServiceResult> AssessInterview(long id, int status, List<Dictionary<string, object>> input, string source) |
|
|
|
|
{ |
|
|
|
|
if (status > 1 || status < 0) |
|
|
|
|
status = 0; |
|
|
|
@ -3468,6 +3469,11 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
if (order == null) |
|
|
|
|
return ServiceResult.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
//【简历库-录用-已发offer】配置按钮 |
|
|
|
|
var config = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Assess_Mode").FirstAsync(); |
|
|
|
|
|
|
|
|
|
string assessMode = config?.ConfigValue ?? "OR"; |
|
|
|
|
|
|
|
|
|
long interviewAssessId = 0; |
|
|
|
|
var assess = await _ghrh_InterviewAssessServices.QuerySingle(x => x.OrderId == order.Id); |
|
|
|
|
if (assess is null) |
|
|
|
@ -3520,7 +3526,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput() |
|
|
|
|
{ |
|
|
|
|
InterviewAssessId = interviewAssessId, |
|
|
|
|
StaffId = staffId, |
|
|
|
|
StaffId = records[j].StaffId, |
|
|
|
|
InterviewRecordId = records[j].Id, |
|
|
|
|
AssessConfigId = assessConfigId.ObjToString(), |
|
|
|
|
AssessContent = assessContent, |
|
|
|
@ -3535,6 +3541,9 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
|
|
|
|
|
string Status = isPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview; |
|
|
|
|
|
|
|
|
|
if (assessMode != "OR" && source == "ess") |
|
|
|
|
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview; |
|
|
|
|
string InterviewResult = isPass == false ? "面试不通过" : "面试通过"; |
|
|
|
|
|
|
|
|
|
order.Status = Status; |
|
|
|
@ -3544,20 +3553,44 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
order.InterviewResultRemark = evaluateContent; |
|
|
|
|
await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]); |
|
|
|
|
|
|
|
|
|
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"]); |
|
|
|
|
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"]); |
|
|
|
|
} |
|
|
|
|
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"]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
await UpdateResumeStatus(entity, Status); |
|
|
|
|
if (entity.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview) |
|
|
|
|
await UpdateResumeStatus(entity, Status); |
|
|
|
|
|
|
|
|
|
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); |
|
|
|
|
if (source == "ess") |
|
|
|
|
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); |
|
|
|
|
else |
|
|
|
|
await LogRecord(order.Id, $"【后台】提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "TempAssessInterview"); |
|
|
|
|
{ |
|
|
|
|
if (source == "ess") |
|
|
|
|
await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "TempAssessInterview"); |
|
|
|
|
else |
|
|
|
|
await LogRecord(order.Id, $"【后台】暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "TempAssessInterview"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
} |
|
|
|
@ -3567,167 +3600,176 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
#region 世华OA同步 |
|
|
|
|
public async Task Shihua_OA_Sync() |
|
|
|
|
{ |
|
|
|
|
var list = await Db.Queryable<Ghrz_Shihua_OA_Employment>().Where(x => x.CreateTime.Value.Date == DateTime.Now).ToListAsync(); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < list.Count; i++) |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
var data = list[i]; |
|
|
|
|
|
|
|
|
|
if (await Db.Queryable<Ghrh_OfferApplyOrder>().AnyAsync(x => x.IdCardNo == data.IDCardNo)) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
var deptId = (await Db.Queryable<Ghro_Dept>().Where(x => x.DeptNo == data.DeptNo).FirstAsync())?.DeptID; |
|
|
|
|
var titleId = (await Db.Queryable<Ghra_Title>().Where(x => x.TitleNo == data.TitleNo).FirstAsync())?.TitleID; |
|
|
|
|
var gradeId = (await Db.Queryable<Ghra_Grade>().Where(x => x.GradeNo == data.GradeNo).FirstAsync())?.GradeID; |
|
|
|
|
var workAddress = (await Db.Queryable<Ghra_Zone>().Where(x => x.ZoneNo == data.ZoneNo).FirstAsync())?.ZoneName; |
|
|
|
|
var periodMasterId = (await Db.Queryable<Ghrc_PeriodMaster>().Where(x => x.PeriodMasterNo == data.PeriodMasterNo).FirstAsync())?.PeriodMasterID; |
|
|
|
|
var list = await Db.Queryable<Ghrz_Shihua_OA_Employment>().Where(x => x.CreateTime.Value.Date == DateTime.Now).ToListAsync(); |
|
|
|
|
|
|
|
|
|
var items = new List<Ghrh_OfferApplyOrderSalary>(); |
|
|
|
|
var insert = new Ghrh_OfferApplyOrder() |
|
|
|
|
for (int i = 0; i < list.Count; i++) |
|
|
|
|
{ |
|
|
|
|
OrderNo = data.WorkNo, |
|
|
|
|
DeptId = deptId, |
|
|
|
|
TitleId = titleId, |
|
|
|
|
Channel = data.RecruitFrom, |
|
|
|
|
StaffName = data.EmployName, |
|
|
|
|
IdCardNo = data.IDCardNo, |
|
|
|
|
InDate = data.InDate, |
|
|
|
|
StaffType = data.StaffType, |
|
|
|
|
GradeId = gradeId, |
|
|
|
|
WorkAddress = workAddress, |
|
|
|
|
ProbationSalary = data.TotalAmount, |
|
|
|
|
PeriodMasterId = periodMasterId, |
|
|
|
|
}; |
|
|
|
|
long id = await Db.Insertable(insert).ExecuteReturnSnowflakeIdAsync(); |
|
|
|
|
var data = list[i]; |
|
|
|
|
|
|
|
|
|
#region 处理薪资项目 |
|
|
|
|
if (await Db.Queryable<Ghrh_OfferApplyOrder>().AnyAsync(x => x.IdCardNo == data.IDCardNo)) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
var currencyId = await Db.Ado.GetIntAsync("SELECT top 1 CurrencyID FROM Ghrc_Currency where CurrencyNo='RMB'"); |
|
|
|
|
if (data.S02.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S02").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var deptId = (await Db.Queryable<Ghro_Dept>().Where(x => x.DeptNo == data.DeptNo).FirstAsync())?.DeptID; |
|
|
|
|
var titleId = (await Db.Queryable<Ghra_Title>().Where(x => x.TitleNo == data.TitleNo).FirstAsync())?.TitleID; |
|
|
|
|
var gradeId = (await Db.Queryable<Ghra_Grade>().Where(x => x.GradeNo == data.GradeNo).FirstAsync())?.GradeID; |
|
|
|
|
var workAddress = (await Db.Queryable<Ghra_Zone>().Where(x => x.ZoneNo == data.ZoneNo).FirstAsync())?.ZoneName; |
|
|
|
|
var periodMasterId = (await Db.Queryable<Ghrc_PeriodMaster>().Where(x => x.PeriodMasterNo == data.PeriodMasterNo).FirstAsync())?.PeriodMasterID; |
|
|
|
|
|
|
|
|
|
var items = new List<Ghrh_OfferApplyOrderSalary>(); |
|
|
|
|
var insert = new Ghrh_OfferApplyOrder() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S02, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
OrderNo = data.WorkNo, |
|
|
|
|
DeptId = deptId, |
|
|
|
|
TitleId = titleId, |
|
|
|
|
Channel = data.RecruitFrom, |
|
|
|
|
StaffName = data.EmployName, |
|
|
|
|
IdCardNo = data.IDCardNo, |
|
|
|
|
InDate = data.InDate, |
|
|
|
|
StaffType = data.StaffType, |
|
|
|
|
GradeId = gradeId, |
|
|
|
|
WorkAddress = workAddress, |
|
|
|
|
ProbationSalary = data.TotalAmount, |
|
|
|
|
PeriodMasterId = periodMasterId, |
|
|
|
|
}; |
|
|
|
|
long id = await Db.Insertable(insert).ExecuteReturnSnowflakeIdAsync(); |
|
|
|
|
|
|
|
|
|
if (data.S03.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S03").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
#region 处理薪资项目 |
|
|
|
|
|
|
|
|
|
var currencyId = await Db.Ado.GetIntAsync("SELECT top 1 CurrencyID FROM Ghrc_Currency where CurrencyNo='RMB'"); |
|
|
|
|
if (data.S02.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S03, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S04.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S04").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S02").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S02, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (data.S03.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S04, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S05.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S05").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S03").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S03, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S04.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S05, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S06.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S06").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S04").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S04, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S05.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S06, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S21.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S21").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S05").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S05, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S06.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S21, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S22.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S22").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S06").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S06, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S21.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S22, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S23.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S23").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S21").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S21, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S22.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S23, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S66.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S66").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S22").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S22, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S23.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S66, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S68.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S68").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S23").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S23, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S66.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S68, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S70.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S70").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S66").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S66, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S68.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S70, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S68").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S68, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (data.S70.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S70").FirstAsync())?.SalaryItemID; |
|
|
|
|
items.Add(new Ghrh_OfferApplyOrderSalary() |
|
|
|
|
{ |
|
|
|
|
OrderId = id, |
|
|
|
|
SalaryItemId = salaryItemId, |
|
|
|
|
Amount = data.S70, |
|
|
|
|
CurrencyId = currencyId |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
if (items.Any()) |
|
|
|
|
await Db.Insertable(items).ExecuteReturnSnowflakeIdAsync(); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
if (items.Any()) |
|
|
|
|
await Db.Insertable(items).ExecuteReturnSnowflakeIdAsync(); |
|
|
|
|
} |
|
|
|
|
catch (Exception) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|