浏览代码

LY sems 新增申请

ly 2 年之前
父节点
当前提交
6b1642a5a7
共有 28 个文件被更改,包括 3260 次插入2089 次删除
  1. 1 1
      master/src/main/java/com/ruoyi/config/ActivitiConfig.java
  2. 3 2
      master/src/main/java/com/ruoyi/project/ehs/controller/TApproveDangerController.java
  3. 88 15
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevCcController.java
  4. 81 5
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevDtController.java
  5. 79 5
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevDzsbController.java
  6. 81 4
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevGlController.java
  7. 79 6
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevYlgdController.java
  8. 79 5
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevYlrqController.java
  9. 12 0
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevCc.java
  10. 11 0
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevDt.java
  11. 12 0
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevDzsb.java
  12. 12 0
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevGl.java
  13. 13 0
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevYlgd.java
  14. 12 0
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevYlrq.java
  15. 264 95
      master/src/main/java/com/ruoyi/project/sems/his/controller/TApproveSpecModifyController.java
  16. 3 3
      master/src/main/resources/processes/his/modifySpecProcess.bpmn
  17. 50 0
      master/src/main/resources/processes/his/semsAddDelProcess.bpmn
  18. 140 118
      ui/src/views/approve/approveDetail/specModify-detail.vue
  19. 1 1
      ui/src/views/approve/pending/index.vue
  20. 34 10
      ui/src/views/approve/pending/spec-detail.vue
  21. 139 118
      ui/src/views/approve/pending/specModify-deal.vue
  22. 1 1
      ui/src/views/approve/taskdone/index.vue
  23. 396 331
      ui/src/views/sems/specCc/index.vue
  24. 421 349
      ui/src/views/sems/specDt/index.vue
  25. 410 345
      ui/src/views/sems/specDzsb/index.vue
  26. 405 335
      ui/src/views/sems/specGl/index.vue
  27. 372 314
      ui/src/views/sems/specYlgd/index.vue
  28. 61 26
      ui/src/views/sems/specYlrq/index.vue

+ 1 - 1
master/src/main/java/com/ruoyi/config/ActivitiConfig.java

@@ -106,7 +106,7 @@ public class ActivitiConfig {
         deploymentBuilder3.enableDuplicateFiltering().addInputStream(spec.getFilename(), spec.getInputStream()).name("特种设备审批流程").deploy();//按流程id部署
 
         DeploymentBuilder deploymentBuilder4 = repositoryService().createDeployment();
-        Resource spec2 = resourceLoader.getResource("classpath:/processes/his/modifySpecProcess.bpmn"); //加载流程图资源文件
+        Resource spec2 = resourceLoader.getResource("classpath:/processes/his/semsAddDelProcess.bpmn"); //加载流程图资源文件
         deploymentBuilder4.enableDuplicateFiltering().addInputStream(spec2.getFilename(), spec2.getInputStream()).name("特种设备新增修改流程").deploy();//按流程id部署
 
         DeploymentBuilder deploymentBuilder5 = repositoryService().createDeployment();

+ 3 - 2
master/src/main/java/com/ruoyi/project/ehs/controller/TApproveDangerController.java

@@ -356,10 +356,11 @@ public class TApproveDangerController extends BaseController {
                     TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
                     devTask.setSpecApprove(approve);
                     devTask.setApNo(approve.getApNo());
-                } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核")) {
+                } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核") || pi.getProcessDefinitionName().equals("设备新增/删除审核")) {
                     TApproveSpecModify approve = tApproveSpecModifyService.selectTApproveSpecModifyById(Long.parseLong(pi.getBusinessKey()));
                     logger.info("设备修改/删除审核" + JSON.toJSONString(approve));
                     devTask.setApproveSpecModify(approve);
+                    devTask.setApNo(approve.getApNo());
                 } else if (pi.getProcessDefinitionName().equals("专项培训计划审核")) {
                     TStApprove approve = tStApproveService.selectTStApproveById(Long.parseLong(pi.getBusinessKey()));
                     logger.info("专项培训计划审核" + JSON.toJSONString(approve));
@@ -435,7 +436,7 @@ public class TApproveDangerController extends BaseController {
                     devProcess.setApNo(approve.getApNo());
                     devProcess.setApName(user.getNickName());
                     devProcess.setSpecApprove(approve);
-                } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核")) {
+                } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核") || pi.getProcessDefinitionName().equals("设备新增/删除审核")) {
                     TApproveSpecModify approve = tApproveSpecModifyService.selectTApproveSpecModifyById(Long.parseLong(pi.getBusinessKey()));
                     SysUser user = sysUserService.selectUserById(approve.getUserId());
                     devProcess.setApNo(approve.getApNo());

+ 88 - 15
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevCcController.java

@@ -5,26 +5,34 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.exception.job.TaskException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.job.ScheduleUtils;
 import com.ruoyi.framework.config.RuoYiConfig;
+import com.ruoyi.project.monitor.domain.SysJob;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.quartz.SchedulerException;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -54,6 +62,12 @@ public class TSpecdevCcController extends BaseController {
     private ISysDeptService iSysDeptService;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
+    @Autowired
+    private ITApproveSpecModifyService tApproveSpecModifyService;
+    @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
+    private TApproveSpecModifyController approveSpecModifyController;
 
     /**
      * 查询特种设备叉车台账列表
@@ -94,7 +108,39 @@ public class TSpecdevCcController extends BaseController {
     @Log(title = "特种设备叉车台账", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TSpecdevCc tSpecdevCc) {
-        return toAjax(tSpecdevCcService.insertTSpecdevCc(tSpecdevCc));
+        tSpecdevCc.setApproveStatus(22l);
+        tSpecdevCcService.insertTSpecdevCc(tSpecdevCc);
+
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(6l);
+        tApproveSpecModify.setDevId(String.valueOf(tSpecdevCc.getId()));
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", tSpecdevCc.getWxjl());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevCc.getWxjl());
+        },"发送邮件").start();
+
+        return AjaxResult.success();
     }
 
     /**
@@ -146,7 +192,7 @@ public class TSpecdevCcController extends BaseController {
     @PreAuthorize("@ss.hasPermi('sems:specCc:add')")
     @Log(title = "特种设备批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
-    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
+    public AjaxResult importData(@RequestParam("file") MultipartFile file, @RequestParam("wxjl") String wxjl) throws IOException {
         //获取操作人员ID
         Long userId = getUserId();
         //报错行数统计
@@ -231,18 +277,12 @@ public class TSpecdevCcController extends BaseController {
                     } else if (j == 24) {
                         entity.setReportNo(cellValue);//报告编号
                     } else if (j == 25) {
-                        entity.setAssetOwner(cellValue);//资产形式
-                    } else if (j == 26) {
                         entity.setPerTestConclusion(cellValue);
+                    } else if (j == 26) {
+                        entity.setAssetOwner(cellValue);//资产形式
                     } else if (j == 27) {
                         entity.setRemarks(cellValue);//备注
-                    }/*else if (j == 25) {
-                        for (SysDept d : dept) {
-                            if (d.getDeptName().equals(cellValue)) {
-                                entity.setDeptId(d.getDeptId());//部门编号
-                            }
-                        }
-                    }*/
+                    }
                 }
                 entity.setCreaterCode(userId);
                 logger.info("entity:" + entity);
@@ -255,11 +295,14 @@ public class TSpecdevCcController extends BaseController {
         }
         int successNumber = 0;
         int failNum = 0;
+        CopyOnWriteArrayList<String> ids = new CopyOnWriteArrayList();
         for (TSpecdevCc t : list
         ) {
             failNum++;
             try {
+                t.setApproveStatus(22l);
                 tSpecdevCcService.insertTSpecdevCc(t);
+                ids.add(t.getId().toString());
                 successNumber++;
             } catch (Exception e) {
                 failNumber++;
@@ -267,6 +310,36 @@ public class TSpecdevCcController extends BaseController {
                 failRow.add(failNum + 1);
             }
         }
+        String devIds = StringUtils.join(ids.toArray(), ",");
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(6l);
+        tApproveSpecModify.setDevId(devIds);
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", wxjl);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
+        },"发送邮件").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

+ 81 - 5
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevDtController.java

