diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index fe3bbcc0..75a0f7e0 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -2598,7 +2598,7 @@ 课件ID - + @@ -2690,11 +2690,6 @@ 课前准备 - - - 发布时间 - - 备注 @@ -2785,6 +2780,11 @@ 默认封面图Name + + + 发布时间 + + 课程分类 (Dto.Base) @@ -2890,16 +2890,6 @@ 场景名称 - - - 课程ID - - - - - 课程 - - 备注 @@ -2910,31 +2900,6 @@ 排序 - - - 标准课时 - - - - - 学分 - - - - - 封面图 - - - - - 是否使用默认封面 - - - - - 默认封面图Name - - 默认标志 @@ -3000,6 +2965,41 @@ 预留字段12 + + + 课程ID + + + + + 课程 + + + + + 标准课时 + + + + + 学分 + + + + + 封面图 + + + + + 是否使用默认封面 + + + + + 默认封面图Name + + Ghre_CourseSnap (Dto.Base) @@ -16119,7 +16119,7 @@ 课件ID - + @@ -16211,11 +16211,6 @@ 课前准备 - - - 发布时间 - - 备注 @@ -16306,6 +16301,11 @@ 默认封面图Name + + + 发布时间 + + 课程分类 (Model) @@ -16411,16 +16411,6 @@ 场景名称 - - - 课程ID - - - - - 课程 - - 备注 @@ -16431,31 +16421,6 @@ 排序 - - - 标准课时 - - - - - 学分 - - - - - 封面图 - - - - - 是否使用默认封面 - - - - - 默认封面图Name - - 默认标志 @@ -16521,6 +16486,41 @@ 预留字段12 + + + 课程ID + + + + + 课程 + + + + + 标准课时 + + + + + 学分 + + + + + 封面图 + + + + + 是否使用默认封面 + + + + + 默认封面图Name + + Ghre_CourseSnap (Model) diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index 988d1941..c26be6aa 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -1020,13 +1020,7 @@ 条件 - - - 获取考试记录明细扩展接口 - - - - + 提交评语接口 diff --git a/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs index 0c017987..ce325274 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs @@ -236,7 +236,7 @@ public class Ghre_CertificateServices : BaseServices.OprateSuccess("导入成功!", data); } diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseClassServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseClassServices.cs index 6991757e..2cf272fb 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CourseClassServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CourseClassServices.cs @@ -134,7 +134,7 @@ public class Ghre_CourseClassServices : BaseServices.OprateSuccess("导入成功!", data); } diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseSceneServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseSceneServices.cs index 4d4698e6..609be4ab 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CourseSceneServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CourseSceneServices.cs @@ -181,7 +181,7 @@ public class Ghre_CourseSceneServices : BaseServices.OprateSuccess("导入成功!", data); } diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs index 7a5d32ea..8b13da6b 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs @@ -924,7 +924,7 @@ public class Ghre_CourseServices : BaseServices.OprateSuccess("导入成功!", data); } diff --git a/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs b/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs index 4a01a4a6..39bcbb12 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs @@ -1260,7 +1260,7 @@ public class Ghre_ExamRecordServices : BaseServices.OprateSuccess("导入成功!", data); } diff --git a/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs b/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs index 47bc596f..e91eb199 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs @@ -1089,7 +1089,7 @@ public class Ghre_QuestionServices : BaseServices.OprateSuccess("导入成功!", data); diff --git a/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs b/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs index 9addaeb5..3b265ca7 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_TeacherServices.cs @@ -381,8 +381,6 @@ FROM (SELECT A.*, for (int i = 0; i < dt.Rows.Count; i++) { var comments = new List(); - - bool isContinue = false; fields.ForEach(x => @@ -404,57 +402,124 @@ FROM (SELECT A.*, var StaffNo = dt.Rows[i]["工号"].ToString(); var StaffName = dt.Rows[i]["姓名"].ToString(); var SchoolName = dt.Rows[i]["培训机构"].ToString(); - var Score = dt.Rows[i]["讲师编号"].ToString(); - var AdjustScore = dt.Rows[i]["讲师姓名"].ToString(); - var ActualScore = dt.Rows[i]["性别"].ToString(); - var IsPass = dt.Rows[i]["邮箱"].ToString(); - //var IsPass = dt.Rows[i]["手机号码"].ToString(); - //var IsPass = dt.Rows[i]["讲师等级"].ToString(); - //var IsPass = dt.Rows[i]["课时费"].ToString(); - //var IsPass = dt.Rows[i]["擅长领域"].ToString(); - - if (StaffNo.IsNullOrEmpty() && StaffName.IsNullOrEmpty()) - continue; - + var TeacherNo = dt.Rows[i]["讲师编号"].ToString(); + var TeacherName = dt.Rows[i]["讲师姓名"].ToString(); + var Gender = dt.Rows[i]["性别"].ToString(); + var Email = dt.Rows[i]["邮箱"].ToString(); + var Mobile = dt.Rows[i]["手机号码"].ToString(); + var TeacherLevel = dt.Rows[i]["讲师等级"].ToString(); + var Price = dt.Rows[i]["课时费"].ToString(); + var SkillPoints = dt.Rows[i]["擅长领域"].ToString(); var remarkSz = dt.Rows[i]["备注"].ToString(); - var staff = await Db.Queryable().Where(x => x.StaffNo == StaffNo && x.StaffName == StaffName).FirstAsync(); - if (staff == null) - { - comments.Add($"未查询到该员工,工号或姓名填写错误!"); - data.ErrorCount++; - dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); - isExistError = true; - continue; - } - var exam = await Db.Queryable().Where(x => x.Id == MasterId).FirstAsync(); + var dict = new Dictionary + { + { "Id", SnowFlakeSingle.Instance.NextId() }, + { "CreateBy", App.User.ID }, + { "CreateTime", DateTime.Now }, + { "RemarkSz", remarkSz } + }; + if (TeacherType.IsNullOrEmpty()) + continue; + if (TeacherType == "内部") + { + if (StaffNo.IsNullOrEmpty()) + { + comments.Add("工号不能为空!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } + if (StaffName.IsNullOrEmpty()) + { + comments.Add("姓名不能为空!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } + var staff = await Db.Queryable().Where(x => x.StaffNo == StaffNo && x.StaffName == StaffName).FirstAsync(); + if (staff == null) + { + comments.Add($"未查询到该员工,工号或姓名填写错误!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } - //if (ExamDate.IsNullOrEmpty()) - // ExamDate = DateTime.Now.ToString(); - if (Score.IsNullOrEmpty()) - Score = "0"; + TeacherNo = staff.StaffNo; + TeacherName = staff.StaffName; + Email = staff.Email.ObjToString(); + Mobile = staff.Mobile.ObjToString(); + Gender = staff.Gender; - try + dict.Add("DeptID", staff.DeptID); + dict.Add("StaffId", staff.StaffID); + dict.Add("TeacherType", "In"); + } + else { - Convert.ToInt32(Score); + if (Gender.IsNullOrEmpty()) + Gender = "unknown"; + else + Gender = Gender == "男" ? "Male" : "Female"; + + if (SchoolName.IsNullOrEmpty()) + { + comments.Add("培训机构不能为空!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } + var school = await Db.Queryable().Where(x => x.SchoolName == SchoolName).FirstAsync(); + if (school is null) + { + comments.Add("无效的培训机构!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } + dict.Add("SchoolId", school.Id); + + if (TeacherNo.IsNullOrEmpty()) + { + comments.Add("讲师编号不能为空!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } + if (TeacherName.IsNullOrEmpty()) + { + comments.Add("讲师姓名不能为空!"); + data.ErrorCount++; + dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); + isExistError = true; + continue; + } + dict.Add("TeacherType", "Out"); } - catch (Exception) + if (TeacherLevel.IsNullOrEmpty()) { - comments.Add($"考试分数填写有误!"); + comments.Add("讲师等级不能为空!"); data.ErrorCount++; dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); isExistError = true; continue; } - try - { - Convert.ToInt32(AdjustScore); - } - catch (Exception) + + var items = await GetParaList("TrainingTeacherLevel"); + TeacherLevel = items.Where(x => x.ParaDetailName == TeacherLevel).FirstOrDefault()?.ParaDetailNo ?? "In"; + + if (Price.IsNullOrEmpty()) { - comments.Add($"调整分填写有误!"); + comments.Add("课时费不能为空!"); data.ErrorCount++; dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); isExistError = true; @@ -462,76 +527,33 @@ FROM (SELECT A.*, } try { - Convert.ToInt32(ActualScore); + Convert.ToInt32(Price); } catch (Exception) { - comments.Add($"实操分填写有误!"); + comments.Add($"课时费填写有误!"); data.ErrorCount++; dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); isExistError = true; continue; } - //try - //{ - // Convert.ToDateTime(ExamDate); - //} - //catch (Exception) - //{ - // comments.Add($"考试日期填写有误!"); - // data.ErrorCount++; - // dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); - // isExistError = true; - // continue; - //} - //if (await base.AnyAsync(x => x.CertificateRuleId == rule.Id && x.StaffId == staff.StaffID && x.CourseId == course.Id)) - //{ - // comments.Add($"系统已存在相同证照数据!"); - // data.ErrorCount++; - // dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); - // isExistError = true; - // continue; - //} - var snap = await Db.Queryable().FirstAsync(x => x.CourseId == exam.CourseId); - var ExamRecordId = SnowFlakeSingle.Instance.NextId(); - var StudyRecordId = SnowFlakeSingle.Instance.NextId(); - var dict1 = new Dictionary - { - { "Id", StudyRecordId }, - { "CreateBy", App.User.ID }, - { "CreateTime", DateTime.Now }, - { "ExamId", MasterId }, - { "StaffId", staff.StaffID }, - { "CourseId", exam.CourseId }, - { "CourseSnapId", snap?.Id }, - { "CourseSceneId", exam.CourseSceneId }, - { "JoinTime", DateTime.Now }, - { "RemarkSz", "导入讲师维护生成" } - }; - var dict = new Dictionary - { - { "Id", ExamRecordId }, - { "CreateBy", App.User.ID }, - { "CreateTime", DateTime.Now }, - { "ExamId", MasterId }, - { "StudyRecordId", StudyRecordId }, - { "StaffId", staff.StaffID }, - //{ "CourseId", exam.CourseId }, - { "CourseSnapId", snap?.Id }, - { "Score", Score }, - { "AdjustScore", Score }, - { "ActualScore", ActualScore }, - //{ "ExamDate", ExamDate }, - { "IsPass", IsPass=="是"?true:false }, - { "ScoreStatus", "HasScore" }, - { "Source", "ExcelImport" }, - { "ExamPaperId",exam.ExamPaperId }, - { "RemarkSz", remarkSz } - }; + + dict.Add("TeacherNo", TeacherNo); + dict.Add("TeacherName", TeacherName); + dict.Add("Email", Email); + dict.Add("Mobile", Mobile); + dict.Add("Gender", Gender); + dict.Add("Price", Price); + dict.Add("TeacherLevel", TeacherLevel); + dict.Add("SkillPoints", SkillPoints); + + if (menuName == "F_TeacherManage") + dict.Add("Status", "Wait"); + else + dict.Add("Status", "Temporary"); try { - await Db.Insertable(dict1).AS("Ghre_StudyRecord").ExecuteCommandAsync(); - await Db.Insertable(dict).AS("Ghre_ExamRecord").ExecuteCommandAsync(); + await Db.Insertable(dict).AS("Ghre_Teacher").ExecuteCommandAsync(); data.SuccessCount++; //data.SuccessCount += list.Count; } @@ -543,15 +565,15 @@ FROM (SELECT A.*, isExistError = true; continue; } - } - if (isExistError) { NPOIHelper.ExportExcel(dt, null, "讲师维护", physicsPath + errorFileName); - data.filePath = errorFileName; + data.filePath = "/Advanced" + errorFileName; } + return ServiceResult.OprateSuccess("导入成功!", data); } #endregion + } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index c7def937..461bff80 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -3678,28 +3678,36 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 if (await Db.Queryable().AnyAsync(x => x.IdCardNo == data.IDCardNo)) continue; + var resume = await base.QuerySingle(x => x.IdCardNo == data.IDCardNo); + var deptId = (await Db.Queryable().Where(x => x.DeptNo == data.DeptNo).FirstAsync())?.DeptID; var titleId = (await Db.Queryable().Where(x => x.TitleNo == data.TitleNo).FirstAsync())?.TitleID; var gradeId = (await Db.Queryable().Where(x => x.GradeNo == data.GradeNo).FirstAsync())?.GradeID; var workAddress = (await Db.Queryable().Where(x => x.ZoneNo == data.ZoneNo).FirstAsync())?.ZoneName; var periodMasterId = (await Db.Queryable().Where(x => x.PeriodMasterNo == data.PeriodMasterNo).FirstAsync())?.PeriodMasterID; + var items1 = await GetParaList("ResumeChannel"); + data.RecruitFrom = items1.Where(x => x.ParaDetailName == data.RecruitFrom).FirstOrDefault()?.ParaDetailNo ?? data.RecruitFrom; + var items = new List(); var insert = new Ghrh_OfferApplyOrder() { OrderNo = data.WorkNo, + WorkNo = data.WorkNo, DeptId = deptId, TitleId = titleId, Channel = data.RecruitFrom, StaffName = data.EmployName, IdCardNo = data.IDCardNo, InDate = data.InDate, - StaffType = data.StaffType, + StaffType1 = data.StaffType, GradeId = gradeId, WorkAddress = workAddress, ProbationSalary = data.TotalAmount, PeriodMasterId = periodMasterId, }; + if (resume != null) + insert.ResumeId = resume.Id; long id = await Db.Insertable(insert).ExecuteReturnSnowflakeIdAsync(); #region 写入数据,并判断是否有错误 @@ -4406,7 +4414,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 23, -- 1130, -- 0,'Todo',1,'', - 1,0,0,0, + 1,2,0,0, {App.User.ID},GETDATE(), 'SyncToStaff', dbo.FS_EncryptByKey({applyOrder?.ProbationSalary ?? 0}) Declare @N_SCID int = SCOPE_IDENTITY() diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs index cf15e2b1..c0a36d2e 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs @@ -421,7 +421,7 @@ public class Ghrh_YearHumanSettingsServices : BaseServices