/// <summary> /// 查询一个模板 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <HrTemplateInfoDTO> GetHrTemplateInfo(IdInputDTO input) { HrTemplateInfoDTO vm = await GetIQueryable() .ProjectTo <HrTemplateInfoDTO>(_mapper.ConfigurationProvider) .FirstOrDefaultAsync(x => !x.Deleted && x.id == input.id); if (vm.IsNullOrEmpty()) { throw new BusException("当前模板不存在"); } //测评模板分数范围 var all_fractiona_items = await Db.GetIQueryable <hr_assessment_fractional_items>().Where(x => x.assessment_template_id == vm.id).ToListAsync(); //测评模板项 vm.templatItems = await Db.GetIQueryable <hr_assessment_template_items>() .Where(x => x.assessment_template_id == vm.id) .ProjectTo <templatItemsDTO>(_mapper.ConfigurationProvider) .ToListAsync(); vm.templatItems.ForEach(item => { item.fractiona_items = all_fractiona_items.FindAll(x => x.assessment_template_id == vm.id && x.assessment_template_item_id == item.id).ToList(); }); return(vm); }
public async Task <AjaxResult> UpdateHrTemplateInfo(HrTemplateInfoDTO vm) { hr_assessment_template template = GetEntity(vm.id); if (template.IsNullOrEmpty()) { return(Error("当前模板不存在")); } var hrass = await Db.GetIQueryable <hr_assessment_evaluation>().FirstOrDefaultAsync(x => x.assessment_template_id == vm.id && x.completion_time == null); if (!hrass.IsNullOrEmpty()) { return(Error("该模板正在使用中,不应该修改")); } if (vm.templatItems == null || vm.templatItems.Count <= 0) { return(Error("模板考核项不能为空")); } template.template_code = vm.template_code; template.template_name = vm.template_name; template.assessment_criteria = vm.assessment_criteria; template.updated_user = _operator.Property?.UserName; template.updated_time = DateTime.Now; await Db.UpdateAsync(template); #region 根据模板Id,重建所有模板项和分数项 await Db.DeleteAsync <hr_assessment_template_items>(x => x.assessment_template_id == template.id); await Db.DeleteAsync <hr_assessment_fractional_items>(x => x.assessment_template_id == template.id); var newfractiona_items = new List <hr_assessment_fractional_items>(); //考核项目和模板关联 vm.templatItems.ForEach(item => { item.id = IdHelper.GetId(); item.assessment_template_id = template.id; //分数项和模板关联 item.fractiona_items.ForEach(_item => { _item.id = IdHelper.GetId(); _item.assessment_template_id = template.id; _item.assessment_template_item_id = item.id; }); newfractiona_items.AddRange(item.fractiona_items); }); #endregion await Db.InsertAsync(newfractiona_items); await Db.InsertAsync(vm.templatItems); return(Success()); }
public async Task <AjaxResult> InsertHrTemplateInfo(HrTemplateInfoDTO vm) { if (vm.IsNullOrEmpty()) { return(Error("数据不能为空")); } if (vm.templatItems == null || vm.templatItems.Count <= 0) { return(Error("模板考核项不能为空")); } var template = _mapper.Map <hr_assessment_template>(vm); template.id = IdHelper.GetId(); template.template_code = (await Db.GetIQueryable <hr_assessment_template>().MaxAsync(x => x.template_code) ?? 0) + 1; template.create_user = _operator.Property?.UserName; template.created_time = DateTime.Now; template.Deleted = false; var newfractiona_fractiona = new List <hr_assessment_fractional_items>(); vm.templatItems.ForEach(item => { item.id = IdHelper.GetId(); item.assessment_template_id = template.id; item.fractiona_items.ForEach(_item => { _item.id = IdHelper.GetId(); _item.assessment_template_id = template.id; _item.assessment_template_item_id = item.id; }); newfractiona_fractiona.AddRange(item.fractiona_items); }); await Db.InsertAsync(template); await Db.InsertAsync(vm.templatItems); await Db.InsertAsync(newfractiona_fractiona); return(Success()); }
public async Task <AjaxResult> UpdateHrTemplateInfo(HrTemplateInfoDTO vm) { return(await _IHr_assessment_templateService.UpdateHrTemplateInfo(vm)); }