@@ -4,19 +4,25 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
@@ -50,7 +56,12 @@ public class TSpecdevDtController extends BaseController {
     private ISysDeptService iSysDeptService;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
-
+    @Autowired
+    private ITApproveSpecModifyService tApproveSpecModifyService;
+    @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
+    private TApproveSpecModifyController approveSpecModifyController;
     /**
      * 查询特种设备电梯台账列表
      */
@@ -90,7 +101,38 @@ public class TSpecdevDtController extends BaseController {
     @Log(title = "特种设备电梯台账", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TSpecdevDt tSpecdevDt) {
-        return toAjax(tSpecdevDtService.insertTSpecdevDt(tSpecdevDt));
+        tSpecdevDt.setApproveStatus(22l);
+        tSpecdevDtService.insertTSpecdevDt(tSpecdevDt);
+
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(5l);
+        tApproveSpecModify.setDevId(String.valueOf(tSpecdevDt.getId()));
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", tSpecdevDt.getWxjl());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevDt.getWxjl());
+        },"发送邮件").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -142,7 +184,7 @@ public class TSpecdevDtController extends BaseController {
     @PreAuthorize("@ss.hasPermi('sems:specDt:add')")
     @Log(title = "特种设备批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
-    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
+    public AjaxResult importData(@RequestParam("file") MultipartFile file,@RequestParam("wxjl") String wxjl) throws IOException {
         //获取操作人员ID
         Long userId = getUserId();
         //报错行数统计
@@ -236,11 +278,14 @@ public class TSpecdevDtController extends BaseController {
         }
         int successNumber = 0;
         int failNum = 0;
+        CopyOnWriteArrayList<String> ids = new CopyOnWriteArrayList();
         for (TSpecdevDt t : list
         ) {
             failNum++;
             try {
+                t.setApproveStatus(22l);
                 tSpecdevDtService.insertTSpecdevDt(t);
+                ids.add(t.getId().toString());
                 successNumber++;
             } catch (Exception e) {
                 failNumber++;
@@ -248,6 +293,37 @@ public class TSpecdevDtController extends BaseController {
                 failRow.add(failNum + 1);
             }
         }
+        //申请流程
+        String devIds = StringUtils.join(ids.toArray(),",");
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(5l);
+        tApproveSpecModify.setDevId(devIds);
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", wxjl);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
+        },"发送邮件").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

+ 79 - 5
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevDzsbController.java

@@ -5,8 +5,8 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -14,11 +14,17 @@ import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.project.sems.domain.*;
 
+import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
@@ -51,7 +57,12 @@ public class TSpecdevDzsbController extends BaseController {
     private ISysDeptService iSysDeptService;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
-
+    @Autowired
+    private ITApproveSpecModifyService tApproveSpecModifyService;
+    @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
+    private TApproveSpecModifyController approveSpecModifyController;
     /**
      * 查询特种设备吊装设备台账列表
      */
@@ -91,8 +102,38 @@ public class TSpecdevDzsbController extends BaseController {
     @Log(title = "特种设备吊装设备台账", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TSpecdevDzsb tSpecdevDzsb) {
+        tSpecdevDzsb.setApproveStatus(22l);
+        tSpecdevDzsbService.insertTSpecdevDzsb(tSpecdevDzsb);
 
-        return toAjax(tSpecdevDzsbService.insertTSpecdevDzsb(tSpecdevDzsb));
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(3l);
+        tApproveSpecModify.setDevId(String.valueOf(tSpecdevDzsb.getId()));
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", tSpecdevDzsb.getWxjl());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevDzsb.getWxjl());
+        },"发送邮件").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -144,7 +185,7 @@ public class TSpecdevDzsbController extends BaseController {
     @PreAuthorize("@ss.hasPermi('sems:specDzsb:add')")
     @Log(title = "特种设备批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
-    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
+    public AjaxResult importData(@RequestParam("file") MultipartFile file,@RequestParam("wxjl") String wxjl) throws IOException {
         //获取操作人员ID
         Long userId = getUserId();
         //报错行数统计
@@ -248,11 +289,14 @@ public class TSpecdevDzsbController extends BaseController {
         }
         int successNumber = 0;
         int failNum = 0;
+        CopyOnWriteArrayList<String> ids = new CopyOnWriteArrayList();
         for (TSpecdevDzsb t : list
         ) {
             failNum++;
             try {
+                t.setApproveStatus(22l);
                 tSpecdevDzsbService.insertTSpecdevDzsb(t);
+                ids.add(t.getId().toString());
                 successNumber++;
             } catch (Exception e) {
                 failNumber++;
@@ -260,6 +304,36 @@ public class TSpecdevDzsbController extends BaseController {
                 failRow.add(failNum + 1);
             }
         }
+        //申请流程
+        String devIds = StringUtils.join(ids.toArray(),",");
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(3l);
+        tApproveSpecModify.setDevId(devIds);
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", wxjl);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
+        },"发送邮件").start();
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

+ 81 - 4
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevGlController.java

@@ -4,19 +4,25 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
@@ -50,6 +56,12 @@ public class TSpecdevGlController extends BaseController
     private ISysDeptService iSysDeptService;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
+    @Autowired
+    private ITApproveSpecModifyService tApproveSpecModifyService;
+    @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
+    private TApproveSpecModifyController approveSpecModifyController;
     /**
      * 查询特种设备锅炉台账列表
      */
@@ -93,7 +105,38 @@ public class TSpecdevGlController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TSpecdevGl tSpecdevGl)
     {
-        return toAjax(tSpecdevGlService.insertTSpecdevGl(tSpecdevGl));
+        tSpecdevGl.setApproveStatus(22l);
+        tSpecdevGlService.insertTSpecdevGl(tSpecdevGl);
+
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(4l);
+        tApproveSpecModify.setDevId(String.valueOf(tSpecdevGl.getId()));
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", tSpecdevGl.getWxjl());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevGl.getWxjl());
+        },"发送邮件").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -152,7 +195,7 @@ public class TSpecdevGlController extends BaseController
     @PreAuthorize("@ss.hasPermi('sems:specGl:add')")
     @Log(title = "特种设备批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
-    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException
+    public AjaxResult importData(@RequestParam("file") MultipartFile file,@RequestParam("wxjl") String wxjl) throws IOException
     {
         //获取操作人员ID
         Long userId = getUserId();
@@ -271,11 +314,14 @@ public class TSpecdevGlController extends BaseController
         }
         int successNumber = 0;
         int failNum = 0;
+        CopyOnWriteArrayList<String> ids = new CopyOnWriteArrayList();
         for (TSpecdevGl t : list
         ) {
             failNum++;
             try {
+                t.setApproveStatus(22l);
                 tSpecdevGlService.insertTSpecdevGl(t);
+                ids.add(t.getId().toString());
                 successNumber++;
             }catch (Exception e){
                 failNumber++;
@@ -283,6 +329,37 @@ public class TSpecdevGlController extends BaseController
                 failRow.add(failNum + 1);
             }
         }
+
+        //申请流程
+        String devIds = StringUtils.join(ids.toArray(),",");
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(4l);
+        tApproveSpecModify.setDevId(devIds);
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", wxjl);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
+        },"发送邮件").start();
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" +String.valueOf(successNumber));
         logger.info("failNumber:" +String.valueOf(failNumber));

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

@@ -4,8 +4,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
@@ -18,11 +17,17 @@ import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
@@ -55,7 +60,12 @@ public class TSpecdevYlgdController extends BaseController {
     private ISysDeptService iSysDeptService;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
-
+    @Autowired
+    private ITApproveSpecModifyService tApproveSpecModifyService;
+    @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
+    private TApproveSpecModifyController approveSpecModifyController;
     /**
      * 查询特种设备压力管道台账列表
      */
@@ -95,7 +105,38 @@ public class TSpecdevYlgdController extends BaseController {
     @Log(title = "特种设备压力管道台账", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TSpecdevYlgd tSpecdevYlgd) {
-        return toAjax(tSpecdevYlgdService.insertTSpecdevYlgd(tSpecdevYlgd));
+        tSpecdevYlgd.setApproveStatus(22l);
+        tSpecdevYlgdService.insertTSpecdevYlgd(tSpecdevYlgd);
+
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(2l);
+        tApproveSpecModify.setDevId(String.valueOf(tSpecdevYlgd.getId()));
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", tSpecdevYlgd.getWxjl());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevYlgd.getWxjl());
+        },"发送邮件").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -152,7 +193,7 @@ public class TSpecdevYlgdController extends BaseController {
     @PreAuthorize("@ss.hasPermi('sems:specYlgd:add')")
     @Log(title = "特种设备批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
-    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
+    public AjaxResult importData(@RequestParam("file") MultipartFile file,@RequestParam("wxjl") String wxjl) throws IOException {
         //获取操作人员ID
         Long userId = getUserId();
         //报错行数统计
@@ -298,14 +339,16 @@ public class TSpecdevYlgdController extends BaseController {
         //线程池
         ExecutorService executorService = Executors.newFixedThreadPool(30);
         final CountDownLatch latch = new CountDownLatch(list.size()); //相同线程数量的计数
-
+        CopyOnWriteArrayList<String> ids = new CopyOnWriteArrayList();
         for (TSpecdevYlgd t : list
         ) {
             executorService.execute(() -> {
                 //续票列表 -- 业务模块
                 failNum.getAndIncrement();
                 try {
+                    t.setApproveStatus(22l);
                     tSpecdevYlgdService.insertTSpecdevYlgd(t);
+                    ids.add(t.getId().toString());
                     successNumber.getAndIncrement();
                 } catch (Exception e) {
                     failNumber.getAndIncrement();
@@ -322,6 +365,36 @@ public class TSpecdevYlgdController extends BaseController {
             e.printStackTrace();
         }
         executorService.shutdown();
+        //申请流程
+        String devIds = StringUtils.join(ids.toArray(),",");
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(2l);
+        tApproveSpecModify.setDevId(devIds);
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", wxjl);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
+        },"发送邮件").start();
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber.get()));
         logger.info("failNumber:" + String.valueOf(failNumber.get()));

+ 79 - 5
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevYlrqController.java

@@ -5,8 +5,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
@@ -20,11 +19,17 @@ import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
 import com.ruoyi.project.sems.domain.ParamData;
 import com.ruoyi.project.sems.domain.TSpecCheck;
 import com.ruoyi.project.sems.domain.TSpecdevYlgd;
+import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
@@ -58,7 +63,12 @@ public class TSpecdevYlrqController extends BaseController {
     private ISysDeptService iSysDeptService;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
-
+    @Autowired
+    private ITApproveSpecModifyService tApproveSpecModifyService;
+    @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
+    private TApproveSpecModifyController approveSpecModifyController;
     /**
      * 查询特种设备压力容器台账列表
      */
@@ -106,7 +116,38 @@ public class TSpecdevYlrqController extends BaseController {
     @Log(title = "特种设备压力容器台账", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TSpecdevYlrq tSpecdevYlrq) {
-        return toAjax(tSpecdevYlrqService.insertTSpecdevYlrq(tSpecdevYlrq));
+        tSpecdevYlrq.setApproveStatus(22l);
+        tSpecdevYlrqService.insertTSpecdevYlrq(tSpecdevYlrq);
+
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(1l);
+        tApproveSpecModify.setDevId(String.valueOf(tSpecdevYlrq.getId()));
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", tSpecdevYlrq.getWxjl());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevYlrq.getWxjl());
+        },"发送邮件").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -172,7 +213,7 @@ public class TSpecdevYlrqController extends BaseController {
     @PreAuthorize("@ss.hasPermi('sems:specYlrq:add')")
     @Log(title = "特种设备批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
-    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException, ParseException {
+    public AjaxResult importData(@RequestParam("file") MultipartFile file,@RequestParam("wxjl") String wxjl) throws IOException, ParseException {
         //获取操作人员ID
         Long userId = getUserId();
         //报错行数统计
@@ -306,11 +347,14 @@ public class TSpecdevYlrqController extends BaseController {
         }
         int successNumber = 0;
         int failNum = 0;
+        CopyOnWriteArrayList<String> ids = new CopyOnWriteArrayList();
         for (TSpecdevYlrq t : list
         ) {
             failNum++;
             try {
+                t.setApproveStatus(22l);
                 tSpecdevYlrqService.insertTSpecdevYlrq(t);
+                ids.add(t.getId().toString());
                 successNumber++;
             } catch (Exception e) {
                 failNumber++;
@@ -318,6 +362,36 @@ public class TSpecdevYlrqController extends BaseController {
                 failRow.add(failNum + 1);
             }
         }
+        //申请流程
+        String devIds = StringUtils.join(ids.toArray(),",");
+        TApproveSpecModify tApproveSpecModify = new TApproveSpecModify();
+        Long userid = getUserId();
+        tApproveSpecModify.setUserId(userid);
+        tApproveSpecModify.setApproveType(3l);
+        tApproveSpecModify.setDevType(1l);
+        tApproveSpecModify.setDevId(devIds);
+        //审批编号
+        Date dt = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+        String data = sdf.format(dt) + userid;
+        tApproveSpecModify.setApNo(data);
+        //
+        Authentication.setAuthenticatedUserId(userid.toString());
+        tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
+        long bussniseeKey = tApproveSpecModify.getId();
+        //开始工作流、监听
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userid.toString());
+        variables.put("wxjlusers", wxjl);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("semsAddDelProcess", String.valueOf(bussniseeKey), variables);
+        logger.info("流程部署id:" + pi.getDeploymentId());
+        logger.info("流程定义id:" + pi.getProcessDefinitionId());
+        logger.info("流程实例id:" + pi.getProcessInstanceId());
+        tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
+        },"发送邮件").start();
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

+ 12 - 0
master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevCc.java

@@ -222,6 +222,10 @@ public class TSpecdevCc extends BaseEntity
     @TableField(exist = false)
     private String checkYear;
 
+    /** 维修经理确认人 */
+    @TableField(exist = false)
+    private String wxjl;
+
     private Long isRepeat;
 
     public Long getIsRepeat() {
@@ -688,6 +692,14 @@ public class TSpecdevCc extends BaseEntity
         this.plantMaint = plantMaint;
     }
 
+    public String getWxjl() {
+        return wxjl;
+    }
+
+    public void setWxjl(String wxjl) {
+        this.wxjl = wxjl;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 11 - 0
master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevDt.java

@@ -194,6 +194,9 @@ public class TSpecdevDt extends BaseEntity
 
     @TableField(exist = false)
     private String checkYear;
+    /** 维修经理确认人 */
+    @TableField(exist = false)
+    private String wxjl;
 
     private Long isRepeat;
 
@@ -205,6 +208,14 @@ public class TSpecdevDt extends BaseEntity
         this.isRepeat = isRepeat;
     }
 
+    public String getWxjl() {
+        return wxjl;
+    }
+
+    public void setWxjl(String wxjl) {
+        this.wxjl = wxjl;
+    }
+
     public String getPerTestConclusion() {
         return perTestConclusion;
     }

+ 12 - 0
master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevDzsb.java

@@ -196,6 +196,10 @@ public class TSpecdevDzsb extends BaseEntity
     @TableField(exist = false)
     private String checkYear;
 
+    /** 维修经理确认人 */
+    @TableField(exist = false)
+    private String wxjl;
+
     private Long isRepeat;
 
     public Long getIsRepeat() {
@@ -206,6 +210,14 @@ public class TSpecdevDzsb extends BaseEntity
         this.isRepeat = isRepeat;
     }
 
+    public String getWxjl() {
+        return wxjl;
+    }
+
+    public void setWxjl(String wxjl) {
+        this.wxjl = wxjl;
+    }
+
     public String getPerTestConclusion() {
         return perTestConclusion;
     }

+ 12 - 0
master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevGl.java

@@ -213,6 +213,18 @@ public class TSpecdevGl extends BaseEntity
 
     private Long isRepeat;
 
+    /** 维修经理确认人 */
+    @TableField(exist = false)
+    private String wxjl;
+
+    public String getWxjl() {
+        return wxjl;
+    }
+
+    public void setWxjl(String wxjl) {
+        this.wxjl = wxjl;
+    }
+
     public Long getIsRepeat() {
         return isRepeat;
     }

+ 13 - 0
master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevYlgd.java

@@ -262,6 +262,19 @@ public class TSpecdevYlgd extends BaseEntity
     @TableField(exist = false)
     private List<String> plantCodes;
 
+    /** 维修经理确认人 */
+    @TableField(exist = false)
+    private String wxjl;
+
+
+    public String getWxjl() {
+        return wxjl;
+    }
+
+    public void setWxjl(String wxjl) {
+        this.wxjl = wxjl;
+    }
+
     public List<String> getPlantCodes() {
         return plantCodes;
     }

+ 12 - 0
master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevYlrq.java

@@ -234,6 +234,10 @@ public class TSpecdevYlrq extends BaseEntity
     @TableField(exist = false)
     private String checkYear;
 
+    /** 维修经理确认人 */
+    @TableField(exist = false)
+    private String wxjl;
+
     public Long getHiFlag() {
         return hiFlag;
     }
@@ -248,6 +252,14 @@ public class TSpecdevYlrq extends BaseEntity
         return isRepeat;
     }
 
+    public String getWxjl() {
+        return wxjl;
+    }
+
+    public void setWxjl(String wxjl) {
+        this.wxjl = wxjl;
+    }
+
     public void setIsRepeat(Long isRepeat) {
         this.isRepeat = isRepeat;
     }

+ 264 - 95
master/src/main/java/com/ruoyi/project/sems/his/controller/TApproveSpecModifyController.java

@@ -2,13 +2,21 @@ package com.ruoyi.project.sems.his.controller;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 import com.alibaba.fastjson.JSON;
+import com.github.stuxuhai.jpinyin.PinyinFormat;
+import com.github.stuxuhai.jpinyin.PinyinHelper;
+import com.ruoyi.common.sendEmail.IMailService;
 import com.ruoyi.project.approve.damain.DevTask;
 import com.ruoyi.project.sems.domain.*;
 import com.ruoyi.project.sems.his.domain.*;
 import com.ruoyi.project.sems.his.service.*;
 import com.ruoyi.project.sems.service.*;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.activiti.engine.*;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.runtime.ProcessInstance;
@@ -74,9 +82,13 @@ public class TApproveSpecModifyController extends BaseController
     private ITSpechiCcService tSpechiCcService;
     @Autowired
     private ITSpechiDtService tSpechiDtService;
-
     @Autowired
     private ITSpecCheckService tSpecCheckService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private IMailService mailService;
+
     /**
      * 查询特种设备变更申请列表
      */
@@ -118,48 +130,104 @@ public class TApproveSpecModifyController extends BaseController
         TApproveSpecModify tApprove = tApproveSpecModifyService.selectTApproveSpecModifyById(id);
         String[] ids;
         ids = tApprove.getDevId().split(",");
-        List<Object> devList = new ArrayList<>();
+        CopyOnWriteArrayList<Object> devList = new CopyOnWriteArrayList<>();
+        //线程池
+        ExecutorService executorService = Executors.newFixedThreadPool(30);
+        final CountDownLatch latch = new CountDownLatch(ids.length); //相同线程数量的计数
+
         switch (Integer.parseInt(tApprove.getDevType().toString())) {
             case 1:
                 for (String i : ids
                 ) {
-                    TSpecdevYlrq ylrqEntity = tSpecdevYlrqService.getById(i);
-                    devList.add(ylrqEntity);
+                    executorService.execute(() -> {
+                        try {
+                            TSpecdevYlrq ylrqEntity = tSpecdevYlrqService.getById(i);
+                            devList.add(ylrqEntity);
+                        } catch (Exception e) {
+                            logger.info("e:" + e);
+                        } finally {
+                            latch.countDown(); //线程计数
+                        }
+                    });
                 }
                 break;
             case 2:
                 for (String i : ids
                 ) {
-                    TSpecdevYlgd ylgdEntity = tSpecdevYlgdService.getById(i);
-                    devList.add(ylgdEntity);
+                    executorService.execute(() -> {
+                        try {
+                            TSpecdevYlgd ylgdEntity = tSpecdevYlgdService.getById(i);
+                            devList.add(ylgdEntity);
+                        } catch (Exception e) {
+                            logger.info("e:" + e);
+                        } finally {
+                            latch.countDown(); //线程计数
+                        }
+                    });
                 }
                 break;
             case 3:
                 for (String i : ids
                 ) {
-                    TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
-                    devList.add(dzsbEntity);
+                    executorService.execute(() -> {
+                        try {
+                            TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
+                            devList.add(dzsbEntity);
+                        } catch (Exception e) {
+                            logger.info("e:" + e);
+                        } finally {
+                            latch.countDown(); //线程计数
+                        }
+                    });
+
                 }
                 break;
             case 4:
                 for (String i : ids
                 ) {
-                    TSpecdevGl glEntity = tSpecdevGlService.getById(i);
-                    devList.add(glEntity);
+                    executorService.execute(() -> {
+                        try {
+                            TSpecdevGl glEntity = tSpecdevGlService.getById(i);
+                            devList.add(glEntity);
+                        } catch (Exception e) {
+                            logger.info("e:" + e);
+                        } finally {
+                            latch.countDown(); //线程计数
+                        }
+                    });
+
                 }
                 break;
             case 5:
                 for (String i : ids
                 ) {
-                    TSpecdevDt dtEntity = tSpecdevDtService.getById(i);
-                    devList.add(dtEntity);
+                    executorService.execute(() -> {
+                        try {
+                            TSpecdevDt dtEntity = tSpecdevDtService.getById(i);
+                            devList.add(dtEntity);
+                        } catch (Exception e) {
+                            logger.info("e:" + e);
+                        } finally {
+                            latch.countDown(); //线程计数
+                        }
+                    });
+
                 }
                 break;
             case 6:
                 for (String i : ids
                 ) {
-                    TSpecdevCc ccEntity = tSpecdevCcService.getById(i);
-                    devList.add(ccEntity);
+                    executorService.execute(() -> {
+                        try {
+                            TSpecdevCc ccEntity = tSpecdevCcService.getById(i);
+                            devList.add(ccEntity);
+                        } catch (Exception e) {
+                            logger.info("e:" + e);
+                        } finally {
+                            latch.countDown(); //线程计数
+                        }
+                    });
+
                 }
                 break;
             case 7:
@@ -169,6 +237,12 @@ public class TApproveSpecModifyController extends BaseController
 //                        devList.add(tankEntity);
                 }
         }
+        try {
+            latch.await(); //线程计数完毕后继续执行
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        executorService.shutdown();
         tApprove.setDevList(devList);
         return AjaxResult.success(tApprove);
     }
@@ -260,6 +334,9 @@ public class TApproveSpecModifyController extends BaseController
         logger.info("流程定义id:" + pi.getProcessDefinitionId());
         logger.info("流程实例id:" + pi.getProcessInstanceId());
         tApproveSpecModify.setProcessId(pi.getProcessInstanceId());
+        new Thread(() -> {
+            sendMail(tApproveSpecModify , String.valueOf(tApproveSpecModify.getWxjl()));
+        },"发送邮件").start();
         return AjaxResult.success();
     }
 
@@ -293,24 +370,13 @@ public class TApproveSpecModifyController extends BaseController
                         ylrqEntity.setApproveStatus(0l);
                         tSpecdevYlrqService.updateById(ylrqEntity);
                         //修改
-                        TSpecCheck tc = new TSpecCheck();
-                        tc.setDevType(1l);
-                        tc.setCheckUnit(ylrqEntity.getCheckUnit());
-                        tc.setDevId(ylrqEntity.getId());
-                        tc.setNextWarnDate(ylrqEntity.getNextWarnDate());
-                        tc.setReportNo(ylrqEntity.getReportNo());
-                        tc.setWarnDate(ylrqEntity.getWarnDate());
-                        tc.setYearNextWarnDate(ylrqEntity.getYearNextWarnDate());
-                        tc.setYearWarnDate(ylrqEntity.getYearWarnDate());
-                        tc.setYearReportNo(ylrqEntity.getReportNo());
-                        tc.setSafeClass(ylrqEntity.getSafeClass());
-                        tSpecCheckService.insertTSpecCheck(tc);
-
                         if (tApproveSpecModify.getApproveType() == 1) {
                             logger.info(JSON.toJSONString(tApproveSpecModify));
                             TSpechiYlrq hientity = tSpechiYlrqService.selectTSpechiYlrqById(Long.parseLong(tApproveSpecModify.getDevId()));
                             logger.info(JSON.toJSONString(hientity));
                             tSpecdevYlrqService.updateTSpecdevYlrqByHi(hientity);
+                        }else if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
                         }else {
                             tSpecdevYlrqService.deleteTSpecdevYlrqById(Long.parseLong(i));
                         }
@@ -323,21 +389,11 @@ public class TApproveSpecModifyController extends BaseController
                         ylgdEntity.setApproveStatus(0l);
                         tSpecdevYlgdService.updateById(ylgdEntity);
                         //修改
-                        TSpecCheck tc = new TSpecCheck();
-                        tc.setDevType(2l);
-                        tc.setCheckUnit(ylgdEntity.getCheckUnit());
-                        tc.setDevId(ylgdEntity.getId());
-                        tc.setNextWarnDate(ylgdEntity.getNextWarnDate());
-                        tc.setReportNo(ylgdEntity.getReportNo());
-                        tc.setWarnDate(ylgdEntity.getWarnDate());
-                        tc.setYearNextWarnDate(ylgdEntity.getYearNextWarnDate());
-                        tc.setYearWarnDate(ylgdEntity.getYearWarnDate());
-                        tc.setYearReportNo(ylgdEntity.getReportNo());
-                        tc.setSafeClass(ylgdEntity.getSafeClass());
-                        tSpecCheckService.insertTSpecCheck(tc);
                         if (tApproveSpecModify.getApproveType() == 1) {
                             TSpechiYlgd hientity = tSpechiYlgdService.selectTSpechiYlgdById(Long.parseLong(tApproveSpecModify.getDevId()));
                             tSpecdevYlgdService.updateTSpecdevYlgdByHi(hientity);
+                        }else if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
                         }else {
                             tSpecdevYlgdService.deleteTSpecdevYlgdById(Long.parseLong(i));
                         }
@@ -349,18 +405,13 @@ public class TApproveSpecModifyController extends BaseController
                         TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
                         dzsbEntity.setApproveStatus(0l);
                         tSpecdevDzsbService.updateById(dzsbEntity);
-                        TSpecCheck tc = new TSpecCheck();
-                        tc.setDevType(3l);
-                        tc.setCheckUnit(dzsbEntity.getCheckUnit());
-                        tc.setDevId(dzsbEntity.getId());
-                        tc.setNextWarnDate(dzsbEntity.getNextWarnDate());
-                        tc.setReportNo(dzsbEntity.getReportNo());
-                        tc.setWarnDate(dzsbEntity.getWarnDate());
-                        tSpecCheckService.insertTSpecCheck(tc);
+
                         if (tApproveSpecModify.getApproveType() == 1){
                             TSpechiDzsb hientity = tSpechiDzsbService.selectTSpechiDzsbById(Long.parseLong(tApproveSpecModify.getDevId()));
                             tSpecdevDzsbService.updateTSpecdevDzsbByHi(hientity);
-                        } else {
+                        } else if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                        }else {
                             tSpecdevDzsbService.deleteTSpecdevDzsbById(Long.parseLong(i));
                         }
                     }
@@ -371,21 +422,12 @@ public class TApproveSpecModifyController extends BaseController
                         TSpecdevGl glEntity = tSpecdevGlService.getById(i);
                         glEntity.setApproveStatus(0l);
                         tSpecdevGlService.updateById(glEntity);
-                        TSpecCheck tc = new TSpecCheck();
-                        tc.setDevType(4l);
-                        tc.setCheckUnit(glEntity.getCheckUnit());
-                        tc.setDevId(glEntity.getId());
-                        tc.setNextWarnDate(glEntity.getNextWarnDate());
-                        tc.setReportNo(glEntity.getReportNo());
-                        tc.setWarnDate(glEntity.getWarnDate());
-                        tc.setOutWarnDate(glEntity.getOutWarnDate());
-                        tc.setOutReportNo(glEntity.getOutReportNo());
-                        tc.setOutCheckConclusion(glEntity.getOutCheckConclusion());
-                        tc.setOutNextWarnDate(glEntity.getOutNextWarnDate());
-                        tSpecCheckService.insertTSpecCheck(tc);
+
                         if (tApproveSpecModify.getApproveType() == 1){
                             TSpechiGl hientity = tSpechiGlService.selectTSpechiGlById(Long.parseLong(tApproveSpecModify.getDevId()));
                             tSpecdevGlService.updateTSpecdevGlByHi(hientity);
+                        }else if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
                         } else {
                             tSpecdevGlService.deleteTSpecdevGlById(Long.parseLong(i));
                         }
@@ -397,17 +439,12 @@ public class TApproveSpecModifyController extends BaseController
                         TSpecdevDt dtEntity = tSpecdevDtService.getById(i);
                         dtEntity.setApproveStatus(0l);
                         tSpecdevDtService.updateById(dtEntity);
-                        TSpecCheck tc = new TSpecCheck();
-                        tc.setDevType(5l);
-                        tc.setCheckUnit(dtEntity.getCheckUnit());
-                        tc.setDevId(dtEntity.getId());
-                        tc.setNextWarnDate(dtEntity.getNextWarnDate());
-                        tc.setReportNo(dtEntity.getReportNo());
-                        tc.setWarnDate(dtEntity.getWarnDate());
-                        tSpecCheckService.insertTSpecCheck(tc);
+
                         if (tApproveSpecModify.getApproveType() == 1){
                             TSpechiDt hientity = tSpechiDtService.selectTSpechiDtById(Long.parseLong(tApproveSpecModify.getDevId()));
                             tSpecdevDtService.updateTSpecdevDtByHi(hientity);
+                        }else if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
                         } else {
                             tSpecdevDtService.deleteTSpecdevDtById(Long.parseLong(i));
                         }
@@ -419,18 +456,13 @@ public class TApproveSpecModifyController extends BaseController
                         TSpecdevCc ccEntity = tSpecdevCcService.getById(i);
                         ccEntity.setApproveStatus(0l);
                         tSpecdevCcService.updateById(ccEntity);
-                        TSpecCheck tc = new TSpecCheck();
-                        tc.setDevType(6l);
-                        tc.setCheckUnit(ccEntity.getCheckUnit());
-                        tc.setDevId(ccEntity.getId());
-                        tc.setNextWarnDate(ccEntity.getNextWarnDate());
-                        tc.setReportNo(ccEntity.getReportNo());
-                        tc.setWarnDate(ccEntity.getWarnDate());
-                        tSpecCheckService.insertTSpecCheck(tc);
+
                         if (tApproveSpecModify.getApproveType() == 1){
                             TSpechiCc hientity = tSpechiCcService.selectTSpechiCcById(Long.parseLong(tApproveSpecModify.getDevId()));
                             tSpecdevCcService.updateTSpecdevCcByHi(hientity);
-                        } else {
+                        } else if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                        }else {
                             tSpecdevCcService.deleteTSpecdevCcById(Long.parseLong(i));
                         }
                     }
