瀏覽代碼

LY sems 日志

ly 2 年之前
父節點
當前提交
0ff712e015
共有 47 個文件被更改,包括 8156 次插入2504 次删除
  1. 39 0
      master/src/main/java/com/ruoyi/project/listener/semsApprove/SpecEndFaileListener.java
  2. 36 3
      master/src/main/java/com/ruoyi/project/listener/semsApprove/SpecEndSucessListener.java
  3. 77 7
      master/src/main/java/com/ruoyi/project/sems/controller/TApproveController.java
  4. 35 2
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevCcController.java
  5. 30 1
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevDtController.java
  6. 28 1
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevDzsbController.java
  7. 28 1
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevGlController.java
  8. 28 2
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevYlgdController.java
  9. 28 1
      master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevYlrqController.java
  10. 0 2
      master/src/main/java/com/ruoyi/project/sems/domain/TSpecdevCc.java
  11. 93 4
      master/src/main/java/com/ruoyi/project/sems/his/controller/TApproveSpecModifyController.java
  12. 36 1
      master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiCcController.java
  13. 31 1
      master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiDtController.java
  14. 31 1
      master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiDzsbController.java
  15. 30 1
      master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiGlController.java
  16. 31 1
      master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiYlgdController.java
  17. 32 2
      master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiYlrqController.java
  18. 34 0
      master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiCc.java
  19. 37 0
      master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiDt.java
  20. 37 0
      master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiDzsb.java
  21. 37 0
      master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiGl.java
  22. 36 0
      master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiYlgd.java
  23. 37 0
      master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiYlrq.java
  24. 127 105
      master/src/main/resources/mybatis/sems/his/TSpechiCcMapper.xml
  25. 110 89
      master/src/main/resources/mybatis/sems/his/TSpechiDtMapper.xml
  26. 108 87
      master/src/main/resources/mybatis/sems/his/TSpechiDzsbMapper.xml
  27. 120 101
      master/src/main/resources/mybatis/sems/his/TSpechiGlMapper.xml
  28. 142 123
      master/src/main/resources/mybatis/sems/his/TSpechiYlgdMapper.xml
  29. 127 109
      master/src/main/resources/mybatis/sems/his/TSpechiYlrqMapper.xml
  30. 53 0
      ui/src/api/sems/his/cc.js
  31. 53 0
      ui/src/api/sems/his/dt.js
  32. 53 0
      ui/src/api/sems/his/dzsb.js
  33. 53 0
      ui/src/api/sems/his/gl.js
  34. 53 0
      ui/src/api/sems/his/ylgd.js
  35. 53 0
      ui/src/api/sems/his/ylrq.js
  36. 259 0
      ui/src/views/sems/specCc/operlog.vue
  37. 450 298
      ui/src/views/sems/specCc/ty.vue
  38. 618 0
      ui/src/views/sems/specDt/operlog.vue
  39. 484 316
      ui/src/views/sems/specDt/ty.vue
  40. 622 0
      ui/src/views/sems/specDzsb/operlog.vue
  41. 448 309
      ui/src/views/sems/specDzsb/ty.vue
  42. 659 0
      ui/src/views/sems/specGl/operlog.vue
  43. 476 317
      ui/src/views/sems/specGl/ty.vue
  44. 717 0
      ui/src/views/sems/specYlgd/operlog.vue
  45. 420 323
      ui/src/views/sems/specYlgd/ty.vue
  46. 688 0
      ui/src/views/sems/specYlrq/operlog.vue
  47. 432 296
      ui/src/views/sems/specYlrq/ty.vue

+ 39 - 0
master/src/main/java/com/ruoyi/project/listener/semsApprove/SpecEndFaileListener.java

@@ -5,8 +5,14 @@ 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.common.utils.ServletUtils;
 import com.ruoyi.common.utils.SpringContextUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
+import com.ruoyi.project.sems.controller.TApproveController;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.*;
 import com.ruoyi.project.sems.service.*;
 import com.ruoyi.project.system.service.ISysUserService;
 import org.activiti.engine.delegate.DelegateExecution;
@@ -37,11 +43,26 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
         ITSpecdevYlgdService tSpecdevYlgdService = (ITSpecdevYlgdService) SpringContextUtils.getBean("tSpecdevYlgdService");
         ITSpecdevYlrqService tSpecdevYlrqService = (ITSpecdevYlrqService) SpringContextUtils.getBean("tSpecdevYlrqService");
         ITSpecdevCcService tSpecdevCcService = (ITSpecdevCcService) SpringContextUtils.getBean("tSpecdevCcService");
+
+        TSpechiCcController tSpechiCcController = (TSpechiCcController) SpringContextUtils.getBean("tSpechiCcController");
+        TSpechiDtController tSpechiDtController = (TSpechiDtController) SpringContextUtils.getBean("tSpechiDtController");
+        TSpechiGlController tSpechiGlController = (TSpechiGlController) SpringContextUtils.getBean("tSpechiGlController");
+        TSpechiDzsbController tSpechiDzsbController = (TSpechiDzsbController) SpringContextUtils.getBean("tSpechiDzsbController");
+        TSpechiYlrqController tSpechiYlrqController = (TSpechiYlrqController) SpringContextUtils.getBean("tSpechiYlrqController");
+        TSpechiYlgdController tSpechiYlgdController = (TSpechiYlgdController) SpringContextUtils.getBean("tSpechiYlgdController");
+
+        TApproveController tApproveController = (TApproveController) SpringContextUtils.getBean("tApproveController");
+
         TApprove approveEntity = tApproveService.selectTApproveById(Long.parseLong(id)) ;
         approveEntity.setStatus(2l);
         approveEntity.setEndtime(new Date());
         tApproveService.updateTApprove(approveEntity);
         logger.info("approveEntity:" + approveEntity);
+        //获取操作日志参数
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        String operType = tApproveController.getOperType(Integer.parseInt(approveEntity.getApproveType().toString()));
+
         String[] ids = approveEntity.getDevId().split(",");
         //申请中变更办理中
         switch (Integer.parseInt(approveEntity.getDevType().toString())) {
@@ -52,6 +73,9 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
                     ylrqEntity.setApproveStatus(0l);
                     tSpecdevYlrqService.updateById(ylrqEntity);
                 }
+                new Thread(() -> {
+                    tSpechiYlrqController.addOperLog(ids,userName,new Date() , operType + "拒绝" );
+                },"特种设备操作日志").start();
                 break;
             case 2:
                 for (String i : ids
@@ -60,6 +84,9 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
                     ylgdEntity.setApproveStatus(0l);
                     tSpecdevYlgdService.updateById(ylgdEntity);
                 }
+                new Thread(() -> {
+                    tSpechiYlgdController.addOperLog(ids,userName,new Date() , operType + "拒绝" );
+                },"特种设备操作日志").start();
                 break;
             case 3:
                 for (String i : ids
@@ -68,6 +95,9 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
                     dzsbEntity.setApproveStatus(0l);
                     tSpecdevDzsbService.updateById(dzsbEntity);
                 }
+                new Thread(() -> {
+                    tSpechiDzsbController.addOperLog(ids,userName,new Date() , operType + "拒绝" );
+                },"特种设备操作日志").start();
                 break;
             case 4:
                 for (String i : ids
@@ -76,6 +106,9 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
                     glEntity.setApproveStatus(0l);
                     tSpecdevGlService.updateById(glEntity);
                 }
+                new Thread(() -> {
+                    tSpechiGlController.addOperLog(ids,userName,new Date() , operType + "拒绝" );
+                },"特种设备操作日志").start();
                 break;
             case 5:
                 for (String i : ids
@@ -84,6 +117,9 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
                     dtEntity.setApproveStatus(0l);
                     tSpecdevDtService.updateById(dtEntity);
                 }
+                new Thread(() -> {
+                    tSpechiDtController.addOperLog(ids,userName,new Date() , operType + "拒绝" );
+                },"特种设备操作日志").start();
                 break;
             case 6:
                 for (String i : ids
@@ -92,6 +128,9 @@ public class SpecEndFaileListener implements Serializable, ExecutionListener {
                     ccEntity.setApproveStatus(0l);
                     tSpecdevCcService.updateById(ccEntity);
                 }
+                new Thread(() -> {
+                    tSpechiCcController.addOperLog(ids,userName,new Date() , operType + "拒绝" );
+                },"特种设备操作日志").start();
                 break;
 //            case 7:
 //                for (String i : ids

+ 36 - 3
master/src/main/java/com/ruoyi/project/listener/semsApprove/SpecEndSucessListener.java

@@ -5,8 +5,14 @@ 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.common.utils.ServletUtils;
 import com.ruoyi.common.utils.SpringContextUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
+import com.ruoyi.project.sems.controller.TApproveController;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.*;
 import com.ruoyi.project.sems.his.domain.*;
 import com.ruoyi.project.sems.his.service.*;
 import com.ruoyi.project.sems.his.service.impl.*;
@@ -53,6 +59,13 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
         ITSpechiDtService tSpechiDtService = (ITSpechiDtService) SpringContextUtils.getBean("tSpechiDtService");
         ITSpechiCcService tSpechiCcService = (ITSpechiCcService) SpringContextUtils.getBean("tSpechiCcService");
 
+        TSpechiCcController tSpechiCcController = (TSpechiCcController) SpringContextUtils.getBean("tSpechiCcController");
+        TSpechiDtController tSpechiDtController = (TSpechiDtController) SpringContextUtils.getBean("tSpechiDtController");
+        TSpechiGlController tSpechiGlController = (TSpechiGlController) SpringContextUtils.getBean("tSpechiGlController");
+        TSpechiDzsbController tSpechiDzsbController = (TSpechiDzsbController) SpringContextUtils.getBean("tSpechiDzsbController");
+        TSpechiYlrqController tSpechiYlrqController = (TSpechiYlrqController) SpringContextUtils.getBean("tSpechiYlrqController");
+        TSpechiYlgdController tSpechiYlgdController = (TSpechiYlgdController) SpringContextUtils.getBean("tSpechiYlgdController");
+        TApproveController tApproveController = (TApproveController) SpringContextUtils.getBean("tApproveController");
 
         TApprove approveEntity = tApproveService.selectTApproveById(Long.parseLong(id)) ;
         logger.info("approveEntity:" + approveEntity);
@@ -60,6 +73,11 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
         approveEntity.setEndtime(new Date());
         tApproveService.updateTApprove(approveEntity);
         String[] ids = approveEntity.getDevId().split(",");
+        //获取操作日志参数
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        String operType = tApproveController.getOperType(Integer.parseInt(approveEntity.getApproveType().toString()));
+
         //申请中变更办理中
         switch (Integer.parseInt(approveEntity.getDevType().toString())) {
             case 1:
@@ -83,6 +101,9 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
                         tSpecdevYlrqService.updateById(ylrqEntity);
                     }
                 }
+                new Thread(() -> {
+                    tSpechiYlrqController.addOperLog(ids,userName,new Date() , operType + "批准" );
+                },"特种设备操作日志").start();
                 break;
             case 2:
                 for (String i : ids
@@ -104,6 +125,9 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
                         tSpecdevYlgdService.updateById(ylgdEntity);
                     }
                 }
+                new Thread(() -> {
+                    tSpechiYlgdController.addOperLog(ids,userName,new Date() , operType + "批准" );
+                },"特种设备操作日志").start();
                 break;
             case 3:
                 for (String i : ids
@@ -125,6 +149,9 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
                         tSpecdevDzsbService.updateById(dzsbEntity);
                     }
                 }
+                new Thread(() -> {
+                    tSpechiDzsbController.addOperLog(ids,userName,new Date() , operType + "批准" );
+                },"特种设备操作日志").start();
                 break;
             case 4:
                 for (String i : ids
@@ -143,9 +170,11 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
                     }else {
                         glEntity.setApproveStatus(0l);
                         tSpecdevGlService.updateById(glEntity);
-
                     }
                 }
+                new Thread(() -> {
+                    tSpechiGlController.addOperLog(ids,userName,new Date() , operType + "批准" );
+                },"特种设备操作日志").start();
                 break;
             case 5:
                 for (String i : ids
@@ -162,11 +191,13 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
                         dtEntity.setCreatedate(new Date());
                         tSpechiDtService.insertTSpechiDtWithDev(dtEntity);
                     }else {
-
                         dtEntity.setApproveStatus(0l);
                         tSpecdevDtService.updateById(dtEntity);
                     }
                 }
+                new Thread(() -> {
+                    tSpechiDtController.addOperLog(ids,userName,new Date() , operType + "批准" );
+                },"特种设备操作日志").start();
                 break;
             case 6:
                 for (String i : ids
@@ -183,11 +214,13 @@ public class SpecEndSucessListener implements Serializable, ExecutionListener {
                         ccEntity.setCreatedate(new Date());
                         tSpechiCcService.insertTSpechiCcWithDev(ccEntity);
                     }else {
-
                         ccEntity.setApproveStatus(0l);
                         tSpecdevCcService.updateById(ccEntity);
                     }
                 }
+                new Thread(() -> {
+                    tSpechiCcController.addOperLog(ids,userName,new Date() , operType + "批准" );
+                },"特种设备操作日志").start();
                 break;
 //            case 7:
 //                for (String i : ids

+ 77 - 7
master/src/main/java/com/ruoyi/project/sems/controller/TApproveController.java

@@ -12,14 +12,19 @@ import java.util.concurrent.Executors;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.document.DocumentHandler;
 import com.ruoyi.common.utils.document.PDFTemplateUtil;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 import com.ruoyi.project.approve.damain.DevTask;
 import com.ruoyi.project.listener.monthSemsApprove.*;
 import com.ruoyi.project.listener.semsApprove.*;
 import com.ruoyi.project.listener.yearSemsApprove.*;
 import com.ruoyi.project.sems.domain.*;
+import com.ruoyi.project.sems.his.controller.*;
 import com.ruoyi.project.sems.mapper.TApproveMapper;
 import com.ruoyi.project.sems.service.*;
 import com.ruoyi.project.system.domain.SysConfig;
@@ -56,7 +61,7 @@ import javax.servlet.http.HttpServletResponse;
  * @author ruoyi
  * @date 2021-08-05
  */
-@RestController
+@RestController("tApproveController")
 @RequestMapping("/sems/approve")
 public class TApproveController extends BaseController {
     @Autowired
@@ -95,6 +100,18 @@ public class TApproveController extends BaseController {
     private SysConfigMapper configMapper;
     @Resource
     private SysUserMapper userMapper;
+    @Autowired
+    private TSpechiCcController tSpechiCcController;
+    @Autowired
+    private TSpechiDtController tSpechiDtController;
+    @Autowired
+    private TSpechiGlController tSpechiGlController;
+    @Autowired
+    private TSpechiDzsbController tSpechiDzsbController;
+    @Autowired
+    private TSpechiYlrqController tSpechiYlrqController;
+    @Autowired
+    private TSpechiYlgdController tSpechiYlgdController;
 
     /**
      * 查询特种设备申请列表
@@ -181,6 +198,11 @@ public class TApproveController extends BaseController {
                 tApproverFileService.save(t);
             }
         }
+        //获取操作日志参数
+        String operType = getOperType(Integer.parseInt(tApprove.getApproveType().toString()));
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+
         String[] ids = tApprove.getDevId().split(",");
         switch (Integer.parseInt(tApprove.getDevType().toString())) {
             case 1:
@@ -191,6 +213,10 @@ public class TApproveController extends BaseController {
                     ylrqEntity.setApproveTime(new Date());
                     tSpecdevYlrqService.updateById(ylrqEntity);
                 }
+                logger.info("特种设备操作日志");
+                new Thread(() -> {
+                    tSpechiYlrqController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 2:
                 for (String i : ids
@@ -200,6 +226,10 @@ public class TApproveController extends BaseController {
                     ylgdEntity.setApproveTime(new Date());
                     tSpecdevYlgdService.updateById(ylgdEntity);
                 }
+                logger.info("特种设备操作日志");
+                new Thread(() -> {
+                    tSpechiYlgdController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 3:
                 for (String i : ids
@@ -209,6 +239,10 @@ public class TApproveController extends BaseController {
                     dzsbEntity.setApproveTime(new Date());
                     tSpecdevDzsbService.updateById(dzsbEntity);
                 }
+                logger.info("特种设备操作日志");
+                new Thread(() -> {
+                    tSpechiDzsbController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 4:
                 for (String i : ids
@@ -218,6 +252,10 @@ public class TApproveController extends BaseController {
                     glEntity.setApproveTime(new Date());
                     tSpecdevGlService.updateById(glEntity);
                 }
+                logger.info("特种设备操作日志");
+                new Thread(() -> {
+                    tSpechiGlController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 5:
                 for (String i : ids
@@ -227,6 +265,10 @@ public class TApproveController extends BaseController {
                     dtEntity.setApproveTime(new Date());
                     tSpecdevDtService.updateById(dtEntity);
                 }
+                logger.info("特种设备操作日志");
+                new Thread(() -> {
+                    tSpechiDtController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 6:
                 for (String i : ids
@@ -236,6 +278,10 @@ public class TApproveController extends BaseController {
                     ccEntity.setApproveTime(new Date());
                     tSpecdevCcService.updateById(ccEntity);
                 }
+                logger.info("特种设备操作日志");
+                new Thread(() -> {
+                    tSpechiCcController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
         }
         //
@@ -362,6 +408,12 @@ public class TApproveController extends BaseController {
                                 }
                             });
                         }
+                        try {
+                            latch.await(); //线程计数完毕后继续执行
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        executorService.shutdown();
                         break;
                     case "2":
                         for (String i : ids
@@ -379,6 +431,12 @@ public class TApproveController extends BaseController {
                             });
 
                         }
+                        try {
+                            latch.await(); //线程计数完毕后继续执行
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        executorService.shutdown();
                 }
                 break;
             case 8:
@@ -389,12 +447,6 @@ public class TApproveController extends BaseController {
                     tApprove.setDevType(0l);
                 }
         }
-        try {
-            latch.await(); //线程计数完毕后继续执行
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-        executorService.shutdown();
         tApprove.setDevList(devList);
         return AjaxResult.success(tApprove);
     }
@@ -841,4 +893,22 @@ public class TApproveController extends BaseController {
         logger.debug("  总共耗时:" + times2 + "毫秒");
         return AjaxResult.success();
     }
+
+    public String getOperType(int type) {
+        switch (type) {
+            case 1:
+                return "启用";
+            case 2:
+                return "停用";
+            case 3:
+                return "报废";
+            case 4:
+                return "改造";
+            case -1:
+                return "注销";
+        }
+        return "申请";
+    }
+
+
 }

+ 35 - 2
master/src/main/java/com/ruoyi/project/sems/controller/TSpecdevCcController.java

@@ -12,12 +12,17 @@ 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.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.common.utils.job.ScheduleUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.config.RuoYiConfig;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 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.controller.TSpechiCcController;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
 import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
@@ -68,7 +73,8 @@ public class TSpecdevCcController extends BaseController {
     private RuntimeService runtimeService;
     @Autowired
     private TApproveSpecModifyController approveSpecModifyController;
-
+    @Autowired
+    private TSpechiCcController tSpechiCcController;
     /**
      * 查询特种设备叉车台账列表
      */
@@ -140,6 +146,11 @@ public class TSpecdevCcController extends BaseController {
             approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevCc.getWxjl());
         },"发送邮件").start();
 
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiCcController.addOperLog(String.valueOf(tSpecdevCc.getId()),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
         return AjaxResult.success();
     }
 
@@ -162,7 +173,14 @@ public class TSpecdevCcController extends BaseController {
             tc.setCheckConclusion(tSpecdevCc.getPerTestConclusion());
             tSpecCheckService.insertTSpecCheck(tc);
         }
-        return toAjax(tSpecdevCcService.updateTSpecdevCc(tSpecdevCc));
+        tSpecdevCcService.updateTSpecdevCc(tSpecdevCc);
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiCcController.addOperLog(String.valueOf(tSpecdevCc.getId()),userName,new Date() , "修改" );
+        },"特种设备操作日志").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -340,6 +358,12 @@ public class TSpecdevCcController extends BaseController {
             approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
         },"发送邮件").start();
 
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiCcController.addOperLog(ids.toArray(),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));
@@ -424,6 +448,7 @@ public class TSpecdevCcController extends BaseController {
         }
         int successNumber = 0;
         int failNum = 0;
+        List<String> ids = new ArrayList<>();
         for (TSpecdevCc t : list) {
             failNum++;
             try {
@@ -434,6 +459,7 @@ public class TSpecdevCcController extends BaseController {
                                         .eq("CAR_NO", t.getCarNo())
                                         .eq("PLANT_CODE", t.getPlantCode())
                         );
+                ids.add(t.getId().toString());
                 successNumber++;
             } catch (Exception e) {
                 failNumber++;
@@ -453,6 +479,13 @@ public class TSpecdevCcController extends BaseController {
             tc.setCheckConclusion(t.getPerTestConclusion());
             tSpecCheckService.insertTSpecCheck(tc);
         }
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiCcController.addOperLog(ids.toArray(),userName,new Date() , "批量更新" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

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

@@ -10,9 +10,14 @@ 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.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 import com.ruoyi.project.sems.domain.*;
 import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.controller.TSpechiDtController;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
 import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
@@ -62,6 +67,9 @@ public class TSpecdevDtController extends BaseController {
     private RuntimeService runtimeService;
     @Autowired
     private TApproveSpecModifyController approveSpecModifyController;
+    @Autowired
+    private TSpechiDtController tSpechiDtController;
+
     /**
      * 查询特种设备电梯台账列表
      */
@@ -132,6 +140,12 @@ public class TSpecdevDtController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevDt.getWxjl());
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiDtController.addOperLog(String.valueOf(tSpecdevDt.getId()),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
         return AjaxResult.success();
     }
 
@@ -154,7 +168,14 @@ public class TSpecdevDtController extends BaseController {
             tc.setCheckConclusion(tSpecdevDt.getPerTestConclusion());
             tSpecCheckService.insertTSpecCheck(tc);
         }
-        return toAjax(tSpecdevDtService.updateTSpecdevDt(tSpecdevDt));
+        tSpecdevDtService.updateTSpecdevDt(tSpecdevDt);
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiDtController.addOperLog(String.valueOf(tSpecdevDt.getId()),userName,new Date() , "修改" );
+        },"特种设备操作日志").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -324,6 +345,12 @@ public class TSpecdevDtController extends BaseController {
             approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
         },"发送邮件").start();
 
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiDtController.addOperLog(ids.toArray(),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));
@@ -532,4 +559,6 @@ public class TSpecdevDtController extends BaseController {
         out.close();
         return AjaxResult.success(filename);
     }
+
+
 }

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

@@ -11,10 +11,15 @@ 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.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 import com.ruoyi.project.sems.domain.*;
 
 import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.controller.TSpechiDzsbController;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
 import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
