/// <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> 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());
        }