@@ -444,49 +476,80 @@ public class TApproveSpecModifyController extends BaseController
                 case 1:
                     for (String i : ids
                     ) {
-                        TSpecdevYlrq ylrqEntity = tSpecdevYlrqService.getById(i);
-                        ylrqEntity.setApproveStatus(0l);
-                        tSpecdevYlrqService.updateById(ylrqEntity);
+                        if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                            tSpecdevYlrqService.deleteTSpecdevYlrqById(Long.parseLong(i));
+                        }else {
+                            TSpecdevYlrq ylrqEntity = tSpecdevYlrqService.getById(i);
+                            ylrqEntity.setApproveStatus(0l);
+                            tSpecdevYlrqService.updateById(ylrqEntity);
+                        }
                     }
                     break;
                 case 2:
                     for (String i : ids
                     ) {
-                        TSpecdevYlgd ylgdEntity = tSpecdevYlgdService.getById(i);
-                        ylgdEntity.setApproveStatus(0l);
-                        tSpecdevYlgdService.updateById(ylgdEntity);
+                        if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                            tSpecdevYlgdService.deleteTSpecdevYlgdById(Long.parseLong(i));
+                        }else {
+                            TSpecdevYlgd ylgdEntity = tSpecdevYlgdService.getById(i);
+                            ylgdEntity.setApproveStatus(0l);
+                            tSpecdevYlgdService.updateById(ylgdEntity);
+                        }
                     }
                     break;
                 case 3:
                     for (String i : ids
                     ) {
-                        TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
-                        dzsbEntity.setApproveStatus(0l);
-                        tSpecdevDzsbService.updateById(dzsbEntity);
+                        if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                            tSpecdevDzsbService.deleteTSpecdevDzsbById(Long.parseLong(i));
+                        }else {
+                            TSpecdevDzsb dzsbEntity = tSpecdevDzsbService.getById(i);
+                            dzsbEntity.setApproveStatus(0l);
+                            tSpecdevDzsbService.updateById(dzsbEntity);
+                        }
+
                     }
                     break;
                 case 4:
                     for (String i : ids
                     ) {
-                        TSpecdevGl glEntity = tSpecdevGlService.getById(i);
-                        glEntity.setApproveStatus(0l);
-                        tSpecdevGlService.updateById(glEntity);
+                        if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                            tSpecdevGlService.deleteTSpecdevGlById(Long.parseLong(i));
+                        }else {
+                            TSpecdevGl glEntity = tSpecdevGlService.getById(i);
+                            glEntity.setApproveStatus(0l);
+                            tSpecdevGlService.updateById(glEntity);
+                        }
                     }
                     break;
                 case 5:
                     for (String i : ids
                     ) {
-                        TSpecdevDt dtEntity = tSpecdevDtService.getById(i);
-                        dtEntity.setApproveStatus(0l);
-                        tSpecdevDtService.updateById(dtEntity);
+                        if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                            tSpecdevDtService.deleteTSpecdevDtById(Long.parseLong(i));
+                        }else {
+                            TSpecdevDt dtEntity = tSpecdevDtService.getById(i);
+                            dtEntity.setApproveStatus(0l);
+                            tSpecdevDtService.updateById(dtEntity);
+                        }
                     }
                     break;
                 case 6:
                     for (String i : ids
                     ) {
-                        TSpecdevCc ccEntity = tSpecdevCcService.getById(i);
-                        ccEntity.setApproveStatus(0l);
-                        tSpecdevCcService.updateById(ccEntity);
+                        if (tApproveSpecModify.getApproveType() == 3){
+                            //新增
+                            tSpecdevCcService.deleteTSpecdevCcById(Long.parseLong(i));
+                        }else {
+                            TSpecdevCc ccEntity = tSpecdevCcService.getById(i);
+                            ccEntity.setApproveStatus(0l);
+                            tSpecdevCcService.updateById(ccEntity);
+                        }
                     }
                     break;
             }
