diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxzxkhgl/TsbzJxzxkhfaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxzxkhgl/TsbzJxzxkhfaController.java
new file mode 100644
index 000000000..9e170dbf7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxzxkhgl/TsbzJxzxkhfaController.java
@@ -0,0 +1,106 @@
+package com.ruoyi.web.controller.jxzxkhgl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhfa;
+import com.ruoyi.jxzxkhgl.service.ITsbzJxzxkhfaService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 见习之星考核方案Controller
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+@RestController
+@RequestMapping("/jxzxkhgl/jxzxkhfa")
+public class TsbzJxzxkhfaController extends BaseController
+{
+    @Autowired
+    private ITsbzJxzxkhfaService tsbzJxzxkhfaService;
+
+    /**
+     * 查询见习之星考核方案列表
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhfa:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        startPage();
+        List<TsbzJxzxkhfa> list = tsbzJxzxkhfaService.selectTsbzJxzxkhfaList(tsbzJxzxkhfa);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出见习之星考核方案列表
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhfa:export')")
+    @Log(title = "见习之星考核方案", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        List<TsbzJxzxkhfa> list = tsbzJxzxkhfaService.selectTsbzJxzxkhfaList(tsbzJxzxkhfa);
+        ExcelUtil<TsbzJxzxkhfa> util = new ExcelUtil<TsbzJxzxkhfa>(TsbzJxzxkhfa.class);
+        return util.exportExcel(list, "jxzxkhfa");
+    }
+
+    /**
+     * 获取见习之星考核方案详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhfa:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tsbzJxzxkhfaService.selectTsbzJxzxkhfaById(id));
+    }
+
+    /**
+     * 新增见习之星考核方案
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhfa:add')")
+    @Log(title = "见习之星考核方案", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        tsbzJxzxkhfa.setCreateuserid(SecurityUtils.getLoginUser().getUser().getUserId());
+        return toAjax(tsbzJxzxkhfaService.insertTsbzJxzxkhfa(tsbzJxzxkhfa));
+    }
+
+    /**
+     * 修改见习之星考核方案
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhfa:edit')")
+    @Log(title = "见习之星考核方案", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        return toAjax(tsbzJxzxkhfaService.updateTsbzJxzxkhfa(tsbzJxzxkhfa));
+    }
+
+    /**
+     * 删除见习之星考核方案
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhfa:remove')")
+    @Log(title = "见习之星考核方案", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tsbzJxzxkhfaService.deleteTsbzJxzxkhfaByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxzxkhgl/TsbzJxzxkhzbxController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxzxkhgl/TsbzJxzxkhzbxController.java
new file mode 100644
index 000000000..19d356bb0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jxzxkhgl/TsbzJxzxkhzbxController.java
@@ -0,0 +1,103 @@
+package com.ruoyi.web.controller.jxzxkhgl;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhzbx;
+import com.ruoyi.jxzxkhgl.service.ITsbzJxzxkhzbxService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 考核指标项Controller
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+@RestController
+@RequestMapping("/jxzxkhgl/jxzxkhzbx")
+public class TsbzJxzxkhzbxController extends BaseController
+{
+    @Autowired
+    private ITsbzJxzxkhzbxService tsbzJxzxkhzbxService;
+
+    /**
+     * 查询考核指标项列表
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhzbx:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        startPage();
+        List<TsbzJxzxkhzbx> list = tsbzJxzxkhzbxService.selectTsbzJxzxkhzbxList(tsbzJxzxkhzbx);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出考核指标项列表
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhzbx:export')")
+    @Log(title = "考核指标项", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        List<TsbzJxzxkhzbx> list = tsbzJxzxkhzbxService.selectTsbzJxzxkhzbxList(tsbzJxzxkhzbx);
+        ExcelUtil<TsbzJxzxkhzbx> util = new ExcelUtil<TsbzJxzxkhzbx>(TsbzJxzxkhzbx.class);
+        return util.exportExcel(list, "jxzxkhzbx");
+    }
+
+    /**
+     * 获取考核指标项详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhzbx:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tsbzJxzxkhzbxService.selectTsbzJxzxkhzbxById(id));
+    }
+
+    /**
+     * 新增考核指标项
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhzbx:add')")
+    @Log(title = "考核指标项", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        return toAjax(tsbzJxzxkhzbxService.insertTsbzJxzxkhzbx(tsbzJxzxkhzbx));
+    }
+
+    /**
+     * 修改考核指标项
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhzbx:edit')")
+    @Log(title = "考核指标项", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        return toAjax(tsbzJxzxkhzbxService.updateTsbzJxzxkhzbx(tsbzJxzxkhzbx));
+    }
+
+    /**
+     * 删除考核指标项
+     */
+    @PreAuthorize("@ss.hasPermi('jxzxkhgl:jxzxkhzbx:remove')")
+    @Log(title = "考核指标项", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tsbzJxzxkhzbxService.deleteTsbzJxzxkhzbxByIds(ids));
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/domain/TsbzJxzxkhfa.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/domain/TsbzJxzxkhfa.java
new file mode 100644
index 000000000..d4541e488
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/domain/TsbzJxzxkhfa.java
@@ -0,0 +1,158 @@
+package com.ruoyi.jxzxkhgl.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 见习之星考核方案对象 tsbz_jxzxkhfa
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+public class TsbzJxzxkhfa extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 考核方案名称 */
+    @Excel(name = "考核方案名称")
+    private String name;
+
+    /** 考核方案状态
+            0:未启动
+            1:启动
+            9:已结束 */
+    @Excel(name = "考核方案状态")
+    private String status;
+
+    /** 考核开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "考核开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date starttime;
+
+    /** 考核结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "考核结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endtime;
+
+    /** 考核文件名称 */
+    @Excel(name = "考核文件名称")
+    private String filename;
+
+    /** 文件路径 */
+    @Excel(name = "文件路径")
+    private String filepath;
+
+    /** 考核年份 */
+    @JsonFormat(pattern = "yyyy")
+    @Excel(name = "考核年份", width = 30, dateFormat = "yyyy")
+    private Date khnf;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createuserid;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+    public void setStarttime(Date starttime) 
+    {
+        this.starttime = starttime;
+    }
+
+    public Date getStarttime() 
+    {
+        return starttime;
+    }
+    public void setEndtime(Date endtime) 
+    {
+        this.endtime = endtime;
+    }
+
+    public Date getEndtime() 
+    {
+        return endtime;
+    }
+    public void setFilename(String filename) 
+    {
+        this.filename = filename;
+    }
+
+    public String getFilename() 
+    {
+        return filename;
+    }
+    public void setFilepath(String filepath) 
+    {
+        this.filepath = filepath;
+    }
+
+    public String getFilepath() 
+    {
+        return filepath;
+    }
+    public void setKhnf(Date khnf) 
+    {
+        this.khnf = khnf;
+    }
+
+    public Date getKhnf() 
+    {
+        return khnf;
+    }
+    public void setCreateuserid(Long createuserid) 
+    {
+        this.createuserid = createuserid;
+    }
+
+    public Long getCreateuserid() 
+    {
+        return createuserid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("status", getStatus())
+            .append("starttime", getStarttime())
+            .append("endtime", getEndtime())
+            .append("filename", getFilename())
+            .append("filepath", getFilepath())
+            .append("khnf", getKhnf())
+            .append("createuserid", getCreateuserid())
+            .append("createTime", getCreateTime())
+            .toString();
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/domain/TsbzJxzxkhzbx.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/domain/TsbzJxzxkhzbx.java
new file mode 100644
index 000000000..5eec8c859
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/domain/TsbzJxzxkhzbx.java
@@ -0,0 +1,226 @@
+package com.ruoyi.jxzxkhgl.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 考核指标项对象 tsbz_jxzxkhzbx
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+public class TsbzJxzxkhzbx extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 编号 */
+    private Long id;
+
+    /** 所属考核方案 */
+    @Excel(name = "所属考核方案")
+    private Long faid;
+
+    /** 考核模块
+            字典项 */
+    @Excel(name = "考核模块")
+    private String khmk;
+
+    /** 考核内容 */
+    @Excel(name = "考核内容")
+    private String khnr;
+
+    /** 提交数量 */
+    @Excel(name = "提交数量")
+    private Long tjsl;
+
+    /** 关键字段 */
+    @Excel(name = "关键字段")
+    private String gjzd;
+
+    /** 同步来源
+            字典项所属系统 */
+    @Excel(name = "同步来源")
+    private String tbly;
+
+    /** 接口标记预留 */
+    @Excel(name = "接口标记预留")
+    private String jkbj;
+
+    /** 执行开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "执行开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date starttime;
+
+    /** 执行截止时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "执行截止时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endtime;
+
+    /** 执行任务预留 */
+    @Excel(name = "执行任务预留")
+    private String zxrw;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createuserid;
+
+    /** 预留1 */
+    @Excel(name = "预留1")
+    private String yly;
+
+    /** 预留2 */
+    @Excel(name = "预留2")
+    private String yle;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setFaid(Long faid) 
+    {
+        this.faid = faid;
+    }
+
+    public Long getFaid() 
+    {
+        return faid;
+    }
+    public void setKhmk(String khmk) 
+    {
+        this.khmk = khmk;
+    }
+
+    public String getKhmk() 
+    {
+        return khmk;
+    }
+    public void setKhnr(String khnr) 
+    {
+        this.khnr = khnr;
+    }
+
+    public String getKhnr() 
+    {
+        return khnr;
+    }
+    public void setTjsl(Long tjsl) 
+    {
+        this.tjsl = tjsl;
+    }
+
+    public Long getTjsl() 
+    {
+        return tjsl;
+    }
+    public void setGjzd(String gjzd) 
+    {
+        this.gjzd = gjzd;
+    }
+
+    public String getGjzd() 
+    {
+        return gjzd;
+    }
+    public void setTbly(String tbly) 
+    {
+        this.tbly = tbly;
+    }
+
+    public String getTbly() 
+    {
+        return tbly;
+    }
+    public void setJkbj(String jkbj) 
+    {
+        this.jkbj = jkbj;
+    }
+
+    public String getJkbj() 
+    {
+        return jkbj;
+    }
+    public void setStarttime(Date starttime) 
+    {
+        this.starttime = starttime;
+    }
+
+    public Date getStarttime() 
+    {
+        return starttime;
+    }
+    public void setEndtime(Date endtime) 
+    {
+        this.endtime = endtime;
+    }
+
+    public Date getEndtime() 
+    {
+        return endtime;
+    }
+    public void setZxrw(String zxrw) 
+    {
+        this.zxrw = zxrw;
+    }
+
+    public String getZxrw() 
+    {
+        return zxrw;
+    }
+    public void setCreateuserid(Long createuserid) 
+    {
+        this.createuserid = createuserid;
+    }
+
+    public Long getCreateuserid() 
+    {
+        return createuserid;
+    }
+    public void setYly(String yly) 
+    {
+        this.yly = yly;
+    }
+
+    public String getYly() 
+    {
+        return yly;
+    }
+    public void setYle(String yle) 
+    {
+        this.yle = yle;
+    }
+
+    public String getYle() 
+    {
+        return yle;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("faid", getFaid())
+            .append("khmk", getKhmk())
+            .append("khnr", getKhnr())
+            .append("tjsl", getTjsl())
+            .append("gjzd", getGjzd())
+            .append("tbly", getTbly())
+            .append("jkbj", getJkbj())
+            .append("starttime", getStarttime())
+            .append("endtime", getEndtime())
+            .append("zxrw", getZxrw())
+            .append("createuserid", getCreateuserid())
+            .append("createTime", getCreateTime())
+            .append("yly", getYly())
+            .append("yle", getYle())
+            .toString();
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/mapper/TsbzJxzxkhfaMapper.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/mapper/TsbzJxzxkhfaMapper.java
new file mode 100644
index 000000000..26239e4ba
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/mapper/TsbzJxzxkhfaMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.jxzxkhgl.mapper;
+
+import java.util.List;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhfa;
+
+/**
+ * 见习之星考核方案Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+public interface TsbzJxzxkhfaMapper 
+{
+    /**
+     * 查询见习之星考核方案
+     * 
+     * @param id 见习之星考核方案ID
+     * @return 见习之星考核方案
+     */
+    public TsbzJxzxkhfa selectTsbzJxzxkhfaById(Long id);
+
+    /**
+     * 查询见习之星考核方案列表
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 见习之星考核方案集合
+     */
+    public List<TsbzJxzxkhfa> selectTsbzJxzxkhfaList(TsbzJxzxkhfa tsbzJxzxkhfa);
+
+    /**
+     * 新增见习之星考核方案
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 结果
+     */
+    public int insertTsbzJxzxkhfa(TsbzJxzxkhfa tsbzJxzxkhfa);
+
+    /**
+     * 修改见习之星考核方案
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 结果
+     */
+    public int updateTsbzJxzxkhfa(TsbzJxzxkhfa tsbzJxzxkhfa);
+
+    /**
+     * 删除见习之星考核方案
+     * 
+     * @param id 见习之星考核方案ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhfaById(Long id);
+
+    /**
+     * 批量删除见习之星考核方案
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhfaByIds(Long[] ids);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/mapper/TsbzJxzxkhzbxMapper.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/mapper/TsbzJxzxkhzbxMapper.java
new file mode 100644
index 000000000..217e044d0
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/mapper/TsbzJxzxkhzbxMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.jxzxkhgl.mapper;
+
+import java.util.List;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhzbx;
+
+/**
+ * 考核指标项Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+public interface TsbzJxzxkhzbxMapper 
+{
+    /**
+     * 查询考核指标项
+     * 
+     * @param id 考核指标项ID
+     * @return 考核指标项
+     */
+    public TsbzJxzxkhzbx selectTsbzJxzxkhzbxById(Long id);
+
+    /**
+     * 查询考核指标项列表
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 考核指标项集合
+     */
+    public List<TsbzJxzxkhzbx> selectTsbzJxzxkhzbxList(TsbzJxzxkhzbx tsbzJxzxkhzbx);
+
+    /**
+     * 新增考核指标项
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 结果
+     */
+    public int insertTsbzJxzxkhzbx(TsbzJxzxkhzbx tsbzJxzxkhzbx);
+
+    /**
+     * 修改考核指标项
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 结果
+     */
+    public int updateTsbzJxzxkhzbx(TsbzJxzxkhzbx tsbzJxzxkhzbx);
+
+    /**
+     * 删除考核指标项
+     * 
+     * @param id 考核指标项ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhzbxById(Long id);
+
+    /**
+     * 批量删除考核指标项
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhzbxByIds(Long[] ids);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/ITsbzJxzxkhfaService.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/ITsbzJxzxkhfaService.java
new file mode 100644
index 000000000..bc7771abd
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/ITsbzJxzxkhfaService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.jxzxkhgl.service;
+
+import java.util.List;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhfa;
+
+/**
+ * 见习之星考核方案Service接口
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+public interface ITsbzJxzxkhfaService 
+{
+    /**
+     * 查询见习之星考核方案
+     * 
+     * @param id 见习之星考核方案ID
+     * @return 见习之星考核方案
+     */
+    public TsbzJxzxkhfa selectTsbzJxzxkhfaById(Long id);
+
+    /**
+     * 查询见习之星考核方案列表
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 见习之星考核方案集合
+     */
+    public List<TsbzJxzxkhfa> selectTsbzJxzxkhfaList(TsbzJxzxkhfa tsbzJxzxkhfa);
+
+    /**
+     * 新增见习之星考核方案
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 结果
+     */
+    public int insertTsbzJxzxkhfa(TsbzJxzxkhfa tsbzJxzxkhfa);
+
+    /**
+     * 修改见习之星考核方案
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 结果
+     */
+    public int updateTsbzJxzxkhfa(TsbzJxzxkhfa tsbzJxzxkhfa);
+
+    /**
+     * 批量删除见习之星考核方案
+     * 
+     * @param ids 需要删除的见习之星考核方案ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhfaByIds(Long[] ids);
+
+    /**
+     * 删除见习之星考核方案信息
+     * 
+     * @param id 见习之星考核方案ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhfaById(Long id);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/ITsbzJxzxkhzbxService.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/ITsbzJxzxkhzbxService.java
new file mode 100644
index 000000000..f54c94eab
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/ITsbzJxzxkhzbxService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.jxzxkhgl.service;
+
+import java.util.List;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhzbx;
+
+/**
+ * 考核指标项Service接口
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+public interface ITsbzJxzxkhzbxService 
+{
+    /**
+     * 查询考核指标项
+     * 
+     * @param id 考核指标项ID
+     * @return 考核指标项
+     */
+    public TsbzJxzxkhzbx selectTsbzJxzxkhzbxById(Long id);
+
+    /**
+     * 查询考核指标项列表
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 考核指标项集合
+     */
+    public List<TsbzJxzxkhzbx> selectTsbzJxzxkhzbxList(TsbzJxzxkhzbx tsbzJxzxkhzbx);
+
+    /**
+     * 新增考核指标项
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 结果
+     */
+    public int insertTsbzJxzxkhzbx(TsbzJxzxkhzbx tsbzJxzxkhzbx);
+
+    /**
+     * 修改考核指标项
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 结果
+     */
+    public int updateTsbzJxzxkhzbx(TsbzJxzxkhzbx tsbzJxzxkhzbx);
+
+    /**
+     * 批量删除考核指标项
+     * 
+     * @param ids 需要删除的考核指标项ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhzbxByIds(Long[] ids);
+
+    /**
+     * 删除考核指标项信息
+     * 
+     * @param id 考核指标项ID
+     * @return 结果
+     */
+    public int deleteTsbzJxzxkhzbxById(Long id);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/impl/TsbzJxzxkhfaServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/impl/TsbzJxzxkhfaServiceImpl.java
new file mode 100644
index 000000000..4373a0bdb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/impl/TsbzJxzxkhfaServiceImpl.java
@@ -0,0 +1,95 @@
+package com.ruoyi.jxzxkhgl.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.jxzxkhgl.mapper.TsbzJxzxkhfaMapper;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhfa;
+import com.ruoyi.jxzxkhgl.service.ITsbzJxzxkhfaService;
+
+/**
+ * 见习之星考核方案Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+@Service
+public class TsbzJxzxkhfaServiceImpl implements ITsbzJxzxkhfaService 
+{
+    @Autowired
+    private TsbzJxzxkhfaMapper tsbzJxzxkhfaMapper;
+
+    /**
+     * 查询见习之星考核方案
+     * 
+     * @param id 见习之星考核方案ID
+     * @return 见习之星考核方案
+     */
+    @Override
+    public TsbzJxzxkhfa selectTsbzJxzxkhfaById(Long id)
+    {
+        return tsbzJxzxkhfaMapper.selectTsbzJxzxkhfaById(id);
+    }
+
+    /**
+     * 查询见习之星考核方案列表
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 见习之星考核方案
+     */
+    @Override
+    public List<TsbzJxzxkhfa> selectTsbzJxzxkhfaList(TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        return tsbzJxzxkhfaMapper.selectTsbzJxzxkhfaList(tsbzJxzxkhfa);
+    }
+
+    /**
+     * 新增见习之星考核方案
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 结果
+     */
+    @Override
+    public int insertTsbzJxzxkhfa(TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        tsbzJxzxkhfa.setCreateTime(DateUtils.getNowDate());
+        return tsbzJxzxkhfaMapper.insertTsbzJxzxkhfa(tsbzJxzxkhfa);
+    }
+
+    /**
+     * 修改见习之星考核方案
+     * 
+     * @param tsbzJxzxkhfa 见习之星考核方案
+     * @return 结果
+     */
+    @Override
+    public int updateTsbzJxzxkhfa(TsbzJxzxkhfa tsbzJxzxkhfa)
+    {
+        return tsbzJxzxkhfaMapper.updateTsbzJxzxkhfa(tsbzJxzxkhfa);
+    }
+
+    /**
+     * 批量删除见习之星考核方案
+     * 
+     * @param ids 需要删除的见习之星考核方案ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTsbzJxzxkhfaByIds(Long[] ids)
+    {
+        return tsbzJxzxkhfaMapper.deleteTsbzJxzxkhfaByIds(ids);
+    }
+
+    /**
+     * 删除见习之星考核方案信息
+     * 
+     * @param id 见习之星考核方案ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTsbzJxzxkhfaById(Long id)
+    {
+        return tsbzJxzxkhfaMapper.deleteTsbzJxzxkhfaById(id);
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/impl/TsbzJxzxkhzbxServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/impl/TsbzJxzxkhzbxServiceImpl.java
new file mode 100644
index 000000000..35bcfa90d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/jxzxkhgl/service/impl/TsbzJxzxkhzbxServiceImpl.java
@@ -0,0 +1,95 @@
+package com.ruoyi.jxzxkhgl.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.jxzxkhgl.mapper.TsbzJxzxkhzbxMapper;
+import com.ruoyi.jxzxkhgl.domain.TsbzJxzxkhzbx;
+import com.ruoyi.jxzxkhgl.service.ITsbzJxzxkhzbxService;
+
+/**
+ * 考核指标项Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2020-08-29
+ */
+@Service
+public class TsbzJxzxkhzbxServiceImpl implements ITsbzJxzxkhzbxService 
+{
+    @Autowired
+    private TsbzJxzxkhzbxMapper tsbzJxzxkhzbxMapper;
+
+    /**
+     * 查询考核指标项
+     * 
+     * @param id 考核指标项ID
+     * @return 考核指标项
+     */
+    @Override
+    public TsbzJxzxkhzbx selectTsbzJxzxkhzbxById(Long id)
+    {
+        return tsbzJxzxkhzbxMapper.selectTsbzJxzxkhzbxById(id);
+    }
+
+    /**
+     * 查询考核指标项列表
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 考核指标项
+     */
+    @Override
+    public List<TsbzJxzxkhzbx> selectTsbzJxzxkhzbxList(TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        return tsbzJxzxkhzbxMapper.selectTsbzJxzxkhzbxList(tsbzJxzxkhzbx);
+    }
+
+    /**
+     * 新增考核指标项
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 结果
+     */
+    @Override
+    public int insertTsbzJxzxkhzbx(TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        tsbzJxzxkhzbx.setCreateTime(DateUtils.getNowDate());
+        return tsbzJxzxkhzbxMapper.insertTsbzJxzxkhzbx(tsbzJxzxkhzbx);
+    }
+
+    /**
+     * 修改考核指标项
+     * 
+     * @param tsbzJxzxkhzbx 考核指标项
+     * @return 结果
+     */
+    @Override
+    public int updateTsbzJxzxkhzbx(TsbzJxzxkhzbx tsbzJxzxkhzbx)
+    {
+        return tsbzJxzxkhzbxMapper.updateTsbzJxzxkhzbx(tsbzJxzxkhzbx);
+    }
+
+    /**
+     * 批量删除考核指标项
+     * 
+     * @param ids 需要删除的考核指标项ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTsbzJxzxkhzbxByIds(Long[] ids)
+    {
+        return tsbzJxzxkhzbxMapper.deleteTsbzJxzxkhzbxByIds(ids);
+    }
+
+    /**
+     * 删除考核指标项信息
+     * 
+     * @param id 考核指标项ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTsbzJxzxkhzbxById(Long id)
+    {
+        return tsbzJxzxkhzbxMapper.deleteTsbzJxzxkhzbxById(id);
+    }
+}
diff --git a/ruoyi-system/src/main/resources/mapper/jxzxkhgl/TsbzJxzxkhfaMapper.xml b/ruoyi-system/src/main/resources/mapper/jxzxkhgl/TsbzJxzxkhfaMapper.xml
new file mode 100644
index 000000000..6fe205c20
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/jxzxkhgl/TsbzJxzxkhfaMapper.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jxzxkhgl.mapper.TsbzJxzxkhfaMapper">
+    
+    <resultMap type="TsbzJxzxkhfa" id="TsbzJxzxkhfaResult">
+        <result property="id"    column="id"    />
+        <result property="name"    column="name"    />
+        <result property="status"    column="status"    />
+        <result property="starttime"    column="starttime"    />
+        <result property="endtime"    column="endtime"    />
+        <result property="filename"    column="filename"    />
+        <result property="filepath"    column="filepath"    />
+        <result property="khnf"    column="khnf"    />
+        <result property="createuserid"    column="createuserid"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectTsbzJxzxkhfaVo">
+        select id, name, status, starttime, endtime, filename, filepath, khnf, createuserid, create_time from tsbz_jxzxkhfa
+    </sql>
+
+    <select id="selectTsbzJxzxkhfaList" parameterType="TsbzJxzxkhfa" resultMap="TsbzJxzxkhfaResult">
+        <include refid="selectTsbzJxzxkhfaVo"/>
+        <where>  
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="starttime != null "> and starttime = #{starttime}</if>
+            <if test="endtime != null "> and endtime = #{endtime}</if>
+            <if test="filename != null  and filename != ''"> and filename like concat('%', #{filename}, '%')</if>
+            <if test="filepath != null  and filepath != ''"> and filepath = #{filepath}</if>
+            <if test="khnf != null "> and khnf = #{khnf}</if>
+            <if test="createuserid != null "> and createuserid = #{createuserid}</if>
+        </where>
+    </select>
+    
+    <select id="selectTsbzJxzxkhfaById" parameterType="Long" resultMap="TsbzJxzxkhfaResult">
+        <include refid="selectTsbzJxzxkhfaVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTsbzJxzxkhfa" parameterType="TsbzJxzxkhfa" useGeneratedKeys="true" keyProperty="id">
+        insert into tsbz_jxzxkhfa
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="name != null">name,</if>
+            <if test="status != null">status,</if>
+            <if test="starttime != null">starttime,</if>
+            <if test="endtime != null">endtime,</if>
+            <if test="filename != null">filename,</if>
+            <if test="filepath != null">filepath,</if>
+            <if test="khnf != null">khnf,</if>
+            <if test="createuserid != null">createuserid,</if>
+            <if test="createTime != null">create_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="name != null">#{name},</if>
+            <if test="status != null">#{status},</if>
+            <if test="starttime != null">#{starttime},</if>
+            <if test="endtime != null">#{endtime},</if>
+            <if test="filename != null">#{filename},</if>
+            <if test="filepath != null">#{filepath},</if>
+            <if test="khnf != null">#{khnf},</if>
+            <if test="createuserid != null">#{createuserid},</if>
+            <if test="createTime != null">#{createTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTsbzJxzxkhfa" parameterType="TsbzJxzxkhfa">
+        update tsbz_jxzxkhfa
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="starttime != null">starttime = #{starttime},</if>
+            <if test="endtime != null">endtime = #{endtime},</if>
+            <if test="filename != null">filename = #{filename},</if>
+            <if test="filepath != null">filepath = #{filepath},</if>
+            <if test="khnf != null">khnf = #{khnf},</if>
+            <if test="createuserid != null">createuserid = #{createuserid},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTsbzJxzxkhfaById" parameterType="Long">
+        delete from tsbz_jxzxkhfa where id = #{id}
+    </delete>
+
+    <delete id="deleteTsbzJxzxkhfaByIds" parameterType="String">
+        delete from tsbz_jxzxkhfa where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/jxzxkhgl/TsbzJxzxkhzbxMapper.xml b/ruoyi-system/src/main/resources/mapper/jxzxkhgl/TsbzJxzxkhzbxMapper.xml
new file mode 100644
index 000000000..bcae6cda0
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/jxzxkhgl/TsbzJxzxkhzbxMapper.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.jxzxkhgl.mapper.TsbzJxzxkhzbxMapper">
+    
+    <resultMap type="TsbzJxzxkhzbx" id="TsbzJxzxkhzbxResult">
+        <result property="id"    column="id"    />
+        <result property="faid"    column="faid"    />
+        <result property="khmk"    column="khmk"    />
+        <result property="khnr"    column="khnr"    />
+        <result property="tjsl"    column="tjsl"    />
+        <result property="gjzd"    column="gjzd"    />
+        <result property="tbly"    column="tbly"    />
+        <result property="jkbj"    column="jkbj"    />
+        <result property="starttime"    column="starttime"    />
+        <result property="endtime"    column="endtime"    />
+        <result property="zxrw"    column="zxrw"    />
+        <result property="createuserid"    column="createuserid"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="yly"    column="yly"    />
+        <result property="yle"    column="yle"    />
+    </resultMap>
+
+    <sql id="selectTsbzJxzxkhzbxVo">
+        select id, faid, khmk, khnr, tjsl, gjzd, tbly, jkbj, starttime, endtime, zxrw, createuserid, create_time, yly, yle from tsbz_jxzxkhzbx
+    </sql>
+
+    <select id="selectTsbzJxzxkhzbxList" parameterType="TsbzJxzxkhzbx" resultMap="TsbzJxzxkhzbxResult">
+        <include refid="selectTsbzJxzxkhzbxVo"/>
+        <where>  
+            <if test="faid != null "> and faid = #{faid}</if>
+            <if test="khmk != null  and khmk != ''"> and khmk = #{khmk}</if>
+            <if test="khnr != null  and khnr != ''"> and khnr = #{khnr}</if>
+            <if test="tjsl != null "> and tjsl = #{tjsl}</if>
+            <if test="gjzd != null  and gjzd != ''"> and gjzd = #{gjzd}</if>
+            <if test="tbly != null  and tbly != ''"> and tbly = #{tbly}</if>
+            <if test="jkbj != null  and jkbj != ''"> and jkbj = #{jkbj}</if>
+            <if test="starttime != null "> and starttime = #{starttime}</if>
+            <if test="endtime != null "> and endtime = #{endtime}</if>
+            <if test="zxrw != null  and zxrw != ''"> and zxrw = #{zxrw}</if>
+            <if test="createuserid != null "> and createuserid = #{createuserid}</if>
+            <if test="yly != null  and yly != ''"> and yly = #{yly}</if>
+            <if test="yle != null  and yle != ''"> and yle = #{yle}</if>
+        </where>
+    </select>
+    
+    <select id="selectTsbzJxzxkhzbxById" parameterType="Long" resultMap="TsbzJxzxkhzbxResult">
+        <include refid="selectTsbzJxzxkhzbxVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTsbzJxzxkhzbx" parameterType="TsbzJxzxkhzbx" useGeneratedKeys="true" keyProperty="id">
+        insert into tsbz_jxzxkhzbx
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="faid != null">faid,</if>
+            <if test="khmk != null">khmk,</if>
+            <if test="khnr != null">khnr,</if>
+            <if test="tjsl != null">tjsl,</if>
+            <if test="gjzd != null">gjzd,</if>
+            <if test="tbly != null">tbly,</if>
+            <if test="jkbj != null">jkbj,</if>
+            <if test="starttime != null">starttime,</if>
+            <if test="endtime != null">endtime,</if>
+            <if test="zxrw != null">zxrw,</if>
+            <if test="createuserid != null">createuserid,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="yly != null">yly,</if>
+            <if test="yle != null">yle,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="faid != null">#{faid},</if>
+            <if test="khmk != null">#{khmk},</if>
+            <if test="khnr != null">#{khnr},</if>
+            <if test="tjsl != null">#{tjsl},</if>
+            <if test="gjzd != null">#{gjzd},</if>
+            <if test="tbly != null">#{tbly},</if>
+            <if test="jkbj != null">#{jkbj},</if>
+            <if test="starttime != null">#{starttime},</if>
+            <if test="endtime != null">#{endtime},</if>
+            <if test="zxrw != null">#{zxrw},</if>
+            <if test="createuserid != null">#{createuserid},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="yly != null">#{yly},</if>
+            <if test="yle != null">#{yle},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTsbzJxzxkhzbx" parameterType="TsbzJxzxkhzbx">
+        update tsbz_jxzxkhzbx
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="faid != null">faid = #{faid},</if>
+            <if test="khmk != null">khmk = #{khmk},</if>
+            <if test="khnr != null">khnr = #{khnr},</if>
+            <if test="tjsl != null">tjsl = #{tjsl},</if>
+            <if test="gjzd != null">gjzd = #{gjzd},</if>
+            <if test="tbly != null">tbly = #{tbly},</if>
+            <if test="jkbj != null">jkbj = #{jkbj},</if>
+            <if test="starttime != null">starttime = #{starttime},</if>
+            <if test="endtime != null">endtime = #{endtime},</if>
+            <if test="zxrw != null">zxrw = #{zxrw},</if>
+            <if test="createuserid != null">createuserid = #{createuserid},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="yly != null">yly = #{yly},</if>
+            <if test="yle != null">yle = #{yle},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTsbzJxzxkhzbxById" parameterType="Long">
+        delete from tsbz_jxzxkhzbx where id = #{id}
+    </delete>
+
+    <delete id="deleteTsbzJxzxkhzbxByIds" parameterType="String">
+        delete from tsbz_jxzxkhzbx where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/jxzxkhgl/jxzxkhfa.js b/ruoyi-ui/src/api/jxzxkhgl/jxzxkhfa.js
new file mode 100644
index 000000000..d4f4e43b6
--- /dev/null
+++ b/ruoyi-ui/src/api/jxzxkhgl/jxzxkhfa.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询见习之星考核方案列表
+export function listJxzxkhfa(query) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhfa/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询见习之星考核方案详细
+export function getJxzxkhfa(id) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhfa/' + id,
+    method: 'get'
+  })
+}
+
+// 新增见习之星考核方案
+export function addJxzxkhfa(data) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhfa',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改见习之星考核方案
+export function updateJxzxkhfa(data) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhfa',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除见习之星考核方案
+export function delJxzxkhfa(id) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhfa/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出见习之星考核方案
+export function exportJxzxkhfa(query) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhfa/export',
+    method: 'get',
+    params: query
+  })
+}
diff --git a/ruoyi-ui/src/api/jxzxkhgl/jxzxkhzbx.js b/ruoyi-ui/src/api/jxzxkhgl/jxzxkhzbx.js
new file mode 100644
index 000000000..6d0a42491
--- /dev/null
+++ b/ruoyi-ui/src/api/jxzxkhgl/jxzxkhzbx.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询考核指标项列表
+export function listJxzxkhzbx(query) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhzbx/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询考核指标项详细
+export function getJxzxkhzbx(id) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhzbx/' + id,
+    method: 'get'
+  })
+}
+
+// 新增考核指标项
+export function addJxzxkhzbx(data) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhzbx',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改考核指标项
+export function updateJxzxkhzbx(data) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhzbx',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除考核指标项
+export function delJxzxkhzbx(id) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhzbx/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出考核指标项
+export function exportJxzxkhzbx(query) {
+  return request({
+    url: '/jxzxkhgl/jxzxkhzbx/export',
+    method: 'get',
+    params: query
+  })
+}
diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
index d47f92db7..6abad8b4a 100644
--- a/ruoyi-ui/src/router/index.js
+++ b/ruoyi-ui/src/router/index.js
@@ -1,145 +1,159 @@
-import Vue from 'vue'
-import Router from 'vue-router'
-
-Vue.use(Router)
-
-/* Layout */
-import Layout from '@/layout'
-
-/**
- * Note: 路由配置项
- *
- * hidden: true                   // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
- * alwaysShow: true               // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
- *                                // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
- *                                // 若你想不管路由下面的 children 声明的个数都显示你的根路由
- *                                // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
- * redirect: noRedirect           // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
- * name:'router-name'             // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
- * meta : {
-    roles: ['admin','editor']    // 设置该路由进入的权限,支持多个权限叠加
-    title: 'title'               // 设置该路由在侧边栏和面包屑中展示的名字
-    icon: 'svg-name'             // 设置该路由的图标,对应路径src/icons/svg
-    breadcrumb: false            // 如果设置为false,则不会在breadcrumb面包屑中显示
-  }
- */
-
-// 公共路由
-export const constantRoutes = [{
-    path: '/redirect',
-    component: Layout,
-    hidden: true,
-    children: [{
-      path: '/redirect/:path(.*)',
-      component: (resolve) => require(['@/views/redirect'], resolve)
-    }]
-  },
-  {
-    path: '/login',
-    component: (resolve) => require(['@/views/login'], resolve),
-    hidden: true
-  },
-  {
-    path: '/404',
-    component: (resolve) => require(['@/views/error/404'], resolve),
-    hidden: true
-  },
-  {
-    path: '/401',
-    component: (resolve) => require(['@/views/error/401'], resolve),
-    hidden: true
-  },
-  {
-    path: '',
-    component: Layout,
-    redirect: 'index',
-    children: [{
-      path: 'index',
-      component: (resolve) => require(['@/views/index'], resolve),
-      name: '首页',
-      meta: {
-        title: '首页',
-        icon: 'dashboard',
-        noCache: true,
-        affix: true
-      }
-    }]
-  },
-  {
-    path: '/user',
-    component: Layout,
-    hidden: true,
-    redirect: 'noredirect',
-    children: [{
-      path: 'profile',
-      component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
-      name: 'Profile',
-      meta: {
-        title: '个人中心',
-        icon: 'user'
-      }
-    }]
-  },
-  {
-    path: '/dict',
-    component: Layout,
-    hidden: true,
-    children: [{
-      path: 'type/data/:dictId(\\d+)',
-      component: (resolve) => require(['@/views/system/dict/data'], resolve),
-      name: 'Data',
-      meta: {
-        title: '字典数据',
-        icon: ''
-      }
-    }]
-  },
-  {
-    path: '/jxjs',
-    component: Layout,
-    hidden: true,
-    children: [{
-      path: 'jdx/jxjsjbxx/data/:id',
-      component: (resolve) => require(['@/views/jxjs/jdx/data'], resolve),
-      name: 'jdxjxjsjbxx',
-      meta: {
-        title: '基地校见习教师',
-        icon: ''
-      }
-    }]
-  },
-  {
-    path: '/job',
-    component: Layout,
-    hidden: true,
-    children: [{
-      path: 'log',
-      component: (resolve) => require(['@/views/monitor/job/log'], resolve),
-      name: 'JobLog',
-      meta: {
-        title: '调度日志'
-      }
-    }]
-  },
-  {
-    path: '/gen',
-    component: Layout,
-    hidden: true,
-    children: [{
-      path: 'edit/:tableId(\\d+)',
-      component: (resolve) => require(['@/views/tool/gen/editTable'], resolve),
-      name: 'GenEdit',
-      meta: {
-        title: '修改生成配置'
-      }
-    }]
-  }
-]
-
-export default new Router({
-  mode: 'history', // 去掉url中的#
-  scrollBehavior: () => ({
-    y: 0
-  }),
-  routes: constantRoutes
-})
+import Vue from 'vue'
+import Router from 'vue-router'
+
+Vue.use(Router)
+
+/* Layout */
+import Layout from '@/layout'
+
+/**
+ * Note: 路由配置项
+ *
+ * hidden: true                   // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
+ * alwaysShow: true               // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
+ *                                // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
+ *                                // 若你想不管路由下面的 children 声明的个数都显示你的根路由
+ *                                // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
+ * redirect: noRedirect           // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
+ * name:'router-name'             // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
+ * meta : {
+    roles: ['admin','editor']    // 设置该路由进入的权限,支持多个权限叠加
+    title: 'title'               // 设置该路由在侧边栏和面包屑中展示的名字
+    icon: 'svg-name'             // 设置该路由的图标,对应路径src/icons/svg
+    breadcrumb: false            // 如果设置为false,则不会在breadcrumb面包屑中显示
+  }
+ */
+
+// 公共路由
+export const constantRoutes = [{
+        path: '/redirect',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: '/redirect/:path(.*)',
+            component: (resolve) => require(['@/views/redirect'], resolve)
+        }]
+    },
+    {
+        path: '/login',
+        component: (resolve) => require(['@/views/login'], resolve),
+        hidden: true
+    },
+    {
+        path: '/404',
+        component: (resolve) => require(['@/views/error/404'], resolve),
+        hidden: true
+    },
+    {
+        path: '/401',
+        component: (resolve) => require(['@/views/error/401'], resolve),
+        hidden: true
+    },
+    {
+        path: '',
+        component: Layout,
+        redirect: 'index',
+        children: [{
+            path: 'index',
+            component: (resolve) => require(['@/views/index'], resolve),
+            name: '首页',
+            meta: {
+                title: '首页',
+                icon: 'dashboard',
+                noCache: true,
+                affix: true
+            }
+        }]
+    },
+    {
+        path: '/user',
+        component: Layout,
+        hidden: true,
+        redirect: 'noredirect',
+        children: [{
+            path: 'profile',
+            component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
+            name: 'Profile',
+            meta: {
+                title: '个人中心',
+                icon: 'user'
+            }
+        }]
+    },
+    {
+        path: '/dict',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: 'type/data/:dictId(\\d+)',
+            component: (resolve) => require(['@/views/system/dict/data'], resolve),
+            name: 'Data',
+            meta: {
+                title: '字典数据',
+                icon: ''
+            }
+        }]
+    },
+    {
+        path: '/jxjs',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: 'jdx/jxjsjbxx/data/:id',
+            component: (resolve) => require(['@/views/jxjs/jdx/data'], resolve),
+            name: 'jdxjxjsjbxx',
+            meta: {
+                title: '基地校见习教师',
+                icon: ''
+            }
+        }]
+    },
+    {
+        path: '/jxzxkhgl',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: 'jxzxkhgl/jxzxkhfa/data/:id',
+            component: (resolve) => require(['@/views/jxzxkhgl/jxzxkhfa/data'], resolve),
+            name: 'jxzxkhfa1',
+            meta: {
+                title: '考核指标',
+                icon: ''
+            }
+        }]
+    },
+    {
+        path: '/job',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: 'log',
+            component: (resolve) => require(['@/views/monitor/job/log'], resolve),
+            name: 'JobLog',
+            meta: {
+                title: '调度日志'
+            }
+        }]
+    },
+    {
+        path: '/gen',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: 'edit/:tableId(\\d+)',
+            component: (resolve) => require(['@/views/tool/gen/editTable'], resolve),
+            name: 'GenEdit',
+            meta: {
+                title: '修改生成配置'
+            }
+        }]
+    }
+]
+
+export default new Router({
+    mode: 'history', // 去掉url中的#
+    scrollBehavior: () => ({
+        y: 0
+    }),
+    routes: constantRoutes
+})
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/jxzxkhgl/jxzxkhfa/data.vue b/ruoyi-ui/src/views/jxzxkhgl/jxzxkhfa/data.vue
new file mode 100644
index 000000000..dd3b85c35
--- /dev/null
+++ b/ruoyi-ui/src/views/jxzxkhgl/jxzxkhfa/data.vue
@@ -0,0 +1,455 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="所属考核方案" prop="faid">
+        <el-input
+          v-model="queryParams.faid"
+          placeholder="请输入所属考核方案"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="考核模块
+            字典项" prop="khmk">
+        <el-select v-model="queryParams.khmk" placeholder="请选择考核模块
+            字典项" clearable size="small">
+          <el-option
+            v-for="dict in khmkOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="考核内容" prop="khnr">
+        <el-input
+          v-model="queryParams.khnr"
+          placeholder="请输入考核内容"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="提交数量" prop="tjsl">
+        <el-input
+          v-model="queryParams.tjsl"
+          placeholder="请输入提交数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="同步来源
+            字典项所属系统" prop="tbly">
+        <el-select v-model="queryParams.tbly" placeholder="请选择同步来源
+            字典项所属系统" clearable size="small">
+          <el-option
+            v-for="dict in tblyOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="执行开始时间" prop="starttime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.starttime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择执行开始时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="执行截止时间" prop="endtime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.endtime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择执行截止时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="创建人" prop="createuserid">
+        <el-input
+          v-model="queryParams.createuserid"
+          placeholder="请输入创建人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['khgl:jxzxkhzbx:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['khgl:jxzxkhzbx:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['khgl:jxzxkhzbx:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['khgl:jxzxkhzbx:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="jxzxkhzbxList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="编号" align="center" prop="id" />
+      <el-table-column label="所属考核方案" align="center" prop="faid" />
+      <el-table-column label="考核模块
+            字典项" align="center" prop="khmk" :formatter="khmkFormat" />
+      <el-table-column label="考核内容" align="center" prop="khnr" />
+      <el-table-column label="提交数量" align="center" prop="tjsl" />
+      <el-table-column label="关键字段" align="center" prop="gjzd" />
+      <el-table-column label="同步来源
+            字典项所属系统" align="center" prop="tbly" :formatter="tblyFormat" />
+      <el-table-column label="接口标记预留" align="center" prop="jkbj" />
+      <el-table-column label="执行开始时间" align="center" prop="starttime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="执行截止时间" align="center" prop="endtime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="执行任务预留" align="center" prop="zxrw" />
+      <el-table-column label="创建人" align="center" prop="createuserid" />
+      <el-table-column label="预留1" align="center" prop="yly" />
+      <el-table-column label="预留2" align="center" prop="yle" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['khgl:jxzxkhzbx:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['khgl:jxzxkhzbx:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改考核指标项对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="所属考核方案" prop="faid">
+          <el-input v-model="form.faid" placeholder="请输入所属考核方案" />
+        </el-form-item>
+        <el-form-item label="考核模块
+            字典项" prop="khmk">
+          <el-select v-model="form.khmk" placeholder="请选择考核模块
+            字典项">
+            <el-option
+              v-for="dict in khmkOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="考核内容" prop="khnr">
+          <el-input v-model="form.khnr" placeholder="请输入考核内容" />
+        </el-form-item>
+        <el-form-item label="提交数量" prop="tjsl">
+          <el-input v-model="form.tjsl" placeholder="请输入提交数量" />
+        </el-form-item>
+        <el-form-item label="关键字段" prop="gjzd">
+          <el-input v-model="form.gjzd" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="同步来源
+            字典项所属系统" prop="tbly">
+          <el-select v-model="form.tbly" placeholder="请选择同步来源
+            字典项所属系统">
+            <el-option
+              v-for="dict in tblyOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="接口标记预留" prop="jkbj">
+          <el-input v-model="form.jkbj" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="执行开始时间" prop="starttime">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.starttime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择执行开始时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="执行截止时间" prop="endtime">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.endtime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择执行截止时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="执行任务预留" prop="zxrw">
+          <el-input v-model="form.zxrw" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createuserid">
+          <el-input v-model="form.createuserid" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="预留1" prop="yly">
+          <el-input v-model="form.yly" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="预留2" prop="yle">
+          <el-input v-model="form.yle" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listJxzxkhzbx, getJxzxkhzbx, delJxzxkhzbx, addJxzxkhzbx, updateJxzxkhzbx, exportJxzxkhzbx } from "@/api/jxzxkhgl/jxzxkhzbx";
+import { listJxzxkhfa, getJxzxkhfa } from "@/api/jxzxkhgl/jxzxkhfa";
+
+export default {
+  name: "Jxzxkhzbx",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 考核指标项表格数据
+      jxzxkhzbxList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 考核模块字典项字典
+      khmkOptions: [],
+      // 同步来源字典项所属系统字典
+      tblyOptions: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        faid: null,
+        khmk: null,
+        khnr: null,
+        tjsl: null,
+        gjzd: null,
+        tbly: null,
+        jkbj: null,
+        starttime: null,
+        endtime: null,
+        zxrw: null,
+        createuserid: null,
+        yly: null,
+        yle: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    //const 
+    this.getList();
+    this.getDicts("sys_dm_khmk").then(response => {
+      this.khmkOptions = response.data;
+    });
+    this.getDicts("sys_dm_tbly").then(response => {
+      this.tblyOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询考核指标项列表 */
+    getList() {
+      this.loading = true;
+      listJxzxkhzbx(this.queryParams).then(response => {
+        this.jxzxkhzbxList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 考核模块字典项字典翻译
+    khmkFormat(row, column) {
+      return this.selectDictLabel(this.khmkOptions, row.khmk);
+    },
+    // 同步来源字典项所属系统字典翻译
+    tblyFormat(row, column) {
+      return this.selectDictLabel(this.tblyOptions, row.tbly);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        faid: null,
+        khmk: null,
+        khnr: null,
+        tjsl: null,
+        gjzd: null,
+        tbly: null,
+        jkbj: null,
+        starttime: null,
+        endtime: null,
+        zxrw: null,
+        createuserid: null,
+        createTime: null,
+        yly: null,
+        yle: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加考核指标项";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getJxzxkhzbx(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改考核指标项";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateJxzxkhzbx(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          } else {
+            addJxzxkhzbx(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除考核指标项编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delJxzxkhzbx(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有考核指标项数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportJxzxkhzbx(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/jxzxkhgl/jxzxkhfa/index.vue b/ruoyi-ui/src/views/jxzxkhgl/jxzxkhfa/index.vue
new file mode 100644
index 000000000..06f7fc25a
--- /dev/null
+++ b/ruoyi-ui/src/views/jxzxkhgl/jxzxkhfa/index.vue
@@ -0,0 +1,381 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="102px">
+      <el-form-item label="考核方案名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入考核方案名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="考核方案状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择考核方案状态" clearable size="small">
+          <el-option
+            v-for="dict in statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="考核开始时间" prop="starttime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.starttime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择考核开始时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="考核结束时间" prop="endtime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.endtime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择考核结束时间">
+        </el-date-picker>
+      </el-form-item> 
+      <!-- <el-form-item label="考核年份" prop="khnf">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.khnf"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择考核年份">
+        </el-date-picker>
+      </el-form-item> -->
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['jxzxkhgl:jxzxkhfa:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['jxzxkhgl:jxzxkhfa:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['jxzxkhgl:jxzxkhfa:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['jxzxkhgl:jxzxkhfa:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="jxzxkhfaList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="编号" align="center" prop="id" />
+      <el-table-column label="考核方案名称" align="center" prop="name" />
+      <el-table-column label="考核方案状态" align="center" prop="status" :formatter="statusFormat" />
+      <el-table-column label="考核开始时间" align="center" prop="starttime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.starttime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="考核结束时间" align="center" prop="endtime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.endtime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="考核文件名称" align="center" prop="filename" />
+      <el-table-column label="文件路径" align="center" prop="filepath" />
+      <el-table-column label="考核年份" align="center" prop="khnf" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.khnf, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="创建人" align="center" prop="createuserid" /> -->
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['jxzxkhgl:jxzxkhfa:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['jxzxkhgl:jxzxkhfa:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改见习之星考核方案对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="考核方案名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入考核方案名称" />
+        </el-form-item>
+        <el-form-item label="考核方案状态" prop="status">
+          <el-select v-model="form.status" placeholder="请选择考核方案状态">
+            <el-option
+              v-for="dict in statusOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="考核年份" prop="khnf">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.khnf"
+            type="year"
+            value-format="yyyy"
+            placeholder="选择考核年份">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="考核开始时间" prop="starttime">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.starttime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择考核开始时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="考核结束时间" prop="endtime">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.endtime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择考核结束时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="考核文件名称" prop="filename">
+          <el-input v-model="form.filename" placeholder="请输入考核文件名称" />
+        </el-form-item>
+        <el-form-item label="文件路径" prop="filepath">
+          <el-input v-model="form.filepath" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listJxzxkhfa, getJxzxkhfa, delJxzxkhfa, addJxzxkhfa, updateJxzxkhfa, exportJxzxkhfa } from "@/api/jxzxkhgl/jxzxkhfa";
+
+export default {
+  name: "Jxzxkhfa",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 见习之星考核方案表格数据
+      jxzxkhfaList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 考核方案状态
+      statusOptions: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        status: null,
+        starttime: null,
+        endtime: null,
+        filename: null,
+        filepath: null,
+        khnf: null,
+        createuserid: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [{ required: true, message: "考核方案名称不能为空", trigger: "blur" }],
+        status: [{ required: true, message: "考核方案状态不能为空", trigger: "blur" }],
+        starttime: [{ required: true, message: "考核开始时间不能为空", trigger: "blur" }],
+        endtime: [{ required: true, message: "考核结束时间不能为空", trigger: "blur" }],
+        filename: [{ required: true, message: "考核文件名称不能为空", trigger: "blur" }],
+        filepath: [{ required: true, message: "文件路径不能为空", trigger: "blur" }],
+        khnf: [{ required: true, message: "考核年份不能为空", trigger: "blur" }],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("sys_dm_khfazt").then(response => {
+      this.statusOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询见习之星考核方案列表 */
+    getList() {
+      this.loading = true;
+      listJxzxkhfa(this.queryParams).then(response => {
+        this.jxzxkhfaList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 考核方案状态
+    statusFormat(row, column) {
+      return this.selectDictLabel(this.statusOptions, row.status);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        status: null,
+        starttime: null,
+        endtime: null,
+        filename: null,
+        filepath: null,
+        khnf: null,
+        createuserid: null,
+        createTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加见习之星考核方案";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getJxzxkhfa(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改见习之星考核方案";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateJxzxkhfa(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          } else {
+            addJxzxkhfa(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除见习之星考核方案编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delJxzxkhfa(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有见习之星考核方案数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportJxzxkhfa(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>