Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

jiangbiao vor 1 Jahr
Ursprung
Commit
b4e89a420b

+ 11 - 7
master/src/main/java/com/ruoyi/common/sendEmail/IMailServiceImpl.java

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeUtility;
 import java.io.File;
 import java.io.UnsupportedEncodingException;
 import java.util.Base64;
@@ -211,18 +212,21 @@ public class IMailServiceImpl implements IMailService {
             String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
             logger.info("fileName::::::::::" + fileName);
             // 使用UTF-8编码将文件名转换为字节数组
-            byte[] fileNameBytes = fileName.getBytes("UTF-8");
+//            byte[] fileNameBytes = fileName.getBytes("UTF-8");
+//
+//            // 对字节数组进行Base64编码
+//            String base64FileName = Base64.getEncoder().encodeToString(fileNameBytes);
+//
+//            // 构造Base64编码后的附件名
+//            String encodedAttachmentName = "=?UTF-8?B?" + base64FileName + "?=";
 
-            // 对字节数组进行Base64编码
-            String base64FileName = Base64.getEncoder().encodeToString(fileNameBytes);
-
-            // 构造Base64编码后的附件名
-            String encodedAttachmentName = "=?UTF-8?B?" + base64FileName + "?=";
+            String encodedAttachmentName =  MimeUtility.encodeWord(fileName, "GB18030", "B");;
 
             System.out.println("原始附件名: " + fileName);
-            System.out.println("Base64编码后的附件名: " + encodedAttachmentName);
+            System.out.println("编码后的附件名: " + encodedAttachmentName);
 
             helper.addAttachment(encodedAttachmentName, file);
+
             mailSender.send(message);
             //日志信息
             logger.info("邮件已经发送。");

+ 77 - 77
master/src/main/java/com/ruoyi/common/utils/export/JxlsView.java

@@ -1,77 +1,77 @@
-package com.ruoyi.common.utils.export;
-
-import org.jxls.common.Context;
-import org.jxls.util.JxlsHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.servlet.view.AbstractView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Map;
-
-/**
- * Created by xk on 2017/12/4 0004.
- */
-public class JxlsView extends AbstractView {
-    private static Logger log = LoggerFactory.getLogger(JxlsView.class);
-
-    private JxlsTemplate template;
-
-    private Object data;
-    private Object sheetdata;
-
-    public JxlsView() {
-        this.setContentType("application/vnd.ms-excel");
-    }
-
-    public JxlsView(JxlsTemplate template, Object data) {
-        this();
-        this.template = template;
-        this.data = data;
-    }
-
-    public JxlsView(JxlsTemplate template, Object data, Object sheetdata) {
-        this();
-        this.template = template;
-        this.data = data;
-        this.sheetdata = sheetdata;
-    }
-
-    protected boolean generatesDownloadContent() {
-        return true;
-    }
-
-    protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
-        response.setContentType("application/vnd.ms-excel;charset=utf-8");
-//        response.setHeader("Content-Disposition", "attachment;filename="
-//                + EncodeTools.encodeFileNameByBrowser(template.getName(), request));
-        response.setHeader("Content-Disposition", "attachment;filename=" + new String(template.getName().getBytes("UTF-8"), "iso-8859-1"));
-
-        InputStream is = null;
-        try {
-            is = Thread.currentThread().getContextClassLoader().getResourceAsStream(template.getPath());
-//            is = JxlsView.class.getResourceAsStream(template.getPath());
-            Context context = new Context();
-            context.putVar("data", data);
-            context.putVar("sheetNames", sheetdata);
-            logger.info("data" + data);
-            logger.info("is" + is);
-            logger.info("getOutputStream" + response.getOutputStream());
-            JxlsHelper.getInstance().processTemplate(is, response.getOutputStream(), context);
-        } catch (Exception e) {
-            log.error("导出失败", e);
-        } finally {
-            if (is != null) {
-                try {
-                    is.close();
-                } catch (IOException e) {
-                    log.error("is关闭失败", e);
-                }
-            }
-        }
-
-    }
-}
+//package com.ruoyi.common.utils.export;
+//
+//import org.jxls.common.Context;
+//import org.jxls.util.JxlsHelper;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.web.servlet.view.AbstractView;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.util.Map;
+//
+///**
+// * Created by xk on 2017/12/4 0004.
+// */
+//public class JxlsView extends AbstractView {
+//    private static Logger log = LoggerFactory.getLogger(JxlsView.class);
+//
+//    private JxlsTemplate template;
+//
+//    private Object data;
+//    private Object sheetdata;
+//
+//    public JxlsView() {
+//        this.setContentType("application/vnd.ms-excel");
+//    }
+//
+//    public JxlsView(JxlsTemplate template, Object data) {
+//        this();
+//        this.template = template;
+//        this.data = data;
+//    }
+//
+//    public JxlsView(JxlsTemplate template, Object data, Object sheetdata) {
+//        this();
+//        this.template = template;
+//        this.data = data;
+//        this.sheetdata = sheetdata;
+//    }
+//
+//    protected boolean generatesDownloadContent() {
+//        return true;
+//    }
+//
+//    protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+//        response.setContentType("application/vnd.ms-excel;charset=utf-8");
+////        response.setHeader("Content-Disposition", "attachment;filename="
+////                + EncodeTools.encodeFileNameByBrowser(template.getName(), request));
+//        response.setHeader("Content-Disposition", "attachment;filename=" + new String(template.getName().getBytes("UTF-8"), "iso-8859-1"));
+//
+//        InputStream is = null;
+//        try {
+//            is = Thread.currentThread().getContextClassLoader().getResourceAsStream(template.getPath());
+////            is = JxlsView.class.getResourceAsStream(template.getPath());
+//            Context context = new Context();
+//            context.putVar("data", data);
+//            context.putVar("sheetNames", sheetdata);
+//            logger.info("data" + data);
+//            logger.info("is" + is);
+//            logger.info("getOutputStream" + response.getOutputStream());
+//            JxlsHelper.getInstance().processTemplate(is, response.getOutputStream(), context);
+//        } catch (Exception e) {
+//            log.error("导出失败", e);
+//        } finally {
+//            if (is != null) {
+//                try {
+//                    is.close();
+//                } catch (IOException e) {
+//                    log.error("is关闭失败", e);
+//                }
+//            }
+//        }
+//
+//    }
+//}

+ 13 - 14
master/src/main/java/com/ruoyi/project/document/controller/TPlantproglistController.java

@@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSON;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.export.JxlsTemplateEnum;
-import com.ruoyi.common.utils.export.JxlsView;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.framework.config.RuoYiConfig;
@@ -374,17 +373,17 @@ public class TPlantproglistController extends BaseController
      * @param response
      * @throws IOException
      */
-    @RequestMapping("/download/exportDevList")
-    public ModelAndView exportList(@RequestParam Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) throws ParseException {
-        logger.info(JSON.toJSONString(params));
-        String id = (String) params.get("ids");
-        int devType = Integer.parseInt((String) params.get("devType"));
-        String[] ids = id.split(",");
-        logger.info("ids" + ids);
-        int downloadType = Integer.parseInt((String) params.get("downloadType"));
-        logger.info("downloadType" + downloadType);
-        List<Object> list = new ArrayList<>();
-
-        return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_CC_UPDATE, list));
-    }
+//    @RequestMapping("/download/exportDevList")
+//    public ModelAndView exportList(@RequestParam Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) throws ParseException {
+//        logger.info(JSON.toJSONString(params));
+//        String id = (String) params.get("ids");
+//        int devType = Integer.parseInt((String) params.get("devType"));
+//        String[] ids = id.split(",");
+//        logger.info("ids" + ids);
+//        int downloadType = Integer.parseInt((String) params.get("downloadType"));
+//        logger.info("downloadType" + downloadType);
+//        List<Object> list = new ArrayList<>();
+//
+//        return new ModelAndView(new JxlsView(JxlsTemplateEnum.DEV_CC_UPDATE, list));
+//    }
 }

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/controller/TMtdDailyController.java

@@ -303,6 +303,7 @@ public class TMtdDailyController extends BaseController
         emailCc = emailCcList.toArray(new String[emailCcList.size()]);
         logger.info("发送人:" + email.toString());
         logger.info("抄送人:" + emailCc.toString());