@@ -527,4 +590,110 @@ public class TApproveSpecModifyController extends BaseController
     {
         return toAjax(tApproveSpecModifyService.deleteTApproveSpecModifyByIds(ids));
     }
+
+    public void sendMail(TApproveSpecModify approveEntity ,String wxjl){
+        //发送邮件
+        try {
+            String email = sysUserService.selectUserById(Long.parseLong(wxjl)).getEmail();
+            String apNo = approveEntity.getApNo();
+            logger.info("apNo:" + apNo);
+            String username = sysUserService.selectUserById(Long.parseLong(wxjl)).getNickName();
+            String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
+            logger.info("email:" + email);
+            logger.info("username:" + username);
+            String devType = "";
+            String devTypeEN = "";
+            switch (Integer.parseInt(approveEntity.getDevType().toString())) {
+                case 1:
+                    devType = "压力容器";
+                    devTypeEN = "Pressure Vessel";
+                    break;
+                case 2:
+                    devType = "压力管道";
+                    devTypeEN = "Pressure Pipeline";
+                    break;
+                case 3:
+                    devType = "起重机械";
+                    devTypeEN = "Lifting Equipment";
+                    break;
+                case 4:
+                    devType = "锅炉";
+                    devTypeEN = "Boiler";
+                    break;
+                case 5:
+                    devType = "电梯";
+                    devTypeEN = "Elevator";
+                    break;
+                case 6:
+                    devType = "叉车";
+                    devTypeEN = "Forklift";
+                    break;
+                case 7:
+                    devType = "常压罐";
+                    devTypeEN = "Tank";
+                    break;
+            }
+            String approveType = "";
+            String approveTypeEN = "";
+            switch (Integer.parseInt(approveEntity.getApproveType().toString())) {
+                case 1:
+                    approveType = "修改";
+                    approveTypeEN = "Change";
+                    break;
+                case 2:
+                    approveType = "删除";
+                    approveTypeEN = "Delete";
+                    break;
+                case 3:
+                    approveType = "新增";
+                    approveTypeEN = "Add";
+                    break;
+            }
+            //写html开始内容
+            String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
+                    "<table cellpadding=\"0\" align=\"center\"" +
+                    "style=\"width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;\">" +
+                    "<tbody><tr><th valign=\"middle\" style=\"height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;\">" +
+                    "<font face=\"微软雅黑\" size=\"5\" style=\"color: rgb(255, 255, 255); \">特种设备信息管理系统 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">Special Equipment Management System (SEMS)</font></th></tr>";
+            //表html中间内容
+            String prime = "";
+            String center = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
+                    "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
+                    "亲爱的 username</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
+                    "Dear usernameEN</font></font></h2>" +
+                    "<p>您有一个新的待办任务:<br>" +
+                    "You have a new to-do task:<br>" +
+                    "任务编号:<b>apNo</b><br>" +
+                    "Task Number: <b>apNoEN</b><br>" +
+                    "申请设备类型:<b>devType</b><br>" +
+                    "Equipment Type: <b>devTypeEN</b><br>" +
+                    "审批类型:<b>approveType</b><br>" +
+                    "Application Category: <b>approveTypeEN</b><br>" +
+                    "请登录<a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/approve/pending\">特种设备信息管理系统</a>查看。<br>" +
+                    "Please log in the <a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/approve/pending\">SEMS</a> to handle it.</p>" +
+                    "<p align=\"right\">date</p>" +
+                    "<div style=\"width:700px;margin:0 auto;\">" +
+                    "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
+                    "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by SEMS, please do not reply</p>" +
+                    "</div></div></div></td></tr>";
+            String one = center.replaceFirst("username", username);
+            String two = one.replaceFirst("usernameEN", usernameEN);
+            String three = two.replaceFirst("devType", devType);
+            String four = three.replaceFirst("apNo", apNo);
+            String five = four.replaceFirst("apNoEN", apNo);
+            String six = five.replaceFirst("devTypeEN", devTypeEN);
+            String seven = six.replaceFirst("approveType", approveType);
+            String eight = seven.replaceFirst("approveTypeEN", approveTypeEN);
+            String result = eight.replaceFirst("date", String.valueOf(new Date()));
+            prime = prime + result;
+            //写html结尾内容
+            String end = "</tbody></table></div></body></html>";
+            //拼接html
+            String html = start + prime + end;
+            logger.info("html:" + html);
+            mailService.sendHtmlMail(email, "特种设备:您有一个新的待办任务 SEMS:You have a new to-do task (" + apNo + ")", html);
+        }catch (Exception e) {
+            logger.error("邮件发送失败" + JSON.toJSONString(e));
+        }
+    };
 }