@@ -63,6 +68,8 @@ public class TSpecdevDzsbController extends BaseController {
     private RuntimeService runtimeService;
     @Autowired
     private TApproveSpecModifyController approveSpecModifyController;
+    @Autowired
+    private TSpechiDzsbController tSpechiDzsbController;
     /**
      * 查询特种设备吊装设备台账列表
      */
@@ -133,6 +140,13 @@ public class TSpecdevDzsbController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevDzsb.getWxjl());
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiDzsbController.addOperLog(String.valueOf(tSpecdevDzsb.getId()),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         return AjaxResult.success();
     }
 
@@ -155,7 +169,13 @@ public class TSpecdevDzsbController extends BaseController {
             tc.setCheckConclusion(tSpecdevDzsb.getPerTestConclusion());
             tSpecCheckService.insertTSpecCheck(tc);
         }
-        return toAjax(tSpecdevDzsbService.updateTSpecdevDzsb(tSpecdevDzsb));
+        tSpecdevDzsbService.updateTSpecdevDzsb(tSpecdevDzsb);
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiDzsbController.addOperLog(String.valueOf(tSpecdevDzsb.getId()),userName,new Date() , "修改" );
+        },"特种设备操作日志").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -334,6 +354,13 @@ public class TSpecdevDzsbController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiDzsbController.addOperLog(ids.toArray(),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

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

@@ -10,9 +10,15 @@ 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.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 import com.ruoyi.project.sems.domain.*;
 import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.controller.TSpechiDzsbController;
+import com.ruoyi.project.sems.his.controller.TSpechiGlController;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
 import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
@@ -62,6 +68,8 @@ public class TSpecdevGlController extends BaseController
     private RuntimeService runtimeService;
     @Autowired
     private TApproveSpecModifyController approveSpecModifyController;
+    @Autowired
+    private TSpechiGlController tSpechiGlController;
     /**
      * 查询特种设备锅炉台账列表
      */
@@ -136,6 +144,12 @@ public class TSpecdevGlController extends BaseController
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevGl.getWxjl());
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiGlController.addOperLog(String.valueOf(tSpecdevGl.getId()),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
         return AjaxResult.success();
     }
 
@@ -163,7 +177,13 @@ public class TSpecdevGlController extends BaseController
             tc.setOutNextWarnDate(tSpecdevGl.getOutNextWarnDate());
             tSpecCheckService.insertTSpecCheck(tc);
         }
-        return toAjax(tSpecdevGlService.updateTSpecdevGl(tSpecdevGl));
+        tSpecdevGlService.updateTSpecdevGl(tSpecdevGl);
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiGlController.addOperLog(String.valueOf(tSpecdevGl.getId()),userName,new Date() , "修改" );
+        },"特种设备操作日志").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -360,6 +380,13 @@ public class TSpecdevGlController extends BaseController
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiGlController.addOperLog(ids.toArray(),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" +String.valueOf(successNumber));
         logger.info("failNumber:" +String.valueOf(failNumber));

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

@@ -14,10 +14,16 @@ import java.util.concurrent.atomic.AtomicInteger;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 import com.ruoyi.project.sems.domain.*;
 import com.ruoyi.project.sems.his.controller.TApproveSpecModifyController;
+import com.ruoyi.project.sems.his.controller.TSpechiGlController;
+import com.ruoyi.project.sems.his.controller.TSpechiYlgdController;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
 import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
@@ -66,6 +72,8 @@ public class TSpecdevYlgdController extends BaseController {
     private RuntimeService runtimeService;
     @Autowired
     private TApproveSpecModifyController approveSpecModifyController;
+    @Autowired
+    private TSpechiYlgdController tSpechiYlgdController;
     /**
      * 查询特种设备压力管道台账列表
      */
@@ -136,6 +144,12 @@ public class TSpecdevYlgdController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevYlgd.getWxjl());
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiYlgdController.addOperLog(String.valueOf(tSpecdevYlgd.getId()),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
         return AjaxResult.success();
     }
 
@@ -162,8 +176,13 @@ public class TSpecdevYlgdController extends BaseController {
             tc.setCheckConclusion(tSpecdevYlgd.getCheckConclusion());
             tSpecCheckService.insertTSpecCheck(tc);
         }
-
-        return toAjax(tSpecdevYlgdService.updateTSpecdevYlgd(tSpecdevYlgd));
+        tSpecdevYlgdService.updateTSpecdevYlgd(tSpecdevYlgd);
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiYlgdController.addOperLog(String.valueOf(tSpecdevYlgd.getId()),userName,new Date() , "修改" );
+        },"特种设备操作日志").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -395,6 +414,13 @@ public class TSpecdevYlgdController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiYlgdController.addOperLog(ids.toArray(),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber.get()));
         logger.info("failNumber:" + String.valueOf(failNumber.get()));

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

@@ -14,12 +14,18 @@ import java.util.concurrent.Executors;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 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.controller.TSpechiYlgdController;
+import com.ruoyi.project.sems.his.controller.TSpechiYlrqController;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
 import com.ruoyi.project.sems.his.service.ITApproveSpecModifyService;
 import com.ruoyi.project.sems.service.ITSpecCheckService;
@@ -69,6 +75,8 @@ public class TSpecdevYlrqController extends BaseController {
     private RuntimeService runtimeService;
     @Autowired
     private TApproveSpecModifyController approveSpecModifyController;
+    @Autowired
+    private TSpechiYlrqController tSpechiYlrqController;
     /**
      * 查询特种设备压力容器台账列表
      */
@@ -147,6 +155,12 @@ public class TSpecdevYlrqController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , tSpecdevYlrq.getWxjl());
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiYlrqController.addOperLog(String.valueOf(tSpecdevYlrq.getId()),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
         return AjaxResult.success();
     }
 
@@ -173,7 +187,13 @@ public class TSpecdevYlrqController extends BaseController {
             tc.setCheckConclusion(tSpecdevYlrq.getCheckConclusion());
             tSpecCheckService.insertTSpecCheck(tc);
         }
-        return toAjax(tSpecdevYlrqService.updateTSpecdevYlrq(tSpecdevYlrq));
+        tSpecdevYlrqService.updateTSpecdevYlrq(tSpecdevYlrq);
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiYlrqController.addOperLog(String.valueOf(tSpecdevYlrq.getId()),userName,new Date() , "修改" );
+        },"特种设备操作日志").start();
+        return AjaxResult.success();
     }
 
     /**
@@ -392,6 +412,13 @@ public class TSpecdevYlrqController extends BaseController {
         new Thread(() -> {
             approveSpecModifyController.sendMail(tApproveSpecModify , wxjl);
         },"发送邮件").start();
+
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        new Thread(() -> {
+            tSpechiYlrqController.addOperLog(ids.toArray(),userName,new Date() , "新增申请" );
+        },"特种设备操作日志").start();
+
         logger.info("list:" + JSON.toJSONString(list));
         logger.info("successNumber:" + String.valueOf(successNumber));
         logger.info("failNumber:" + String.valueOf(failNumber));

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

@@ -131,8 +131,6 @@ public class TSpecdevCc extends BaseEntity
     @Excel(name = "报告编号")
     private String reportNo;
 
-
-
     /** 资产归属形式 */
     @Excel(name = "资产归属形式")
     private String assetOwner;

+ 93 - 4
master/src/main/java/com/ruoyi/project/sems/his/controller/TApproveSpecModifyController.java

@@ -11,6 +11,10 @@ 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.common.utils.ServletUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
 import com.ruoyi.project.approve.damain.DevTask;
 import com.ruoyi.project.sems.domain.*;
 import com.ruoyi.project.sems.his.domain.*;
@@ -88,7 +92,18 @@ public class TApproveSpecModifyController extends BaseController
     private ISysUserService sysUserService;
     @Autowired
     private IMailService mailService;
-
+    @Autowired
+    private TSpechiCcController tSpechiCcController;
+    @Autowired
+    private TSpechiDtController tSpechiDtController;
+    @Autowired
+    private TSpechiGlController tSpechiGlController;
+    @Autowired
+    private TSpechiDzsbController tSpechiDzsbController;
+    @Autowired
+    private TSpechiYlrqController tSpechiYlrqController;
+    @Autowired
+    private TSpechiYlgdController tSpechiYlgdController;
     /**
      * 查询特种设备变更申请列表
      */
@@ -262,6 +277,10 @@ public class TApproveSpecModifyController extends BaseController
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
         String data = sdf.format(dt) + userid;
         tApproveSpecModify.setApNo(data);
+        //获取操作日志参数
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        String operType = getOperType(Integer.parseInt(tApproveSpecModify.getApproveType().toString()));
         //
         Authentication.setAuthenticatedUserId(userid.toString());
         tApproveSpecModifyService.insertTApproveSpecModify(tApproveSpecModify);
@@ -277,6 +296,9 @@ public class TApproveSpecModifyController extends BaseController
                     ylrqEntity.setApproveTime(new Date());
                     tSpecdevYlrqService.updateById(ylrqEntity);
                 }