+        logger.info("文件地址:" + filePath);
         try {
             mailService.sendAttachmentsMail(email, "CPMS:您有一条"+ formattedDate+"装置调度会议信息", html, emailCc,filePath);
         }catch (Exception e) {

+ 1 - 1
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevYlgdController.java

@@ -375,7 +375,7 @@ public class TSpecdevYlgdController extends BaseController {
         for (TSpecdevYlgd t : list
         ) {
             executorService.execute(() -> {
-                //续票列表 -- 业务模块
+                // -- 业务模块
                 failNum.getAndIncrement();
                 try {
                     t.setApproveStatus(22l);

+ 103 - 0
master/src/main/java/com/ruoyi/project/training/controller/TWorklicenseCertificateController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.project.training.controller;
+
+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.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.project.training.domain.TWorklicenseCertificate;
+import com.ruoyi.project.training.service.ITWorklicenseCertificateService;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.page.TableDataInfo;
+
+/**
+ * 上岗证/作业证书一览Controller
+ *
+ * @author ssy
+ * @date 2024-03-04
+ */
+@RestController
+@RequestMapping("/training/worklicensecertificate")
+public class TWorklicenseCertificateController extends BaseController
+{
+    @Autowired
+    private ITWorklicenseCertificateService tWorklicenseCertificateService;
+
+    /**
+     * 查询上岗证/作业证书一览列表
+     */
+    @PreAuthorize("@ss.hasPermi('training:worklicensecertificate:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        startPage();
+        List<TWorklicenseCertificate> list = tWorklicenseCertificateService.selectTWorklicenseCertificateList(tWorklicenseCertificate);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出上岗证/作业证书一览列表
+     */
+    @PreAuthorize("@ss.hasPermi('training:worklicensecertificate:export')")
+    @Log(title = "上岗证/作业证书一览", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        List<TWorklicenseCertificate> list = tWorklicenseCertificateService.selectTWorklicenseCertificateList(tWorklicenseCertificate);
+        ExcelUtil<TWorklicenseCertificate> util = new ExcelUtil<TWorklicenseCertificate>(TWorklicenseCertificate.class);
+        return util.exportExcel(list, "worklicensecertificate");
+    }
+
+    /**
+     * 获取上岗证/作业证书一览详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('training:worklicensecertificate:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tWorklicenseCertificateService.selectTWorklicenseCertificateById(id));
+    }
+
+    /**
+     * 新增上岗证/作业证书一览
+     */
+    @PreAuthorize("@ss.hasPermi('training:worklicensecertificate:add')")
+    @Log(title = "上岗证/作业证书一览", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        return toAjax(tWorklicenseCertificateService.insertTWorklicenseCertificate(tWorklicenseCertificate));
+    }
+
+    /**
+     * 修改上岗证/作业证书一览
+     */
+    @PreAuthorize("@ss.hasPermi('training:worklicensecertificate:edit')")
+    @Log(title = "上岗证/作业证书一览", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        return toAjax(tWorklicenseCertificateService.updateTWorklicenseCertificate(tWorklicenseCertificate));
+    }
+
+    /**
+     * 删除上岗证/作业证书一览
+     */
+    @PreAuthorize("@ss.hasPermi('training:worklicensecertificate:remove')")
+    @Log(title = "上岗证/作业证书一览", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tWorklicenseCertificateService.deleteTWorklicenseCertificateByIds(ids));
+    }
+}

+ 645 - 0
master/src/main/java/com/ruoyi/project/training/domain/TWorklicenseCertificate.java

@@ -0,0 +1,645 @@
+package com.ruoyi.project.training.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 上岗证/作业证书一览对象 t_worklicense_certificate
+ *
+ * @author ssy
+ * @date 2024-03-04
+ */
+public class TWorklicenseCertificate extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一标识ID */
+    private Long id;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String name;
+
+    /** 员工号 */
+    @Excel(name = "员工号")
+    private String employeeid;
+
+    /** 身份证件号 */
+    @Excel(name = "身份证件号")
+    private String idnum;
+
+    /** 班组 */
+    @Excel(name = "班组")
+    private String classes;
+
+    /** 职务 */
+    @Excel(name = "职务")
+    private String post;
+
+    /** 证件类型 */
+    @Excel(name = "证件类型")
+    private String idtype;
+
+    /** 证件号 */
+    @Excel(name = "证件号")
+    private String worklicenseIdnum;
+
+    /** 开工锅炉 */
+    @Excel(name = "开工锅炉")
+    private String boiler;
+
+    /** 裂解 */
+    @Excel(name = "裂解")
+    private String cracking;
+
+    /** 热区 */
+    @Excel(name = "热区")
+    private String hotarea;
+
+    /** 冷区 */
+    @Excel(name = "冷区")
+    private String coldarea;
+
+    /** 芳烃 */
+    @Excel(name = "芳烃")
+    private String aromatic;
+
+    /** 取复证日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "取复证日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date recertificatedate;
+
+    /** 有效期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date validity;
+
+    /** 压力容器 */
+    @Excel(name = "压力容器")
+    private String container;
+
+    /** 压力管道 */
+    @Excel(name = "压力管道")
+    private String pipe;
+
+    /** 取证日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "取证日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date reviewdate;
+
+    /** 有效期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date pipevalidity;
+
+    /** 证件号 */
+    @Excel(name = "证件号")
+    private String certificateNo;
+
+    /** 锅炉证 */
+    @Excel(name = "锅炉证")
+    private String boilerid;
+
+    /** 有效期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date boilvalidity;
+
+    /** 加氢工艺 */
+    @Excel(name = "加氢工艺")
+    private String hydrogenation;
+
+    /** 有效期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date hydvalidity;
+
+    /** 复审 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "复审", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date hydnextreview;
+
+    /** 裂化工艺 */
+    @Excel(name = "裂化工艺")
+    private String crackingid;
+
+    /** 有效期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date crackingvalidity;
+
+    /** 复审 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "复审", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date crackingreview;
+
+    /** 裂化工艺 */
+    @Excel(name = "裂化工艺")
+    private String refrigeration;
+
+    /** 有效期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date refrigerationvalidity;
+
+    /** 复审 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "复审", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date refrigerationview;
+
+    /** 最近培训日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "最近培训日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date foremantrain;
+
+    /** 本次复审 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "本次复审", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date foremanreview;
+
+    /** 下次复审 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "下次复审", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date foremannextreview;
+
+    /** 取证日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "取证日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date fireProtection;
+
+    /** 最近培训日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "最近培训日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date waterdate;
+
+    /** 最近培训日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "最近培训日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date energydate;
+
+    /** 删除状态 */
+    private Long delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private String createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private String updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    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 setEmployeeid(String employeeid)
+    {
+        this.employeeid = employeeid;
+    }
+
+    public String getEmployeeid()
+    {
+        return employeeid;
+    }
+    public void setIdnum(String idnum)
+    {
+        this.idnum = idnum;
+    }
+
+    public String getIdnum()
+    {
+        return idnum;
+    }
+    public void setClasses(String classes)
+    {
+        this.classes = classes;
+    }
+
+    public String getClasses()
+    {
+        return classes;
+    }
+    public void setPost(String post)
+    {
+        this.post = post;
+    }
+
+    public String getPost()
+    {
+        return post;
+    }
+    public void setIdtype(String idtype)
+    {
+        this.idtype = idtype;
+    }
+
+    public String getIdtype()
+    {
+        return idtype;
+    }
+    public void setWorklicenseIdnum(String worklicenseIdnum)
+    {
+        this.worklicenseIdnum = worklicenseIdnum;
+    }
+
+    public String getWorklicenseIdnum()
+    {
+        return worklicenseIdnum;
+    }
+    public void setBoiler(String boiler)
+    {
+        this.boiler = boiler;
+    }
+
+    public String getBoiler()
+    {
+        return boiler;
+    }
+    public void setCracking(String cracking)
+    {
+        this.cracking = cracking;
+    }
+
+    public String getCracking()
+    {
+        return cracking;
+    }
+    public void setHotarea(String hotarea)
+    {
+        this.hotarea = hotarea;
+    }
+
+    public String getHotarea()
+    {
+        return hotarea;
+    }
+    public void setColdarea(String coldarea)
+    {
+        this.coldarea = coldarea;
+    }
+
+    public String getColdarea()
+    {
+        return coldarea;
+    }
+    public void setAromatic(String aromatic)
+    {
+        this.aromatic = aromatic;
+    }
+
+    public String getAromatic()
+    {
+        return aromatic;
+    }
+    public void setRecertificatedate(Date recertificatedate)
+    {
+        this.recertificatedate = recertificatedate;
+    }
+
+    public Date getRecertificatedate()
+    {
+        return recertificatedate;
+    }
+    public void setValidity(Date validity)
+    {
+        this.validity = validity;
+    }
+
+    public Date getValidity()
+    {
+        return validity;
+    }
+    public void setContainer(String container)
+    {
+        this.container = container;
+    }
+
+    public String getContainer()
+    {
+        return container;
+    }
+    public void setPipe(String pipe)
+    {
+        this.pipe = pipe;
+    }
+
+    public String getPipe()
+    {
+        return pipe;
+    }
+    public void setReviewdate(Date reviewdate)
+    {
+        this.reviewdate = reviewdate;
+    }
+
+    public Date getReviewdate()
+    {
+        return reviewdate;
+    }
+    public void setPipevalidity(Date pipevalidity)
+    {
+        this.pipevalidity = pipevalidity;
+    }
+
+    public Date getPipevalidity()
+    {
+        return pipevalidity;
+    }
+    public void setCertificateNo(String certificateNo)
+    {
+        this.certificateNo = certificateNo;
+    }
+
+    public String getCertificateNo()
+    {
+        return certificateNo;
+    }
+    public void setBoilerid(String boilerid)
+    {
+        this.boilerid = boilerid;
+    }
+
+    public String getBoilerid()
+    {
+        return boilerid;
+    }
+    public void setBoilvalidity(Date boilvalidity)
+    {
+        this.boilvalidity = boilvalidity;
+    }
+
+    public Date getBoilvalidity()
+    {
+        return boilvalidity;
+    }
+    public void setHydrogenation(String hydrogenation)
+    {
+        this.hydrogenation = hydrogenation;
+    }
+
+    public String getHydrogenation()
+    {
+        return hydrogenation;
+    }
+    public void setHydvalidity(Date hydvalidity)
+    {
+        this.hydvalidity = hydvalidity;
+    }
+
+    public Date getHydvalidity()
+    {
+        return hydvalidity;
+    }
+    public void setHydnextreview(Date hydnextreview)
+    {
+        this.hydnextreview = hydnextreview;
+    }
+
+    public Date getHydnextreview()
+    {
+        return hydnextreview;
+    }
+    public void setCrackingid(String crackingid)
+    {
+        this.crackingid = crackingid;
+    }
+
+    public String getCrackingid()
+    {
+        return crackingid;
+    }
+    public void setCrackingvalidity(Date crackingvalidity)
+    {
+        this.crackingvalidity = crackingvalidity;
+    }
+
+    public Date getCrackingvalidity()
+    {
+        return crackingvalidity;
+    }
+    public void setCrackingreview(Date crackingreview)
+    {
+        this.crackingreview = crackingreview;
+    }
+
+    public Date getCrackingreview()
+    {
+        return crackingreview;
+    }
+    public void setRefrigeration(String refrigeration)
+    {
+        this.refrigeration = refrigeration;
+    }
+
+    public String getRefrigeration()
+    {
+        return refrigeration;
+    }
+    public void setRefrigerationvalidity(Date refrigerationvalidity)
+    {
+        this.refrigerationvalidity = refrigerationvalidity;
+    }
+
+    public Date getRefrigerationvalidity()
+    {
+        return refrigerationvalidity;
+    }
+    public void setRefrigerationview(Date refrigerationview)
+    {
+        this.refrigerationview = refrigerationview;
+    }
+
+    public Date getRefrigerationview()
+    {
+        return refrigerationview;
+    }
+    public void setForemantrain(Date foremantrain)
+    {
+        this.foremantrain = foremantrain;
+    }
+
+    public Date getForemantrain()
+    {
+        return foremantrain;
+    }
+    public void setForemanreview(Date foremanreview)
+    {
+        this.foremanreview = foremanreview;
+    }
+
+    public Date getForemanreview()
+    {
+        return foremanreview;
+    }
+    public void setForemannextreview(Date foremannextreview)
+    {
+        this.foremannextreview = foremannextreview;
+    }
+
+    public Date getForemannextreview()
+    {
+        return foremannextreview;
+    }
+    public void setFireProtection(Date fireProtection)
+    {
+        this.fireProtection = fireProtection;
+    }
+
+    public Date getFireProtection()
+    {
+        return fireProtection;
+    }
+    public void setWaterdate(Date waterdate)
+    {
+        this.waterdate = waterdate;
+    }
+
+    public Date getWaterdate()
+    {
+        return waterdate;
+    }
+    public void setEnergydate(Date energydate)
+    {
+        this.energydate = energydate;
+    }
+
+    public Date getEnergydate()
+    {
+        return energydate;
+    }
+    public void setDelFlag(Long delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Long getDelFlag()
+    {
+        return delFlag;
+    }
+    public void setCreaterCode(String createrCode)
+    {
+        this.createrCode = createrCode;
+    }
+
+    public String getCreaterCode()
+    {
+        return createrCode;
+    }
+    public void setCreatedate(Date createdate)
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate()
+    {
+        return createdate;
+    }
+    public void setUpdaterCode(String updaterCode)
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public String getUpdaterCode()
+    {
+        return updaterCode;
+    }
+    public void setUpdatedate(Date updatedate)
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate()
+    {
+        return updatedate;
+    }
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("employeeid", getEmployeeid())
+            .append("idnum", getIdnum())
+            .append("classes", getClasses())
+            .append("post", getPost())
+            .append("idtype", getIdtype())
+            .append("worklicenseIdnum", getWorklicenseIdnum())
+            .append("boiler", getBoiler())
+            .append("cracking", getCracking())
+            .append("hotarea", getHotarea())
+            .append("coldarea", getColdarea())
+            .append("aromatic", getAromatic())
+            .append("recertificatedate", getRecertificatedate())
+            .append("validity", getValidity())
+            .append("container", getContainer())
+            .append("pipe", getPipe())
+            .append("reviewdate", getReviewdate())
+            .append("pipevalidity", getPipevalidity())
+            .append("certificateNo", getCertificateNo())
+            .append("boilerid", getBoilerid())
+            .append("boilvalidity", getBoilvalidity())
+            .append("hydrogenation", getHydrogenation())
+            .append("hydvalidity", getHydvalidity())
+            .append("hydnextreview", getHydnextreview())
+            .append("crackingid", getCrackingid())
+            .append("crackingvalidity", getCrackingvalidity())
+            .append("crackingreview", getCrackingreview())
+            .append("refrigeration", getRefrigeration())
+            .append("refrigerationvalidity", getRefrigerationvalidity())
+            .append("refrigerationview", getRefrigerationview())
+            .append("foremantrain", getForemantrain())
+            .append("foremanreview", getForemanreview())
+            .append("foremannextreview", getForemannextreview())
+            .append("fireProtection", getFireProtection())
+            .append("waterdate", getWaterdate())
+            .append("energydate", getEnergydate())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .toString();
+    }
+}

+ 63 - 0
master/src/main/java/com/ruoyi/project/training/mapper/TWorklicenseCertificateMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.project.training.mapper;
+
+import java.util.List;
+import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
+import com.ruoyi.project.training.domain.TWorklicenseCertificate;
+
+/**
+ * 上岗证/作业证书一览Mapper接口
+ * 
+ * @author ssy
+ * @date 2024-03-04
+ */
+public interface TWorklicenseCertificateMapper 
+{
+    /**
+     * 查询上岗证/作业证书一览
+     * 
+     * @param id 上岗证/作业证书一览ID
+     * @return 上岗证/作业证书一览
+     */
+    public TWorklicenseCertificate selectTWorklicenseCertificateById(Long id);
+
+    /**
+     * 查询上岗证/作业证书一览列表
+     * 
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 上岗证/作业证书一览集合
+     */
+    @DataScope(deptAlias = "d")
+    public List<TWorklicenseCertificate> selectTWorklicenseCertificateList(TWorklicenseCertificate tWorklicenseCertificate);
+
+    /**
+     * 新增上岗证/作业证书一览
+     * 
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 结果
+     */
+    public int insertTWorklicenseCertificate(TWorklicenseCertificate tWorklicenseCertificate);
+
+    /**
+     * 修改上岗证/作业证书一览
+     * 
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 结果
+     */
+    public int updateTWorklicenseCertificate(TWorklicenseCertificate tWorklicenseCertificate);
+
+    /**
+     * 删除上岗证/作业证书一览
+     * 
+     * @param id 上岗证/作业证书一览ID
+     * @return 结果
+     */
+    public int deleteTWorklicenseCertificateById(Long id);
+
+    /**
+     * 批量删除上岗证/作业证书一览
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTWorklicenseCertificateByIds(Long[] ids);
+}

+ 61 - 0
master/src/main/java/com/ruoyi/project/training/service/ITWorklicenseCertificateService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.training.service;
+
+import java.util.List;
+import com.ruoyi.project.training.domain.TWorklicenseCertificate;
+
+/**
+ * 上岗证/作业证书一览Service接口
+ * 
+ * @author ssy
+ * @date 2024-03-04
+ */
+public interface ITWorklicenseCertificateService 
+{
+    /**
+     * 查询上岗证/作业证书一览
+     * 
+     * @param id 上岗证/作业证书一览ID
+     * @return 上岗证/作业证书一览
+     */
+    public TWorklicenseCertificate selectTWorklicenseCertificateById(Long id);
+
+    /**
+     * 查询上岗证/作业证书一览列表
+     * 
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 上岗证/作业证书一览集合
+     */
+    public List<TWorklicenseCertificate> selectTWorklicenseCertificateList(TWorklicenseCertificate tWorklicenseCertificate);
+
+    /**
+     * 新增上岗证/作业证书一览
+     * 
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 结果
+     */
+    public int insertTWorklicenseCertificate(TWorklicenseCertificate tWorklicenseCertificate);
+
+    /**
+     * 修改上岗证/作业证书一览
+     * 
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 结果
+     */
+    public int updateTWorklicenseCertificate(TWorklicenseCertificate tWorklicenseCertificate);
+
+    /**
+     * 批量删除上岗证/作业证书一览
+     * 
+     * @param ids 需要删除的上岗证/作业证书一览ID
+     * @return 结果
+     */
+    public int deleteTWorklicenseCertificateByIds(Long[] ids);
+
+    /**
+     * 删除上岗证/作业证书一览信息
+     * 
+     * @param id 上岗证/作业证书一览ID
+     * @return 结果
+     */
+    public int deleteTWorklicenseCertificateById(Long id);
+}

+ 93 - 0
master/src/main/java/com/ruoyi/project/training/service/impl/TWorklicenseCertificateServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.project.training.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.training.mapper.TWorklicenseCertificateMapper;
+import com.ruoyi.project.training.domain.TWorklicenseCertificate;
+import com.ruoyi.project.training.service.ITWorklicenseCertificateService;
+
+/**
+ * 上岗证/作业证书一览Service业务层处理
+ *
+ * @author ssy
+ * @date 2024-03-04
+ */
+@Service
+public class TWorklicenseCertificateServiceImpl implements ITWorklicenseCertificateService
+{
+    @Autowired
+    private TWorklicenseCertificateMapper tWorklicenseCertificateMapper;
+
+    /**
+     * 查询上岗证/作业证书一览
+     *
+     * @param id 上岗证/作业证书一览ID
+     * @return 上岗证/作业证书一览
+     */
+    @Override
+    public TWorklicenseCertificate selectTWorklicenseCertificateById(Long id)
+    {
+        return tWorklicenseCertificateMapper.selectTWorklicenseCertificateById(id);
+    }
+
+    /**
+     * 查询上岗证/作业证书一览列表
+     *
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 上岗证/作业证书一览
+     */
+    @Override
+    public List<TWorklicenseCertificate> selectTWorklicenseCertificateList(TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        return tWorklicenseCertificateMapper.selectTWorklicenseCertificateList(tWorklicenseCertificate);
+    }
+
+    /**
+     * 新增上岗证/作业证书一览
+     *
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 结果
+     */
+    @Override
+    public int insertTWorklicenseCertificate(TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        return tWorklicenseCertificateMapper.insertTWorklicenseCertificate(tWorklicenseCertificate);
+    }
+
+    /**
+     * 修改上岗证/作业证书一览
+     *
+     * @param tWorklicenseCertificate 上岗证/作业证书一览
+     * @return 结果
+     */
+    @Override
+    public int updateTWorklicenseCertificate(TWorklicenseCertificate tWorklicenseCertificate)
+    {
+        return tWorklicenseCertificateMapper.updateTWorklicenseCertificate(tWorklicenseCertificate);
+    }
+
+    /**
+     * 批量删除上岗证/作业证书一览
+     *
+     * @param ids 需要删除的上岗证/作业证书一览ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTWorklicenseCertificateByIds(Long[] ids)
+    {
+        return tWorklicenseCertificateMapper.deleteTWorklicenseCertificateByIds(ids);
+    }
+
+    /**
+     * 删除上岗证/作业证书一览信息
+     *
+     * @param id 上岗证/作业证书一览ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTWorklicenseCertificateById(Long id)
+    {
+        return tWorklicenseCertificateMapper.deleteTWorklicenseCertificateById(id);
+    }
+}

+ 271 - 0
master/src/main/resources/mybatis/training/TWorklicenseCertificateMapper.xml

@@ -0,0 +1,271 @@
+<?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.project.training.mapper.TWorklicenseCertificateMapper">
+    
+    <resultMap type="TWorklicenseCertificate" id="TWorklicenseCertificateResult">
+        <result property="id"    column="id"    />
+        <result property="name"    column="name"    />
+        <result property="employeeid"    column="employeeid"    />
+        <result property="idnum"    column="idnum"    />
+        <result property="classes"    column="classes"    />
+        <result property="post"    column="post"    />
+        <result property="idtype"    column="idtype"    />
+        <result property="worklicenseIdnum"    column="worklicense_idnum"    />
+        <result property="boiler"    column="boiler"    />
+        <result property="cracking"    column="cracking"    />
+        <result property="hotarea"    column="hotarea"    />
+        <result property="coldarea"    column="coldarea"    />
+        <result property="aromatic"    column="aromatic"    />
+        <result property="recertificatedate"    column="recertificatedate"    />
+        <result property="validity"    column="validity"    />
+        <result property="container"    column="container"    />
+        <result property="pipe"    column="pipe"    />
+        <result property="reviewdate"    column="reviewdate"    />
+        <result property="pipevalidity"    column="pipevalidity"    />
+        <result property="certificateNo"    column="certificate_no"    />
+        <result property="boilerid"    column="boilerid"    />
+        <result property="boilvalidity"    column="boilvalidity"    />
+        <result property="hydrogenation"    column="hydrogenation"    />
+        <result property="hydvalidity"    column="hydvalidity"    />
+        <result property="hydnextreview"    column="hydnextreview"    />
+        <result property="crackingid"    column="crackingid"    />
+        <result property="crackingvalidity"    column="crackingvalidity"    />
+        <result property="crackingreview"    column="crackingreview"    />
+        <result property="refrigeration"    column="refrigeration"    />
+        <result property="refrigerationvalidity"    column="refrigerationvalidity"    />
+        <result property="refrigerationview"    column="refrigerationview"    />
+        <result property="foremantrain"    column="foremantrain"    />
+        <result property="foremanreview"    column="foremanreview"    />
+        <result property="foremannextreview"    column="foremannextreview"    />
+        <result property="fireProtection"    column="fire_protection"    />
+        <result property="waterdate"    column="waterdate"    />
+        <result property="energydate"    column="energydate"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="deptName" column="dept_name" />
+    </resultMap>
+
+    <sql id="selectTWorklicenseCertificateVo">
+        select d.id, d.name, d.employeeid, d.idnum, d.classes, d.post, d.idtype, d.worklicense_idnum, d.boiler, d.cracking, d.hotarea, d.coldarea, d.aromatic, d.recertificatedate, d.validity, d.container, d.pipe, d.reviewdate, d.pipevalidity, d.certificate_no, d.boilerid, d.boilvalidity, d.hydrogenation, d.hydvalidity, d.hydnextreview, d.crackingid, d.crackingvalidity, d.crackingreview, d.refrigeration, d.refrigerationvalidity, d.refrigerationview, d.foremantrain, d.foremanreview, d.foremannextreview, d.fire_protection, d.waterdate, d.energydate, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id ,s.dept_name from t_worklicense_certificate d
+      left join sys_dept s on s.dept_id = d.dept_id
+    </sql>
+
+    <select id="selectTWorklicenseCertificateList" parameterType="TWorklicenseCertificate" resultMap="TWorklicenseCertificateResult">
+        <include refid="selectTWorklicenseCertificateVo"/>
+        <where>  
+            <if test="name != null  and name != ''"> and name like concat(concat('%', #{name}), '%')</if>
+            <if test="employeeid != null  and employeeid != ''"> and employeeid = #{employeeid}</if>
+            <if test="idnum != null  and idnum != ''"> and idnum = #{idnum}</if>
+            <if test="classes != null  and classes != ''"> and classes = #{classes}</if>
+            <if test="post != null  and post != ''"> and post = #{post}</if>
+            <if test="idtype != null  and idtype != ''"> and idtype = #{idtype}</if>
+            <if test="worklicenseIdnum != null  and worklicenseIdnum != ''"> and worklicense_idnum = #{worklicenseIdnum}</if>
+            <if test="boiler != null  and boiler != ''"> and boiler = #{boiler}</if>
+            <if test="cracking != null  and cracking != ''"> and cracking = #{cracking}</if>
+            <if test="hotarea != null  and hotarea != ''"> and hotarea = #{hotarea}</if>
+            <if test="coldarea != null  and coldarea != ''"> and coldarea = #{coldarea}</if>
+            <if test="aromatic != null  and aromatic != ''"> and aromatic = #{aromatic}</if>
+            <if test="recertificatedate != null "> and recertificatedate = #{recertificatedate}</if>
+            <if test="validity != null "> and validity = #{validity}</if>
+            <if test="container != null  and container != ''"> and container = #{container}</if>
+            <if test="pipe != null  and pipe != ''"> and pipe = #{pipe}</if>
+            <if test="reviewdate != null "> and reviewdate = #{reviewdate}</if>
+            <if test="pipevalidity != null "> and pipevalidity = #{pipevalidity}</if>
+            <if test="certificateNo != null  and certificateNo != ''"> and certificate_no = #{certificateNo}</if>
+            <if test="boilerid != null  and boilerid != ''"> and boilerid = #{boilerid}</if>
+            <if test="boilvalidity != null "> and boilvalidity = #{boilvalidity}</if>
+            <if test="hydrogenation != null  and hydrogenation != ''"> and hydrogenation = #{hydrogenation}</if>
+            <if test="hydvalidity != null "> and hydvalidity = #{hydvalidity}</if>
+            <if test="hydnextreview != null "> and hydnextreview = #{hydnextreview}</if>
+            <if test="crackingid != null  and crackingid != ''"> and crackingid = #{crackingid}</if>
+            <if test="crackingvalidity != null "> and crackingvalidity = #{crackingvalidity}</if>
+            <if test="crackingreview != null "> and crackingreview = #{crackingreview}</if>
+            <if test="refrigeration != null  and refrigeration != ''"> and refrigeration = #{refrigeration}</if>
+            <if test="refrigerationvalidity != null "> and refrigerationvalidity = #{refrigerationvalidity}</if>
+            <if test="refrigerationview != null "> and refrigerationview = #{refrigerationview}</if>
+            <if test="foremantrain != null "> and foremantrain = #{foremantrain}</if>
+            <if test="foremanreview != null "> and foremanreview = #{foremanreview}</if>
+            <if test="foremannextreview != null "> and foremannextreview = #{foremannextreview}</if>
+            <if test="fireProtection != null "> and fire_protection = #{fireProtection}</if>
+            <if test="waterdate != null "> and waterdate = #{waterdate}</if>
+            <if test="energydate != null "> and energydate = #{energydate}</if>
+            <if test="createrCode != null  and createrCode != ''"> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null  and updaterCode != ''"> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            and d.del_flag = 0
+        </where>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+    
+    <select id="selectTWorklicenseCertificateById" parameterType="Long" resultMap="TWorklicenseCertificateResult">
+        <include refid="selectTWorklicenseCertificateVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTWorklicenseCertificate" parameterType="TWorklicenseCertificate">
+        <selectKey keyProperty="id" resultType="long" order="BEFORE">
+            SELECT seq_t_worklicense_certificate.NEXTVAL as id FROM DUAL
+        </selectKey>
+        insert into t_worklicense_certificate
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="name != null">name,</if>
+            <if test="employeeid != null">employeeid,</if>
+            <if test="idnum != null">idnum,</if>
+            <if test="classes != null">classes,</if>
+            <if test="post != null">post,</if>
+            <if test="idtype != null">idtype,</if>
+            <if test="worklicenseIdnum != null">worklicense_idnum,</if>
+            <if test="boiler != null">boiler,</if>
+            <if test="cracking != null">cracking,</if>
+            <if test="hotarea != null">hotarea,</if>
+            <if test="coldarea != null">coldarea,</if>
+            <if test="aromatic != null">aromatic,</if>
+            <if test="recertificatedate != null">recertificatedate,</if>
+            <if test="validity != null">validity,</if>
+            <if test="container != null">container,</if>
+            <if test="pipe != null">pipe,</if>
+            <if test="reviewdate != null">reviewdate,</if>
+            <if test="pipevalidity != null">pipevalidity,</if>
+            <if test="certificateNo != null">certificate_no,</if>
+            <if test="boilerid != null">boilerid,</if>
+            <if test="boilvalidity != null">boilvalidity,</if>
+            <if test="hydrogenation != null">hydrogenation,</if>
+            <if test="hydvalidity != null">hydvalidity,</if>
+            <if test="hydnextreview != null">hydnextreview,</if>
+            <if test="crackingid != null">crackingid,</if>
+            <if test="crackingvalidity != null">crackingvalidity,</if>
+            <if test="crackingreview != null">crackingreview,</if>
+            <if test="refrigeration != null">refrigeration,</if>
+            <if test="refrigerationvalidity != null">refrigerationvalidity,</if>
+            <if test="refrigerationview != null">refrigerationview,</if>
+            <if test="foremantrain != null">foremantrain,</if>
+            <if test="foremanreview != null">foremanreview,</if>
+            <if test="foremannextreview != null">foremannextreview,</if>
+            <if test="fireProtection != null">fire_protection,</if>
+            <if test="waterdate != null">waterdate,</if>
+            <if test="energydate != null">energydate,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="name != null">#{name},</if>
+            <if test="employeeid != null">#{employeeid},</if>
+            <if test="idnum != null">#{idnum},</if>
+            <if test="classes != null">#{classes},</if>
+            <if test="post != null">#{post},</if>
+            <if test="idtype != null">#{idtype},</if>
+            <if test="worklicenseIdnum != null">#{worklicenseIdnum},</if>
+            <if test="boiler != null">#{boiler},</if>
+            <if test="cracking != null">#{cracking},</if>
+            <if test="hotarea != null">#{hotarea},</if>
+            <if test="coldarea != null">#{coldarea},</if>
+            <if test="aromatic != null">#{aromatic},</if>
+            <if test="recertificatedate != null">#{recertificatedate},</if>
+            <if test="validity != null">#{validity},</if>
+            <if test="container != null">#{container},</if>
+            <if test="pipe != null">#{pipe},</if>
+            <if test="reviewdate != null">#{reviewdate},</if>
+            <if test="pipevalidity != null">#{pipevalidity},</if>
+            <if test="certificateNo != null">#{certificateNo},</if>
+            <if test="boilerid != null">#{boilerid},</if>
+            <if test="boilvalidity != null">#{boilvalidity},</if>
+            <if test="hydrogenation != null">#{hydrogenation},</if>
+            <if test="hydvalidity != null">#{hydvalidity},</if>
+            <if test="hydnextreview != null">#{hydnextreview},</if>
+            <if test="crackingid != null">#{crackingid},</if>
+            <if test="crackingvalidity != null">#{crackingvalidity},</if>
+            <if test="crackingreview != null">#{crackingreview},</if>
+            <if test="refrigeration != null">#{refrigeration},</if>
+            <if test="refrigerationvalidity != null">#{refrigerationvalidity},</if>
+            <if test="refrigerationview != null">#{refrigerationview},</if>
+            <if test="foremantrain != null">#{foremantrain},</if>
+            <if test="foremanreview != null">#{foremanreview},</if>
+            <if test="foremannextreview != null">#{foremannextreview},</if>
+            <if test="fireProtection != null">#{fireProtection},</if>
+            <if test="waterdate != null">#{waterdate},</if>
+            <if test="energydate != null">#{energydate},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTWorklicenseCertificate" parameterType="TWorklicenseCertificate">
+        update t_worklicense_certificate
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="employeeid != null">employeeid = #{employeeid},</if>
+            <if test="idnum != null">idnum = #{idnum},</if>
+            <if test="classes != null">classes = #{classes},</if>
+            <if test="post != null">post = #{post},</if>
+            <if test="idtype != null">idtype = #{idtype},</if>
+            <if test="worklicenseIdnum != null">worklicense_idnum = #{worklicenseIdnum},</if>
+            <if test="boiler != null">boiler = #{boiler},</if>
+            <if test="cracking != null">cracking = #{cracking},</if>
+            <if test="hotarea != null">hotarea = #{hotarea},</if>
+            <if test="coldarea != null">coldarea = #{coldarea},</if>
+            <if test="aromatic != null">aromatic = #{aromatic},</if>
+            <if test="recertificatedate != null">recertificatedate = #{recertificatedate},</if>
+            <if test="validity != null">validity = #{validity},</if>
+            <if test="container != null">container = #{container},</if>
+            <if test="pipe != null">pipe = #{pipe},</if>
+            <if test="reviewdate != null">reviewdate = #{reviewdate},</if>
+            <if test="pipevalidity != null">pipevalidity = #{pipevalidity},</if>
+            <if test="certificateNo != null">certificate_no = #{certificateNo},</if>
+            <if test="boilerid != null">boilerid = #{boilerid},</if>
+            <if test="boilvalidity != null">boilvalidity = #{boilvalidity},</if>
+            <if test="hydrogenation != null">hydrogenation = #{hydrogenation},</if>
+            <if test="hydvalidity != null">hydvalidity = #{hydvalidity},</if>
+            <if test="hydnextreview != null">hydnextreview = #{hydnextreview},</if>
+            <if test="crackingid != null">crackingid = #{crackingid},</if>
+            <if test="crackingvalidity != null">crackingvalidity = #{crackingvalidity},</if>
+            <if test="crackingreview != null">crackingreview = #{crackingreview},</if>
+            <if test="refrigeration != null">refrigeration = #{refrigeration},</if>
+            <if test="refrigerationvalidity != null">refrigerationvalidity = #{refrigerationvalidity},</if>
+            <if test="refrigerationview != null">refrigerationview = #{refrigerationview},</if>
+            <if test="foremantrain != null">foremantrain = #{foremantrain},</if>
+            <if test="foremanreview != null">foremanreview = #{foremanreview},</if>
+            <if test="foremannextreview != null">foremannextreview = #{foremannextreview},</if>
+            <if test="fireProtection != null">fire_protection = #{fireProtection},</if>
+            <if test="waterdate != null">waterdate = #{waterdate},</if>
+            <if test="energydate != null">energydate = #{energydate},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deleteTWorklicenseCertificateById" parameterType="Long">
+        update t_worklicense_certificate set del_flag = 2 where id = #{id}
+    </update>
+
+    <update id="deleteTWorklicenseCertificateByIds" parameterType="String">
+        update t_worklicense_certificate set del_flag = 2 where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+    
+</mapper>

+ 53 - 0
ui/src/api/training/worklicensecertificate.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询上岗证/作业证书一览列表
+export function listWorklicensecertificate(query) {
+  return request({
+    url: '/training/worklicensecertificate/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询上岗证/作业证书一览详细
+export function getWorklicensecertificate(id) {
+  return request({
+    url: '/training/worklicensecertificate/' + id,
+    method: 'get'
+  })
+}
+
+// 新增上岗证/作业证书一览
+export function addWorklicensecertificate(data) {
+  return request({
+    url: '/training/worklicensecertificate',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改上岗证/作业证书一览
+export function updateWorklicensecertificate(data) {
+  return request({
+    url: '/training/worklicensecertificate',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除上岗证/作业证书一览
+export function delWorklicensecertificate(id) {
+  return request({
+    url: '/training/worklicensecertificate/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出上岗证/作业证书一览
+export function exportWorklicensecertificate(query) {
+  return request({
+    url: '/training/worklicensecertificate/export',
+    method: 'get',
+    params: query
+  })
+}

+ 1170 - 0
ui/src/views/training/worklicensecertificate/index.vue

@@ -0,0 +1,1170 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <!--<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="employeeid">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.employeeid"-->
+          <!--placeholder="请输入员工号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="身份证件号" prop="idnum">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.idnum"-->
+          <!--placeholder="请输入身份证件号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="班组" prop="classes">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.classes"-->
+          <!--placeholder="请输入班组"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="职务" prop="post">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.post"-->
+          <!--placeholder="请输入职务"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="证件类型" prop="idtype">-->
+        <!--<el-select v-model="queryParams.idtype" placeholder="请选择证件类型" clearable size="small">-->
+          <!--<el-option label="请选择字典生成" value="" />-->
+        <!--</el-select>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="证件号" prop="worklicenseIdnum">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.worklicenseIdnum"-->
+          <!--placeholder="请输入证件号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="开工锅炉" prop="boiler">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.boiler"-->
+          <!--placeholder="请输入开工锅炉"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="裂解" prop="cracking">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.cracking"-->
+          <!--placeholder="请输入裂解"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="热区" prop="hotarea">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.hotarea"-->
+          <!--placeholder="请输入热区"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="冷区" prop="coldarea">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.coldarea"-->
+          <!--placeholder="请输入冷区"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="芳烃" prop="aromatic">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.aromatic"-->
+          <!--placeholder="请输入芳烃"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="取复证日期" prop="recertificatedate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.recertificatedate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择取复证日期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="有效期" prop="validity">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.validity"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择有效期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="压力容器" prop="container">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.container"-->
+          <!--placeholder="请输入压力容器"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="压力管道" prop="pipe">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.pipe"-->
+          <!--placeholder="请输入压力管道"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="取证日期" prop="reviewdate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.reviewdate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择取证日期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="有效期" prop="pipevalidity">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.pipevalidity"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择有效期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="证件号" prop="certificateNo">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.certificateNo"-->
+          <!--placeholder="请输入证件号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="锅炉证" prop="boilerid">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.boilerid"-->
+          <!--placeholder="请输入锅炉证"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="有效期" prop="boilvalidity">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.boilvalidity"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择有效期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="加氢工艺" prop="hydrogenation">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.hydrogenation"-->
+          <!--placeholder="请输入加氢工艺"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="有效期" prop="hydvalidity">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.hydvalidity"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择有效期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="复审" prop="hydnextreview">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.hydnextreview"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择复审">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="裂化工艺" prop="crackingid">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.crackingid"-->
+          <!--placeholder="请输入裂化工艺"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="有效期" prop="crackingvalidity">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.crackingvalidity"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择有效期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="复审" prop="crackingreview">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.crackingreview"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择复审">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="裂化工艺" prop="refrigeration">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.refrigeration"-->
+          <!--placeholder="请输入裂化工艺"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="有效期" prop="refrigerationvalidity">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.refrigerationvalidity"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择有效期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="复审" prop="refrigerationview">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.refrigerationview"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择复审">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="最近培训日期" prop="foremantrain">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.foremantrain"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择最近培训日期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="本次复审" prop="foremanreview">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.foremanreview"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择本次复审">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="下次复审" prop="foremannextreview">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.foremannextreview"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择下次复审">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="取证日期" prop="fireProtection">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.fireProtection"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择取证日期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="最近培训日期" prop="waterdate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.waterdate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择最近培训日期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="最近培训日期" prop="energydate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.energydate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择最近培训日期">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="创建人" prop="createrCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.createrCode"-->
+          <!--placeholder="请输入创建人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="创建时间" prop="createdate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.createdate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择创建时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改人" prop="updaterCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.updaterCode"-->
+          <!--placeholder="请输入修改人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改时间" prop="updatedate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.updatedate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择修改时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="部门编号" prop="deptId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.deptId"-->
+          <!--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="['training:worklicensecertificate: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="['training:worklicensecertificate: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="['training:worklicensecertificate:remove']"
+        >删除</el-button>
+      </el-col>
+        <!--<el-col :span="1.5">-->
+            <!--<el-button-->
+                    <!--type="info"-->
+                    <!--icon="el-icon-upload2"-->
+                    <!--size="mini"-->
+                    <!--@click="handleImport"-->
+                    <!--v-hasPermi="['training:worklicensecertificate:edit']"-->
+            <!--&gt;导入</el-button>-->
+        <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+        <!--<el-button-->
+          <!--type="warning"-->
+          <!--icon="el-icon-download"-->
+          <!--size="mini"-->
+          <!--@click="handleExport"-->
+          <!--v-hasPermi="['training:worklicensecertificate:export']"-->
+        <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="worklicensecertificateList" @selection-change="handleSelectionChange" :height="clientHeight" border
+              :header-cell-style="{'text-align':'center'}">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true"/>
+      <el-table-column label="员工号" align="center" prop="employeeid" :show-overflow-tooltip="true"/>
+      <el-table-column label="身份证件号" align="center" prop="idnum" :show-overflow-tooltip="true"/>
+      <el-table-column label="班组" align="center" prop="classes" :show-overflow-tooltip="true"/>
+      <el-table-column label="职务" align="center" prop="post" :show-overflow-tooltip="true"/>
+      <el-table-column label="证件类型" align="center" prop="idtype" :show-overflow-tooltip="true"/>
+      <el-table-column label="证件号" align="center" prop="worklicenseIdnum" :show-overflow-tooltip="true"/>
+      <el-table-column label="岗位">
+        <el-table-column label="开工锅炉" align="center" prop="boiler" :show-overflow-tooltip="true"/>
+        <el-table-column label="裂解" align="center" prop="cracking" :show-overflow-tooltip="true"/>
+        <el-table-column label="热区" align="center" prop="hotarea" :show-overflow-tooltip="true"/>
+        <el-table-column label="冷区" align="center" prop="coldarea" :show-overflow-tooltip="true"/>
+        <el-table-column label="芳烃" align="center" prop="aromatic" :show-overflow-tooltip="true"/>
+      </el-table-column>
+      <el-table-column label="取复证日期" align="center" prop="recertificatedate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recertificatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="有效期" align="center" prop="validity" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.validity, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="压力容器和管道证书(4年复审)">
+        <el-table-column label="压力容器" align="center" prop="container" :show-overflow-tooltip="true"/>
+        <el-table-column label="压力管道" align="center" prop="pipe" :show-overflow-tooltip="true"/>
+        <el-table-column label="取证日期" align="center" prop="reviewdate" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.reviewdate, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="有效期" align="center" prop="pipevalidity" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.pipevalidity, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="证件号" align="center" prop="certificateNo" :show-overflow-tooltip="true"/>
+      </el-table-column>
+      <el-table-column label="锅炉证书(4年)">
+        <el-table-column label="锅炉证" align="center" prop="boilerid" :show-overflow-tooltip="true"/>
+        <el-table-column label="有效期" align="center" prop="boilvalidity" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.boilvalidity, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="危险化学品安全生产(3年复审,6年有效期)">
+        <el-table-column label="加氢工艺" align="center" prop="hydrogenation" :show-overflow-tooltip="true"/>
+        <el-table-column label="有效期" align="center" prop="hydvalidity" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.hydvalidity, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="复审" align="center" prop="hydnextreview" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.hydnextreview, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="裂化工艺" align="center" prop="crackingid" :show-overflow-tooltip="true"/>
+        <el-table-column label="有效期" align="center" prop="crackingvalidity" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.crackingvalidity, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="复审" align="center" prop="crackingreview" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.crackingreview, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="裂化工艺" align="center" prop="refrigeration" :show-overflow-tooltip="true"/>
+        <el-table-column label="有效期" align="center" prop="refrigerationvalidity" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.refrigerationvalidity, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="复审" align="center" prop="refrigerationview" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.refrigerationview, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="班组长安全生产合格证(3年复审)">
+        <el-table-column label="最近培训日期" align="center" prop="foremantrain" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.foremantrain, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="本次复审" align="center" prop="foremanreview" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.foremanreview, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="下次复审" align="center" prop="foremannextreview" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.foremannextreview, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="建筑消防(无复审)">
+        <el-table-column label="取证日期" align="center" prop="fireProtection" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.fireProtection, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="锅炉水质处理">
+        <el-table-column label="最近培训日期" align="center" prop="waterdate" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.waterdate, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="锅炉能效">
+        <el-table-column label="最近培训日期" align="center" prop="energydate" width="100">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.energydate, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <!--<el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="创建时间" align="center" prop="createdate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="修改时间" align="center" prop="updatedate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['training:worklicensecertificate:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['training:worklicensecertificate: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="60%" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="12">
+            <!--<el-form-item label="唯一标识ID" prop="id">-->
+            <!--<el-input v-model="form.id" placeholder="请输入唯一标识ID" />-->
+            <!--</el-form-item>-->
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="form.name" placeholder="请输入姓名" />
+            </el-form-item>
+            <el-form-item label="员工号" prop="employeeid">
+              <el-input v-model="form.employeeid" placeholder="请输入员工号" />
+            </el-form-item>
+            <el-form-item label="身份证件号" prop="idnum">
+              <el-input v-model="form.idnum" placeholder="请输入身份证件号" />
+            </el-form-item>
+            <el-form-item label="班组" prop="classes">
+              <el-input v-model="form.classes" placeholder="请输入班组" />
+            </el-form-item>
+            <el-form-item label="职务" prop="post">
+              <el-input v-model="form.post" placeholder="请输入职务" />
+            </el-form-item>
+            <el-form-item :label="$t('证件类型')" prop="idtype">
+              <el-input v-model="form.idtype" :placeholder="$t('请输入') + $t('证件类型')" />
+            </el-form-item>
+            <el-form-item label="证件号" prop="worklicenseIdnum">
+              <el-input v-model="form.worklicenseIdnum" placeholder="请输入证件号" />
+            </el-form-item>
+            <el-col :span="4">
+              <el-form-item :label="$t('开工锅炉')" prop="boiler">
+                <el-checkbox v-model="form.boiler" @change="changeBoiler()"></el-checkbox>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item :label="$t('裂解')" prop="cracking">
+                <el-checkbox v-model="form.cracking" @change="changeCracking()"></el-checkbox>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item :label="$t('压缩')" prop="hotarea">
+                <el-checkbox v-model="form.hotarea" @change="changeHotarea()"></el-checkbox>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item :label="$t('分离')" prop="coldarea">
+                <el-checkbox v-model="form.coldarea" @change="changeColdarea()"></el-checkbox>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item :label="$t('芳烃')" prop="aromatic">
+                <el-checkbox v-model="form.aromatic" @change="changeAromatic()"></el-checkbox>
+              </el-form-item>
+            </el-col>
+            <!--<el-form-item label="开工锅炉" prop="boiler">-->
+              <!--<el-input v-model="form.boiler" placeholder="请输入开工锅炉" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="裂解" prop="cracking">-->
+              <!--<el-input v-model="form.cracking" placeholder="请输入裂解" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="热区" prop="hotarea">-->
+              <!--<el-input v-model="form.hotarea" placeholder="请输入热区" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="冷区" prop="coldarea">-->
+              <!--<el-input v-model="form.coldarea" placeholder="请输入冷区" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="芳烃" prop="aromatic">-->
+              <!--<el-input v-model="form.aromatic" placeholder="请输入芳烃" />-->
+            <!--</el-form-item>-->
+            <el-form-item label="取复证日期" prop="recertificatedate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.recertificatedate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择取复证日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="有效期" prop="validity">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.validity"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择有效期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="压力容器" prop="container">
+              <el-input v-model="form.container" placeholder="请输入压力容器" />
+            </el-form-item>
+            <el-form-item label="压力管道" prop="pipe">
+              <el-input v-model="form.pipe" placeholder="请输入压力管道" />
+            </el-form-item>
+            <el-form-item label="取证日期" prop="reviewdate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.reviewdate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择取证日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="有效期" prop="pipevalidity">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.pipevalidity"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择有效期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="证件号" prop="certificateNo">
+              <el-input v-model="form.certificateNo" placeholder="请输入证件号" />
+            </el-form-item>
+            <el-form-item label="锅炉证" prop="boilerid">
+              <el-input v-model="form.boilerid" placeholder="请输入锅炉证" />
+            </el-form-item>
+            <el-form-item label="有效期" prop="boilvalidity">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.boilvalidity"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择有效期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="归属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="加氢工艺" prop="hydrogenation">
+              <el-input v-model="form.hydrogenation" placeholder="请输入加氢工艺" />
+            </el-form-item>
+            <el-form-item label="有效期" prop="hydvalidity">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.hydvalidity"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择有效期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="复审" prop="hydnextreview">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.hydnextreview"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择复审">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="裂化工艺" prop="crackingid">
+              <el-input v-model="form.crackingid" placeholder="请输入裂化工艺" />
+            </el-form-item>
+            <el-form-item label="有效期" prop="crackingvalidity">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.crackingvalidity"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择有效期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="复审" prop="crackingreview">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.crackingreview"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择复审">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="裂化工艺" prop="refrigeration">
+              <el-input v-model="form.refrigeration" placeholder="请输入裂化工艺" />
+            </el-form-item>
+            <el-form-item label="有效期" prop="refrigerationvalidity">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.refrigerationvalidity"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择有效期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="复审" prop="refrigerationview">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.refrigerationview"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择复审">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="班组长最近培训日期" prop="foremantrain">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.foremantrain"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择班组长最近培训日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="班组长本次复审" prop="foremanreview">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.foremanreview"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择班组长本次复审">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="班组长下次复审" prop="foremannextreview">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.foremannextreview"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择班组长下次复审">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="建筑消防取证日期" prop="fireProtection">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.fireProtection"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择建筑消防取证日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="锅炉水质处理最近培训日期" prop="waterdate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.waterdate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择锅炉水质处理最近培训日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="锅炉能效最近培训日期" prop="energydate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.energydate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择锅炉能效最近培训日期">
+              </el-date-picker>
+            </el-form-item>
+            <!--<el-form-item label="删除状态" prop="delFlag">-->
+            <!--<el-input v-model="form.delFlag" placeholder="请输入删除状态" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="创建人" prop="createrCode">-->
+            <!--<el-input v-model="form.createrCode" placeholder="请输入创建人" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="创建时间" prop="createdate">-->
+            <!--<el-date-picker clearable size="small" style="width: 200px"-->
+            <!--v-model="form.createdate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择创建时间">-->
+            <!--</el-date-picker>-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="修改人" prop="updaterCode">-->
+            <!--<el-input v-model="form.updaterCode" placeholder="请输入修改人" />-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="修改时间" prop="updatedate">-->
+            <!--<el-date-picker clearable size="small" style="width: 200px"-->
+            <!--v-model="form.updatedate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择修改时间">-->
+            <!--</el-date-picker>-->
+            <!--</el-form-item>-->
+            <!--<el-form-item label="部门编号" prop="deptId">-->
+            <!--<el-input v-model="form.deptId" placeholder="请输入部门编号" />-->
+            <!--</el-form-item>-->
+          </el-col>
+        </el-row>
+      </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>
+      <!-- 用户导入对话框 -->
+      <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+          <el-upload
+                  ref="upload"
+                  :limit="1"
+                  accept=".xlsx, .xls"
+                  :headers="upload.headers"
+                  :action="upload.url + '?updateSupport=' + upload.updateSupport"
+                  :disabled="upload.isUploading"
+                  :on-progress="handleFileUploadProgress"
+                  :on-success="handleFileSuccess"
+                  :auto-upload="false"
+                  drag
+          >
+              <i class="el-icon-upload"></i>
+              <div class="el-upload__text">
+                  将文件拖到此处,或
+                  <em>点击上传</em>
+              </div>
+              <div class="el-upload__tip" slot="tip">
+                  <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+                  <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+              </div>
+              <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+          </el-upload>
+          <div slot="footer" class="dialog-footer">
+              <el-button type="primary" @click="submitFileForm">确 定</el-button>
+              <el-button @click="upload.open = false">取 消</el-button>
+          </div>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listWorklicensecertificate, getWorklicensecertificate, delWorklicensecertificate, addWorklicensecertificate, updateWorklicensecertificate, exportWorklicensecertificate, importTemplate} from "@/api/training/worklicensecertificate";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Worklicensecertificate",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 上岗证/作业证书一览表格数据
+      worklicensecertificateList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+        // 用户导入参数
+        upload: {
+            // 是否显示弹出层(用户导入)
+            open: false,
+            // 弹出层标题(用户导入)
+            title: "",
+            // 是否禁用上传
+            isUploading: false,
+            // 是否更新已经存在的用户数据
+            updateSupport: 0,
+            // 设置上传的请求头部
+            headers: { Authorization: "Bearer " + getToken() },
+            // 上传的地址
+            url: process.env.VUE_APP_BASE_API + "/training/worklicensecertificate/importData"
+        },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        name: null,
+        employeeid: null,
+        idnum: null,
+        classes: null,
+        post: null,
+        idtype: null,
+        worklicenseIdnum: null,
+        boiler: null,
+        cracking: null,
+        hotarea: null,
+        coldarea: null,
+        aromatic: null,
+        recertificatedate: null,
+        validity: null,
+        container: null,
+        pipe: null,
+        reviewdate: null,
+        pipevalidity: null,
+        certificateNo: null,
+        boilerid: null,
+        boilvalidity: null,
+        hydrogenation: null,
+        hydvalidity: null,
+        hydnextreview: null,
+        crackingid: null,
+        crackingvalidity: null,
+        crackingreview: null,
+        refrigeration: null,
+        refrigerationvalidity: null,
+        refrigerationview: null,
+        foremantrain: null,
+        foremanreview: null,
+        foremannextreview: null,
+        fireProtection: null,
+        waterdate: null,
+        energydate: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        id: [
+          { required: true, message: "唯一标识ID不能为空", trigger: "blur" }
+        ],
+        deptId: [
+          { required: true, message: "部门编号不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  watch: {
+        // 根据名称筛选部门树
+        deptName(val) {
+            this.$refs.tree.filter(val);
+        }
+   },
+  created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+          this.clientHeight = document.body.clientHeight -250
+      })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询上岗证/作业证书一览列表 */
+    getList() {
+      this.loading = true;
+      listWorklicensecertificate(this.queryParams).then(response => {
+        this.worklicensecertificateList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+     /** 查询部门下拉树结构 */
+     getTreeselect() {
+          treeselect().then(response => {
+              this.deptOptions = response.data;
+          });
+     },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        employeeid: null,
+        idnum: null,
+        classes: null,
+        post: null,
+        idtype: null,
+        worklicenseIdnum: null,
+        boiler: null,
+        cracking: null,
+        hotarea: null,
+        coldarea: null,
+        aromatic: null,
+        recertificatedate: null,
+        validity: null,
+        container: null,
+        pipe: null,
+        reviewdate: null,
+        pipevalidity: null,
+        certificateNo: null,
+        boilerid: null,
+        boilvalidity: null,
+        hydrogenation: null,
+        hydvalidity: null,
+        hydnextreview: null,
+        crackingid: null,
+        crackingvalidity: null,
+        crackingreview: null,
+        refrigeration: null,
+        refrigerationvalidity: null,
+        refrigerationview: null,
+        foremantrain: null,
+        foremanreview: null,
+        foremannextreview: null,
+        fireProtection: null,
+        waterdate: null,
+        energydate: null,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: 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
+      getWorklicensecertificate(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) {
+            updateWorklicensecertificate(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWorklicensecertificate(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delWorklicensecertificate(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有上岗证/作业证书一览数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportWorklicensecertificate(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+    },
+      /** 导入按钮操作 */
+      handleImport() {
+          this.upload.title = "用户导入";
+          this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+          importTemplate().then(response => {
+              this.download(response.msg);
+          });
+      },
+      // 文件上传中处理
+      handleFileUploadProgress(event, file, fileList) {
+          this.upload.isUploading = true;
+      },
+      // 文件上传成功处理
+      handleFileSuccess(response, file, fileList) {
+          this.upload.open = false;
+          this.upload.isUploading = false;
+          this.$refs.upload.clearFiles();
+          this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+          this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+          this.$refs.upload.submit();
+      }
+  }
+};
+</script>