+ 3 - 3
master/src/main/resources/processes/his/modifySpecProcess.bpmn

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
-  <process id="modifySpecProcess" name="设备修改/删除审核" isExecutable="true">
+  <process id="modifySpecProcess" name="设备新增/删除审核" isExecutable="true">
     <startEvent id="startmodifySpec" name="开始" activiti:initiator="${applyUserId}"></startEvent>
     <userTask id="wxjlTask" name="装置维修经理" activiti:assignee="#{wxjlusers}"></userTask>
     <endEvent id="endmodifySpec" name="End"></endEvent>
@@ -35,7 +35,7 @@
         <omgdi:waypoint x="275.0" y="77.0"></omgdi:waypoint>
         <omgdi:waypoint x="340.0" y="77.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="100.0" x="289.0" y="79.0"></omgdc:Bounds>
+          <omgdc:Bounds height="16.0" width="32.0" x="289.0" y="79.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
@@ -47,4 +47,4 @@
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</definitions>
+</definitions>

+ 50 - 0
master/src/main/resources/processes/his/semsAddDelProcess.bpmn

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
+  <process id="semsAddDelProcess" name="设备新增/删除审核" isExecutable="true">
+    <startEvent id="startmodifySpec" name="开始" activiti:initiator="${applyUserId}"></startEvent>
+    <userTask id="wxjlTask" name="装置维修经理" activiti:assignee="#{wxjlusers}"></userTask>
+    <endEvent id="endmodifySpec" name="End"></endEvent>
+    <sequenceFlow id="flow1" sourceRef="startmodifySpec" targetRef="wxjlTask"></sequenceFlow>
+    <sequenceFlow id="flow2" name="通过" sourceRef="wxjlTask" targetRef="endmodifySpec">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <endEvent id="endmodifySpec2" name="End"></endEvent>
+    <sequenceFlow id="flow3" name="不通过" sourceRef="wxjlTask" targetRef="endmodifySpec2">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_semsAddDelProcess">
+    <bpmndi:BPMNPlane bpmnElement="semsAddDelProcess" id="BPMNPlane_semsAddDelProcess">
+      <bpmndi:BPMNShape bpmnElement="startmodifySpec" id="BPMNShape_startmodifySpec">
+        <omgdc:Bounds height="35.0" width="35.0" x="70.0" y="60.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="wxjlTask" id="BPMNShape_wxjlTask">
+        <omgdc:Bounds height="55.0" width="105.0" x="170.0" y="50.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endmodifySpec" id="BPMNShape_endmodifySpec">
+        <omgdc:Bounds height="35.0" width="35.0" x="340.0" y="60.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endmodifySpec2" id="BPMNShape_endmodifySpec2">
+        <omgdc:Bounds height="35.0" width="35.0" x="205.0" y="140.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="105.0" y="77.0"></omgdi:waypoint>
+        <omgdi:waypoint x="170.0" y="77.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="275.0" y="77.0"></omgdi:waypoint>
+        <omgdi:waypoint x="340.0" y="77.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="32.0" x="289.0" y="79.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="222.0" y="105.0"></omgdi:waypoint>
+        <omgdi:waypoint x="222.0" y="140.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="48.0" x="227.0" y="109.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 140 - 118
ui/src/views/approve/approveDetail/specModify-detail.vue