+                new Thread(() -> {
+                    tSpechiYlrqController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 2:
                 for (String i : ids
@@ -286,6 +308,9 @@ public class TApproveSpecModifyController extends BaseController
                     ylgdEntity.setApproveTime(new Date());
                     tSpecdevYlgdService.updateById(ylgdEntity);
                 }
+                new Thread(() -> {
+                    tSpechiYlgdController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 3:
                 for (String i : ids
@@ -295,6 +320,9 @@ public class TApproveSpecModifyController extends BaseController
                     dzsbEntity.setApproveTime(new Date());
                     tSpecdevDzsbService.updateById(dzsbEntity);
                 }
+                new Thread(() -> {
+                    tSpechiDzsbController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 4:
                 for (String i : ids
@@ -304,6 +332,9 @@ public class TApproveSpecModifyController extends BaseController
                     glEntity.setApproveTime(new Date());
                     tSpecdevGlService.updateById(glEntity);
                 }
+                new Thread(() -> {
+                    tSpechiGlController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 5:
                 for (String i : ids
@@ -313,6 +344,9 @@ public class TApproveSpecModifyController extends BaseController
                     dtEntity.setApproveTime(new Date());
                     tSpecdevDtService.updateById(dtEntity);
                 }
+                new Thread(() -> {
+                    tSpechiDtController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
             case 6:
                 for (String i : ids
@@ -322,6 +356,9 @@ public class TApproveSpecModifyController extends BaseController
                     ccEntity.setApproveTime(new Date());
                     tSpecdevCcService.updateById(ccEntity);
                 }
+                new Thread(() -> {
+                    tSpechiCcController.addOperLog(ids,userName,new Date() , operType + "-申请" );
+                },"特种设备操作日志").start();
                 break;
     }
         //开始工作流、监听
@@ -358,6 +395,10 @@ public class TApproveSpecModifyController extends BaseController
         //利用任务对象,获取流程实例id
         String processInstancesId = task.getProcessInstanceId();
         TApproveSpecModify tApproveSpecModify = tApproveSpecModifyService.selectTApproveSpecModifyById(Long.parseLong(devTask.getBusinessKey()));
+        //获取操作日志参数
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        String userName =loginUser != null? loginUser.getUsername(): "";
+        String operType = getOperType(Integer.parseInt(tApproveSpecModify.getApproveType().toString()));
         if (devTask.getCondition().equals("1")) {
             devTask.setComment("通过" + symbol + devTask.getComment());
             String[] ids;
@@ -381,6 +422,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevYlrqService.deleteTSpecdevYlrqById(Long.parseLong(i));
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiYlrqController.addOperLog(ids,userName,new Date() , operType + "-通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 2://修改压力管道台账
                     for (String i : ids
@@ -398,6 +442,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevYlgdService.deleteTSpecdevYlgdById(Long.parseLong(i));
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiYlgdController.addOperLog(ids,userName,new Date() , operType + "-通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 3://修改吊装设备台账
                     for (String i : ids
@@ -415,6 +462,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevDzsbService.deleteTSpecdevDzsbById(Long.parseLong(i));
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiDzsbController.addOperLog(ids,userName,new Date() , operType + "-通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 4://修改锅炉台账
                     for (String i : ids
@@ -432,6 +482,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevGlService.deleteTSpecdevGlById(Long.parseLong(i));
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiGlController.addOperLog(ids,userName,new Date() , operType + "-通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 5://修改电梯台账
                     for (String i : ids
@@ -449,6 +502,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevDtService.deleteTSpecdevDtById(Long.parseLong(i));
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiDtController.addOperLog(ids,userName,new Date() , operType + "-通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 6://修改叉车台账
                     for (String i : ids
@@ -465,7 +521,10 @@ public class TApproveSpecModifyController extends BaseController
                         }else {
                             tSpecdevCcService.deleteTSpecdevCcById(Long.parseLong(i));
                         }
-                    }
+                    };
+                    new Thread(() -> {
+                        tSpechiCcController.addOperLog(ids,userName,new Date() , operType + "-通过" );
+                    },"特种设备操作日志").start();
                     break;
             }
         }else if (devTask.getCondition().equals("0")) {
@@ -485,6 +544,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevYlrqService.updateById(ylrqEntity);
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiYlrqController.addOperLog(ids,userName,new Date() , operType + "-未通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 2:
                     for (String i : ids
@@ -498,6 +560,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevYlgdService.updateById(ylgdEntity);
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiYlgdController.addOperLog(ids,userName,new Date() , operType + "-未通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 3:
                     for (String i : ids
@@ -512,6 +577,9 @@ public class TApproveSpecModifyController extends BaseController
                         }
 
                     }
+                    new Thread(() -> {
+                        tSpechiDzsbController.addOperLog(ids,userName,new Date() , operType + "-未通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 4:
                     for (String i : ids
@@ -525,6 +593,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevGlService.updateById(glEntity);
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiGlController.addOperLog(ids,userName,new Date() , operType + "-未通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 5:
                     for (String i : ids
@@ -538,6 +609,9 @@ public class TApproveSpecModifyController extends BaseController
                             tSpecdevDtService.updateById(dtEntity);
                         }
                     }
+                    new Thread(() -> {
+                        tSpechiDtController.addOperLog(ids,userName,new Date() , operType + "-未通过" );
+                    },"特种设备操作日志").start();
                     break;
                 case 6:
                     for (String i : ids
@@ -550,11 +624,14 @@ public class TApproveSpecModifyController extends BaseController
                             ccEntity.setApproveStatus(0l);
                             tSpecdevCcService.updateById(ccEntity);
                         }
-                    }
+                    };
+                    new Thread(() -> {
+                        tSpechiCcController.addOperLog(ids,userName,new Date() , operType + "-未通过" );
+                    },"特种设备操作日志").start();
                     break;
             }
         }
-        System.out.println(processInstancesId);
+        logger.info("特种设备审核:" + processInstancesId);
         Map<String, Object> param = new HashMap<>();
         param.put("condition", devTask.getCondition());
         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -696,4 +773,16 @@ public class TApproveSpecModifyController extends BaseController
             logger.error("邮件发送失败" + JSON.toJSONString(e));
         }
     };
+
+    public String getOperType(int type) {
+        switch (type) {
+            case 1:
+                return "修改";
+            case 2:
+                return "删除";
+            case 3:
+                return "新增";
+        }
+        return "";
+    }
 }

+ 36 - 1
master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiCcController.java

@@ -1,6 +1,16 @@
 package com.ruoyi.project.sems.his.controller;
 
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
+import com.ruoyi.project.sems.domain.TSpecdevCc;
+import com.ruoyi.project.sems.mapper.TSpecdevCcMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,18 +30,22 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 特种设备叉车台账历史Controller
  *
  * @author ruoyi
  * @date 2021-09-02
  */
-@RestController
+@RestController("tSpechiCcController")
 @RequestMapping("/his/cc")
 public class TSpechiCcController extends BaseController
 {
     @Autowired
     private ITSpechiCcService tSpechiCcService;
+    @Resource
+    private TSpecdevCcMapper tSpecdevCcMapper;
 
     /**
      * 查询特种设备叉车台账历史列表
@@ -93,6 +107,27 @@ public class TSpechiCcController extends BaseController
         return AjaxResult.success("id" , tSpechiCc.getId());
     }
 
+    public void addOperLog(Object[] ids,String userName, Date operTime , String operType){
+        for (Object id: ids
+             ) {
+            TSpecdevCc cc = tSpecdevCcMapper.selectTSpecdevCcById(Long.parseLong(id.toString()));
+            cc.setCreateBy(userName);
+            cc.setCreateTime(operTime);
+            cc.setRemark(operType);
+            cc.setHiType(2l);
+            tSpechiCcService.insertTSpechiCcWithDev(cc);
+        }
+    }
+
+    public void addOperLog(String id ,String userName, Date operTime , String operType){
+        TSpecdevCc cc = tSpecdevCcMapper.selectTSpecdevCcById(Long.parseLong(id));
+            cc.setCreateBy(userName);
+            cc.setCreateTime(operTime);
+            cc.setRemark(operType);
+            cc.setHiType(2l);
+            tSpechiCcService.insertTSpechiCcWithDev(cc);
+    }
+
     /**
      * 修改特种设备叉车台账历史
      */

+ 31 - 1
master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiDtController.java

@@ -1,6 +1,10 @@
 package com.ruoyi.project.sems.his.controller;
 
+import java.util.Date;
 import java.util.List;
+
+import com.ruoyi.project.sems.domain.TSpecdevDt;
+import com.ruoyi.project.sems.mapper.TSpecdevDtMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,19 +24,23 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 特种设备电梯台账历史Controller
  *
  * @author ruoyi
  * @date 2021-09-02
  */
-@RestController
+@RestController("tSpechiDtController")
 @RequestMapping("/his/dt")
 public class TSpechiDtController extends BaseController
 {
     @Autowired
     private ITSpechiDtService tSpechiDtService;
 
+    @Resource
+    private TSpecdevDtMapper tSpecdevDtMapper;
     /**
      * 查询特种设备电梯台账历史列表
      */
@@ -114,4 +122,26 @@ public class TSpechiDtController extends BaseController
     {
         return toAjax(tSpechiDtService.deleteTSpechiDtByIds(ids));
     }
+
+    public void addOperLog(Object[] ids, String userName, Date operTime , String operType){
+        for (Object id: ids
+        ) {
+            TSpecdevDt dev = tSpecdevDtMapper.selectTSpecdevDtById(Long.parseLong(id.toString()));
+            dev.setCreateBy(userName);
+            dev.setCreateTime(operTime);
+            dev.setRemark(operType);
+            dev.setHiType(2l);
+            tSpechiDtService.insertTSpechiDtWithDev(dev);
+        }
+    }
+
+    public void addOperLog(String id ,String userName, Date operTime , String operType){
+        TSpecdevDt dev = tSpecdevDtMapper.selectTSpecdevDtById(Long.parseLong(id));
+        dev.setCreateBy(userName);
+        dev.setCreateTime(operTime);
+        dev.setRemark(operType);
+        dev.setHiType(2l);
+        tSpechiDtService.insertTSpechiDtWithDev(dev);
+    }
+
 }

+ 31 - 1
master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiDzsbController.java

@@ -1,6 +1,11 @@
 package com.ruoyi.project.sems.his.controller;
 
+import java.util.Date;
 import java.util.List;
+
+import com.ruoyi.project.sems.domain.TSpecdevDt;
+import com.ruoyi.project.sems.domain.TSpecdevDzsb;
+import com.ruoyi.project.sems.mapper.TSpecdevDzsbMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,18 +25,22 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 特种设备吊装设备台账历史Controller
  *
  * @author ruoyi
  * @date 2021-09-02
  */
-@RestController
+@RestController("tSpechiDzsbController")
 @RequestMapping("/his/dzsb")
 public class TSpechiDzsbController extends BaseController
 {
     @Autowired
     private ITSpechiDzsbService tSpechiDzsbService;
+    @Resource
+    TSpecdevDzsbMapper tSpecdevDzsbMapper;
 
     /**
      * 查询特种设备吊装设备台账历史列表
@@ -114,4 +123,25 @@ public class TSpechiDzsbController extends BaseController
     {
         return toAjax(tSpechiDzsbService.deleteTSpechiDzsbByIds(ids));
     }
+
+    public void addOperLog(Object[] ids, String userName, Date operTime , String operType){
+        for (Object id: ids
+        ) {
+            TSpecdevDzsb dev = tSpecdevDzsbMapper.selectTSpecdevDzsbById(Long.parseLong(id.toString()));
+            dev.setCreateBy(userName);
+            dev.setCreateTime(operTime);
+            dev.setRemark(operType);
+            dev.setHiType(2l);
+            tSpechiDzsbService.insertTSpechiDzsbWithDev(dev);
+        }
+    }
+
+    public void addOperLog(String id ,String userName, Date operTime , String operType){
+        TSpecdevDzsb dev = tSpecdevDzsbMapper.selectTSpecdevDzsbById(Long.parseLong(id));
+        dev.setCreateBy(userName);
+        dev.setCreateTime(operTime);
+        dev.setRemark(operType);
+        dev.setHiType(2l);
+        tSpechiDzsbService.insertTSpechiDzsbWithDev(dev);
+    }
 }

+ 30 - 1
master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiGlController.java

@@ -1,6 +1,11 @@
 package com.ruoyi.project.sems.his.controller;
 
+import java.util.Date;
 import java.util.List;
+
+import com.ruoyi.project.sems.domain.TSpecdevDzsb;
+import com.ruoyi.project.sems.domain.TSpecdevGl;
+import com.ruoyi.project.sems.mapper.TSpecdevGlMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,18 +25,22 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 特种设备锅炉台账历史Controller
  *
  * @author ruoyi
  * @date 2021-09-02
  */
-@RestController
+@RestController("tSpechiGlController")
 @RequestMapping("/his/gl")
 public class TSpechiGlController extends BaseController
 {
     @Autowired
     private ITSpechiGlService tSpechiGlService;
+    @Resource
+    private TSpecdevGlMapper tSpecdevGlMapper;
 
     /**
      * 查询特种设备锅炉台账历史列表
@@ -116,4 +125,24 @@ public class TSpechiGlController extends BaseController
         return toAjax(tSpechiGlService.deleteTSpechiGlByIds(ids));
     }
 
+    public void addOperLog(Object[] ids, String userName, Date operTime , String operType){
+        for (Object id: ids
+        ) {
+            TSpecdevGl dev = tSpecdevGlMapper.selectTSpecdevGlById(Long.parseLong(id.toString()));
+            dev.setCreateBy(userName);
+            dev.setCreateTime(operTime);
+            dev.setRemark(operType);
+            dev.setHiType(2l);
+            tSpechiGlService.insertTSpechiGlWithDev(dev);
+        }
+    }
+
+    public void addOperLog(String id ,String userName, Date operTime , String operType){
+        TSpecdevGl dev = tSpecdevGlMapper.selectTSpecdevGlById(Long.parseLong(id));
+        dev.setCreateBy(userName);
+        dev.setCreateTime(operTime);
+        dev.setRemark(operType);
+        dev.setHiType(2l);
+        tSpechiGlService.insertTSpechiGlWithDev(dev);
+    }
 }

+ 31 - 1
master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiYlgdController.java

@@ -1,6 +1,11 @@
 package com.ruoyi.project.sems.his.controller;
 
+import java.util.Date;
 import java.util.List;
+
+import com.ruoyi.project.sems.domain.TSpecdevGl;
+import com.ruoyi.project.sems.domain.TSpecdevYlgd;
+import com.ruoyi.project.sems.mapper.TSpecdevYlgdMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,18 +25,22 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 特种设备压力管道台账历史Controller
  *
  * @author ruoyi
  * @date 2021-09-02
  */
-@RestController
+@RestController("tSpechiYlgdController")
 @RequestMapping("/his/ylgd")
 public class TSpechiYlgdController extends BaseController
 {
     @Autowired
     private ITSpechiYlgdService tSpechiYlgdService;
+    @Resource
+    private TSpecdevYlgdMapper tSpecdevYlgdMapper;
 
     /**
      * 查询特种设备压力管道台账历史列表
@@ -114,4 +123,25 @@ public class TSpechiYlgdController extends BaseController
     {
         return toAjax(tSpechiYlgdService.deleteTSpechiYlgdByIds(ids));
     }
+
+    public void addOperLog(Object[] ids, String userName, Date operTime , String operType){
+        for (Object id: ids
+        ) {
+            TSpecdevYlgd dev = tSpecdevYlgdMapper.selectTSpecdevYlgdById(Long.parseLong(id.toString()));
+            dev.setCreateBy(userName);
+            dev.setCreateTime(operTime);
+            dev.setRemark(operType);
+            dev.setHiType(2l);
+            tSpechiYlgdService.insertTSpechiYlgdWithDev(dev);
+        }
+    }
+
+    public void addOperLog(String id ,String userName, Date operTime , String operType){
+        TSpecdevYlgd dev = tSpecdevYlgdMapper.selectTSpecdevYlgdById(Long.parseLong(id));
+        dev.setCreateBy(userName);
+        dev.setCreateTime(operTime);
+        dev.setRemark(operType);
+        dev.setHiType(2l);
+        tSpechiYlgdService.insertTSpechiYlgdWithDev(dev);
+    }
 }

+ 32 - 2
master/src/main/java/com/ruoyi/project/sems/his/controller/TSpechiYlrqController.java

@@ -1,6 +1,11 @@
 package com.ruoyi.project.sems.his.controller;
 
+import java.util.Date;
 import java.util.List;
+
+import com.ruoyi.project.sems.domain.TSpecdevYlgd;
+import com.ruoyi.project.sems.domain.TSpecdevYlrq;
+import com.ruoyi.project.sems.mapper.TSpecdevYlrqMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,19 +25,22 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 特种设备压力容器台账历史Controller
  *
  * @author ruoyi
  * @date 2021-09-02
  */
-@RestController
+@RestController("tSpechiYlrqController")
 @RequestMapping("/his/ylrq")
 public class TSpechiYlrqController extends BaseController
 {
     @Autowired
     private ITSpechiYlrqService tSpechiYlrqService;
-
+    @Resource
+    private TSpecdevYlrqMapper tSpecdevYlrqMapper;
     /**
      * 查询特种设备压力容器台账历史列表
      */
@@ -115,4 +123,26 @@ public class TSpechiYlrqController extends BaseController
     {
         return toAjax(tSpechiYlrqService.deleteTSpechiYlrqByIds(ids));
     }
+    public void addOperLog(Object[] ids, String userName, Date operTime , String operType){
+        for (Object id: ids
+        ) {
+            TSpecdevYlrq dev = tSpecdevYlrqMapper.selectTSpecdevYlrqById(Long.parseLong(id.toString()));
+            dev.setCreateBy(userName);
+            dev.setCreateTime(operTime);
+            dev.setRemark(operType);
+            dev.setHiType(2l);
+            tSpechiYlrqService.insertTSpechiYlrqWithDev(dev);
+        }
+    }
+
+    public void addOperLog(String id ,String userName, Date operTime , String operType){
+        TSpecdevYlrq dev = tSpecdevYlrqMapper.selectTSpecdevYlrqById(Long.parseLong(id));
+        dev.setCreateBy(userName);
+        dev.setCreateTime(operTime);
+        dev.setRemark(operType);
+        dev.setHiType(2l);
+        tSpechiYlrqService.insertTSpechiYlrqWithDev(dev);
+    }
+
+
 }

+ 34 - 0
master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiCc.java

@@ -214,8 +214,42 @@ public class TSpechiCc extends BaseEntity
     private String deptName;
 
     private  String perTestConclusion;
+    /** 操作人 */
+    @Excel(name = "操作人")
+    private String operName;
 
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date operTime;
 
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operType;
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public Date getOperTime() {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime) {
+        this.operTime = operTime;
+    }
+
+    public String getOperType() {
+        return operType;
+    }
+
+    public void setOperType(String operType) {
+        this.operType = operType;
+    }
 
     public String getUnit() {
         return unit;

+ 37 - 0
master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiDt.java

@@ -188,6 +188,43 @@ public class TSpechiDt extends BaseEntity
 
     private String perTestConclusion;
 
+    /** 操作人 */
+    @Excel(name = "操作人")
+    private String operName;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date operTime;
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operType;
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public Date getOperTime() {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime) {
+        this.operTime = operTime;
+    }
+
+    public String getOperType() {
+        return operType;
+    }
+
+    public void setOperType(String operType) {
+        this.operType = operType;
+    }
+
     public String getPerTestConclusion() {
         return perTestConclusion;
     }

+ 37 - 0
master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiDzsb.java

@@ -189,6 +189,43 @@ public class TSpechiDzsb extends BaseEntity
     @Excel(name = "部门名称")
     private String deptName;
 
+    /** 操作人 */
+    @Excel(name = "操作人")
+    private String operName;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date operTime;
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operType;
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public Date getOperTime() {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime) {
+        this.operTime = operTime;
+    }
+
+    public String getOperType() {
+        return operType;
+    }
+
+    public void setOperType(String operType) {
+        this.operType = operType;
+    }
+
     public String getPerTestConclusion() {
         return perTestConclusion;
     }

+ 37 - 0
master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiGl.java

@@ -208,6 +208,43 @@ public class TSpechiGl extends BaseEntity
     @Excel(name = "部门名称")
     private String deptName;
 
+    /** 操作人 */
+    @Excel(name = "操作人")
+    private String operName;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date operTime;
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operType;
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public Date getOperTime() {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime) {
+        this.operTime = operTime;
+    }
+
+    public String getOperType() {
+        return operType;
+    }
+
+    public void setOperType(String operType) {
+        this.operType = operType;
+    }
+
     public String getDeptName() {
         return deptName;
     }

+ 36 - 0
master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiYlgd.java

@@ -252,6 +252,42 @@ public class TSpechiYlgd extends BaseEntity
     /** 部门名称 */
 //    @Excel(name = "部门名称")
     private String deptName;
+    /** 操作人 */
+    @Excel(name = "操作人")
+    private String operName;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date operTime;
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operType;
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public Date getOperTime() {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime) {
+        this.operTime = operTime;
+    }
+
+    public String getOperType() {
+        return operType;
+    }
+
+    public void setOperType(String operType) {
+        this.operType = operType;
+    }
 
     public String getDeptName() {
         return deptName;

+ 37 - 0
master/src/main/java/com/ruoyi/project/sems/his/domain/TSpechiYlrq.java

@@ -228,6 +228,43 @@ public class TSpechiYlrq extends BaseEntity
     @Excel(name = "部门名称")
     private String deptName;
 
+    /** 操作人 */
+    @Excel(name = "操作人")
+    private String operName;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date operTime;
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String operType;
+
+    public String getOperName() {
+        return operName;
+    }
+
+    public void setOperName(String operName) {
+        this.operName = operName;
+    }
+
+    public Date getOperTime() {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime) {
+        this.operTime = operTime;
+    }
+
+    public String getOperType() {
+        return operType;
+    }
+
+    public void setOperType(String operType) {
+        this.operType = operType;
+    }
+
     public String getDeptName() {
         return deptName;
     }

+ 127 - 105
master/src/main/resources/mybatis/sems/his/TSpechiCcMapper.xml

@@ -1,115 +1,130 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.sems.his.mapper.TSpechiCcMapper">
 
     <resultMap type="TSpechiCc" id="TSpechiCcResult">
-        <result property="id"    column="id"    />
-        <result property="plantCode"    column="plant_code"    />
-        <result property="unit"    column="unit"    />
-        <result property="carNo"    column="car_no"    />
-        <result property="devname"    column="devname"    />
-        <result property="devno"    column="devno"    />
-        <result property="submitdate"    column="submitdate"    />
-        <result property="status"    column="status"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createrCode"    column="creater_code"    />
-        <result property="createdate"    column="createdate"    />
-        <result property="updaterCode"    column="updater_code"    />
-        <result property="updatedate"    column="updatedate"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="remarks"    column="remarks"    />
-        <result property="approveStatus"    column="approve_status"    />
-        <result property="regno"    column="regno"    />
-        <result property="useno"    column="useno"    />
-        <result property="warnDate"    column="warn_date"    />
-        <result property="warnCycle"    column="warn_cycle"    />
-        <result property="nextWarnDate"    column="next_warn_date"    />
-        <result property="warnFlag"    column="warn_flag"    />
-        <result property="createUnit"    column="create_unit"    />
-        <result property="checkStrategy"    column="check_strategy"    />
-        <result property="firstWarnDate"    column="first_warn_date"    />
-        <result property="checkUnit"    column="check_unit"    />
-        <result property="docno"    column="docno"    />
-        <result property="approveTime"    column="approve_time"    />
-        <result property="changeTime"    column="change_time"    />
-        <result property="engineNo"    column="engine_no"    />
-        <result property="color"    column="color"    />
-        <result property="capacity"    column="capacity"    />
-        <result property="model"    column="model"    />
-        <result property="engineType"    column="engine_type"    />
-        <result property="devClass"    column="dev_class"    />
-        <result property="exUnit"    column="ex_unit"    />
-        <result property="useDept"    column="use_dept"    />
-        <result property="engineer"    column="engineer"    />
-        <result property="exGrade"    column="ex_grade"    />
-        <result property="reportNo"    column="report_no"    />
-        <result property="frameNo"    column="frame_no"    />
-        <result property="productNo"    column="product_no"    />
-        <result property="assetOwner"    column="asset_owner"    />
-        <result property="devId"    column="dev_id"    />
-        <result property="hiType"    column="hi_type"    />
-        <result property="deptName" column="dept_name" />
-        <result property="plantMaint"    column="plant_maint"    />
-
+        <result property="id" column="id"/>
+        <result property="plantCode" column="plant_code"/>
+        <result property="unit" column="unit"/>
+        <result property="carNo" column="car_no"/>
+        <result property="devname" column="devname"/>
+        <result property="devno" column="devno"/>
+        <result property="submitdate" column="submitdate"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createrCode" column="creater_code"/>
+        <result property="createdate" column="createdate"/>
+        <result property="updaterCode" column="updater_code"/>
+        <result property="updatedate" column="updatedate"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="remarks" column="remarks"/>
+        <result property="approveStatus" column="approve_status"/>
+        <result property="regno" column="regno"/>
+        <result property="useno" column="useno"/>
+        <result property="warnDate" column="warn_date"/>
+        <result property="warnCycle" column="warn_cycle"/>
+        <result property="nextWarnDate" column="next_warn_date"/>
+        <result property="warnFlag" column="warn_flag"/>
+        <result property="createUnit" column="create_unit"/>
+        <result property="checkStrategy" column="check_strategy"/>
+        <result property="firstWarnDate" column="first_warn_date"/>
+        <result property="checkUnit" column="check_unit"/>
+        <result property="docno" column="docno"/>
+        <result property="approveTime" column="approve_time"/>
+        <result property="changeTime" column="change_time"/>
+        <result property="engineNo" column="engine_no"/>
+        <result property="color" column="color"/>
+        <result property="capacity" column="capacity"/>
+        <result property="model" column="model"/>
+        <result property="engineType" column="engine_type"/>
+        <result property="devClass" column="dev_class"/>
+        <result property="exUnit" column="ex_unit"/>
+        <result property="useDept" column="use_dept"/>
+        <result property="engineer" column="engineer"/>
+        <result property="exGrade" column="ex_grade"/>
+        <result property="reportNo" column="report_no"/>
+        <result property="frameNo" column="frame_no"/>
+        <result property="productNo" column="product_no"/>
+        <result property="assetOwner" column="asset_owner"/>
+        <result property="devId" column="dev_id"/>
+        <result property="hiType" column="hi_type"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="plantMaint" column="plant_maint"/>
+        <result property="operName" column="oper_name"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="operType" column="oper_type"/>
+        <result property="deptName" column="dept_name"/>
     </resultMap>
 
     <sql id="selectTSpechiCcVo">
-        select d.id, d.plant_code, d.unit, d.plant_maint,d.car_no, d.devname, d.devno, d.submitdate, d.status, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status, d.regno, d.useno, d.warn_date, d.warn_cycle, d.next_warn_date, d.warn_flag, d.create_unit, d.check_strategy, d.first_warn_date, d.check_unit, d.docno, d.approve_time, d.change_time, d.engine_no, d.color, d.capacity, d.model, d.engine_type, d.dev_class, d.ex_unit, d.use_dept, d.engineer, d.ex_grade, d.report_no, d.frame_no, d.product_no, d.asset_owner, d.dev_id, d.hi_type ,s.dept_name from t_spechi_cc d
-      left join sys_dept s on s.dept_id = d.dept_id
+        select d.id,
+               d.plant_code,
+               d.oper_name,
+               d.oper_time,
+               d.oper_type,
+               d.unit,
+               d.plant_maint,
+               d.car_no,
+               d.devname,
+               d.devno,
+               d.submitdate,
+               d.status,
+               d.del_flag,
+               d.creater_code,
+               d.createdate,
+               d.updater_code,
+               d.updatedate,
+               d.dept_id,
+               d.remarks,
+               d.approve_status,
+               d.regno,
+               d.useno,
+               d.warn_date,
+               d.warn_cycle,
+               d.next_warn_date,
+               d.warn_flag,
+               d.create_unit,
+               d.check_strategy,
+               d.first_warn_date,
+               d.check_unit,
+               d.docno,
+               d.approve_time,
+               d.change_time,
+               d.engine_no,
+               d.color,
+               d.capacity,
+               d.model,
+               d.engine_type,
+               d.dev_class,
+               d.ex_unit,
+               d.use_dept,
+               d.engineer,
+               d.ex_grade,
+               d.report_no,
+               d.frame_no,
+               d.product_no,
+               d.asset_owner,
+               d.dev_id,
+               d.hi_type,
+               s.dept_name
+        from t_spechi_cc d
+                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTSpechiCcList" parameterType="TSpechiCc" resultMap="TSpechiCcResult">
         <include refid="selectTSpechiCcVo"/>
         <where>
-            <if test="plantCode != null  and plantCode != ''"> and plant_code = #{plantCode}</if>
-            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
-            <if test="carNo != null  and carNo != ''"> and car_no = #{carNo}</if>
-            <if test="devname != null  and devname != ''"> and devname like concat(concat('%', #{devname}), '%')</if>
-            <if test="devno != null  and devno != ''"> and devno = #{devno}</if>
-            <if test="submitdate != null "> and submitdate = #{submitdate}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
-            <if test="createdate != null "> and createdate = #{createdate}</if>
-            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
-            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
-            <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
-            <if test="regno != null  and regno != ''"> and regno = #{regno}</if>
-            <if test="useno != null  and useno != ''"> and useno = #{useno}</if>
-            <if test="warnDate != null "> and warn_date = #{warnDate}</if>
-            <if test="warnCycle != null "> and warn_cycle = #{warnCycle}</if>
-            <if test="nextWarnDate != null "> and next_warn_date = #{nextWarnDate}</if>
-            <if test="warnFlag != null "> and warn_flag = #{warnFlag}</if>
-            <if test="createUnit != null  and createUnit != ''"> and create_unit = #{createUnit}</if>
-            <if test="checkStrategy != null  and checkStrategy != ''"> and check_strategy = #{checkStrategy}</if>
-            <if test="firstWarnDate != null "> and first_warn_date = #{firstWarnDate}</if>
-            <if test="checkUnit != null  and checkUnit != ''"> and check_unit = #{checkUnit}</if>
-            <if test="docno != null  and docno != ''"> and docno = #{docno}</if>
-            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
-            <if test="changeTime != null "> and change_time = #{changeTime}</if>
-            <if test="engineNo != null  and engineNo != ''"> and engine_no = #{engineNo}</if>
-            <if test="color != null  and color != ''"> and color = #{color}</if>
-            <if test="capacity != null  and capacity != ''"> and capacity = #{capacity}</if>
-            <if test="model != null  and model != ''"> and model = #{model}</if>
-            <if test="engineType != null  and engineType != ''"> and engine_type = #{engineType}</if>
-            <if test="devClass != null  and devClass != ''"> and dev_class = #{devClass}</if>
-            <if test="exUnit != null  and exUnit != ''"> and ex_unit = #{exUnit}</if>
-            <if test="useDept != null  and useDept != ''"> and use_dept = #{useDept}</if>
-            <if test="engineer != null  and engineer != ''"> and engineer = #{engineer}</if>
-            <if test="exGrade != null  and exGrade != ''"> and ex_grade = #{exGrade}</if>
-            <if test="reportNo != null  and reportNo != ''"> and report_no = #{reportNo}</if>
-            <if test="frameNo != null  and frameNo != ''"> and frame_no = #{frameNo}</if>
-            <if test="productNo != null  and productNo != ''"> and product_no = #{productNo}</if>
-            <if test="assetOwner != null  and assetOwner != ''"> and asset_owner = #{assetOwner}</if>
-            <if test="devId != null "> and dev_id = #{devId}</if>
-            <if test="hiType != null "> and hi_type = #{hiType}</if>
+
+            <if test="operName != null  and operName != ''"> and oper_name like concat(concat('%', #{operName}), '%')</if>
+            <if test="operTime != null "> and oper_time = #{operTime}</if>
+            <if test="operType != null  and operType != ''"> and oper_type like concat(concat('%', #{operType}), '%')</if>
+
             and d.del_flag = 0
+            and d.hi_type = 2
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        order by d.oper_time desc
     </select>
 
     <select id="selectTSpechiCcById" parameterType="Long" resultMap="TSpechiCcResult">
@@ -140,7 +155,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -178,7 +192,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
             <if test="plantMaint != null">plant_maint,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="plantCode != null and plantCode != ''">#{plantCode},</if>
@@ -188,7 +202,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -226,7 +239,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
             <if test="plantMaint != null">#{plantMaint},</if>
-         </trim>
+        </trim>
     </insert>
 
     <insert id="insertTSpechiCcByDev" parameterType="com.ruoyi.project.sems.domain.TSpecdevCc">
@@ -243,7 +256,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -281,6 +293,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
             <if test="plantMaint != null">plant_maint,</if>
+            <if test="createBy != null">oper_name,</if>
+            <if test="createTime != null">oper_time,</if>
+            <if test="remark != null">oper_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -291,7 +306,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -329,6 +343,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
             <if test="plantMaint != null">#{plantMaint},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
         </trim>
     </insert>
 
@@ -385,7 +402,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiCcById" parameterType="Long">
-        update t_spechi_cc set del_flag = 2 where id = #{id}
+        update t_spechi_cc
+        set del_flag = 2
+        where id = #{id}
     </update>
 
     <update id="deleteTSpechiCcByIds" parameterType="String">
@@ -396,6 +415,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiCcByDevId" parameterType="Long">
-        update t_spechi_cc set del_flag = 2 where dev_id = #{devId} and hi_type = 1
+        update t_spechi_cc
+        set del_flag = 2
+        where dev_id = #{devId}
+          and hi_type = 1
     </update>
 </mapper>

+ 110 - 89
master/src/main/resources/mybatis/sems/his/TSpechiDtMapper.xml

@@ -1,99 +1,113 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.sems.his.mapper.TSpechiDtMapper">
 
     <resultMap type="TSpechiDt" id="TSpechiDtResult">
-        <result property="id"    column="id"    />
-        <result property="plantCode"    column="plant_code"    />
-        <result property="unit"    column="unit"    />
-        <result property="devname"    column="devname"    />
-        <result property="devno"    column="devno"    />
-        <result property="createdate"    column="createdate"    />
-        <result property="submitdate"    column="submitdate"    />
-        <result property="status"    column="status"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createrCode"    column="creater_code"    />
-        <result property="createrDate"    column="creater_date"    />
-        <result property="updaterCode"    column="updater_code"    />
-        <result property="updaterDate"    column="updater_date"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="remarks"    column="remarks"    />
-        <result property="approveStatus"    column="approve_status"    />
-        <result property="regno"    column="regno"    />
-        <result property="useno"    column="useno"    />
-        <result property="warnDate"    column="warn_date"    />
-        <result property="warnCycle"    column="warn_cycle"    />
-        <result property="nextWarnDate"    column="next_warn_date"    />
-        <result property="warnFlag"    column="warn_flag"    />
-        <result property="model"    column="model"    />
-        <result property="capacity"    column="capacity"    />
-        <result property="floor"    column="floor"    />
-        <result property="createUnit"    column="create_unit"    />
-        <result property="maintContractor"    column="maint_contractor"    />
-        <result property="location"    column="location"    />
-        <result property="checkStrategy"    column="check_strategy"    />
-        <result property="firstWarnDate"    column="first_warn_date"    />
-        <result property="checkUnit"    column="check_unit"    />
-        <result property="docno"    column="docno"    />
-        <result property="approveTime"    column="approve_time"    />
-        <result property="changeTime"    column="change_time"    />
-        <result property="reportNo"    column="report_no"    />
-        <result property="devId"    column="dev_id"    />
-        <result property="hiType"    column="hi_type"    />
-        <result property="deptName" column="dept_name" />
-        <result property="useDept"    column="use_dept"    />
-        <result property="plantMaint"    column="plant_maint"    />
+        <result property="id" column="id"/>
+        <result property="plantCode" column="plant_code"/>
+        <result property="unit" column="unit"/>
+        <result property="devname" column="devname"/>
+        <result property="devno" column="devno"/>
+        <result property="createdate" column="createdate"/>
+        <result property="submitdate" column="submitdate"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createrCode" column="creater_code"/>
+        <result property="createrDate" column="creater_date"/>
+        <result property="updaterCode" column="updater_code"/>
+        <result property="updaterDate" column="updater_date"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="remarks" column="remarks"/>
+        <result property="approveStatus" column="approve_status"/>
+        <result property="regno" column="regno"/>
+        <result property="useno" column="useno"/>
+        <result property="warnDate" column="warn_date"/>
+        <result property="warnCycle" column="warn_cycle"/>
+        <result property="nextWarnDate" column="next_warn_date"/>
+        <result property="warnFlag" column="warn_flag"/>
+        <result property="model" column="model"/>
+        <result property="capacity" column="capacity"/>
+        <result property="floor" column="floor"/>
+        <result property="createUnit" column="create_unit"/>
+        <result property="maintContractor" column="maint_contractor"/>
+        <result property="location" column="location"/>
+        <result property="checkStrategy" column="check_strategy"/>
+        <result property="firstWarnDate" column="first_warn_date"/>
+        <result property="checkUnit" column="check_unit"/>
+        <result property="docno" column="docno"/>
+        <result property="approveTime" column="approve_time"/>
+        <result property="changeTime" column="change_time"/>
+        <result property="reportNo" column="report_no"/>
+        <result property="devId" column="dev_id"/>
+        <result property="hiType" column="hi_type"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="useDept" column="use_dept"/>
+        <result property="plantMaint" column="plant_maint"/>
+        <result property="operName" column="oper_name"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="operType" column="oper_type"/>
     </resultMap>
 
     <sql id="selectTSpechiDtVo">
-        select d.id, d.plant_code, d.plant_maint,d.use_dept,d.unit, d.devname, d.devno, d.createdate, d.submitdate, d.status, d.del_flag, d.creater_code, d.creater_date, d.updater_code, d.updater_date, d.dept_id, d.remarks, d.approve_status, d.regno, d.useno, d.warn_date, d.warn_cycle, d.next_warn_date, d.warn_flag, d.model, d.capacity, d.floor, d.create_unit, d.maint_contractor, d.location, d.check_strategy, d.first_warn_date, d.check_unit, d.docno, d.approve_time, d.change_time, d.report_no, d.dev_id, d.hi_type ,s.dept_name from t_spechi_dt d
-      left join sys_dept s on s.dept_id = d.dept_id
+        select d.id,
+               d.plant_code,
+               d.oper_name,
+               d.oper_time,
+               d.oper_type,
+               d.plant_maint,
+               d.use_dept,
+               d.unit,
+               d.devname,
+               d.devno,
+               d.createdate,
+               d.submitdate,
+               d.status,
+               d.del_flag,
+               d.creater_code,
+               d.creater_date,
+               d.updater_code,
+               d.updater_date,
+               d.dept_id,
+               d.remarks,
+               d.approve_status,
+               d.regno,
+               d.useno,
+               d.warn_date,
+               d.warn_cycle,
+               d.next_warn_date,
+               d.warn_flag,
+               d.model,
+               d.capacity,
+               d.floor,
+               d.create_unit,
+               d.maint_contractor,
+               d.location,
+               d.check_strategy,
+               d.first_warn_date,
+               d.check_unit,
+               d.docno,
+               d.approve_time,
+               d.change_time,
+               d.report_no,
+               d.dev_id,
+               d.hi_type,
+               s.dept_name
+        from t_spechi_dt d
+                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTSpechiDtList" parameterType="TSpechiDt" resultMap="TSpechiDtResult">
         <include refid="selectTSpechiDtVo"/>
         <where>
-            <if test="plantCode != null  and plantCode != ''"> and plant_code = #{plantCode}</if>
-            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
-            <if test="devname != null  and devname != ''"> and devname like concat(concat('%', #{devname}), '%')</if>
-            <if test="devno != null  and devno != ''"> and devno = #{devno}</if>
-            <if test="createdate != null "> and createdate = #{createdate}</if>
-            <if test="submitdate != null "> and submitdate = #{submitdate}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
-            <if test="createrDate != null "> and creater_date = #{createrDate}</if>
-            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
-            <if test="updaterDate != null "> and updater_date = #{updaterDate}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
-            <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
-            <if test="regno != null  and regno != ''"> and regno = #{regno}</if>
-            <if test="useno != null  and useno != ''"> and useno = #{useno}</if>
-            <if test="warnDate != null "> and warn_date = #{warnDate}</if>
-            <if test="warnCycle != null "> and warn_cycle = #{warnCycle}</if>
-            <if test="nextWarnDate != null "> and next_warn_date = #{nextWarnDate}</if>
-            <if test="warnFlag != null "> and warn_flag = #{warnFlag}</if>
-            <if test="model != null  and model != ''"> and model = #{model}</if>
-            <if test="capacity != null  and capacity != ''"> and capacity = #{capacity}</if>
-            <if test="floor != null  and floor != ''"> and floor = #{floor}</if>
-            <if test="createUnit != null  and createUnit != ''"> and create_unit = #{createUnit}</if>
-            <if test="maintContractor != null  and maintContractor != ''"> and maint_contractor = #{maintContractor}</if>
-            <if test="location != null  and location != ''"> and location = #{location}</if>
-            <if test="checkStrategy != null  and checkStrategy != ''"> and check_strategy = #{checkStrategy}</if>
-            <if test="firstWarnDate != null "> and first_warn_date = #{firstWarnDate}</if>
-            <if test="checkUnit != null  and checkUnit != ''"> and check_unit = #{checkUnit}</if>
-            <if test="docno != null  and docno != ''"> and docno = #{docno}</if>
-            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
-            <if test="changeTime != null "> and change_time = #{changeTime}</if>
-            <if test="reportNo != null  and reportNo != ''"> and report_no = #{reportNo}</if>
-            <if test="devId != null "> and dev_id = #{devId}</if>
-            <if test="hiType != null "> and hi_type = #{hiType}</if>
+            <if test="operName != null  and operName != ''"> and oper_name like concat(concat('%', #{operName}), '%')</if>
+            <if test="operTime != null "> and oper_time = #{operTime}</if>
+            <if test="operType != null  and operType != ''"> and oper_type like concat(concat('%', #{operType}), '%')</if>
             and d.del_flag = 0
+            and d.hi_type = 2
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        order by d.oper_time desc
     </select>
 
     <select id="selectTSpechiDtById" parameterType="Long" resultMap="TSpechiDtResult">
@@ -125,7 +139,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createdate != null">createdate,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createrDate != null">creater_date,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -156,7 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">hi_type,</if>
             <if test="plantMaint != null">plant_maint,</if>
             <if test="useDept != null">use_dept,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="plantCode != null and plantCode != ''">#{plantCode},</if>
@@ -166,7 +179,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createdate != null">#{createdate},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createrDate != null">#{createrDate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -197,7 +209,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">#{hiType},</if>
             <if test="plantMaint != null">#{plantMaint},</if>
             <if test="useDept != null">#{useDept},</if>
-         </trim>
+        </trim>
     </insert>
 
     <insert id="insertTSpechiDtByDev" parameterType="com.ruoyi.project.sems.domain.TSpecdevDt">
@@ -214,7 +226,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createdate != null">createdate,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createrDate != null">creater_date,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -245,6 +256,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">hi_type,</if>
             <if test="plantMaint != null">plant_maint,</if>
             <if test="useDept != null">use_dept,</if>
+            <if test="createBy != null">oper_name,</if>
+            <if test="createTime != null">oper_time,</if>
+            <if test="remark != null">oper_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -255,7 +269,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createdate != null">#{createdate},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createrDate != null">#{createrDate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -286,6 +299,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">#{hiType},</if>
             <if test="plantMaint != null">#{plantMaint},</if>
             <if test="useDept != null">#{useDept},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
         </trim>
     </insert>
 
@@ -335,7 +351,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiDtById" parameterType="Long">
-        update t_spechi_dt set del_flag = 2 where id = #{id}
+        update t_spechi_dt
+        set del_flag = 2
+        where id = #{id}
     </update>
 
     <update id="deleteTSpechiDtByIds" parameterType="String">
@@ -346,6 +364,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiDtByDevId" parameterType="Long">
-        update t_spechi_dt set del_flag = 2 where dev_id = #{devId} and hi_type = 1
+        update t_spechi_dt
+        set del_flag = 2
+        where dev_id = #{devId}
+          and hi_type = 1
     </update>
 </mapper>

+ 108 - 87
master/src/main/resources/mybatis/sems/his/TSpechiDzsbMapper.xml

@@ -1,99 +1,113 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.sems.his.mapper.TSpechiDzsbMapper">
 
     <resultMap type="TSpechiDzsb" id="TSpechiDzsbResult">
-        <result property="id"    column="id"    />
-        <result property="plantCode"    column="plant_code"    />
-        <result property="unit"    column="unit"    />
-        <result property="devname"    column="devname"    />
-        <result property="devno"    column="devno"    />
-        <result property="submitdate"    column="submitdate"    />
-        <result property="status"    column="status"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createrCode"    column="creater_code"    />
-        <result property="createdate"    column="createdate"    />
-        <result property="updaterCode"    column="updater_code"    />
-        <result property="updatedate"    column="updatedate"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="remarks"    column="remarks"    />
-        <result property="approveStatus"    column="approve_status"    />
-        <result property="regno"    column="regno"    />
-        <result property="useno"    column="useno"    />
-        <result property="warnDate"    column="warn_date"    />
-        <result property="warnCycle"    column="warn_cycle"    />
-        <result property="nextWarnDate"    column="next_warn_date"    />
-        <result property="warnFlag"    column="warn_flag"    />
-        <result property="plantMaint"    column="plant_maint"    />
-        <result property="docno"    column="docno"    />
-        <result property="model"    column="model"    />
-        <result property="capacity"    column="capacity"    />
-        <result property="location"    column="location"    />
-        <result property="createUnit"    column="create_unit"    />
-        <result property="checkStrategy"    column="check_strategy"    />
-        <result property="yearMaint"    column="year_maint"    />
-        <result property="reportNo"    column="report_no"    />
-        <result property="approveTime"    column="approve_time"    />
-        <result property="changeTime"    column="change_time"    />
-        <result property="checkUnit"    column="check_unit"    />
-        <result property="engineer"    column="engineer"    />
-        <result property="isEx"    column="is_ex"    />
-        <result property="devId"    column="dev_id"    />
-        <result property="hiType"    column="hi_type"    />
-        <result property="deptName" column="dept_name" />
+        <result property="id" column="id"/>
+        <result property="plantCode" column="plant_code"/>
+        <result property="unit" column="unit"/>
+        <result property="devname" column="devname"/>
+        <result property="devno" column="devno"/>
+        <result property="submitdate" column="submitdate"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createrCode" column="creater_code"/>
+        <result property="createdate" column="createdate"/>
+        <result property="updaterCode" column="updater_code"/>
+        <result property="updatedate" column="updatedate"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="remarks" column="remarks"/>
+        <result property="approveStatus" column="approve_status"/>
+        <result property="regno" column="regno"/>
+        <result property="useno" column="useno"/>
+        <result property="warnDate" column="warn_date"/>
+        <result property="warnCycle" column="warn_cycle"/>
+        <result property="nextWarnDate" column="next_warn_date"/>
+        <result property="warnFlag" column="warn_flag"/>
+        <result property="plantMaint" column="plant_maint"/>
+        <result property="docno" column="docno"/>
+        <result property="model" column="model"/>
+        <result property="capacity" column="capacity"/>
+        <result property="location" column="location"/>
+        <result property="createUnit" column="create_unit"/>
+        <result property="checkStrategy" column="check_strategy"/>
+        <result property="yearMaint" column="year_maint"/>
+        <result property="reportNo" column="report_no"/>
+        <result property="approveTime" column="approve_time"/>
+        <result property="changeTime" column="change_time"/>
+        <result property="checkUnit" column="check_unit"/>
+        <result property="engineer" column="engineer"/>
+        <result property="isEx" column="is_ex"/>
+        <result property="devId" column="dev_id"/>
+        <result property="hiType" column="hi_type"/>
+        <result property="deptName" column="dept_name"/>
         <result property="factoryNo" column="factory_no"/>
         <result property="devCode" column="dev_code"/>
+        <result property="operName" column="oper_name"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="operType" column="oper_type"/>
     </resultMap>
 
     <sql id="selectTSpechiDzsbVo">
-        select d.id, d.plant_code, d.unit, d.devname, d.devno,d.dev_code,d.factory_no, d.submitdate, d.status, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status, d.regno, d.useno, d.warn_date, d.warn_cycle, d.next_warn_date, d.warn_flag, d.plant_maint, d.docno, d.model, d.capacity, d.location, d.create_unit, d.check_strategy, d.year_maint, d.report_no, d.approve_time, d.change_time, d.check_unit, d.engineer, d.is_ex, d.dev_id, d.hi_type ,s.dept_name from t_spechi_dzsb d
-      left join sys_dept s on s.dept_id = d.dept_id
+        select d.id,
+               d.plant_code,
+               d.oper_name,
+               d.oper_time,
+               d.oper_type,
+               d.unit,
+               d.devname,
+               d.devno,
+               d.dev_code,
+               d.factory_no,
+               d.submitdate,
+               d.status,
+               d.del_flag,
+               d.creater_code,
+               d.createdate,
+               d.updater_code,
+               d.updatedate,
+               d.dept_id,
+               d.remarks,
+               d.approve_status,
+               d.regno,
+               d.useno,
+               d.warn_date,
+               d.warn_cycle,
+               d.next_warn_date,
+               d.warn_flag,
+               d.plant_maint,
+               d.docno,
+               d.model,
+               d.capacity,
+               d.location,
+               d.create_unit,
+               d.check_strategy,
+               d.year_maint,
+               d.report_no,
+               d.approve_time,
+               d.change_time,
+               d.check_unit,
+               d.engineer,
+               d.is_ex,
+               d.dev_id,
+               d.hi_type,
+               s.dept_name
+        from t_spechi_dzsb d
+                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTSpechiDzsbList" parameterType="TSpechiDzsb" resultMap="TSpechiDzsbResult">
         <include refid="selectTSpechiDzsbVo"/>
         <where>
-            <if test="plantCode != null  and plantCode != ''"> and plant_code = #{plantCode}</if>
-            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
-            <if test="devname != null  and devname != ''"> and devname like concat(concat('%', #{devname}), '%')</if>
-            <if test="devno != null  and devno != ''"> and devno = #{devno}</if>
-            <if test="submitdate != null "> and submitdate = #{submitdate}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
-            <if test="createdate != null "> and createdate = #{createdate}</if>
-            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
-            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
-            <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
-            <if test="regno != null  and regno != ''"> and regno = #{regno}</if>
-            <if test="useno != null  and useno != ''"> and useno = #{useno}</if>
-            <if test="warnDate != null "> and warn_date = #{warnDate}</if>
-            <if test="warnCycle != null "> and warn_cycle = #{warnCycle}</if>
-            <if test="nextWarnDate != null "> and next_warn_date = #{nextWarnDate}</if>
-            <if test="warnFlag != null "> and warn_flag = #{warnFlag}</if>
-            <if test="plantMaint != null  and plantMaint != ''"> and plant_maint = #{plantMaint}</if>
-            <if test="docno != null  and docno != ''"> and docno = #{docno}</if>
-            <if test="model != null  and model != ''"> and model = #{model}</if>
-            <if test="capacity != null  and capacity != ''"> and capacity = #{capacity}</if>
-            <if test="location != null  and location != ''"> and location = #{location}</if>
-            <if test="createUnit != null  and createUnit != ''"> and create_unit = #{createUnit}</if>
-            <if test="checkStrategy != null  and checkStrategy != ''"> and check_strategy = #{checkStrategy}</if>
-            <if test="yearMaint != null "> and year_maint = #{yearMaint}</if>
-            <if test="reportNo != null  and reportNo != ''"> and report_no = #{reportNo}</if>
-            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
-            <if test="changeTime != null "> and change_time = #{changeTime}</if>
-            <if test="checkUnit != null  and checkUnit != ''"> and check_unit = #{checkUnit}</if>
-            <if test="engineer != null  and engineer != ''"> and engineer = #{engineer}</if>
-            <if test="isEx != null  and isEx != ''"> and is_ex = #{isEx}</if>
-            <if test="devId != null "> and dev_id = #{devId}</if>
-            <if test="hiType != null "> and hi_type = #{hiType}</if>
+            <if test="operName != null  and operName != ''"> and oper_name like concat(concat('%', #{operName}), '%')</if>
+            <if test="operTime != null "> and oper_time = #{operTime}</if>
+            <if test="operType != null  and operType != ''"> and oper_type like concat(concat('%', #{operType}), '%')</if>
             and d.del_flag = 0
+            and d.hi_type = 2
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        order by d.oper_time desc
     </select>
 
     <select id="selectTSpechiDzsbById" parameterType="Long" resultMap="TSpechiDzsbResult">
@@ -123,7 +137,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -155,7 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">hi_type,</if>
             <if test="factoryNo != null">factory_no,</if>
             <if test="devCode != null">dev_code,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="plantCode != null and plantCode != ''">#{plantCode},</if>
@@ -164,7 +177,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -196,7 +208,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">#{hiType},</if>
             <if test="factoryNo != null">#{factoryNo},</if>
             <if test="devCode != null">#{devCode},</if>
-         </trim>
+        </trim>
     </insert>
 
     <insert id="insertTSpechiDzsbByDev" parameterType="com.ruoyi.project.sems.domain.TSpecdevDzsb">
@@ -212,7 +224,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -244,6 +255,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">hi_type,</if>
             <if test="factoryNo != null">factory_no,</if>
             <if test="devCode != null">dev_code,</if>
+            <if test="createBy != null">oper_name,</if>
+            <if test="createTime != null">oper_time,</if>
+            <if test="remark != null">oper_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -253,7 +267,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -285,6 +298,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hiType != null">#{hiType},</if>
             <if test="factoryNo != null">#{factoryNo},</if>
             <if test="devCode != null">#{devCode},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
         </trim>
     </insert>
 
@@ -334,7 +350,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiDzsbById" parameterType="Long">
-        update t_spechi_dzsb set del_flag = 2 where id = #{id}
+        update t_spechi_dzsb
+        set del_flag = 2
+        where id = #{id}
     </update>
 
     <update id="deleteTSpechiDzsbByIds" parameterType="String">
@@ -345,6 +363,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiDzsbByDevId" parameterType="Long">
-        update t_spechi_dzsb set del_flag = 2 where dev_id = #{devId} and hi_type = 1
+        update t_spechi_dzsb
+        set del_flag = 2
+        where dev_id = #{devId}
+          and hi_type = 1
     </update>
 </mapper>

+ 120 - 101
master/src/main/resources/mybatis/sems/his/TSpechiGlMapper.xml

@@ -1,111 +1,123 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.sems.his.mapper.TSpechiGlMapper">
 
     <resultMap type="TSpechiGl" id="TSpechiGlResult">
-        <result property="id"    column="id"    />
-        <result property="plantCode"    column="plant_code"    />
-        <result property="unit"    column="unit"    />
-        <result property="devname"    column="devname"    />
-        <result property="devno"    column="devno"    />
-        <result property="submitdate"    column="submitdate"    />
-        <result property="status"    column="status"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createrCode"    column="creater_code"    />
-        <result property="createdate"    column="createdate"    />
-        <result property="updaterCode"    column="updater_code"    />
-        <result property="updatedate"    column="updatedate"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="remarks"    column="remarks"    />
-        <result property="approveStatus"    column="approve_status"    />
-        <result property="regno"    column="regno"    />
-        <result property="useno"    column="useno"    />
-        <result property="warnDate"    column="warn_date"    />
-        <result property="warnCycle"    column="warn_cycle"    />
-        <result property="nextWarnDate"    column="next_warn_date"    />
-        <result property="warnFlag"    column="warn_flag"    />
-        <result property="createUnit"    column="create_unit"    />
-        <result property="burnMode"    column="burn_mode"    />
-        <result property="burnKind"    column="burn_kind"    />
-        <result property="ratedPower"    column="rated_power"    />
-        <result property="desPressure"    column="des_pressure"    />
-        <result property="desTemp"    column="des_temp"    />
-        <result property="optPressure"    column="opt_pressure"    />
-        <result property="optTemp"    column="opt_temp"    />
-        <result property="checkUnit"    column="check_unit"    />
-        <result property="checkConclusion"    column="check_conclusion"    />
-        <result property="model"    column="model"    />
-        <result property="waterMode"    column="water_mode"    />
-        <result property="reportNo"    column="report_no"    />
-        <result property="approveTime"    column="approve_time"    />
-        <result property="changeTime"    column="change_time"    />
-        <result property="plantMaint"    column="plant_maint"    />
-        <result property="outWarnDate"    column="out_warn_date"    />
-        <result property="outNextWarnDate"    column="out_next_warn_date"    />
-        <result property="outCheckConclusion"    column="out_check_conclusion"    />
-        <result property="outReportNo"    column="out_report_no"    />
-        <result property="engineer"    column="engineer"    />
-        <result property="devId"    column="dev_id"    />
-        <result property="hiType"    column="hi_type"    />
-        <result property="deptName" column="dept_name" />
+        <result property="id" column="id"/>
+        <result property="plantCode" column="plant_code"/>
+        <result property="unit" column="unit"/>
+        <result property="devname" column="devname"/>
+        <result property="devno" column="devno"/>
+        <result property="submitdate" column="submitdate"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createrCode" column="creater_code"/>
+        <result property="createdate" column="createdate"/>
+        <result property="updaterCode" column="updater_code"/>
+        <result property="updatedate" column="updatedate"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="remarks" column="remarks"/>
+        <result property="approveStatus" column="approve_status"/>
+        <result property="regno" column="regno"/>
+        <result property="useno" column="useno"/>
+        <result property="warnDate" column="warn_date"/>
+        <result property="warnCycle" column="warn_cycle"/>
+        <result property="nextWarnDate" column="next_warn_date"/>
+        <result property="warnFlag" column="warn_flag"/>
+        <result property="createUnit" column="create_unit"/>
+        <result property="burnMode" column="burn_mode"/>
+        <result property="burnKind" column="burn_kind"/>
+        <result property="ratedPower" column="rated_power"/>
+        <result property="desPressure" column="des_pressure"/>
+        <result property="desTemp" column="des_temp"/>
+        <result property="optPressure" column="opt_pressure"/>
+        <result property="optTemp" column="opt_temp"/>
+        <result property="checkUnit" column="check_unit"/>
+        <result property="checkConclusion" column="check_conclusion"/>
+        <result property="model" column="model"/>
+        <result property="waterMode" column="water_mode"/>
+        <result property="reportNo" column="report_no"/>
+        <result property="approveTime" column="approve_time"/>
+        <result property="changeTime" column="change_time"/>
+        <result property="plantMaint" column="plant_maint"/>
+        <result property="outWarnDate" column="out_warn_date"/>
+        <result property="outNextWarnDate" column="out_next_warn_date"/>
+        <result property="outCheckConclusion" column="out_check_conclusion"/>
+        <result property="outReportNo" column="out_report_no"/>
+        <result property="engineer" column="engineer"/>
+        <result property="devId" column="dev_id"/>
+        <result property="hiType" column="hi_type"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="operName" column="oper_name"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="operType" column="oper_type"/>
     </resultMap>
 
     <sql id="selectTSpechiGlVo">
-        select d.id, d.plant_code, d.unit, d.devname, d.devno, d.submitdate, d.status, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status, d.regno, d.useno, d.warn_date, d.warn_cycle, d.next_warn_date, d.warn_flag, d.create_unit, d.burn_mode, d.burn_kind, d.rated_power, d.des_pressure, d.des_temp, d.opt_pressure, d.opt_temp, d.check_unit, d.check_conclusion, d.model, d.water_mode, d.report_no, d.approve_time, d.change_time, d.plant_maint, d.out_warn_date, d.out_next_warn_date, d.out_check_conclusion, d.out_report_no, d.engineer, d.dev_id, d.hi_type ,s.dept_name from t_spechi_gl d
-      left join sys_dept s on s.dept_id = d.dept_id
+        select d.id,
+               d.plant_code,
+               d.oper_name,
+               d.oper_time,
+               d.oper_type,
+               d.unit,
+               d.devname,
+               d.devno,
+               d.submitdate,
+               d.status,
+               d.del_flag,
+               d.creater_code,
+               d.createdate,
+               d.updater_code,
+               d.updatedate,
+               d.dept_id,
+               d.remarks,
+               d.approve_status,
+               d.regno,
+               d.useno,
+               d.warn_date,
+               d.warn_cycle,
+               d.next_warn_date,
+               d.warn_flag,
+               d.create_unit,
+               d.burn_mode,
+               d.burn_kind,
+               d.rated_power,
+               d.des_pressure,
+               d.des_temp,
+               d.opt_pressure,
+               d.opt_temp,
+               d.check_unit,
+               d.check_conclusion,
+               d.model,
+               d.water_mode,
+               d.report_no,
+               d.approve_time,
+               d.change_time,
+               d.plant_maint,
+               d.out_warn_date,
+               d.out_next_warn_date,
+               d.out_check_conclusion,
+               d.out_report_no,
+               d.engineer,
+               d.dev_id,
+               d.hi_type,
+               s.dept_name
+        from t_spechi_gl d
+                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTSpechiGlList" parameterType="TSpechiGl" resultMap="TSpechiGlResult">
         <include refid="selectTSpechiGlVo"/>
         <where>
-            <if test="plantCode != null  and plantCode != ''"> and plant_code = #{plantCode}</if>
-            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
-            <if test="devname != null  and devname != ''"> and devname like concat(concat('%', #{devname}), '%')</if>
-            <if test="devno != null  and devno != ''"> and devno = #{devno}</if>
-            <if test="submitdate != null "> and submitdate = #{submitdate}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="createrCode != null  and createrCode != ''"> and creater_code = #{createrCode}</if>
-            <if test="createdate != null "> and createdate = #{createdate}</if>
-            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
-            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
-            <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
-            <if test="regno != null  and regno != ''"> and regno = #{regno}</if>
-            <if test="useno != null  and useno != ''"> and useno = #{useno}</if>
-            <if test="warnDate != null "> and warn_date = #{warnDate}</if>
-            <if test="warnCycle != null "> and warn_cycle = #{warnCycle}</if>
-            <if test="nextWarnDate != null "> and next_warn_date = #{nextWarnDate}</if>
-            <if test="warnFlag != null "> and warn_flag = #{warnFlag}</if>
-            <if test="createUnit != null  and createUnit != ''"> and create_unit = #{createUnit}</if>
-            <if test="burnMode != null  and burnMode != ''"> and burn_mode = #{burnMode}</if>
-            <if test="burnKind != null  and burnKind != ''"> and burn_kind = #{burnKind}</if>
-            <if test="ratedPower != null  and ratedPower != ''"> and rated_power = #{ratedPower}</if>
-            <if test="desPressure != null  and desPressure != ''"> and des_pressure = #{desPressure}</if>
-            <if test="desTemp != null  and desTemp != ''"> and des_temp = #{desTemp}</if>
-            <if test="optPressure != null  and optPressure != ''"> and opt_pressure = #{optPressure}</if>
-            <if test="optTemp != null  and optTemp != ''"> and opt_temp = #{optTemp}</if>
-            <if test="checkUnit != null  and checkUnit != ''"> and check_unit = #{checkUnit}</if>
-            <if test="checkConclusion != null  and checkConclusion != ''"> and check_conclusion = #{checkConclusion}</if>
-            <if test="model != null  and model != ''"> and model = #{model}</if>
-            <if test="waterMode != null  and waterMode != ''"> and water_mode = #{waterMode}</if>
-            <if test="reportNo != null  and reportNo != ''"> and report_no = #{reportNo}</if>
-            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
-            <if test="changeTime != null "> and change_time = #{changeTime}</if>
-            <if test="plantMaint != null  and plantMaint != ''"> and plant_maint = #{plantMaint}</if>
-            <if test="outWarnDate != null "> and out_warn_date = #{outWarnDate}</if>
-            <if test="outNextWarnDate != null "> and out_next_warn_date = #{outNextWarnDate}</if>
-            <if test="outCheckConclusion != null  and outCheckConclusion != ''"> and out_check_conclusion = #{outCheckConclusion}</if>
-            <if test="outReportNo != null  and outReportNo != ''"> and out_report_no = #{outReportNo}</if>
-            <if test="engineer != null  and engineer != ''"> and engineer = #{engineer}</if>
-            <if test="devId != null "> and dev_id = #{devId}</if>
-            <if test="hiType != null "> and hi_type = #{hiType}</if>
+            <if test="operName != null  and operName != ''"> and oper_name like concat(concat('%', #{operName}), '%')</if>
+            <if test="operTime != null "> and oper_time = #{operTime}</if>
+            <if test="operType != null  and operType != ''"> and oper_type like concat(concat('%', #{operType}), '%')</if>
             and d.del_flag = 0
+            and d.hi_type = 2
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        order by d.oper_time desc
     </select>
 
     <select id="selectTSpechiGlById" parameterType="Long" resultMap="TSpechiGlResult">
@@ -135,7 +147,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -172,7 +183,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="engineer != null">engineer,</if>
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="plantCode != null and plantCode != ''">#{plantCode},</if>
@@ -181,7 +192,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -218,7 +228,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="engineer != null">#{engineer},</if>
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
-         </trim>
+        </trim>
     </insert>
 
     <insert id="insertTSpechiGlByDev" parameterType="com.ruoyi.project.sems.domain.TSpecdevGl">
@@ -234,7 +244,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -271,6 +280,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="engineer != null">engineer,</if>
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
+            <if test="createBy != null">oper_name,</if>
+            <if test="createTime != null">oper_time,</if>
+            <if test="remark != null">oper_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -280,7 +292,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -317,6 +328,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="engineer != null">#{engineer},</if>
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
         </trim>
     </insert>
 
@@ -371,7 +385,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiGlById" parameterType="Long">
-        update t_spechi_gl set del_flag = 2 where id = #{id}
+        update t_spechi_gl
+        set del_flag = 2
+        where id = #{id}
     </update>
 
     <update id="deleteTSpechiGlByIds" parameterType="String">
@@ -382,7 +398,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiGlByDevId" parameterType="Long">
-        update t_spechi_gl set del_flag = 2 where dev_id = #{devId} and hi_type = 1
+        update t_spechi_gl
+        set del_flag = 2
+        where dev_id = #{devId}
+          and hi_type = 1
     </update>
 
 

+ 142 - 123
master/src/main/resources/mybatis/sems/his/TSpechiYlgdMapper.xml

@@ -1,133 +1,145 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.sems.his.mapper.TSpechiYlgdMapper">
 
     <resultMap type="TSpechiYlgd" id="TSpechiYlgdResult">
-        <result property="id"    column="id"    />
-        <result property="plantCode"    column="plant_code"    />
-        <result property="unit"    column="unit"    />
-        <result property="devname"    column="devname"    />
-        <result property="devno"    column="devno"    />
-        <result property="submitdate"    column="submitdate"    />
-        <result property="status"    column="status"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createrCode"    column="creater_code"    />
-        <result property="createdate"    column="createdate"    />
-        <result property="updaterCode"    column="updater_code"    />
-        <result property="updatedate"    column="updatedate"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="remarks"    column="remarks"    />
-        <result property="approveStatus"    column="approve_status"    />
-        <result property="regno"    column="regno"    />
-        <result property="useno"    column="useno"    />
-        <result property="warnDate"    column="warn_date"    />
-        <result property="warnCycle"    column="warn_cycle"    />
-        <result property="nextWarnDate"    column="next_warn_date"    />
-        <result property="warnFlag"    column="warn_flag"    />
-        <result property="grade"    column="grade"    />
-        <result property="designer"    column="designer"    />
-        <result property="installer"    column="installer"    />
-        <result property="material"    column="material"    />
-        <result property="dia"    column="dia"    />
-        <result property="scheduleNo"    column="schedule_no"    />
-        <result property="length"    column="length"    />
-        <result property="starting"    column="starting"    />
-        <result property="ending"    column="ending"    />
-        <result property="desPressure"    column="des_pressure"    />
-        <result property="desTemp"    column="des_temp"    />
-        <result property="optPressure"    column="opt_pressure"    />
-        <result property="optTemp"    column="opt_temp"    />
-        <result property="medium"    column="medium"    />
-        <result property="checkConclusion"    column="check_conclusion"    />
-        <result property="checkUnit"    column="check_unit"    />
-        <result property="safeClass"    column="safe_class"    />
-        <result property="reportNo"    column="report_no"    />
-        <result property="approveTime"    column="approve_time"    />
-        <result property="changeTime"    column="change_time"    />
-        <result property="plantMaint"    column="plant_maint"    />
-        <result property="engineer"    column="engineer"    />
-        <result property="weldNumber"    column="weld_number"    />
-        <result property="layingMethod"    column="laying_method"    />
-        <result property="adiabatic"    column="adiabatic"    />
-        <result property="antiCorrosion"    column="anti_corrosion"    />
-        <result property="adiabaticThickness"    column="adiabatic_thickness"    />
-        <result property="isDanger"    column="is_danger"    />
-        <result property="installDate"    column="install_date"    />
-        <result property="yearWarnDate"    column="year_warn_date"    />
-        <result property="yearNextWarnDate"    column="year_next_warn_date"    />
-        <result property="yearReportNo"    column="year_report_no"    />
-        <result property="devId"    column="dev_id"    />
-        <result property="hiType"    column="hi_type"    />
-        <result property="deptName" column="dept_name" />
+        <result property="id" column="id"/>
+        <result property="plantCode" column="plant_code"/>
+        <result property="unit" column="unit"/>
+        <result property="devname" column="devname"/>
+        <result property="devno" column="devno"/>
+        <result property="submitdate" column="submitdate"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createrCode" column="creater_code"/>
+        <result property="createdate" column="createdate"/>
+        <result property="updaterCode" column="updater_code"/>
+        <result property="updatedate" column="updatedate"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="remarks" column="remarks"/>
+        <result property="approveStatus" column="approve_status"/>
+        <result property="regno" column="regno"/>
+        <result property="useno" column="useno"/>
+        <result property="warnDate" column="warn_date"/>
+        <result property="warnCycle" column="warn_cycle"/>
+        <result property="nextWarnDate" column="next_warn_date"/>
+        <result property="warnFlag" column="warn_flag"/>
+        <result property="grade" column="grade"/>
+        <result property="designer" column="designer"/>
+        <result property="installer" column="installer"/>
+        <result property="material" column="material"/>
+        <result property="dia" column="dia"/>
+        <result property="scheduleNo" column="schedule_no"/>
+        <result property="length" column="length"/>
+        <result property="starting" column="starting"/>
+        <result property="ending" column="ending"/>
+        <result property="desPressure" column="des_pressure"/>
+        <result property="desTemp" column="des_temp"/>
+        <result property="optPressure" column="opt_pressure"/>
+        <result property="optTemp" column="opt_temp"/>
+        <result property="medium" column="medium"/>
+        <result property="checkConclusion" column="check_conclusion"/>
+        <result property="checkUnit" column="check_unit"/>
+        <result property="safeClass" column="safe_class"/>
+        <result property="reportNo" column="report_no"/>
+        <result property="approveTime" column="approve_time"/>
+        <result property="changeTime" column="change_time"/>
+        <result property="plantMaint" column="plant_maint"/>
+        <result property="engineer" column="engineer"/>
+        <result property="weldNumber" column="weld_number"/>
+        <result property="layingMethod" column="laying_method"/>
+        <result property="adiabatic" column="adiabatic"/>
+        <result property="antiCorrosion" column="anti_corrosion"/>
+        <result property="adiabaticThickness" column="adiabatic_thickness"/>
+        <result property="isDanger" column="is_danger"/>
+        <result property="installDate" column="install_date"/>
+        <result property="yearWarnDate" column="year_warn_date"/>
+        <result property="yearNextWarnDate" column="year_next_warn_date"/>
+        <result property="yearReportNo" column="year_report_no"/>
+        <result property="devId" column="dev_id"/>
+        <result property="hiType" column="hi_type"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="operName" column="oper_name"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="operType" column="oper_type"/>
     </resultMap>
 
     <sql id="selectTSpechiYlgdVo">
-        select d.id, d.plant_code, d.unit, d.devname, d.devno, d.submitdate, d.status, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status, d.regno, d.useno, d.warn_date, d.warn_cycle, d.next_warn_date, d.warn_flag, d.grade, d.designer, d.installer, d.material, d.dia, d.schedule_no, d.length, d.starting, d.ending, d.des_pressure, d.des_temp, d.opt_pressure, d.opt_temp, d.medium, d.check_conclusion, d.check_unit, d.safe_class, d.report_no, d.approve_time, d.change_time, d.plant_maint, d.engineer, d.weld_number, d.laying_method, d.adiabatic, d.anti_corrosion, d.adiabatic_thickness, d.is_danger, d.install_date, d.year_warn_date, d.year_next_warn_date, d.year_report_no, d.dev_id, d.hi_type ,s.dept_name from t_spechi_ylgd d
-      left join sys_dept s on s.dept_id = d.dept_id
+        select d.id,
+               d.plant_code,
+               d.oper_name,
+               d.oper_time,
+               d.oper_type,
+               d.unit,
+               d.devname,
+               d.devno,
+               d.submitdate,
+               d.status,
+               d.del_flag,
+               d.creater_code,
+               d.createdate,
+               d.updater_code,
+               d.updatedate,
+               d.dept_id,
+               d.remarks,
+               d.approve_status,
+               d.regno,
+               d.useno,
+               d.warn_date,
+               d.warn_cycle,
+               d.next_warn_date,
+               d.warn_flag,
+               d.grade,
+               d.designer,
+               d.installer,
+               d.material,
+               d.dia,
+               d.schedule_no,
+               d.length,
+               d.starting,
+               d.ending,
+               d.des_pressure,
+               d.des_temp,
+               d.opt_pressure,
+               d.opt_temp,
+               d.medium,
+               d.check_conclusion,
+               d.check_unit,
+               d.safe_class,
+               d.report_no,
+               d.approve_time,
+               d.change_time,
+               d.plant_maint,
+               d.engineer,
+               d.weld_number,
+               d.laying_method,
+               d.adiabatic,
+               d.anti_corrosion,
+               d.adiabatic_thickness,
+               d.is_danger,
+               d.install_date,
+               d.year_warn_date,
+               d.year_next_warn_date,
+               d.year_report_no,
+               d.dev_id,
+               d.hi_type,
+               s.dept_name
+        from t_spechi_ylgd d
+                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTSpechiYlgdList" parameterType="TSpechiYlgd" resultMap="TSpechiYlgdResult">
         <include refid="selectTSpechiYlgdVo"/>
         <where>
-            <if test="plantCode != null  and plantCode != ''"> and plant_code = #{plantCode}</if>
-            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
-            <if test="devname != null  and devname != ''"> and devname like concat(concat('%', #{devname}), '%')</if>
-            <if test="devno != null  and devno != ''"> and devno = #{devno}</if>
-            <if test="submitdate != null "> and submitdate = #{submitdate}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
-            <if test="createdate != null "> and createdate = #{createdate}</if>
-            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
-            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
-            <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
-            <if test="regno != null  and regno != ''"> and regno = #{regno}</if>
-            <if test="useno != null  and useno != ''"> and useno = #{useno}</if>
-            <if test="warnDate != null "> and warn_date = #{warnDate}</if>
-            <if test="warnCycle != null "> and warn_cycle = #{warnCycle}</if>
-            <if test="nextWarnDate != null "> and next_warn_date = #{nextWarnDate}</if>
-            <if test="warnFlag != null "> and warn_flag = #{warnFlag}</if>
-            <if test="grade != null  and grade != ''"> and grade = #{grade}</if>
-            <if test="designer != null  and designer != ''"> and designer = #{designer}</if>
-            <if test="installer != null  and installer != ''"> and installer = #{installer}</if>
-            <if test="material != null  and material != ''"> and material = #{material}</if>
-            <if test="dia != null  and dia != ''"> and dia = #{dia}</if>
-            <if test="scheduleNo != null  and scheduleNo != ''"> and schedule_no = #{scheduleNo}</if>
-            <if test="length != null  and length != ''"> and length = #{length}</if>
-            <if test="starting != null  and starting != ''"> and starting = #{starting}</if>
-            <if test="ending != null  and ending != ''"> and ending = #{ending}</if>
-            <if test="desPressure != null  and desPressure != ''"> and des_pressure = #{desPressure}</if>
-            <if test="desTemp != null  and desTemp != ''"> and des_temp = #{desTemp}</if>
-            <if test="optPressure != null  and optPressure != ''"> and opt_pressure = #{optPressure}</if>
-            <if test="optTemp != null  and optTemp != ''"> and opt_temp = #{optTemp}</if>
-            <if test="medium != null  and medium != ''"> and medium = #{medium}</if>
-            <if test="checkConclusion != null "> and check_conclusion = #{checkConclusion}</if>
-            <if test="checkUnit != null  and checkUnit != ''"> and check_unit = #{checkUnit}</if>
-            <if test="safeClass != null  and safeClass != ''"> and safe_class = #{safeClass}</if>
-            <if test="reportNo != null  and reportNo != ''"> and report_no = #{reportNo}</if>
-            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
-            <if test="changeTime != null "> and change_time = #{changeTime}</if>
-            <if test="plantMaint != null  and plantMaint != ''"> and plant_maint = #{plantMaint}</if>
-            <if test="engineer != null  and engineer != ''"> and engineer = #{engineer}</if>
-            <if test="weldNumber != null  and weldNumber != ''"> and weld_number = #{weldNumber}</if>
-            <if test="layingMethod != null  and layingMethod != ''"> and laying_method = #{layingMethod}</if>
-            <if test="adiabatic != null  and adiabatic != ''"> and adiabatic = #{adiabatic}</if>
-            <if test="antiCorrosion != null  and antiCorrosion != ''"> and anti_corrosion = #{antiCorrosion}</if>
-            <if test="adiabaticThickness != null  and adiabaticThickness != ''"> and adiabatic_thickness = #{adiabaticThickness}</if>
-            <if test="isDanger != null "> and is_danger = #{isDanger}</if>
-            <if test="installDate != null "> and install_date = #{installDate}</if>
-            <if test="yearWarnDate != null "> and year_warn_date = #{yearWarnDate}</if>
-            <if test="yearNextWarnDate != null "> and year_next_warn_date = #{yearNextWarnDate}</if>
-            <if test="yearReportNo != null  and yearReportNo != ''"> and year_report_no = #{yearReportNo}</if>
-            <if test="devId != null "> and dev_id = #{devId}</if>
-            <if test="hiType != null "> and hi_type = #{hiType}</if>
+            <if test="operName != null  and operName != ''"> and oper_name like concat(concat('%', #{operName}), '%')</if>
+            <if test="operTime != null "> and oper_time = #{operTime}</if>
+            <if test="operType != null  and operType != ''"> and oper_type like concat(concat('%', #{operType}), '%')</if>
             and d.del_flag = 0
+            and d.hi_type = 2
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        order by d.oper_time desc
     </select>
 
     <select id="selectTSpechiYlgdById" parameterType="Long" resultMap="TSpechiYlgdResult">
@@ -157,7 +169,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -205,7 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="yearReportNo != null">year_report_no,</if>
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="plantCode != null">#{plantCode},</if>
@@ -214,7 +225,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -262,7 +272,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="yearReportNo != null">#{yearReportNo},</if>
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
-         </trim>
+        </trim>
     </insert>
 
     <insert id="insertTSpechiYlgdByDev" parameterType="com.ruoyi.project.sems.domain.TSpecdevYlgd">
@@ -278,7 +288,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -326,6 +335,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="yearReportNo != null">year_report_no,</if>
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
+            <if test="createBy != null">oper_name,</if>
+            <if test="createTime != null">oper_time,</if>
+            <if test="remark != null">oper_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -335,7 +347,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -383,6 +394,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="yearReportNo != null">#{yearReportNo},</if>
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
         </trim>
     </insert>
 
@@ -448,7 +462,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiYlgdById" parameterType="Long">
-        update t_spechi_ylgd set del_flag = 2 where id = #{id}
+        update t_spechi_ylgd
+        set del_flag = 2
+        where id = #{id}
     </update>
 
     <update id="deleteTSpechiYlgdByIds" parameterType="String">
@@ -459,7 +475,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiYlgdByDevId" parameterType="Long">
-        update t_spechi_ylgd set del_flag = 2 where dev_id = #{devId} and hi_type = 1
+        update t_spechi_ylgd
+        set del_flag = 2
+        where dev_id = #{devId}
+          and hi_type = 1
     </update>
 
 </mapper>

+ 127 - 109
master/src/main/resources/mybatis/sems/his/TSpechiYlrqMapper.xml

@@ -1,120 +1,133 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.sems.his.mapper.TSpechiYlrqMapper">
 
     <resultMap type="TSpechiYlrq" id="TSpechiYlrqResult">
-        <result property="id"    column="id"    />
-        <result property="plantCode"    column="plant_code"    />
-        <result property="unit"    column="unit"    />
-        <result property="devname"    column="devname"    />
-        <result property="devno"    column="devno"    />
-        <result property="submitdate"    column="submitdate"    />
-        <result property="status"    column="status"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="createrCode"    column="creater_code"    />
-        <result property="createdate"    column="createdate"    />
-        <result property="updaterCode"    column="updater_code"    />
-        <result property="updatedate"    column="updatedate"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="remarks"    column="remarks"    />
-        <result property="approveStatus"    column="approve_status"    />
-        <result property="regno"    column="regno"    />
-        <result property="useno"    column="useno"    />
-        <result property="warnDate"    column="warn_date"    />
-        <result property="warnCycle"    column="warn_cycle"    />
-        <result property="nextWarnDate"    column="next_warn_date"    />
-        <result property="warnFlag"    column="warn_flag"    />
-        <result property="plantMaint"    column="plant_maint"    />
-        <result property="engineer"    column="engineer"    />
-        <result property="vesselType"    column="vessel_type"    />
-        <result property="isKey"    column="is_key"    />
-        <result property="createUnit"    column="create_unit"    />
-        <result property="nation"    column="nation"    />
-        <result property="outSize"    column="out_size"    />
-        <result property="material"    column="material"    />
-        <result property="medium"    column="medium"    />
-        <result property="desPressure"    column="des_pressure"    />
-        <result property="desTemp"    column="des_temp"    />
-        <result property="optPressure"    column="opt_pressure"    />
-        <result property="optTemp"    column="opt_temp"    />
-        <result property="checkUnit"    column="check_unit"    />
-        <result property="reportNo"    column="report_no"    />
-        <result property="isDanger"    column="is_danger"    />
-        <result property="isOverlife"    column="is_overlife"    />
-        <result property="safeClass"    column="safe_class"    />
-        <result property="approveTime"    column="approve_time"    />
-        <result property="changeTime"    column="change_time"    />
-        <result property="desYear"    column="des_year"    />
-        <result property="yearWarnDate"    column="year_warn_date"    />
-        <result property="checkConclusion"    column="check_conclusion"    />
-        <result property="yearNextWarnDate"    column="year_next_warn_date"    />
-        <result property="yearReportNo"    column="year_report_no"    />
-        <result property="devId"    column="dev_id"    />
-        <result property="hiType"    column="hi_type"    />
-        <result property="deptName" column="dept_name" />
+        <result property="id" column="id"/>
+        <result property="plantCode" column="plant_code"/>
+        <result property="unit" column="unit"/>
+        <result property="devname" column="devname"/>
+        <result property="devno" column="devno"/>
+        <result property="submitdate" column="submitdate"/>
+        <result property="status" column="status"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createrCode" column="creater_code"/>
+        <result property="createdate" column="createdate"/>
+        <result property="updaterCode" column="updater_code"/>
+        <result property="updatedate" column="updatedate"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="remarks" column="remarks"/>
+        <result property="approveStatus" column="approve_status"/>
+        <result property="regno" column="regno"/>
+        <result property="useno" column="useno"/>
+        <result property="warnDate" column="warn_date"/>
+        <result property="warnCycle" column="warn_cycle"/>
+        <result property="nextWarnDate" column="next_warn_date"/>
+        <result property="warnFlag" column="warn_flag"/>
+        <result property="plantMaint" column="plant_maint"/>
+        <result property="engineer" column="engineer"/>
+        <result property="vesselType" column="vessel_type"/>
+        <result property="isKey" column="is_key"/>
+        <result property="createUnit" column="create_unit"/>
+        <result property="nation" column="nation"/>
+        <result property="outSize" column="out_size"/>
+        <result property="material" column="material"/>
+        <result property="medium" column="medium"/>
+        <result property="desPressure" column="des_pressure"/>
+        <result property="desTemp" column="des_temp"/>
+        <result property="optPressure" column="opt_pressure"/>
+        <result property="optTemp" column="opt_temp"/>
+        <result property="checkUnit" column="check_unit"/>
+        <result property="reportNo" column="report_no"/>
+        <result property="isDanger" column="is_danger"/>
+        <result property="isOverlife" column="is_overlife"/>
+        <result property="safeClass" column="safe_class"/>
+        <result property="approveTime" column="approve_time"/>
+        <result property="changeTime" column="change_time"/>
+        <result property="desYear" column="des_year"/>
+        <result property="yearWarnDate" column="year_warn_date"/>
+        <result property="checkConclusion" column="check_conclusion"/>
+        <result property="yearNextWarnDate" column="year_next_warn_date"/>
+        <result property="yearReportNo" column="year_report_no"/>
+        <result property="devId" column="dev_id"/>
+        <result property="hiType" column="hi_type"/>
+        <result property="deptName" column="dept_name"/>
         <result property="factoryNo" column="factory_no"/>
+        <result property="operName" column="oper_name"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="operType" column="oper_type"/>
     </resultMap>
 
     <sql id="selectTSpechiYlrqVo">
-        select d.id, d.plant_code, d.unit, d.devname,d.factory_no, d.devno, d.submitdate, d.status, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status, d.regno, d.useno, d.warn_date, d.warn_cycle, d.next_warn_date, d.warn_flag, d.plant_maint, d.engineer, d.vessel_type, d.is_key, d.create_unit, d.nation, d.out_size, d.material, d.medium, d.des_pressure, d.des_temp, d.opt_pressure, d.opt_temp, d.check_unit, d.report_no, d.is_danger, d.is_overlife, d.safe_class, d.approve_time, d.change_time, d.des_year, d.year_warn_date, d.check_conclusion, d.year_next_warn_date, d.year_report_no, d.dev_id, d.hi_type ,s.dept_name from t_spechi_ylrq d
-      left join sys_dept s on s.dept_id = d.dept_id
+        select d.id,
+               d.plant_code,
+               d.oper_name,
+               d.oper_time,
+               d.oper_type,
+               d.unit,
+               d.devname,
+               d.factory_no,
+               d.devno,
+               d.submitdate,
+               d.status,
+               d.del_flag,
+               d.creater_code,
+               d.createdate,
+               d.updater_code,
+               d.updatedate,
+               d.dept_id,
+               d.remarks,
+               d.approve_status,
+               d.regno,
+               d.useno,
+               d.warn_date,
+               d.warn_cycle,
+               d.next_warn_date,
+               d.warn_flag,
+               d.plant_maint,
+               d.engineer,
+               d.vessel_type,
+               d.is_key,
+               d.create_unit,
+               d.nation,
+               d.out_size,
+               d.material,
+               d.medium,
+               d.des_pressure,
+               d.des_temp,
+               d.opt_pressure,
+               d.opt_temp,
+               d.check_unit,
+               d.report_no,
+               d.is_danger,
+               d.is_overlife,
+               d.safe_class,
+               d.approve_time,
+               d.change_time,
+               d.des_year,
+               d.year_warn_date,
+               d.check_conclusion,
+               d.year_next_warn_date,
+               d.year_report_no,
+               d.dev_id,
+               d.hi_type,
+               s.dept_name
+        from t_spechi_ylrq d
+                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTSpechiYlrqList" parameterType="TSpechiYlrq" resultMap="TSpechiYlrqResult">
         <include refid="selectTSpechiYlrqVo"/>
         <where>
-            <if test="plantCode != null  and plantCode != ''"> and plant_code = #{plantCode}</if>
-            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
-            <if test="devname != null  and devname != ''"> and devname like concat(concat('%', #{devname}), '%')</if>
-            <if test="devno != null  and devno != ''"> and devno = #{devno}</if>
-            <if test="submitdate != null "> and submitdate = #{submitdate}</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
-            <if test="createdate != null "> and createdate = #{createdate}</if>
-            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
-            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
-            <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
-            <if test="regno != null  and regno != ''"> and regno = #{regno}</if>
-            <if test="useno != null  and useno != ''"> and useno = #{useno}</if>
-            <if test="warnDate != null "> and warn_date = #{warnDate}</if>
-            <if test="warnCycle != null "> and warn_cycle = #{warnCycle}</if>
-            <if test="nextWarnDate != null "> and next_warn_date = #{nextWarnDate}</if>
-            <if test="warnFlag != null "> and warn_flag = #{warnFlag}</if>
-            <if test="plantMaint != null  and plantMaint != ''"> and plant_maint = #{plantMaint}</if>
-            <if test="engineer != null  and engineer != ''"> and engineer = #{engineer}</if>
-            <if test="vesselType != null  and vesselType != ''"> and vessel_type = #{vesselType}</if>
-            <if test="isKey != null "> and is_key = #{isKey}</if>
-            <if test="createUnit != null  and createUnit != ''"> and create_unit = #{createUnit}</if>
-            <if test="nation != null  and nation != ''"> and nation = #{nation}</if>
-            <if test="outSize != null  and outSize != ''"> and out_size = #{outSize}</if>
-            <if test="material != null  and material != ''"> and material = #{material}</if>
-            <if test="medium != null  and medium != ''"> and medium = #{medium}</if>
-            <if test="desPressure != null  and desPressure != ''"> and des_pressure = #{desPressure}</if>
-            <if test="desTemp != null  and desTemp != ''"> and des_temp = #{desTemp}</if>
-            <if test="optPressure != null  and optPressure != ''"> and opt_pressure = #{optPressure}</if>
-            <if test="optTemp != null  and optTemp != ''"> and opt_temp = #{optTemp}</if>
-            <if test="checkUnit != null  and checkUnit != ''"> and check_unit = #{checkUnit}</if>
-            <if test="reportNo != null  and reportNo != ''"> and report_no = #{reportNo}</if>
-            <if test="isDanger != null "> and is_danger = #{isDanger}</if>
-            <if test="isOverlife != null "> and is_overlife = #{isOverlife}</if>
-            <if test="safeClass != null  and safeClass != ''"> and safe_class = #{safeClass}</if>
-            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
-            <if test="changeTime != null "> and change_time = #{changeTime}</if>
-            <if test="desYear != null  and desYear != ''"> and des_year = #{desYear}</if>
-            <if test="yearWarnDate != null "> and year_warn_date = #{yearWarnDate}</if>
-            <if test="checkConclusion != null  and checkConclusion != ''"> and check_conclusion = #{checkConclusion}</if>
-            <if test="yearNextWarnDate != null "> and year_next_warn_date = #{yearNextWarnDate}</if>
-            <if test="yearReportNo != null  and yearReportNo != ''"> and year_report_no = #{yearReportNo}</if>
-            <if test="devId != null "> and dev_id = #{devId}</if>
-            <if test="hiType != null "> and hi_type = #{hiType}</if>
+            <if test="operName != null  and operName != ''"> and oper_name like concat(concat('%', #{operName}), '%')</if>
+            <if test="operTime != null "> and oper_time = #{operTime}</if>
+            <if test="operType != null  and operType != ''"> and oper_type like concat(concat('%', #{operType}), '%')</if>
             and d.del_flag = 0
+            and d.hi_type = 2
         </where>
-        <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        order by d.oper_time desc
     </select>
 
     <select id="selectTSpechiYlrqById" parameterType="Long" resultMap="TSpechiYlrqResult">
@@ -144,7 +157,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -195,7 +207,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -254,7 +265,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">devno,</if>
             <if test="submitdate != null">submitdate,</if>
             <if test="status != null">status,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
             <if test="createdate != null">createdate,</if>
             <if test="updaterCode != null">updater_code,</if>
@@ -296,7 +306,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devId != null">dev_id,</if>
             <if test="hiType != null">hi_type,</if>
             <if test="factoryNo != null">factory_no,</if>
-
+            <if test="createBy != null">oper_name,</if>
+            <if test="createTime != null">oper_time,</if>
+            <if test="remark != null">oper_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -306,7 +318,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devno != null">#{devno},</if>
             <if test="submitdate != null">#{submitdate},</if>
             <if test="status != null">#{status},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
             <if test="createdate != null">#{createdate},</if>
             <if test="updaterCode != null">#{updaterCode},</if>
@@ -348,7 +359,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devId != null">#{devId},</if>
             <if test="hiType != null">#{hiType},</if>
             <if test="factoryNo != null">#{factoryNo},</if>
-
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
         </trim>
     </insert>
 
@@ -408,7 +421,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiYlrqById" parameterType="Long">
-        update t_spechi_ylrq set del_flag = 2 where id = #{id}
+        update t_spechi_ylrq
+        set del_flag = 2
+        where id = #{id}
     </update>
 
     <update id="deleteTSpechiYlrqByIds" parameterType="String">
@@ -419,6 +434,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <update id="deleteTSpechiYlrqByDevId" parameterType="Long">
-        update t_spechi_ylrq set del_flag = 2 where dev_id = #{devId} and hi_type = 1
+        update t_spechi_ylrq
+        set del_flag = 2
+        where dev_id = #{devId}
+          and hi_type = 1
     </update>
 </mapper>

+ 53 - 0
ui/src/api/sems/his/cc.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询特种设备叉车台账历史列表
+export function listCc(query) {
+  return request({
+    url: '/his/cc/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询特种设备叉车台账历史详细
+export function getCc(id) {
+  return request({
+    url: '/his/cc/' + id,
+    method: 'get'
+  })
+}
+
+// 新增特种设备叉车台账历史
+export function addCc(data) {
+  return request({
+    url: '/his/cc',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改特种设备叉车台账历史
+export function updateCc(data) {
+  return request({
+    url: '/his/cc',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除特种设备叉车台账历史
+export function delCc(id) {
+  return request({
+    url: '/his/cc/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出特种设备叉车台账历史
+export function exportCc(query) {
+  return request({
+    url: '/his/cc/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/sems/his/dt.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询特种设备电梯台账历史列表
+export function listDt(query) {
+  return request({
+    url: '/his/dt/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询特种设备电梯台账历史详细
+export function getDt(id) {
+  return request({
+    url: '/his/dt/' + id,
+    method: 'get'
+  })
+}
+
+// 新增特种设备电梯台账历史
+export function addDt(data) {
+  return request({
+    url: '/his/dt',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改特种设备电梯台账历史
+export function updateDt(data) {
+  return request({
+    url: '/his/dt',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除特种设备电梯台账历史
+export function delDt(id) {
+  return request({
+    url: '/his/dt/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出特种设备电梯台账历史
+export function exportDt(query) {
+  return request({
+    url: '/his/dt/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/sems/his/dzsb.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询特种设备吊装设备台账历史列表
+export function listDzsb(query) {
+  return request({
+    url: '/his/dzsb/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询特种设备吊装设备台账历史详细
+export function getDzsb(id) {
+  return request({
+    url: '/his/dzsb/' + id,
+    method: 'get'
+  })
+}
+
+// 新增特种设备吊装设备台账历史
+export function addDzsb(data) {
+  return request({
+    url: '/his/dzsb',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改特种设备吊装设备台账历史
+export function updateDzsb(data) {
+  return request({
+    url: '/his/dzsb',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除特种设备吊装设备台账历史
+export function delDzsb(id) {
+  return request({
+    url: '/his/dzsb/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出特种设备吊装设备台账历史
+export function exportDzsb(query) {
+  return request({
+    url: '/his/dzsb/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/sems/his/gl.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询特种设备锅炉台账历史列表
+export function listGl(query) {
+  return request({
+    url: '/his/gl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询特种设备锅炉台账历史详细
+export function getGl(id) {
+  return request({
+    url: '/his/gl/' + id,
+    method: 'get'
+  })
+}
+
+// 新增特种设备锅炉台账历史
+export function addGl(data) {
+  return request({
+    url: '/his/gl',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改特种设备锅炉台账历史
+export function updateGl(data) {
+  return request({
+    url: '/his/gl',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除特种设备锅炉台账历史
+export function delGl(id) {
+  return request({
+    url: '/his/gl/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出特种设备锅炉台账历史
+export function exportGl(query) {
+  return request({
+    url: '/his/gl/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/sems/his/ylgd.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询特种设备压力管道台账历史列表
+export function listYlgd(query) {
+  return request({
+    url: '/his/ylgd/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询特种设备压力管道台账历史详细
+export function getYlgd(id) {
+  return request({
+    url: '/his/ylgd/' + id,
+    method: 'get'
+  })
+}
+
+// 新增特种设备压力管道台账历史
+export function addYlgd(data) {
+  return request({
+    url: '/his/ylgd',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改特种设备压力管道台账历史
+export function updateYlgd(data) {
+  return request({
+    url: '/his/ylgd',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除特种设备压力管道台账历史
+export function delYlgd(id) {
+  return request({
+    url: '/his/ylgd/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出特种设备压力管道台账历史
+export function exportYlgd(query) {
+  return request({
+    url: '/his/ylgd/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/sems/his/ylrq.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询特种设备压力容器台账历史列表
+export function listYlrq(query) {
+  return request({
+    url: '/his/ylrq/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询特种设备压力容器台账历史详细
+export function getYlrq(id) {
+  return request({
+    url: '/his/ylrq/' + id,
+    method: 'get'
+  })
+}
+
+// 新增特种设备压力容器台账历史
+export function addYlrq(data) {
+  return request({
+    url: '/his/ylrq',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改特种设备压力容器台账历史
+export function updateYlrq(data) {
+  return request({
+    url: '/his/ylrq',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除特种设备压力容器台账历史
+export function delYlrq(id) {
+  return request({
+    url: '/his/ylrq/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出特种设备压力容器台账历史
+export function exportYlrq(query) {
+  return request({
+    url: '/his/ylrq/export',
+    method: 'get',
+    params: query
+  })
+}

+ 259 - 0
ui/src/views/sems/specCc/operlog.vue

@@ -0,0 +1,259 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作人" prop="operName">
+        <el-input
+          v-model="queryParams.operName"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="operTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.operTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operType">
+        <el-input
+          v-model="queryParams.operType"
+          placeholder="请输入操作类型"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+    <el-table v-loading="loading" ref="deviceTable" :data="ccList" :height="clientHeight" border>
+      <el-table-column label="操作人" align="center" fixed="left" prop="operName" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作时间" align="center" fixed="left" prop="operTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.operTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作类型" fixed="left" align="center" prop="operType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置')" align="center"  fixed="left" prop="plantCode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('单元')" align="center"  fixed="left" prop="unit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用部门')" align="center" fixed="left" prop="useDept" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修组')" align="center"  fixed="left" prop="plantMaint" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('装置维护人员')" align="center"  fixed="left" prop="engineer" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('车牌号')" align="center"  fixed="left" prop="carNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('档案号')" align="center"  fixed="left" prop="docno" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('状态')" align="center" fixed="left"  prop="status" :formatter="statusFormat" />-->
+      <!--      <el-table-column :label="$t('申请状态')" align="center" fixed="left"  prop="approveStatus" :formatter="approveStatusFormat" />-->
+      <el-table-column :label="$t('发动机号')" align="center" prop="engineNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('注册代码')" align="center" prop="regno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('颜色')" align="center" prop="color" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('工作能力')+'(Ton)'" align="center" prop="capacity" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设备品种(名称)')" align="center" prop="devname" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('动力形式')" align="center" prop="engineType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('型号')" align="center" prop="model" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('车架(底盘)编号')" align="center" prop="frameNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('产品编号')" align="center" prop="productNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('生产厂家')" align="center" prop="createUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('防爆改造厂家')" align="center" prop="exUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('防爆级别')" align="center" prop="exGrade" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('初检日期')" align="center" prop="firstWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.firstWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('检验策略')" align="center" prop="checkStrategy" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('检验日期')" align="center" prop="warnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.warnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('下次检验日期')" align="center" prop="nextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('报告编号')" align="center" prop="reportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('定期检验结论')" align="center" prop="perTestConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('资产归属形式')" align="center" prop="assetOwner" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listCc, getCc, delCc, addCc, updateCc, exportCc, importTemplate} from "@/api/sems/his/cc";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Cc",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 特种设备叉车台账历史表格数据
+      ccList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/his/cc/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        plantCode: null,
+        carNo: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: null,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        createUnit: null,
+        checkStrategy: null,
+        firstWarnDate: null,
+        checkUnit: null,
+        docno: null,
+        approveTime: null,
+        changeTime: null,
+        engineNo: null,
+        color: null,
+        capacity: null,
+        model: null,
+        engineType: null,
+        devClass: null,
+        exUnit: null,
+        useDept: null,
+        engineer: null,
+        exGrade: null,
+        reportNo: null,
+        frameNo: null,
+        productNo: null,
+        assetOwner: null,
+        devId: null,
+        hiType: null,
+        unit: null,
+        plantMaint: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        plantCode: [
+          { required: true, message: "装置名称不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight -250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询特种设备叉车台账历史列表 */
+    getList() {
+      this.loading = true;
+      listCc(this.queryParams).then(response => {
+        this.ccList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+  }
+};
+</script>

File diff suppressed because it is too large
+ 450 - 298
ui/src/views/sems/specCc/ty.vue


+ 618 - 0
ui/src/views/sems/specDt/operlog.vue

@@ -0,0 +1,618 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作人" prop="operName">
+        <el-input
+          v-model="queryParams.operName"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="operTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.operTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operType">
+          <el-input
+            v-model="queryParams.operType"
+            placeholder="请输入操作类型"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dtList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+
+      <el-table-column label="操作人" align="center" fixed="left" prop="operName" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作时间" align="center" fixed="left" prop="operTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.operTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作类型" align="center" fixed="left" prop="operType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置')" align="center"  fixed="left" prop="plantCode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('单元')" align="center"  fixed="left" prop="unit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('档案号')" align="center"  fixed="left" prop="docno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用部门')" align="center" fixed="left" prop="useDept" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修组')" align="center"  fixed="left" prop="plantMaint" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('名称')" align="center"  fixed="left" prop="devname" width="130" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('注册编号')" align="center" fixed="left"  prop="regno" width="100" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('型号')" align="center" fixed="left"  prop="model" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('状态')" align="center" fixed="left"  prop="status" :formatter="statusFormat" />-->
+      <!--      <el-table-column :label="$t('申请状态')" align="center" fixed="left"  prop="approveStatus" :formatter="approveStatusFormat" />-->
+      <el-table-column :label="$t('额定载重量')+'(kg)'" align="center" prop="capacity" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('层站数')" align="center" prop="floor" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('制造单位')" align="center" prop="createUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用地点')" align="center" prop="location" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('初检日期')" align="center" prop="firstWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.firstWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('检验日期')" align="center" prop="warnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.warnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('检验单位')" align="center" prop="checkUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('报告编号')" align="center" prop="reportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次检验日期')" align="center" prop="nextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('定期检验结论')" align="center" prop="perTestConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('创建时间')" align="center" prop="createdate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改特种设备电梯台账历史对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="装置名称" prop="plantCode">
+          <el-input v-model="form.plantCode" placeholder="请输入装置名称" />
+        </el-form-item>
+        <el-form-item label="单元" prop="unit">
+          <el-input v-model="form.unit" placeholder="请输入单元" />
+        </el-form-item>
+        <el-form-item label="设备名称" prop="devname">
+          <el-input v-model="form.devname" placeholder="请输入设备名称" />
+        </el-form-item>
+        <el-form-item label="设备位号" prop="devno">
+          <el-input v-model="form.devno" placeholder="请输入设备位号" />
+        </el-form-item>
+        <el-form-item label="创建日期" prop="createdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="提交日期" prop="submitdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.submitdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择提交日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="状态 0 :正常 ;-1:删除" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入状态 0 :正常 ;-1:删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createrDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createrDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="修改人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
+        </el-form-item>
+        <el-form-item label="修改时间" prop="updaterDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.updaterDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="部门编号" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注" />
+        </el-form-item>
+        <el-form-item label="审核状态">
+          <el-radio-group v-model="form.approveStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="注册代码" prop="regno">
+          <el-input v-model="form.regno" placeholder="请输入注册代码" />
+        </el-form-item>
+        <el-form-item label="使用证编号" prop="useno">
+          <el-input v-model="form.useno" placeholder="请输入使用证编号" />
+        </el-form-item>
+        <el-form-item label="上次年检时间" prop="warnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.warnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择上次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测周期" prop="warnCycle">
+          <el-input v-model="form.warnCycle" placeholder="请输入检测周期" />
+        </el-form-item>
+        <el-form-item label="下次年检时间" prop="nextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.nextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择下次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="预警标识" prop="warnFlag">
+          <el-input v-model="form.warnFlag" placeholder="请输入预警标识" />
+        </el-form-item>
+        <el-form-item label="型号" prop="model">
+          <el-input v-model="form.model" placeholder="请输入型号" />
+        </el-form-item>
+        <el-form-item label="额定载重" prop="capacity">
+          <el-input v-model="form.capacity" placeholder="请输入额定载重" />
+        </el-form-item>
+        <el-form-item label="层站数" prop="floor">
+          <el-input v-model="form.floor" placeholder="请输入层站数" />
+        </el-form-item>
+        <el-form-item label="制造单位" prop="createUnit">
+          <el-input v-model="form.createUnit" placeholder="请输入制造单位" />
+        </el-form-item>
+        <el-form-item label="维保承包商" prop="maintContractor">
+          <el-input v-model="form.maintContractor" placeholder="请输入维保承包商" />
+        </el-form-item>
+        <el-form-item label="使用地点" prop="location">
+          <el-input v-model="form.location" placeholder="请输入使用地点" />
+        </el-form-item>
+        <el-form-item label="检测策略" prop="checkStrategy">
+          <el-input v-model="form.checkStrategy" placeholder="请输入检测策略" />
+        </el-form-item>
+        <el-form-item label="初检日期" prop="firstWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.firstWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择初检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测单位" prop="checkUnit">
+          <el-input v-model="form.checkUnit" placeholder="请输入检测单位" />
+        </el-form-item>
+        <el-form-item label="档案号" prop="docno">
+          <el-input v-model="form.docno" placeholder="请输入档案号" />
+        </el-form-item>
+        <el-form-item label="最新申请时间" prop="approveTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.approveTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择最新申请时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态修改时间" prop="changeTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.changeTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择状态修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="报告编号" prop="reportNo">
+          <el-input v-model="form.reportNo" placeholder="请输入报告编号" />
+        </el-form-item>
+        <el-form-item label="设备id" prop="devId">
+          <el-input v-model="form.devId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="状态" prop="hiType">
+          <el-select v-model="form.hiType" placeholder="请选择状态">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="使用部门" prop="useDept">
+          <el-input v-model="form.useDept" placeholder="请输入使用部门" />
+        </el-form-item>
+        <el-form-item label="装置维修组" prop="plantMaint">
+          <el-input v-model="form.plantMaint" placeholder="请输入装置维修组" />
+        </el-form-item>
+        <el-form-item label="操作人" prop="operName">
+          <el-input v-model="form.operName" placeholder="请输入操作人" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="operTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.operTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作类型" prop="operType">
+          <el-select v-model="form.operType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listDt, getDt, delDt, addDt, updateDt, exportDt, importTemplate} from "@/api/sems/his/dt";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Dt",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 特种设备电梯台账历史表格数据
+      dtList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/his/dt/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        createdate: null,
+        submitdate: null,
+        status: null,
+        createrCode: null,
+        createrDate: null,
+        updaterCode: null,
+        updaterDate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: null,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        model: null,
+        capacity: null,
+        floor: null,
+        createUnit: null,
+        maintContractor: null,
+        location: null,
+        checkStrategy: null,
+        firstWarnDate: null,
+        checkUnit: null,
+        docno: null,
+        approveTime: null,
+        changeTime: null,
+        reportNo: null,
+        devId: null,
+        hiType: null,
+        useDept: null,
+        plantMaint: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        plantCode: [
+          { required: true, message: "装置名称不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight -250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询特种设备电梯台账历史列表 */
+    getList() {
+      this.loading = true;
+      listDt(this.queryParams).then(response => {
+        this.dtList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        createdate: null,
+        submitdate: null,
+        status: 0,
+        delFlag: null,
+        createrCode: null,
+        createrDate: null,
+        updaterCode: null,
+        updaterDate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: 0,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        model: null,
+        capacity: null,
+        floor: null,
+        createUnit: null,
+        maintContractor: null,
+        location: null,
+        checkStrategy: null,
+        firstWarnDate: null,
+        checkUnit: null,
+        docno: null,
+        approveTime: null,
+        changeTime: null,
+        reportNo: null,
+        devId: null,
+        hiType: null,
+        useDept: null,
+        plantMaint: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加特种设备电梯台账历史";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDt(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改特种设备电梯台账历史";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDt(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDt(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delDt(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有特种设备电梯台账历史数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return exportDt(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

File diff suppressed because it is too large
+ 484 - 316
ui/src/views/sems/specDt/ty.vue


+ 622 - 0
ui/src/views/sems/specDzsb/operlog.vue

@@ -0,0 +1,622 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+
+      <el-form-item label="操作人" prop="operName">
+        <el-input
+          v-model="queryParams.operName"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="operTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.operTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operType">
+        <el-input
+          v-model="queryParams.operType"
+          placeholder="请输入操作类型"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="dzsbList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+
+      <el-table-column label="操作人" align="center" fixed="left" prop="operName" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作时间" align="center" fixed="left" prop="operTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.operTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作类型" fixed="left" align="center" prop="operType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置')" align="center"  fixed="left" prop="plantCode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('单元')" align="center"  fixed="left" prop="unit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修组')" align="center"  fixed="left" prop="plantMaint" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修工程师')" align="center"  fixed="left" prop="engineer" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('状态')" align="center" fixed="left"  prop="status" :formatter="statusFormat" />-->
+      <!--      <el-table-column :label="$t('申请状态')" align="center" fixed="left"  prop="approveStatus" :formatter="approveStatusFormat" />-->
+      <el-table-column :label="$t('设备名称')" align="center" fixed="left"  prop="devname" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('设备位号')" align="center"  fixed="left" prop="devno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('档案号')" align="center" prop="docno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('产品出厂编号')" align="center" prop="factoryNo" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('设备型号')" align="center" prop="model" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('起吊重量')+'(Ton)'" align="center" prop="capacity" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用地点')" align="center" prop="location" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设备注册编号')" align="center" prop="regno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设备代码')" align="center" prop="devCode" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('投用日期')" align="center" prop="submitdate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.submitdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('制造单位')" align="center" prop="createUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('是否防爆')" align="center" prop="isEx" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('检验单位')" align="center" prop="checkUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('检验策略')" align="center" prop="checkStrategy" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('检验日期')" align="center" prop="warnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.warnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('下次检验日期')" align="center" prop="nextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('检验报告编号')" align="center" prop="reportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('定期检验结论')" align="center" prop="perTestConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改特种设备吊装设备台账历史对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="装置名称" prop="plantCode">
+          <el-input v-model="form.plantCode" placeholder="请输入装置名称" />
+        </el-form-item>
+        <el-form-item label="单元" prop="unit">
+          <el-input v-model="form.unit" placeholder="请输入单元" />
+        </el-form-item>
+        <el-form-item label="设备名称" prop="devname">
+          <el-input v-model="form.devname" placeholder="请输入设备名称" />
+        </el-form-item>
+        <el-form-item label="设备位号" prop="devno">
+          <el-input v-model="form.devno" placeholder="请输入设备位号" />
+        </el-form-item>
+        <el-form-item label="提交日期" prop="submitdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.submitdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择提交日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="状态 1 :正常 ;0:删除" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入状态 1 :正常 ;0:删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="修改人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
+        </el-form-item>
+        <el-form-item label="修改时间" prop="updatedate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.updatedate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="部门编号" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注" />
+        </el-form-item>
+        <el-form-item label="审核状态">
+          <el-radio-group v-model="form.approveStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="注册代码" prop="regno">
+          <el-input v-model="form.regno" placeholder="请输入注册代码" />
+        </el-form-item>
+        <el-form-item label="使用证编号" prop="useno">
+          <el-input v-model="form.useno" placeholder="请输入使用证编号" />
+        </el-form-item>
+        <el-form-item label="上次年检时间" prop="warnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.warnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择上次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测周期" prop="warnCycle">
+          <el-input v-model="form.warnCycle" placeholder="请输入检测周期" />
+        </el-form-item>
+        <el-form-item label="下次年检时间" prop="nextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.nextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择下次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="预警标识" prop="warnFlag">
+          <el-input v-model="form.warnFlag" placeholder="请输入预警标识" />
+        </el-form-item>
+        <el-form-item label="装置维修组" prop="plantMaint">
+          <el-input v-model="form.plantMaint" placeholder="请输入装置维修组" />
+        </el-form-item>
+        <el-form-item label="档案号" prop="docno">
+          <el-input v-model="form.docno" placeholder="请输入档案号" />
+        </el-form-item>
+        <el-form-item label="型号" prop="model">
+          <el-input v-model="form.model" placeholder="请输入型号" />
+        </el-form-item>
+        <el-form-item label="起吊重量" prop="capacity">
+          <el-input v-model="form.capacity" placeholder="请输入起吊重量" />
+        </el-form-item>
+        <el-form-item label="设备使用地点" prop="location">
+          <el-input v-model="form.location" placeholder="请输入设备使用地点" />
+        </el-form-item>
+        <el-form-item label="制造单位" prop="createUnit">
+          <el-input v-model="form.createUnit" placeholder="请输入制造单位" />
+        </el-form-item>
+        <el-form-item label="检验策略" prop="checkStrategy">
+          <el-input v-model="form.checkStrategy" placeholder="请输入检验策略" />
+        </el-form-item>
+        <el-form-item label="年度维保日期" prop="yearMaint">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.yearMaint"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择年度维保日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="报告编号" prop="reportNo">
+          <el-input v-model="form.reportNo" placeholder="请输入报告编号" />
+        </el-form-item>
+        <el-form-item label="最新申请时间" prop="approveTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.approveTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择最新申请时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态修改时间" prop="changeTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.changeTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择状态修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检验单位" prop="checkUnit">
+          <el-input v-model="form.checkUnit" placeholder="请输入检验单位" />
+        </el-form-item>
+        <el-form-item label="工程师" prop="engineer">
+          <el-input v-model="form.engineer" placeholder="请输入工程师" />
+        </el-form-item>
+        <el-form-item label="是否防爆" prop="isEx">
+          <el-input v-model="form.isEx" placeholder="请输入是否防爆" />
+        </el-form-item>
+        <el-form-item label="设备id" prop="devId">
+          <el-input v-model="form.devId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="状态" prop="hiType">
+          <el-select v-model="form.hiType" placeholder="请选择状态">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="定期检查结论" prop="perTestConclusion">
+          <el-input v-model="form.perTestConclusion" placeholder="请输入定期检查结论" />
+        </el-form-item>
+        <el-form-item label="出厂编号" prop="factoryNo">
+          <el-input v-model="form.factoryNo" placeholder="请输入出厂编号" />
+        </el-form-item>
+        <el-form-item label="设备代码" prop="devCode">
+          <el-input v-model="form.devCode" placeholder="请输入设备代码" />
+        </el-form-item>
+        <el-form-item label="操作人" prop="operName">
+          <el-input v-model="form.operName" placeholder="请输入操作人" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="operTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.operTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作类型" prop="operType">
+          <el-select v-model="form.operType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listDzsb, getDzsb, delDzsb, addDzsb, updateDzsb, exportDzsb, importTemplate} from "@/api/sems/his/dzsb";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Dzsb",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 特种设备吊装设备台账历史表格数据
+      dzsbList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/his/dzsb/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: null,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        plantMaint: null,
+        docno: null,
+        model: null,
+        capacity: null,
+        location: null,
+        createUnit: null,
+        checkStrategy: null,
+        yearMaint: null,
+        reportNo: null,
+        approveTime: null,
+        changeTime: null,
+        checkUnit: null,
+        engineer: null,
+        isEx: null,
+        devId: null,
+        hiType: null,
+        perTestConclusion: null,
+        factoryNo: null,
+        devCode: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        plantCode: [
+          { required: true, message: "装置名称不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight -250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询特种设备吊装设备台账历史列表 */
+    getList() {
+      this.loading = true;
+      listDzsb(this.queryParams).then(response => {
+        this.dzsbList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: 0,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: 0,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        plantMaint: null,
+        docno: null,
+        model: null,
+        capacity: null,
+        location: null,
+        createUnit: null,
+        checkStrategy: null,
+        yearMaint: null,
+        reportNo: null,
+        approveTime: null,
+        changeTime: null,
+        checkUnit: null,
+        engineer: null,
+        isEx: null,
+        devId: null,
+        hiType: null,
+        perTestConclusion: null,
+        factoryNo: null,
+        devCode: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加特种设备吊装设备台账历史";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDzsb(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改特种设备吊装设备台账历史";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDzsb(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDzsb(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delDzsb(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有特种设备吊装设备台账历史数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return exportDzsb(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

File diff suppressed because it is too large
+ 448 - 309
ui/src/views/sems/specDzsb/ty.vue


+ 659 - 0
ui/src/views/sems/specGl/operlog.vue

@@ -0,0 +1,659 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作人" prop="operName">
+        <el-input
+          v-model="queryParams.operName"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="operTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.operTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operType">
+        <el-input
+          v-model="queryParams.operType"
+          placeholder="请输入操作类型"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="glList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+
+      <el-table-column label="操作人" align="center" fixed="left" prop="operName" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作时间" align="center" fixed="left" prop="operTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.operTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作类型" fixed="left" align="center" prop="operType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置')" align="center" fixed="left"  prop="plantCode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('单元')" align="center"  fixed="left" prop="unit" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('状态')" align="center"  fixed="left" prop="status" :formatter="statusFormat" />-->
+      <!--      <el-table-column :label="$t('申请状态')" align="center" fixed="left"  prop="approveStatus" :formatter="approveStatusFormat" />-->
+      <el-table-column :label="$t('装置维修组')" align="center" fixed="left"  prop="plantMaint" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修工程师')" align="center" fixed="left"  prop="engineer" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('位号')" align="center"  fixed="left" prop="devno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设备名称')" align="center" prop="devname" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('型号')" align="center" prop="model" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用证号码')" align="center" prop="useno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('注册编号')" align="center" prop="regno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('制造单位')" align="center" prop="createUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('燃烧方式')" align="center" prop="burnMode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('水处理方式')" align="center" prop="waterMode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('燃烧种类')" align="center" prop="burnKind" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('额定出力')" align="center" prop="ratedPower" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计温度')+'℃'" align="center" prop="desTemp" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('操作温度')+'℃'" align="center" prop="optTemp" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计压力')+'MPa(G)'" align="center" prop="desPressure" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('操作压力')+'MPa(G)'" align="center" prop="optPressure" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('投用日期')" align="center" prop="submitdate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.submitdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('检验单位')" align="center" prop="checkUnit" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('本次内部检验日期')" align="center" prop="warnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.warnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('内部检验结论')" align="center" prop="checkConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('内部检验报告编号')" align="center" prop="reportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次内部检验日期')" align="center" prop="nextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('本次外部检验日期')" align="center" prop="outWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.outWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+
+      <el-table-column :label="$t('外部检验结论')" align="center" prop="outCheckConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('外部检验报告编号')" align="center" prop="outReportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次外部检验日期')" align="center" prop="outNextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.outNextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改特种设备锅炉台账历史对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="装置名称" prop="plantCode">
+          <el-input v-model="form.plantCode" placeholder="请输入装置名称" />
+        </el-form-item>
+        <el-form-item label="单元" prop="unit">
+          <el-input v-model="form.unit" placeholder="请输入单元" />
+        </el-form-item>
+        <el-form-item label="设备名称" prop="devname">
+          <el-input v-model="form.devname" placeholder="请输入设备名称" />
+        </el-form-item>
+        <el-form-item label="设备位号" prop="devno">
+          <el-input v-model="form.devno" placeholder="请输入设备位号" />
+        </el-form-item>
+        <el-form-item label="提交日期" prop="submitdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.submitdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择提交日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="状态 1 :正常 ;0:删除" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入状态 1 :正常 ;0:删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="修改人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
+        </el-form-item>
+        <el-form-item label="修改时间" prop="updatedate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.updatedate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="部门编号" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注" />
+        </el-form-item>
+        <el-form-item label="审核状态">
+          <el-radio-group v-model="form.approveStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="注册代码" prop="regno">
+          <el-input v-model="form.regno" placeholder="请输入注册代码" />
+        </el-form-item>
+        <el-form-item label="使用证编号" prop="useno">
+          <el-input v-model="form.useno" placeholder="请输入使用证编号" />
+        </el-form-item>
+        <el-form-item label="上次年检时间" prop="warnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.warnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择上次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测周期" prop="warnCycle">
+          <el-input v-model="form.warnCycle" placeholder="请输入检测周期" />
+        </el-form-item>
+        <el-form-item label="下次年检时间" prop="nextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.nextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择下次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="预警标识" prop="warnFlag">
+          <el-input v-model="form.warnFlag" placeholder="请输入预警标识" />
+        </el-form-item>
+        <el-form-item label="制造单位" prop="createUnit">
+          <el-input v-model="form.createUnit" placeholder="请输入制造单位" />
+        </el-form-item>
+        <el-form-item label="燃烧方式" prop="burnMode">
+          <el-input v-model="form.burnMode" placeholder="请输入燃烧方式" />
+        </el-form-item>
+        <el-form-item label="燃烧种类" prop="burnKind">
+          <el-input v-model="form.burnKind" placeholder="请输入燃烧种类" />
+        </el-form-item>
+        <el-form-item label="额度出力" prop="ratedPower">
+          <el-input v-model="form.ratedPower" placeholder="请输入额度出力" />
+        </el-form-item>
+        <el-form-item label="设计压力" prop="desPressure">
+          <el-input v-model="form.desPressure" placeholder="请输入设计压力" />
+        </el-form-item>
+        <el-form-item label="设计温度" prop="desTemp">
+          <el-input v-model="form.desTemp" placeholder="请输入设计温度" />
+        </el-form-item>
+        <el-form-item label="操作压力" prop="optPressure">
+          <el-input v-model="form.optPressure" placeholder="请输入操作压力" />
+        </el-form-item>
+        <el-form-item label="操作温度" prop="optTemp">
+          <el-input v-model="form.optTemp" placeholder="请输入操作温度" />
+        </el-form-item>
+        <el-form-item label="检测单位" prop="checkUnit">
+          <el-input v-model="form.checkUnit" placeholder="请输入检测单位" />
+        </el-form-item>
+        <el-form-item label="检查结论" prop="checkConclusion">
+          <el-input v-model="form.checkConclusion" placeholder="请输入检查结论" />
+        </el-form-item>
+        <el-form-item label="型号" prop="model">
+          <el-input v-model="form.model" placeholder="请输入型号" />
+        </el-form-item>
+        <el-form-item label="水处理方式" prop="waterMode">
+          <el-input v-model="form.waterMode" placeholder="请输入水处理方式" />
+        </el-form-item>
+        <el-form-item label="报告编号" prop="reportNo">
+          <el-input v-model="form.reportNo" placeholder="请输入报告编号" />
+        </el-form-item>
+        <el-form-item label="最新申请时间" prop="approveTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.approveTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择最新申请时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态修改时间" prop="changeTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.changeTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择状态修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="装置维修组" prop="plantMaint">
+          <el-input v-model="form.plantMaint" placeholder="请输入装置维修组" />
+        </el-form-item>
+        <el-form-item label="本次外部检测日期" prop="outWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.outWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择本次外部检测日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="下次外部检测日期" prop="outNextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.outNextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择下次外部检测日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="外部检验结论" prop="outCheckConclusion">
+          <el-input v-model="form.outCheckConclusion" placeholder="请输入外部检验结论" />
+        </el-form-item>
+        <el-form-item label="外部检验编号" prop="outReportNo">
+          <el-input v-model="form.outReportNo" placeholder="请输入外部检验编号" />
+        </el-form-item>
+        <el-form-item label="装置维修工程师" prop="engineer">
+          <el-input v-model="form.engineer" placeholder="请输入装置维修工程师" />
+        </el-form-item>
+        <el-form-item label="设备id" prop="devId">
+          <el-input v-model="form.devId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="状态" prop="hiType">
+          <el-select v-model="form.hiType" placeholder="请选择状态">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作人" prop="operName">
+          <el-input v-model="form.operName" placeholder="请输入操作人" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="operTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.operTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作类型" prop="operType">
+          <el-select v-model="form.operType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listGl, getGl, delGl, addGl, updateGl, exportGl, importTemplate} from "@/api/sems/his/gl";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Gl",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 特种设备锅炉台账历史表格数据
+      glList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/his/gl/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: null,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        createUnit: null,
+        burnMode: null,
+        burnKind: null,
+        ratedPower: null,
+        desPressure: null,
+        desTemp: null,
+        optPressure: null,
+        optTemp: null,
+        checkUnit: null,
+        checkConclusion: null,
+        model: null,
+        waterMode: null,
+        reportNo: null,
+        approveTime: null,
+        changeTime: null,
+        plantMaint: null,
+        outWarnDate: null,
+        outNextWarnDate: null,
+        outCheckConclusion: null,
+        outReportNo: null,
+        engineer: null,
+        devId: null,
+        hiType: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        plantCode: [
+          { required: true, message: "装置名称不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight -250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询特种设备锅炉台账历史列表 */
+    getList() {
+      this.loading = true;
+      listGl(this.queryParams).then(response => {
+        this.glList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: 0,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: 0,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        createUnit: null,
+        burnMode: null,
+        burnKind: null,
+        ratedPower: null,
+        desPressure: null,
+        desTemp: null,
+        optPressure: null,
+        optTemp: null,
+        checkUnit: null,
+        checkConclusion: null,
+        model: null,
+        waterMode: null,
+        reportNo: null,
+        approveTime: null,
+        changeTime: null,
+        plantMaint: null,
+        outWarnDate: null,
+        outNextWarnDate: null,
+        outCheckConclusion: null,
+        outReportNo: null,
+        engineer: null,
+        devId: null,
+        hiType: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加特种设备锅炉台账历史";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getGl(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改特种设备锅炉台账历史";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateGl(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addGl(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delGl(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有特种设备锅炉台账历史数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return exportGl(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

File diff suppressed because it is too large
+ 476 - 317
ui/src/views/sems/specGl/ty.vue


+ 717 - 0
ui/src/views/sems/specYlgd/operlog.vue

@@ -0,0 +1,717 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作人" prop="operName">
+        <el-input
+          v-model="queryParams.operName"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="operTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.operTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operType">
+        <el-input
+          v-model="queryParams.operType"
+          placeholder="请输入操作类型"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ylgdList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column label="操作人" align="center" fixed="left" prop="operName" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作时间" align="center" fixed="left" prop="operTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.operTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作类型" fixed="left" align="center" prop="operType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置')" align="center"  fixed="left" prop="plantCode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('单元')" align="center"  fixed="left" prop="unit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修组')" align="center"  fixed="left" prop="plantMaint" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修工程师')" align="center"  fixed="left" prop="engineer" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('状态')" align="center"  fixed="left" prop="status" :formatter="statusFormat" />-->
+      <!--      <el-table-column :label="$t('申请状态')" align="center"  fixed="left" prop="approveStatus" :formatter="approveStatusFormat" />-->
+      <el-table-column :label="$t('位号')" align="center"  fixed="left" prop="devno" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('设备名称')" align="center" prop="devname" width="200" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用证号码')" align="center" prop="useno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('工业管道代码')" align="center" prop="regno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('容器类别')" align="center" prop="vesselType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('制造单位')" align="center" prop="createUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('国家')" align="center" prop="nation" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('外形尺寸(直径*长(高)*厚(mm))')" align="center" prop="outSize" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('材料')" align="center" prop="material" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('介质')" align="center" prop="medium" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计压力MPa')" align="center" prop="desPressure" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('操作压力MPa')" align="center" prop="optPressure" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计温度℃')" align="center" prop="desTemp" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('操作温度℃')" align="center" prop="optTemp" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('投用日期')" align="center" prop="submitdate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.submitdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('是否涉危化品')" align="center" prop="isDanger" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计使用年限')" align="center" prop="desYear" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('是否达到设计使用年限')" align="center" prop="isOverlife" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('检验单位')" align="center" prop="checkUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('定期检验日期')" align="center" prop="warnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.warnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('安全状况等级')" align="center" prop="safeClass" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次定期检验日期')" align="center" prop="nextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('定期检验报告编号')" align="center" prop="reportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('年度检查日期')" align="center" prop="yearWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.yearWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+
+      <el-table-column :label="$t('年度检查结论')" align="center" prop="checkConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次年度检查日期')" align="center" prop="yearNextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.yearNextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('年度检查报告编号')" align="center" prop="yearReportNo" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('部门编号')" align="center" prop="deptId" :show-overflow-tooltip="true"/>-->
+      <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改特种设备压力管道台账历史对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="装置名称" prop="plantCode">
+          <el-input v-model="form.plantCode" placeholder="请输入装置名称" />
+        </el-form-item>
+        <el-form-item label="单元" prop="unit">
+          <el-input v-model="form.unit" placeholder="请输入单元" />
+        </el-form-item>
+        <el-form-item label="管道名称" prop="devname">
+          <el-input v-model="form.devname" placeholder="请输入管道名称" />
+        </el-form-item>
+        <el-form-item label="管道编号" prop="devno">
+          <el-input v-model="form.devno" placeholder="请输入管道编号" />
+        </el-form-item>
+        <el-form-item label="投用年月" prop="submitdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.submitdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择投用年月">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="状态 1 :正常 ;0:删除" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入状态 1 :正常 ;0:删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="修改人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
+        </el-form-item>
+        <el-form-item label="修改时间" prop="updatedate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.updatedate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="部门编号" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注" />
+        </el-form-item>
+        <el-form-item label="审核状态">
+          <el-radio-group v-model="form.approveStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="注册代码" prop="regno">
+          <el-input v-model="form.regno" placeholder="请输入注册代码" />
+        </el-form-item>
+        <el-form-item label="使用证编号" prop="useno">
+          <el-input v-model="form.useno" placeholder="请输入使用证编号" />
+        </el-form-item>
+        <el-form-item label="上次年检时间" prop="warnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.warnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择上次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测周期" prop="warnCycle">
+          <el-input v-model="form.warnCycle" placeholder="请输入检测周期" />
+        </el-form-item>
+        <el-form-item label="下次年检时间" prop="nextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.nextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择下次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="预警标识" prop="warnFlag">
+          <el-input v-model="form.warnFlag" placeholder="请输入预警标识" />
+        </el-form-item>
+        <el-form-item label="管道级别" prop="grade">
+          <el-input v-model="form.grade" placeholder="请输入管道级别" />
+        </el-form-item>
+        <el-form-item label="设计单位" prop="designer">
+          <el-input v-model="form.designer" placeholder="请输入设计单位" />
+        </el-form-item>
+        <el-form-item label="安装单位" prop="installer">
+          <el-input v-model="form.installer" placeholder="请输入安装单位" />
+        </el-form-item>
+        <el-form-item label="材质" prop="material">
+          <el-input v-model="form.material" placeholder="请输入材质" />
+        </el-form-item>
+        <el-form-item label="直径" prop="dia">
+          <el-input v-model="form.dia" placeholder="请输入直径" />
+        </el-form-item>
+        <el-form-item label="厚度等级" prop="scheduleNo">
+          <el-input v-model="form.scheduleNo" placeholder="请输入厚度等级" />
+        </el-form-item>
+        <el-form-item label="长度" prop="length">
+          <el-input v-model="form.length" placeholder="请输入长度" />
+        </el-form-item>
+        <el-form-item label="起点" prop="starting">
+          <el-input v-model="form.starting" placeholder="请输入起点" />
+        </el-form-item>
+        <el-form-item label="终点" prop="ending">
+          <el-input v-model="form.ending" placeholder="请输入终点" />
+        </el-form-item>
+        <el-form-item label="设计压力" prop="desPressure">
+          <el-input v-model="form.desPressure" placeholder="请输入设计压力" />
+        </el-form-item>
+        <el-form-item label="设计温度" prop="desTemp">
+          <el-input v-model="form.desTemp" placeholder="请输入设计温度" />
+        </el-form-item>
+        <el-form-item label="工作压力" prop="optPressure">
+          <el-input v-model="form.optPressure" placeholder="请输入工作压力" />
+        </el-form-item>
+        <el-form-item label="工作温度" prop="optTemp">
+          <el-input v-model="form.optTemp" placeholder="请输入工作温度" />
+        </el-form-item>
+        <el-form-item label="介质" prop="medium">
+          <el-input v-model="form.medium" placeholder="请输入介质" />
+        </el-form-item>
+        <el-form-item label="检验结论" prop="checkConclusion">
+          <el-input v-model="form.checkConclusion" placeholder="请输入检验结论" />
+        </el-form-item>
+        <el-form-item label="检验单位" prop="checkUnit">
+          <el-input v-model="form.checkUnit" placeholder="请输入检验单位" />
+        </el-form-item>
+        <el-form-item label="安全状况等级" prop="safeClass">
+          <el-input v-model="form.safeClass" placeholder="请输入安全状况等级" />
+        </el-form-item>
+        <el-form-item label="报告编号" prop="reportNo">
+          <el-input v-model="form.reportNo" placeholder="请输入报告编号" />
+        </el-form-item>
+        <el-form-item label="最新申请时间" prop="approveTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.approveTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择最新申请时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态修改时间" prop="changeTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.changeTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择状态修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="PM维修组" prop="plantMaint">
+          <el-input v-model="form.plantMaint" placeholder="请输入PM维修组" />
+        </el-form-item>
+        <el-form-item label="装置维修工程师" prop="engineer">
+          <el-input v-model="form.engineer" placeholder="请输入装置维修工程师" />
+        </el-form-item>
+        <el-form-item label="焊口数量" prop="weldNumber">
+          <el-input v-model="form.weldNumber" placeholder="请输入焊口数量" />
+        </el-form-item>
+        <el-form-item label="敷设方式" prop="layingMethod">
+          <el-input v-model="form.layingMethod" placeholder="请输入敷设方式" />
+        </el-form-item>
+        <el-form-item label="绝热层代码" prop="adiabatic">
+          <el-input v-model="form.adiabatic" placeholder="请输入绝热层代码" />
+        </el-form-item>
+        <el-form-item label="防腐层代码" prop="antiCorrosion">
+          <el-input v-model="form.antiCorrosion" placeholder="请输入防腐层代码" />
+        </el-form-item>
+        <el-form-item label="绝热层厚度" prop="adiabaticThickness">
+          <el-input v-model="form.adiabaticThickness" placeholder="请输入绝热层厚度" />
+        </el-form-item>
+        <el-form-item label="是否涉危化品" prop="isDanger">
+          <el-input v-model="form.isDanger" placeholder="请输入是否涉危化品" />
+        </el-form-item>
+        <el-form-item label="安装日期" prop="installDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.installDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择安装日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="年度检查日期" prop="yearWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.yearWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择年度检查日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="年度检查日期" prop="yearNextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.yearNextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择年度检查日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="年度检查报告编号" prop="yearReportNo">
+          <el-input v-model="form.yearReportNo" placeholder="请输入年度检查报告编号" />
+        </el-form-item>
+        <el-form-item label="设备id" prop="devId">
+          <el-input v-model="form.devId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="状态" prop="hiType">
+          <el-select v-model="form.hiType" placeholder="请选择状态">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作人" prop="operName">
+          <el-input v-model="form.operName" placeholder="请输入操作人" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="operTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.operTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作类型" prop="operType">
+          <el-select v-model="form.operType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listYlgd, getYlgd, delYlgd, addYlgd, updateYlgd, exportYlgd, importTemplate} from "@/api/sems/his/ylgd";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Ylgd",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 特种设备压力管道台账历史表格数据
+      ylgdList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/his/ylgd/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: null,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        grade: null,
+        designer: null,
+        installer: null,
+        material: null,
+        dia: null,
+        scheduleNo: null,
+        length: null,
+        starting: null,
+        ending: null,
+        desPressure: null,
+        desTemp: null,
+        optPressure: null,
+        optTemp: null,
+        medium: null,
+        checkConclusion: null,
+        checkUnit: null,
+        safeClass: null,
+        reportNo: null,
+        approveTime: null,
+        changeTime: null,
+        plantMaint: null,
+        engineer: null,
+        weldNumber: null,
+        layingMethod: null,
+        adiabatic: null,
+        antiCorrosion: null,
+        adiabaticThickness: null,
+        isDanger: null,
+        installDate: null,
+        yearWarnDate: null,
+        yearNextWarnDate: null,
+        yearReportNo: null,
+        devId: null,
+        hiType: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight -250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询特种设备压力管道台账历史列表 */
+    getList() {
+      this.loading = true;
+      listYlgd(this.queryParams).then(response => {
+        this.ylgdList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: 0,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: 0,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        grade: null,
+        designer: null,
+        installer: null,
+        material: null,
+        dia: null,
+        scheduleNo: null,
+        length: null,
+        starting: null,
+        ending: null,
+        desPressure: null,
+        desTemp: null,
+        optPressure: null,
+        optTemp: null,
+        medium: null,
+        checkConclusion: null,
+        checkUnit: null,
+        safeClass: null,
+        reportNo: null,
+        approveTime: null,
+        changeTime: null,
+        plantMaint: null,
+        engineer: null,
+        weldNumber: null,
+        layingMethod: null,
+        adiabatic: null,
+        antiCorrosion: null,
+        adiabaticThickness: null,
+        isDanger: null,
+        installDate: null,
+        yearWarnDate: null,
+        yearNextWarnDate: null,
+        yearReportNo: null,
+        devId: null,
+        hiType: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加特种设备压力管道台账历史";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getYlgd(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改特种设备压力管道台账历史";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateYlgd(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addYlgd(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delYlgd(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有特种设备压力管道台账历史数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return exportYlgd(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

File diff suppressed because it is too large
+ 420 - 323
ui/src/views/sems/specYlgd/ty.vue


+ 688 - 0
ui/src/views/sems/specYlrq/operlog.vue

@@ -0,0 +1,688 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作人" prop="operName">
+        <el-input
+          v-model="queryParams.operName"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="operTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.operTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operType">
+        <el-input
+          v-model="queryParams.operType"
+          placeholder="请输入操作类型"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ylrqList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column label="操作人" align="center" fixed="left" prop="operName" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作时间" align="center" fixed="left" prop="operTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.operTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作类型" fixed="left" align="center" prop="operType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置')" align="center"  fixed="left" prop="plantCode" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('单元')" align="center"  fixed="left" prop="unit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修组')" align="center"  fixed="left" prop="plantMaint" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('装置维修工程师')" align="center"  fixed="left" prop="engineer" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column :label="$t('状态')" align="center"  fixed="left" prop="status" :formatter="statusFormat" />-->
+      <!--      <el-table-column :label="$t('申请状态')" align="center"  fixed="left" prop="approveStatus" :formatter="approveStatusFormat" />-->
+      <el-table-column :label="$t('位号')" align="center"  fixed="left" prop="devno" :show-overflow-tooltip="true"/>
+
+      <el-table-column :label="$t('设备名称')" align="center" prop="devname" width="200" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设备出厂编号')" align="center" prop="factoryNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('使用证号码')" align="center" prop="useno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('注册编号')" align="center" prop="regno" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('容器类别')" align="center" prop="vesselType" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('制造单位')" align="center" prop="createUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('国家')" align="center" prop="nation" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('外形尺寸(直径*长(高)*厚(mm))')" align="center" prop="outSize" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('材料')" align="center" prop="material" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('介质')" align="center" prop="medium" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计压力')+'MPa'" align="center" prop="desPressure" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('操作压力')+'MPa'" align="center" prop="optPressure" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计温度')+'℃'" align="center" prop="desTemp" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('操作温度')+'℃'" align="center" prop="optTemp" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('投用日期')" align="center" prop="submitdate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.submitdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('是否涉危化品')" align="center" prop="isDanger" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('设计使用年限')" align="center" prop="desYear" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('是否达到设计使用年限')" align="center" prop="isOverlife" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('检验单位')" align="center" prop="checkUnit" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('定期检验日期')" align="center" prop="warnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.warnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('安全状况等级')" align="center" prop="safeClass" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次定期检验日期')" align="center" prop="nextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.nextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('定期检验报告编号')" align="center" prop="reportNo" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('年度检查日期')" align="center" prop="yearWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.yearWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+
+      <el-table-column :label="$t('年度检查结论')" align="center" prop="checkConclusion" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('下次年度检查日期')" align="center" prop="yearNextWarnDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.yearNextWarnDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('年度检查报告编号')" align="center" prop="yearReportNo" :show-overflow-tooltip="true"/>
+      <!--      <el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>-->
+      <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改特种设备压力容器台账历史对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="装置名称" prop="plantCode">
+          <el-input v-model="form.plantCode" placeholder="请输入装置名称" />
+        </el-form-item>
+        <el-form-item label="单元" prop="unit">
+          <el-input v-model="form.unit" placeholder="请输入单元" />
+        </el-form-item>
+        <el-form-item label="设备名称" prop="devname">
+          <el-input v-model="form.devname" placeholder="请输入设备名称" />
+        </el-form-item>
+        <el-form-item label="设备位号" prop="devno">
+          <el-input v-model="form.devno" placeholder="请输入设备位号" />
+        </el-form-item>
+        <el-form-item label="提交日期" prop="submitdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.submitdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择提交日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="状态 1 :正常 ;0:删除" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入状态 1 :正常 ;0:删除" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="createdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="修改人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
+        </el-form-item>
+        <el-form-item label="修改时间" prop="updatedate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.updatedate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="部门编号" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注" />
+        </el-form-item>
+        <el-form-item label="审核状态">
+          <el-radio-group v-model="form.approveStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="注册代码" prop="regno">
+          <el-input v-model="form.regno" placeholder="请输入注册代码" />
+        </el-form-item>
+        <el-form-item label="使用证编号" prop="useno">
+          <el-input v-model="form.useno" placeholder="请输入使用证编号" />
+        </el-form-item>
+        <el-form-item label="上次年检时间" prop="warnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.warnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择上次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="检测周期" prop="warnCycle">
+          <el-input v-model="form.warnCycle" placeholder="请输入检测周期" />
+        </el-form-item>
+        <el-form-item label="下次年检时间" prop="nextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.nextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择下次年检时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="预警标识" prop="warnFlag">
+          <el-input v-model="form.warnFlag" placeholder="请输入预警标识" />
+        </el-form-item>
+        <el-form-item label="PM维修组" prop="plantMaint">
+          <el-input v-model="form.plantMaint" placeholder="请输入PM维修组" />
+        </el-form-item>
+        <el-form-item label="工程师" prop="engineer">
+          <el-input v-model="form.engineer" placeholder="请输入工程师" />
+        </el-form-item>
+        <el-form-item label="容器类别" prop="vesselType">
+          <el-select v-model="form.vesselType" placeholder="请选择容器类别">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="重点设备" prop="isKey">
+          <el-input v-model="form.isKey" placeholder="请输入重点设备" />
+        </el-form-item>
+        <el-form-item label="制造单位" prop="createUnit">
+          <el-input v-model="form.createUnit" placeholder="请输入制造单位" />
+        </el-form-item>
+        <el-form-item label="国家" prop="nation">
+          <el-input v-model="form.nation" placeholder="请输入国家" />
+        </el-form-item>
+        <el-form-item label="外形尺寸" prop="outSize">
+          <el-input v-model="form.outSize" placeholder="请输入外形尺寸" />
+        </el-form-item>
+        <el-form-item label="材质" prop="material">
+          <el-input v-model="form.material" placeholder="请输入材质" />
+        </el-form-item>
+        <el-form-item label="介质" prop="medium">
+          <el-input v-model="form.medium" placeholder="请输入介质" />
+        </el-form-item>
+        <el-form-item label="设计压力" prop="desPressure">
+          <el-input v-model="form.desPressure" placeholder="请输入设计压力" />
+        </el-form-item>
+        <el-form-item label="设计温度" prop="desTemp">
+          <el-input v-model="form.desTemp" placeholder="请输入设计温度" />
+        </el-form-item>
+        <el-form-item label="操作压力" prop="optPressure">
+          <el-input v-model="form.optPressure" placeholder="请输入操作压力" />
+        </el-form-item>
+        <el-form-item label="操作温度" prop="optTemp">
+          <el-input v-model="form.optTemp" placeholder="请输入操作温度" />
+        </el-form-item>
+        <el-form-item label="检验单位" prop="checkUnit">
+          <el-input v-model="form.checkUnit" placeholder="请输入检验单位" />
+        </el-form-item>
+        <el-form-item label="报告编号" prop="reportNo">
+          <el-input v-model="form.reportNo" placeholder="请输入报告编号" />
+        </el-form-item>
+        <el-form-item label="涉危化品" prop="isDanger">
+          <el-input v-model="form.isDanger" placeholder="请输入涉危化品" />
+        </el-form-item>
+        <el-form-item label="超过使用寿命" prop="isOverlife">
+          <el-input v-model="form.isOverlife" placeholder="请输入超过使用寿命" />
+        </el-form-item>
+        <el-form-item label="安全等级" prop="safeClass">
+          <el-input v-model="form.safeClass" placeholder="请输入安全等级" />
+        </el-form-item>
+        <el-form-item label="最新申请时间" prop="approveTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.approveTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择最新申请时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态修改时间" prop="changeTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.changeTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择状态修改时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="设计使用年限" prop="desYear">
+          <el-input v-model="form.desYear" placeholder="请输入设计使用年限" />
+        </el-form-item>
+        <el-form-item label="年度检查日期" prop="yearWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.yearWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择年度检查日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="年度检查结论" prop="checkConclusion">
+          <el-input v-model="form.checkConclusion" placeholder="请输入年度检查结论" />
+        </el-form-item>
+        <el-form-item label="年度检查日期" prop="yearNextWarnDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.yearNextWarnDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择年度检查日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="年度检查报告编号" prop="yearReportNo">
+          <el-input v-model="form.yearReportNo" placeholder="请输入年度检查报告编号" />
+        </el-form-item>
+        <el-form-item label="设备id" prop="devId">
+          <el-input v-model="form.devId" placeholder="请输入设备id" />
+        </el-form-item>
+        <el-form-item label="状态" prop="hiType">
+          <el-select v-model="form.hiType" placeholder="请选择状态">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="出厂编号" prop="factoryNo">
+          <el-input v-model="form.factoryNo" placeholder="请输入出厂编号" />
+        </el-form-item>
+        <el-form-item label="操作人" prop="operName">
+          <el-input v-model="form.operName" placeholder="请输入操作人" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="operTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.operTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作类型" prop="operType">
+          <el-select v-model="form.operType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listYlrq, getYlrq, delYlrq, addYlrq, updateYlrq, exportYlrq, importTemplate} from "@/api/sems/his/ylrq";
+import { treeselect } from "@/api/system/dept";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Ylrq",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 特种设备压力容器台账历史表格数据
+      ylrqList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight:300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/his/ylrq/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: null,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        plantMaint: null,
+        engineer: null,
+        vesselType: null,
+        isKey: null,
+        createUnit: null,
+        nation: null,
+        outSize: null,
+        material: null,
+        medium: null,
+        desPressure: null,
+        desTemp: null,
+        optPressure: null,
+        optTemp: null,
+        checkUnit: null,
+        reportNo: null,
+        isDanger: null,
+        isOverlife: null,
+        safeClass: null,
+        approveTime: null,
+        changeTime: null,
+        desYear: null,
+        yearWarnDate: null,
+        checkConclusion: null,
+        yearNextWarnDate: null,
+        yearReportNo: null,
+        devId: null,
+        hiType: null,
+        factoryNo: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        plantCode: [
+          { required: true, message: "装置名称不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight -250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询特种设备压力容器台账历史列表 */
+    getList() {
+      this.loading = true;
+      listYlrq(this.queryParams).then(response => {
+        this.ylrqList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        plantCode: null,
+        unit: null,
+        devname: null,
+        devno: null,
+        submitdate: null,
+        status: 0,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null,
+        remarks: null,
+        approveStatus: 0,
+        regno: null,
+        useno: null,
+        warnDate: null,
+        warnCycle: null,
+        nextWarnDate: null,
+        warnFlag: null,
+        plantMaint: null,
+        engineer: null,
+        vesselType: null,
+        isKey: null,
+        createUnit: null,
+        nation: null,
+        outSize: null,
+        material: null,
+        medium: null,
+        desPressure: null,
+        desTemp: null,
+        optPressure: null,
+        optTemp: null,
+        checkUnit: null,
+        reportNo: null,
+        isDanger: null,
+        isOverlife: null,
+        safeClass: null,
+        approveTime: null,
+        changeTime: null,
+        desYear: null,
+        yearWarnDate: null,
+        checkConclusion: null,
+        yearNextWarnDate: null,
+        yearReportNo: null,
+        devId: null,
+        hiType: null,
+        factoryNo: null,
+        operName: null,
+        operTime: null,
+        operType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加特种设备压力容器台账历史";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getYlrq(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改特种设备压力容器台账历史";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateYlrq(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addYlrq(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delYlrq(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有特种设备压力容器台账历史数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return exportYlrq(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

File diff suppressed because it is too large
+ 432 - 296
ui/src/views/sems/specYlrq/ty.vue


Some files were not shown because too many files changed in this diff