@@ -2,385 +2,407 @@
   <el-dialog
     :title="!this.taskForm.taskId == '' ? $t('处理') : $t('详情')"
     :close-on-click-modal="false"
+    width="70%"
     :visible.sync="visible">
     <el-form :model="taskForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="" label-width="80px">
       <el-form-item :label="$t('设备')">
-        <el-table
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.approveType != 7 && dataForm.devType == 1"
           :data="devList"
           border
-          style="width: 100%; height: 95px" >
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="150"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="useno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用证编号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="medium"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('介质')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desPressure"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('设计压力')+'(MPa)'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desTemp"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('设计温度')+'(℃)'">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.approveType != 7 && dataForm.devType == 2"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             width="100"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             width="120"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="starting"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('起点')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="ending"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('终点')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="medium"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('介质')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desPressure"
             header-align="center"
             align="center"
             :label="$t('设计压力')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desTemp"
             header-align="center"
             align="center"
             :label="$t('设计温度')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="optPressure"
             header-align="center"
             align="center"
             :label="$t('工作压力')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="optTemp"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('工作温度')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.devType == 3"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="docno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('档案号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="150"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="capacity"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('起吊重量')+'(ton)'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="location"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用地点')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.devType == 4"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="useno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用证编号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desTemp"
             header-align="center"
             align="center"
             :label="$t('设计温度')+'(℃)'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desPressure"
             header-align="center"
             align="center"
             :label="$t('设计压力')+'(MPa)'">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.devType == 5"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="docno"
             header-align="center"
             align="center"
             :label="$t('docNo')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="150"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="model"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('型号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="location"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用地点')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.devType == 6"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="useDept"
             header-align="center"
             align="center"
             :label="$t('dept')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="carNo"
             header-align="center"
             align="center"
             :label="$t('plateNo')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="docno"
             header-align="center"
             align="center"
             :label="$t('docNo')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="model"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('model')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           v-show="dataForm.devType == 7"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          >
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="unit"
             header-align="center"
             align="center"
             :label="$t('单元')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :label="$t('名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="createno"
             header-align="center"
             align="center"
             :label="$t('制造编号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="indiameter"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('内径')+' mm'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="height"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('高(长)')+' mm'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="chickness"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('壁厚(mm)')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="volume"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('容积mm³')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="medium"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('介质')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="material"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('材料')">
-          </el-table-column>
-        </el-table>
-        <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('更多条目')}}</el-button>
+          </u-table-column>
+        </u-table>
+<!--        <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('更多条目')}}</el-button>-->
       </el-form-item>
       <el-row>
         <el-col :span="8" v-if="dataForm.approveType != 8">

+ 1 - 1
ui/src/views/approve/pending/index.vue

@@ -353,7 +353,7 @@
             console.log(row.taskName)
             this.$refs.specDeal.init(row.specApprove.id, row.taskId, row.processId,row.taskName)
           })
-        }else if (row.processName == "设备修改/删除审核"){
+        }else if (row.processName == "设备修改/删除审核" || row.processName == "设备新增/删除审核"){
           this.specModifyDealVisible = true
           this.$nextTick(() => {
             console.log(row.taskName)

+ 34 - 10
ui/src/views/approve/pending/spec-detail.vue

@@ -9,6 +9,9 @@
         <u-table
           v-show="dataForm.approveType == 8"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
           style="width: 100%;">
           <u-table-column :label="$t('装置名称')" align="center" prop="plantCode" :show-overflow-tooltip="true"/>
@@ -51,7 +54,7 @@
           v-show="dataForm.approveType == 7 && dataForm.devType == 1"
           use-virtual showBodyOverflow="title"
           showHeaderOverflow="title"
-          max-height="500px"
+          max-height="400px"
           :data="devList"
           border
           style="width: 100%;">
@@ -465,7 +468,7 @@
           :data="devList"
           use-virtual showBodyOverflow="title"
           showHeaderOverflow="title"
-          max-height="500px"
+          max-height="400px"
           border
           style="width: 100%;">
           <u-table-column
@@ -733,8 +736,11 @@
         <u-table
           v-show="dataForm.approveType != 7 && dataForm.devType == 1"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%;">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -787,8 +793,11 @@
         <u-table
           v-show="dataForm.approveType != 7 && dataForm.devType == 2"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%; ">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -857,8 +866,11 @@
         <u-table
           v-show="dataForm.devType == 3"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%;">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -898,8 +910,11 @@
         <u-table
           v-show="dataForm.devType == 4"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%;">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -945,8 +960,11 @@
         <u-table
           v-show="dataForm.devType == 5"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%;">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -986,8 +1004,11 @@
         <u-table
           v-show="dataForm.devType == 6"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%;">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -1024,8 +1045,11 @@
         <u-table
           v-show="dataForm.devType == 7"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
+          style="width: 100%;">
           <u-table-column
             prop="plantCode"
             header-align="center"
@@ -1105,7 +1129,7 @@
             :label="$t('材料')">
           </u-table-column>
         </u-table>
-        <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('更多条目')}}</el-button>
+<!--        <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('更多条目')}}</el-button>-->
       </el-form-item>
       <el-row>
         <el-col :span="8" v-if="dataForm.approveType != 8">

+ 139 - 118
ui/src/views/approve/pending/specModify-deal.vue

@@ -5,382 +5,403 @@
     :visible.sync="visible">
     <el-form :model="taskForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="" label-width="80px">
       <el-form-item :label="$t('设备')">
-        <el-table
+        <u-table
           v-show="dataForm.approveType != 7 && dataForm.devType == 1"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           :data="devList"
           border
-          style="width: 100%;  height: 95px">
-          <el-table-column
+          style="width: 100%">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="150"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="useno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用证编号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="medium"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('介质')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desPressure"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('设计压力')+'(MPa)'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desTemp"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('设计温度')+'(℃)'">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
           v-show="dataForm.approveType != 7 && dataForm.devType == 2"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           :data="devList"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          style="width: 100%;">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             width="100"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             width="120"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="starting"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('起点')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="ending"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('终点')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="medium"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('介质')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desPressure"
             header-align="center"
             align="center"
             :label="$t('设计压力')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desTemp"
             header-align="center"
             align="center"
             :label="$t('设计温度')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="optPressure"
             header-align="center"
             align="center"
             :label="$t('工作压力')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="optTemp"
             header-align="center"
             align="center"
             width="100"
             :show-overflow-tooltip="true"
             :label="$t('工作温度')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
           v-show="dataForm.devType == 3"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          style="width: 100%;">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="docno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('档案号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="150"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="capacity"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('起吊重量')+'(ton)'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="location"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用地点')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
           v-show="dataForm.devType == 4"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          style="width: 100%;">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="useno"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用证编号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desTemp"
             header-align="center"
             align="center"
             :label="$t('设计温度')+'(℃)'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="desPressure"
             header-align="center"
             align="center"
             :label="$t('设计压力')+'(MPa)'">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
           v-show="dataForm.devType == 5"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          style="width: 100%;">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="docno"
             header-align="center"
             align="center"
             :label="$t('docNo')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="150"
             :label="$t('设备名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="model"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('型号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="location"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             :label="$t('使用地点')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
           v-show="dataForm.devType == 6"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          style="width: 100%;">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="useDept"
             header-align="center"
             align="center"
             :label="$t('dept')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="carNo"
             header-align="center"
             align="center"
             :label="$t('plateNo')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="docno"
             header-align="center"
             align="center"
             :label="$t('docNo')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="model"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('model')">
-          </el-table-column>
-        </el-table>
-        <el-table
+          </u-table-column>
+        </u-table>
+        <u-table
           v-show="dataForm.devType == 7"
           :data="devList"
+          use-virtual showBodyOverflow="title"
+          showHeaderOverflow="title"
+          max-height="400px"
           border
-          style="width: 100%; height: 95px">
-          <el-table-column
+          style="width: 100%;">
+          <u-table-column
             prop="plantCode"
             header-align="center"
             align="center"
             :label="$t('装置名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="unit"
             header-align="center"
             align="center"
             :label="$t('单元')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devno"
             header-align="center"
             align="center"
             :label="$t('位号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="devname"
             header-align="center"
             align="center"
             :label="$t('名称')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="createno"
             header-align="center"
             align="center"
             :label="$t('制造编号')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="indiameter"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('内径')+'mm'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="height"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('高(长)')+' mm'">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="chickness"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('壁厚(mm)')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="volume"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('容积mm³')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="medium"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('介质')">
-          </el-table-column>
-          <el-table-column
+          </u-table-column>
+          <u-table-column
             prop="material"
             header-align="center"
             align="center"
             :show-overflow-tooltip="true"
             width="120"
             :label="$t('材料')">
-          </el-table-column>
-        </el-table>
-        <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('查看详细信息')}}</el-button>
+          </u-table-column>
+        </u-table>
+<!--        <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('查看详细信息')}}</el-button>-->
       </el-form-item>
       <el-row>
         <el-col :span="8" v-if="dataForm.approveType != 8">

+ 1 - 1
ui/src/views/approve/taskdone/index.vue

@@ -191,7 +191,7 @@
             console.log(row.taskName)
             this.$refs.specDeal.init(row.specApprove.id, row.taskId, row.processId,row.taskName)
           })
-        }else if (row.processName == "设备修改/删除审核"){
+        }else if (row.processName == "设备修改/删除审核" || row.processName == "设备新增/删除审核"){
           this.specModifyDealVisible = true
           this.$nextTick(() => {
             console.log(row.taskName)

文件差异内容过多而无法显示
+ 396 - 331
ui/src/views/sems/specCc/index.vue


文件差异内容过多而无法显示
+ 421 - 349
ui/src/views/sems/specDt/index.vue


文件差异内容过多而无法显示
+ 410 - 345
ui/src/views/sems/specDzsb/index.vue


文件差异内容过多而无法显示
+ 405 - 335
ui/src/views/sems/specGl/index.vue


文件差异内容过多而无法显示
+ 372 - 314
ui/src/views/sems/specYlgd/index.vue


+ 61 - 26
ui/src/views/sems/specYlrq/index.vue

@@ -157,22 +157,22 @@
     </el-row>
 
     <u-table v-loading="loading" ref="deviceTable" :data="specYlrqList" @selection-change="handleSelectionChange"
-              :height="clientHeight"
-              :row-key="row => { return row.id }"
-              use-virtual
-              showBodyOverflow="title"
-              :row-height="75"
-              :cell-style="tableCellStyle" border @sort-change="sortList">
+             :height="clientHeight"
+             :row-key="row => { return row.id }"
+             use-virtual
+             showBodyOverflow="title"
+             :row-height="75"
+             :cell-style="tableCellStyle" border @sort-change="sortList">
       <u-table-column type="selection" :reserve-selection="true" width="55" align="center" fixed="left"/>
       <u-table-column :label="$t('装置')" align="center" fixed="left" prop="plantCode" :show-overflow-tooltip="true"/>
       <u-table-column :label="$t('单元')" align="center" fixed="left" prop="unit" :show-overflow-tooltip="true"/>
       <u-table-column :label="$t('装置维修组')" align="center" fixed="left" prop="plantMaint"
-                       :show-overflow-tooltip="true"/>
+                      :show-overflow-tooltip="true"/>
       <u-table-column :label="$t('装置维修工程师')" align="center" fixed="left" prop="engineer"
-                       :show-overflow-tooltip="true"/>
+                      :show-overflow-tooltip="true"/>
       <u-table-column :label="$t('状态')" align="center" fixed="left" prop="status" :formatter="statusFormat"/>
       <u-table-column :label="$t('申请状态')" align="center" fixed="left" prop="approveStatus"
-                       :formatter="approveStatusFormat"/>
+                      :formatter="approveStatusFormat"/>
       <u-table-column :label="$t('位号')" align="center" fixed="left" prop="devno" :show-overflow-tooltip="true">
         <!--        <template slot-scope="scope" >
                   <a :class="tableRowClassName(scope.row)"></a>
@@ -188,17 +188,17 @@
       <u-table-column :label="$t('国家')" align="center" prop="nation" :show-overflow-tooltip="true"/>
       <u-table-column :label="$t('外形尺寸(直径*长(高)*厚(mm))')" align="center" prop="outSize" :show-overflow-tooltip="true"/>
       <u-table-column :label="$t('材料')" align="center" prop="material" :show-overflow-tooltip="true"
-                       :render-header="renderHeader"/>
+                      :render-header="renderHeader"/>
       <u-table-column :label="$t('介质')" align="center" prop="medium" :show-overflow-tooltip="true"
-                       :render-header="renderHeader"/>
+                      :render-header="renderHeader"/>
       <u-table-column :label="$t('设计压力')+'(MPa)'" align="center" prop="desPressure" :show-overflow-tooltip="true"
-                       :render-header="renderHeader"/>
+                      :render-header="renderHeader"/>
       <u-table-column :label="$t('操作压力')+'(MPa)'" align="center" prop="optPressure" :show-overflow-tooltip="true"
-                       :render-header="renderHeader"/>
+                      :render-header="renderHeader"/>
       <u-table-column :label="$t('设计温度')+'(℃)'" align="center" prop="desTemp" :show-overflow-tooltip="true"
-                       :render-header="renderHeader"/>
+                      :render-header="renderHeader"/>
       <u-table-column :label="$t('操作温度')+'(℃)'" align="center" prop="optTemp" :show-overflow-tooltip="true"
-                       :render-header="renderHeader"/>
+                      :render-header="renderHeader"/>
       <u-table-column :label="$t('投用日期')" align="center" prop="submitdate" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.submitdate, '{y}-{m}-{d}') }}</span>
@@ -238,7 +238,7 @@
 
 
       <u-table-column :label="$t('操作')" align="center" fixed="right" width="140"
-                       class-name="small-padding fixed-width">
+                      class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             type="text"
@@ -282,7 +282,7 @@
     />
 
     <!-- 添加或修改特种设备压力容器台账对话框   disabled="disabled"-->
-    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="1200px" append-to-body>
+    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="75%" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="160px">
         <el-row>
           <el-col :span="12">
@@ -557,11 +557,18 @@
               <el-input v-model="form.remarks" type="textarea" :placeholder="$t('请输入')+ $t('内容')"/>
             </el-form-item>
           </el-col>
-          <!--          <el-col :span="12">
-                    <el-form-item :label="$t('归属部门')" prop="deptId">
-                        <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择')+ $t('归属部门')" />
-                    </el-form-item>
-                    </el-col>-->
+          <el-col :span="12">
+            <el-form-item :label="$t('确认人')" prop="wxjl">
+              <el-select v-model="form.wxjl" :placeholder="$t('请选择')+ $t('装置维修经理')" filterable clearable size="small">
+                <el-option
+                  v-for="dict in wxjlList"
+                  :key="dict.userId"
+                  :label="dict.nickName"
+                  :value="dict.userId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -571,10 +578,23 @@
     </el-dialog>
     <!-- 用户导入对话框 -->
     <el-dialog v-dialogDrag :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <div style="margin-bottom: 20px;">
+        {{ $t('确认人') }}
+        <el-select v-model="upload.submitData.wxjl" :placeholder="$t('请选择')+ $t('装置维修经理')" filterable clearable
+                   size="small">
+          <el-option
+            v-for="dict in wxjlList"
+            :key="dict.userId"
+            :label="dict.nickName"
+            :value="dict.userId"
+          />
+        </el-select>
+      </div>
       <el-upload
         ref="upload"
         :limit="1"
         accept=".xlsx, .xls"
+        :data="upload.submitData"
         :headers="upload.headers"
         :action="upload.url + '?updateSupport=' + upload.updateSupport"
         :disabled="upload.isUploading"
@@ -643,7 +663,7 @@
     </el-dialog>
     <el-dialog v-dialogDrag :title="modifyTitle" :visible.sync="modifyVisible" width="550px" append-to-body>
       <el-form ref="modifyForm" :model="modifyForm" :rules="modifyRules">
-        <el-form-item  :label="$t('确认人')" prop="wxjl">
+        <el-form-item :label="$t('确认人')" prop="wxjl">
           <el-select v-model="modifyForm.wxjl" :placeholder="$t('请选择')+ $t('装置维修经理')" filterable clearable size="small">
             <el-option
               v-for="dict in wxjlList"
@@ -750,7 +770,8 @@ export default {
         // 设置上传的请求头部
         headers: {Authorization: "Bearer " + getToken()},
         // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/sems/specYlrq/importData"
+        url: process.env.VUE_APP_BASE_API + "/sems/specYlrq/importData",
+        submitData: {wxjl: null}
       },
       // 查询参数
       queryParams: {
@@ -774,10 +795,13 @@ export default {
         plantCode: [
           {required: true, message: this.$t('装置名称') + this.$t('不能为空'), trigger: "blur"}
         ],
+        wxjl: [
+          {required: true, message: this.$t('维修经理') + this.$t('不能为空'), trigger: "blur"}
+        ],
       },
       modifyRules: {
         wxjl: [
-          { required: true, message: this.$t('维修经理')+this.$t('不能为空'), trigger: "blur" }
+          {required: true, message: this.$t('维修经理') + this.$t('不能为空'), trigger: "blur"}
         ],
       }
     };
@@ -827,6 +851,10 @@ export default {
     mylistPlant(plantParams).then(response => {
       this.plantOptions = response.data;
     });
+    this.queryParams.postCode = 'wxjl'
+    listPostUser(this.queryParams).then(response => {
+      this.wxjlList = response;
+    });
   },
   methods: {
     /** 查询特种设备压力容器台账列表 */
@@ -910,7 +938,8 @@ export default {
         checkConclusion: null,
         yearNextWarnDate: null,
         yearReportNo: null,
-        factoryNo: null
+        factoryNo: null,
+        wxjl: null
       };
       this.modifyForm = {
         wxjl: null,
@@ -1101,6 +1130,12 @@ export default {
     },
     // 提交上传文件
     submitFileForm() {
+      if (!this.upload.submitData.wxjl) {
+        this.$alert('请选择确认人', this.$t('提示'), {
+          type: 'warning'
+        })
+        return
+      }
       this.$refs.upload.submit();
       this.fullscreenLoading = true
     },

部分文件因为文件数量过多而无法显示