Browse Source

LY 会议

ly 1 year ago
parent
commit
1eced264f6
60 changed files with 814 additions and 567 deletions
  1. 12 0
      master/src/main/java/com/ruoyi/project/plant/controller/TMtdConfigController.java
  2. 5 2
      master/src/main/java/com/ruoyi/project/plant/controller/TMtdDailyController.java
  3. 22 1
      master/src/main/java/com/ruoyi/project/plant/controller/TMtdEmailController.java
  4. 40 10
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtActionlistController.java
  5. 1 1
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtEhsopenitemController.java
  6. 1 1
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtInterlockController.java
  7. 35 7
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtKeymaintenanceController.java
  8. 38 5
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtMessageattentionController.java
  9. 1 1
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtOpextrackController.java
  10. 16 10
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtPersonController.java
  11. 1 1
      master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtRiskreminderController.java
  12. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TAwardrecord.java
  13. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TManageactivity.java
  14. 23 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtActionlist.java
  15. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtEhsopenitem.java
  16. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtInterlock.java
  17. 23 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtKeymaintenance.java
  18. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtMeeting.java
  19. 22 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtMessageattention.java
  20. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtOpextrack.java
  21. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtPerson.java
  22. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtRiskreminder.java
  23. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtdDaily.java
  24. 29 0
      master/src/main/java/com/ruoyi/project/plant/domain/TMtdEmail.java
  25. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TStaffmgr.java
  26. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TTargetagreement.java
  27. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TTargetlist.java
  28. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TTargetmeasures.java
  29. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TTargetreview.java
  30. 1 0
      master/src/main/java/com/ruoyi/project/plant/domain/TTargetyardstick.java
  31. 1 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtActionlistMapper.java
  32. 0 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtEhsopenitemMapper.java
  33. 0 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtInterlockMapper.java
  34. 0 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtKeymaintenanceMapper.java
  35. 0 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtMessageattentionMapper.java
  36. 0 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtOpextrackMapper.java
  37. 8 9
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtPersonMapper.java
  38. 0 1
      master/src/main/java/com/ruoyi/project/plant/mapper/TMtRiskreminderMapper.java
  39. 65 9
      master/src/main/java/com/ruoyi/project/plant/service/impl/TMtMeetingServiceImpl.java
  40. 1 1
      master/src/main/resources/mybatis/plant/TMtKeymaintenanceMapper.xml
  41. 1 1
      ui/src/router/index.js
  42. 1 1
      ui/src/store/index.js
  43. 6 1
      ui/src/store/modules/user.js
  44. 3 2
      ui/src/utils/permission.js
  45. 47 32
      ui/src/views/components/meeting/actionlist.vue
  46. 3 15
      ui/src/views/components/meeting/ehsopenitem.vue
  47. 8 16
      ui/src/views/components/meeting/interlock.vue
  48. 44 28
      ui/src/views/components/meeting/keymaintenance.vue
  49. 44 39
      ui/src/views/components/meeting/messageattention.vue
  50. 1 15
      ui/src/views/components/meeting/opextrack.vue
  51. 32 43
      ui/src/views/components/meeting/person.vue
  52. 1 14
      ui/src/views/components/meeting/riskreminder.vue
  53. 115 0
      ui/src/views/components/yulan/index.vue
  54. 44 22
      ui/src/views/plant/dailyMeeting/detail.vue
  55. 18 10
      ui/src/views/plant/dailyMeeting/index.vue
  56. 1 1
      ui/src/views/plant/dailyMeetingConfig/index.vue
  57. 85 189
      ui/src/views/plant/dailyMeetingEmail/index.vue
  58. 0 1
      ui/src/views/plant/hismeeting/index.vue
  59. 1 9
      ui/src/views/plant/weekmeeting/index.vue
  60. 0 63
      ui/src/views/yulan/index.vue

+ 12 - 0
master/src/main/java/com/ruoyi/project/plant/controller/TMtdConfigController.java

@@ -3,6 +3,7 @@ package com.ruoyi.project.plant.controller;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -50,6 +51,17 @@ public class TMtdConfigController extends BaseController
     {
         startPage();
         List<TMtdConfig> list = tMtdConfigService.selectTMtdConfigList(tMtdConfig);
+        for (TMtdConfig t :list
+             ) {
+            if (t.getConfigType() == 1 && StringUtils.isNotEmpty(t.getConfigValue())) {
+                String[] arr = t.getConfigValue().split(",");
+                t.setConfigValue("");
+                for (int i = 0; i < arr.length; i++) {
+                    SysUser s = userMapper.selectUserByStaffId(arr[i]);
+                    t.setConfigValue(t.getConfigValue() + s.getNickName() + "_" + s.getDept().getDeptName() + ",");
+                }
+            }
+        }
         return getDataTable(list);
     }
 

+ 5 - 2
master/src/main/java/com/ruoyi/project/plant/controller/TMtdDailyController.java

@@ -27,6 +27,7 @@ import com.ruoyi.project.sems.safecheck.domain.TSpecWeekcheck;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import io.jsonwebtoken.lang.Assert;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -275,8 +276,10 @@ public class TMtdDailyController extends BaseController
         for (TMtdItem t: items
         ) {
             t.setItem(itemNum + "." + num);
-            SysUser sysUser = sysUserMapper.selectUserByStaffId(t.getActionby());
-            t.setActionName(sysUser.getNickName());
+            if (StringUtils.isNotEmpty(t.getActionby())){
+                SysUser sysUser = sysUserMapper.selectUserByStaffId(t.getActionby());
+                t.setActionName(sysUser.getNickName());
+            }
             t.setBeginTime(DateUtils.parseDateToStr("MM-dd",tMtdDaily.getMeetingDate()));
             num++;
         }

+ 22 - 1
master/src/main/java/com/ruoyi/project/plant/controller/TMtdEmailController.java

@@ -1,6 +1,10 @@
 package com.ruoyi.project.plant.controller;
 
 import java.util.List;
+
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.domain.TAlarmPrincipal;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,6 +36,8 @@ public class TMtdEmailController extends BaseController
 {
     @Autowired
     private ITMtdEmailService tMtdEmailService;
+    @Autowired
+    private ISysUserService sysUserService;
 
     /**
      * 查询会议邮件配置列表
@@ -42,6 +48,15 @@ public class TMtdEmailController extends BaseController
     {
         startPage();
         List<TMtdEmail> list = tMtdEmailService.selectTMtdEmailList(tMtdEmail);
+        for (TMtdEmail t: list
+        ) {
+            SysUser user = sysUserService.selectUserByStaffId(t.getStaffid());
+            if (user != null) {
+                t.setUserName(user.getNickName());
+                t.setUserEmail(user.getEmail());
+                t.setUserDept(user.getDept().getDeptName());
+            }
+        }
         return getDataTable(list);
     }
 
@@ -65,7 +80,13 @@ public class TMtdEmailController extends BaseController
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id)
     {
-        return AjaxResult.success(tMtdEmailService.selectTMtdEmailById(id));
+        TMtdEmail t = tMtdEmailService.selectTMtdEmailById(id);
+        SysUser user = sysUserService.selectUserByStaffId(t.getStaffid());
+        if (user != null) {
+            t.setUserName(user.getNickName());
+            t.setUserEmail(user.getEmail());
+        }
+        return AjaxResult.success(t);
     }
 
     /**

+ 40 - 10
master/src/main/java/com/ruoyi/project/plant/controller/TMtActionlistController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtActionlistController.java

@@ -1,14 +1,15 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.alibaba.fastjson.JSON;
+import com.ruoyi.framework.security.service.SysPermissionService;
 import com.ruoyi.project.common.domain.DataEntity;
 import com.ruoyi.project.plant.mapper.TMtActionlistMapper;
 import com.ruoyi.project.system.domain.SysDictData;
+import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +23,8 @@ 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
  *
@@ -34,11 +37,14 @@ public class TMtActionlistController extends BaseController
 {
     @Autowired
     private ITMtActionlistService tMtActionlistService;
-    @Autowired
+    @Resource
     private TMtActionlistMapper tMtActionlistMapper;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
-
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private SysPermissionService permissionService;
     /**
      * 查询装置会议执行列表
      */
@@ -46,9 +52,32 @@ public class TMtActionlistController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(TMtActionlist tMtActionlist)
     {
+        // 权限集合
+        SysUser s = sysUserService.selectUserById(getUserId());
+        Set<String> permissions = permissionService.getMenuPermission(s);
+        if (!permissions.contains("plant:meeting:edit") && !s.isAdmin()) {
+            tMtActionlist.setResponsible(s.getStaffId());
+        }
+
         logger.info(JSON.toJSONString(tMtActionlist));
         startPage();
         List<TMtActionlist> list = tMtActionlistService.selectTMtActionlistList(tMtActionlist);
+
+        for (TMtActionlist t:list
+             ) {
+            if (StringUtils.isNotEmpty(t.getResponsible())) {
+                SysUser user = sysUserService.selectUserByStaffId(t.getResponsible());
+                if (user != null) {
+                    t.setRespName(user.getNickName());
+                }
+            }
+
+            if (t.getUpdaterCode() != null) {
+                SysUser updater = sysUserService.selectUserById( Long.parseLong(t.getUpdaterCode()));
+                t.setUpdaterCode(updater.getNickName());
+            }
+        }
+
         return getDataTable(list);
     }
 
@@ -93,7 +122,6 @@ public class TMtActionlistController extends BaseController
     /**
      * 获取装置会议执行详细信息
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id)
     {
@@ -103,29 +131,31 @@ public class TMtActionlistController extends BaseController
     /**
      * 新增装置会议执行
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:add')")
     @Log(title = "装置会议执行", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TMtActionlist tMtActionlist)
     {
+        tMtActionlist.setUpdatedate(new Date());
+        tMtActionlist.setUpdaterCode(getUserId() + "");
+        tMtActionlist.setCreaterCode(getUserId() + "");
         return toAjax(tMtActionlistService.insertTMtActionlist(tMtActionlist));
     }
 
     /**
      * 修改装置会议执行
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:edit')")
     @Log(title = "装置会议执行", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TMtActionlist tMtActionlist)
     {
+        tMtActionlist.setUpdatedate(new Date());
+        tMtActionlist.setUpdaterCode(getUserId() + "");
         return toAjax(tMtActionlistService.updateTMtActionlist(tMtActionlist));
     }
 
     /**
      * 删除装置会议执行
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:remove')")
     @Log(title = "装置会议执行", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids)

+ 1 - 1
master/src/main/java/com/ruoyi/project/plant/controller/TMtEhsopenitemController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtEhsopenitemController.java

@@ -1,4 +1,4 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
 import java.util.List;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 1
master/src/main/java/com/ruoyi/project/plant/controller/TMtInterlockController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtInterlockController.java

@@ -1,4 +1,4 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
 import java.util.List;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 35 - 7
master/src/main/java/com/ruoyi/project/plant/controller/TMtKeymaintenanceController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtKeymaintenanceController.java

@@ -1,14 +1,16 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.alibaba.fastjson.JSON;
+import com.ruoyi.framework.security.service.SysPermissionService;
 import com.ruoyi.project.common.domain.DataEntity;
+import com.ruoyi.project.plant.domain.TMtActionlist;
 import com.ruoyi.project.plant.mapper.TMtKeymaintenanceMapper;
 import com.ruoyi.project.system.domain.SysDictData;
+import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysDictTypeService;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +42,10 @@ public class TMtKeymaintenanceController extends BaseController
     private TMtKeymaintenanceMapper tMtKeymaintenanceMapper;
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private SysPermissionService permissionService;
     /**
      * 查询下周关键维修工作列表
      */
@@ -47,8 +53,28 @@ public class TMtKeymaintenanceController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(TMtKeymaintenance tMtKeymaintenance)
     {
+
+        // 权限集合
+        SysUser s = sysUserService.selectUserById(getUserId());
+        Set<String> permissions = permissionService.getMenuPermission(s);
+        if (!permissions.contains("plant:meeting:edit") && !s.isAdmin()) {
+            tMtKeymaintenance.setResponsible(s.getStaffId());
+        }
         startPage();
         List<TMtKeymaintenance> list = tMtKeymaintenanceService.selectTMtKeymaintenanceList(tMtKeymaintenance);
+        for (TMtKeymaintenance t:list
+        ) {
+            if (StringUtils.isNotEmpty(t.getResponsible())) {
+                SysUser user = sysUserService.selectUserByStaffId(t.getResponsible());
+                if (user != null) {
+                    t.setRespName(user.getNickName());
+                }
+            }
+            if (t.getUpdaterCode() != null) {
+                SysUser updater = sysUserService.selectUserById( Long.parseLong(t.getUpdaterCode()));
+                t.setUpdaterCode(updater.getNickName());
+            }
+        }
         return getDataTable(list);
     }
 
@@ -93,7 +119,6 @@ public class TMtKeymaintenanceController extends BaseController
     /**
      * 获取下周关键维修工作详细信息
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id)
     {
@@ -103,22 +128,25 @@ public class TMtKeymaintenanceController extends BaseController
     /**
      * 新增下周关键维修工作
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:add')")
     @Log(title = "下周关键维修工作", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TMtKeymaintenance tMtKeymaintenance)
     {
+        tMtKeymaintenance.setUpdatedate(new Date());
+        tMtKeymaintenance.setUpdaterCode(getUserId() + "");
+        tMtKeymaintenance.setCreaterCode(getUserId() + "");
         return toAjax(tMtKeymaintenanceService.insertTMtKeymaintenance(tMtKeymaintenance));
     }
 
     /**
      * 修改下周关键维修工作
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:edit')")
     @Log(title = "下周关键维修工作", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TMtKeymaintenance tMtKeymaintenance)
     {
+        tMtKeymaintenance.setUpdatedate(new Date());
+        tMtKeymaintenance.setUpdaterCode(getUserId() + "");
         return toAjax(tMtKeymaintenanceService.updateTMtKeymaintenance(tMtKeymaintenance));
     }
 

+ 38 - 5
master/src/main/java/com/ruoyi/project/plant/controller/TMtMessageattentionController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtMessageattentionController.java

@@ -1,6 +1,14 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Set;
+
+import com.ruoyi.framework.security.service.SysPermissionService;
+import com.ruoyi.project.plant.domain.TMtKeymaintenance;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,16 +40,38 @@ public class TMtMessageattentionController extends BaseController
 {
     @Autowired
     private ITMtMessageattentionService tMtMessageattentionService;
-
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private SysPermissionService permissionService;
     /**
      * 查询信息提醒列表
      */
-    @PreAuthorize("@ss.hasPermi('plant:keymaintenance:list')")
+    @PreAuthorize("@ss.hasPermi('plant:meeting:list')")
     @GetMapping("/list")
     public TableDataInfo list(TMtMessageattention tMtMessageattention)
     {
+        // 权限集合
+        SysUser s = sysUserService.selectUserById(getUserId());
+        Set<String> permissions = permissionService.getMenuPermission(s);
+        if (!permissions.contains("plant:meeting:edit") && !s.isAdmin()) {
+            tMtMessageattention.setResponsible(s.getStaffId());
+        }
         startPage();
         List<TMtMessageattention> list = tMtMessageattentionService.selectTMtMessageattentionList(tMtMessageattention);
+        for (TMtMessageattention t:list
+        ) {
+            if (StringUtils.isNotEmpty(t.getResponsible())) {
+                SysUser user = sysUserService.selectUserByStaffId(t.getResponsible());
+                if (user != null) {
+                    t.setRespName(user.getNickName());
+                }
+            }
+            if (t.getUpdaterCode() != null) {
+                SysUser updater = sysUserService.selectUserById( Long.parseLong(t.getUpdaterCode()));
+                t.setUpdaterCode(updater.getNickName());
+            }
+        }
         return getDataTable(list);
     }
 
@@ -71,22 +101,25 @@ public class TMtMessageattentionController extends BaseController
     /**
      * 新增信息提醒
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:add')")
     @Log(title = "信息提醒", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TMtMessageattention tMtMessageattention)
     {
+        tMtMessageattention.setUpdatedate(new Date());
+        tMtMessageattention.setUpdaterCode(getUserId() + "");
+        tMtMessageattention.setCreaterCode(getUserId() + "");
         return toAjax(tMtMessageattentionService.insertTMtMessageattention(tMtMessageattention));
     }
 
     /**
      * 修改信息提醒
      */
-    @PreAuthorize("@ss.hasPermi('plant:meeting:edit')")
     @Log(title = "信息提醒", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TMtMessageattention tMtMessageattention)
     {
+        tMtMessageattention.setUpdatedate(new Date());
+        tMtMessageattention.setUpdaterCode(getUserId() + "");
         return toAjax(tMtMessageattentionService.updateTMtMessageattention(tMtMessageattention));
     }
 

+ 1 - 1
master/src/main/java/com/ruoyi/project/plant/controller/TMtOpextrackController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtOpextrackController.java

@@ -1,4 +1,4 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
 import java.util.List;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 16 - 10
master/src/main/java/com/ruoyi/project/plant/controller/TMtPersonController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtPersonController.java

@@ -1,10 +1,13 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
 import java.util.List;
 
 import com.alibaba.fastjson.JSON;
+import com.ruoyi.project.plant.domain.TMtdEmail;
 import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.plant.mapper.TStaffmgrMapper;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -40,6 +43,8 @@ public class TMtPersonController extends BaseController
     private ITMtPersonService tMtPersonService;
     @Resource
     private TStaffmgrMapper tStaffmgrMapper;
+    @Autowired
+    private ISysUserService sysUserService;
     /**
      * 查询会议人员列表
      */
@@ -49,6 +54,16 @@ public class TMtPersonController extends BaseController
     {
         startPage();
         List<TMtPerson> list = tMtPersonService.selectTMtPersonList(tMtPerson);
+        for (TMtPerson t: list
+        ) {
+            SysUser user = sysUserService.selectUserByStaffId(t.getStaffid());
+            if (user != null) {
+                t.setName(user.getNickName());
+                t.setContact(user.getEmail());
+                t.setUnit(user.getDept().getDeptName());
+            }
+        }
+
         return getDataTable(list);
     }
 
@@ -83,15 +98,6 @@ public class TMtPersonController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TMtPerson tMtPerson)
     {
-        TStaffmgr t = tStaffmgrMapper.selectTStaffmgrByStaffId(tMtPerson.getStaffid());
-        tMtPerson.setActualpost(t.getActualpost());
-        tMtPerson.setDeptId(t.getDeptId());
-        tMtPerson.setName(t.getName());
-        tMtPerson.setPlantCode(t.getPlantCode());
-        tMtPerson.setUnit(t.getUnit());
-        tMtPerson.setContact(t.getContact());
-        tMtPerson.setTeam(t.getTeam());
-        tMtPerson.setSex(t.getSex());
         return toAjax(tMtPersonService.insertTMtPerson(tMtPerson));
     }
 

+ 1 - 1
master/src/main/java/com/ruoyi/project/plant/controller/TMtRiskreminderController.java → master/src/main/java/com/ruoyi/project/plant/controller/weekMeeting/TMtRiskreminderController.java

@@ -1,4 +1,4 @@
-package com.ruoyi.project.plant.controller;
+package com.ruoyi.project.plant.controller.weekMeeting;
 
 import java.util.List;
 import org.springframework.security.access.prepost.PreAuthorize;

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TAwardrecord.java

@@ -61,6 +61,7 @@ public class TAwardrecord extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门名称 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TManageactivity.java

@@ -117,6 +117,7 @@ public class TManageactivity extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门编号 */

+ 23 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtActionlist.java

@@ -28,6 +28,12 @@ public class TMtActionlist extends BaseEntity
     @Excel(name = "责任人")
     private String responsible;
 
+    /** 责任人姓名 */
+    private String respName;
+
+    /** 不指定责任人 */
+    private Integer isDes;
+
     /** 行动 */
     @Excel(name = "行动")
     private String action;
@@ -59,6 +65,7 @@ public class TMtActionlist extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 所属部门 */
@@ -78,6 +85,22 @@ public class TMtActionlist extends BaseEntity
     @Excel(name = "部门名称")
     private String deptName;
 
+    public String getRespName() {
+        return respName;
+    }
+
+    public void setRespName(String respName) {
+        this.respName = respName;
+    }
+
+    public Integer getIsDes() {
+        return isDes;
+    }
+
+    public void setIsDes(Integer isDes) {
+        this.isDes = isDes;
+    }
+
     public String getDeptName() {
         return deptName;
     }

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtEhsopenitem.java

@@ -58,6 +58,7 @@ public class TMtEhsopenitem extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtInterlock.java

@@ -46,6 +46,7 @@ public class TMtInterlock extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门 */

+ 23 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtKeymaintenance.java

@@ -28,6 +28,12 @@ public class TMtKeymaintenance extends BaseEntity
     @Excel(name = "责任人")
     private String responsible;
 
+    /** 责任人姓名 */
+    private String respName;
+
+    /** 不指定责任人 */
+    private Integer isDes;
+
     /** 行动 */
     @Excel(name = "行动")
     private String action;
@@ -59,6 +65,7 @@ public class TMtKeymaintenance extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 所属部门 */
@@ -79,6 +86,22 @@ public class TMtKeymaintenance extends BaseEntity
     @Excel(name = "部门名称")
     private String deptName;
 
+    public String getRespName() {
+        return respName;
+    }
+
+    public void setRespName(String respName) {
+        this.respName = respName;
+    }
+
+    public Integer getIsDes() {
+        return isDes;
+    }
+
+    public void setIsDes(Integer isDes) {
+        this.isDes = isDes;
+    }
+
     public String getDeptName() {
         return deptName;
     }

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtMeeting.java

@@ -58,6 +58,7 @@ public class TMtMeeting extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 所属部门 */

+ 22 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtMessageattention.java

@@ -27,6 +27,11 @@ public class TMtMessageattention extends BaseEntity
     /** 责任人 */
     @Excel(name = "责任人")
     private String responsible;
+    /** 责任人姓名 */
+    private String respName;
+
+    /** 不指定责任人 */
+    private Integer isDes;
 
     /** 行动 */
     @Excel(name = "行动")
@@ -58,6 +63,7 @@ public class TMtMessageattention extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门 */
@@ -75,6 +81,22 @@ public class TMtMessageattention extends BaseEntity
     @Excel(name = "部门名称")
     private String deptName;
 
+    public String getRespName() {
+        return respName;
+    }
+
+    public void setRespName(String respName) {
+        this.respName = respName;
+    }
+
+    public Integer getIsDes() {
+        return isDes;
+    }
+
+    public void setIsDes(Integer isDes) {
+        this.isDes = isDes;
+    }
+
     public Long getIsHis() {
         return isHis;
     }

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtOpextrack.java

@@ -54,6 +54,7 @@ public class TMtOpextrack extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtPerson.java

@@ -66,6 +66,7 @@ public class TMtPerson extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 会议id */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtRiskreminder.java

@@ -50,6 +50,7 @@ public class TMtRiskreminder extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtdDaily.java

@@ -80,6 +80,7 @@ public class TMtdDaily extends BaseEntity
     private String updaterCode;
 
     /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 所属部门 */

+ 29 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TMtdEmail.java

@@ -4,6 +4,7 @@ import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.framework.web.domain.BaseEntity;
+import com.ruoyi.project.system.domain.SysUser;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
@@ -32,6 +33,8 @@ public class TMtdEmail extends BaseEntity
     @Excel(name = "负责人姓名")
     private String userName;
 
+    private String userEmail;
+    private String userDept;
     /** 删除标识 */
     private Long delFlag;
 
@@ -47,6 +50,14 @@ public class TMtdEmail extends BaseEntity
     @Excel(name = "更新人")
     private String updaterCode;
 
+    public String getUserEmail() {
+        return userEmail;
+    }
+
+    public void setUserEmail(String userEmail) {
+        this.userEmail = userEmail;
+    }
+
     /** 更新日期 */
     @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
     @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd")
@@ -56,6 +67,16 @@ public class TMtdEmail extends BaseEntity
     @Excel(name = "部门编号")
     private Long deptId;
 
+    private String deptName;
+
+    public String getUserDept() {
+        return userDept;
+    }
+
+    public void setUserDept(String userDept) {
+        this.userDept = userDept;
+    }
+
     /** 备注 */
     @Excel(name = "备注")
     private String remarks;
@@ -173,6 +194,14 @@ public class TMtdEmail extends BaseEntity
         return staffid;
     }
 
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TStaffmgr.java

@@ -97,6 +97,7 @@ public class TStaffmgr extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门编号 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TTargetagreement.java

@@ -65,6 +65,7 @@ public class TTargetagreement extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门名称 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TTargetlist.java

@@ -99,6 +99,7 @@ public class TTargetlist extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门编号 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TTargetmeasures.java

@@ -50,6 +50,7 @@ public class TTargetmeasures extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门编号 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TTargetreview.java

@@ -67,6 +67,7 @@ public class TTargetreview extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     /** 部门编号 */

+ 1 - 0
master/src/main/java/com/ruoyi/project/plant/domain/TTargetyardstick.java

@@ -66,6 +66,7 @@ public class TTargetyardstick extends BaseEntity
     private String updaterCode;
 
     /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
     private Date updatedate;
 
     public void setId(Long id)

+ 1 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtActionlistMapper.java

@@ -29,7 +29,7 @@ public interface TMtActionlistMapper
      * @param tMtActionlist 装置会议执行
      * @return 装置会议执行集合
      */
-    @DataScope(deptAlias = "d")
+
     public List<TMtActionlist> selectTMtActionlistList(TMtActionlist tMtActionlist);
 
     /**

+ 0 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtEhsopenitemMapper.java

@@ -26,7 +26,6 @@ public interface TMtEhsopenitemMapper
      * @param tMtEhsopenitem EHS开项跟踪
      * @return EHS开项跟踪集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtEhsopenitem> selectTMtEhsopenitemList(TMtEhsopenitem tMtEhsopenitem);
 
     /**

+ 0 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtInterlockMapper.java

@@ -26,7 +26,6 @@ public interface TMtInterlockMapper
      * @param tMtInterlock 关键机组联锁旁路
      * @return 关键机组联锁旁路集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtInterlock> selectTMtInterlockList(TMtInterlock tMtInterlock);
 
     /**

+ 0 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtKeymaintenanceMapper.java

@@ -29,7 +29,6 @@ public interface TMtKeymaintenanceMapper
      * @param tMtKeymaintenance 下周关键维修工作
      * @return 下周关键维修工作集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtKeymaintenance> selectTMtKeymaintenanceList(TMtKeymaintenance tMtKeymaintenance);
 
     /**

+ 0 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtMessageattentionMapper.java

@@ -26,7 +26,6 @@ public interface TMtMessageattentionMapper
      * @param tMtMessageattention 信息提醒
      * @return 信息提醒集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtMessageattention> selectTMtMessageattentionList(TMtMessageattention tMtMessageattention);
 
     /**

+ 0 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtOpextrackMapper.java

@@ -26,7 +26,6 @@ public interface TMtOpextrackMapper
      * @param tMtOpextrack OpEx项目跟踪
      * @return OpEx项目跟踪集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtOpextrack> selectTMtOpextrackList(TMtOpextrack tMtOpextrack);
 
     /**

+ 8 - 9
master/src/main/java/com/ruoyi/project/plant/mapper/TMtPersonMapper.java

@@ -6,15 +6,15 @@ import com.ruoyi.project.plant.domain.TMtPerson;
 
 /**
  * 会议人员Mapper接口
- * 
+ *
  * @author ruoyi
  * @date 2021-01-14
  */
-public interface TMtPersonMapper 
+public interface TMtPersonMapper
 {
     /**
      * 查询会议人员
-     * 
+     *
      * @param id 会议人员ID
      * @return 会议人员
      */
@@ -22,16 +22,15 @@ public interface TMtPersonMapper
 
     /**
      * 查询会议人员列表
-     * 
+     *
      * @param tMtPerson 会议人员
      * @return 会议人员集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtPerson> selectTMtPersonList(TMtPerson tMtPerson);
 
     /**
      * 新增会议人员
-     * 
+     *
      * @param tMtPerson 会议人员
      * @return 结果
      */
@@ -39,7 +38,7 @@ public interface TMtPersonMapper
 
     /**
      * 修改会议人员
-     * 
+     *
      * @param tMtPerson 会议人员
      * @return 结果
      */
@@ -47,7 +46,7 @@ public interface TMtPersonMapper
 
     /**
      * 删除会议人员
-     * 
+     *
      * @param id 会议人员ID
      * @return 结果
      */
@@ -55,7 +54,7 @@ public interface TMtPersonMapper
 
     /**
      * 批量删除会议人员
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */

+ 0 - 1
master/src/main/java/com/ruoyi/project/plant/mapper/TMtRiskreminderMapper.java

@@ -26,7 +26,6 @@ public interface TMtRiskreminderMapper
      * @param tMtRiskreminder 风险提醒
      * @return 风险提醒集合
      */
-    @DataScope(deptAlias = "d")
     public List<TMtRiskreminder> selectTMtRiskreminderList(TMtRiskreminder tMtRiskreminder);
 
     /**

+ 65 - 9
master/src/main/java/com/ruoyi/project/plant/service/impl/TMtMeetingServiceImpl.java

@@ -2,16 +2,10 @@ package com.ruoyi.project.plant.service.impl;
 
 import java.util.List;
 
-import com.ruoyi.project.plant.domain.TMtActionlist;
-import com.ruoyi.project.plant.domain.TMtEhsopenitem;
-import com.ruoyi.project.plant.domain.TMtKeymaintenance;
-import com.ruoyi.project.plant.mapper.TMtActionlistMapper;
-import com.ruoyi.project.plant.mapper.TMtEhsopenitemMapper;
-import com.ruoyi.project.plant.mapper.TMtKeymaintenanceMapper;
+import com.ruoyi.project.plant.domain.*;
+import com.ruoyi.project.plant.mapper.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.ruoyi.project.plant.mapper.TMtMeetingMapper;
-import com.ruoyi.project.plant.domain.TMtMeeting;
 import com.ruoyi.project.plant.service.ITMtMeetingService;
 
 import javax.annotation.Resource;
@@ -33,6 +27,16 @@ public class TMtMeetingServiceImpl implements ITMtMeetingService
     private TMtKeymaintenanceMapper tMtKeymaintenanceMapper;
     @Resource
     private TMtEhsopenitemMapper tMtEhsopenitemMapper;
+    @Resource
+    private TMtMessageattentionMapper tMtMessageattentionMapper;
+    @Resource
+    private TMtInterlockMapper tMtInterlockMapper;
+    @Resource
+    private TMtRiskreminderMapper tMtRiskreminderMapper;
+    @Resource
+    private TMtOpextrackMapper tMtOpextrackMapper;
+    @Resource
+    private TMtPersonMapper tMtPersonMapper;
     /**
      * 查询装置会议
      *
@@ -67,9 +71,9 @@ public class TMtMeetingServiceImpl implements ITMtMeetingService
     public int insertTMtMeeting(TMtMeeting tMtMeeting)
     {
         tMtMeetingMapper.insertTMtMeeting(tMtMeeting);
+
         TMtActionlist t = new TMtActionlist();
         t.setIsHis(0l);
-
         List<TMtActionlist> actionlists =  tMtActionlistMapper.selectTMtActionlistList(t);
         for (TMtActionlist a : actionlists
              ) {
@@ -97,6 +101,58 @@ public class TMtMeetingServiceImpl implements ITMtMeetingService
             m.setIsHis(1l);
             tMtKeymaintenanceMapper.insertTMtKeymaintenance(m);
         }
+
+        TMtMessageattention tMtMessageattention = new TMtMessageattention();
+        tk.setIsHis(0l);
+        List<TMtMessageattention> tMtMessageattentionList = tMtMessageattentionMapper.selectTMtMessageattentionList(tMtMessageattention);
+        for (TMtMessageattention m : tMtMessageattentionList
+        ) {
+            m.setMeetingId(tMtMeeting.getId());
+            m.setIsHis(1l);
+            tMtMessageattentionMapper.insertTMtMessageattention(m);
+        }
+
+        TMtInterlock tMtInterlock = new TMtInterlock();
+        tk.setIsHis(0l);
+        List<TMtInterlock> tMtInterlockList = tMtInterlockMapper.selectTMtInterlockList(tMtInterlock);
+        for (TMtInterlock m : tMtInterlockList
+        ) {
+            m.setMeetingId(tMtMeeting.getId());
+            m.setIsHis(1l);
+            tMtInterlockMapper.insertTMtInterlock(m);
+        }
+
+        TMtRiskreminder tMtRiskreminder = new TMtRiskreminder();
+        tk.setIsHis(0l);
+        List<TMtRiskreminder> tMtRiskreminderList = tMtRiskreminderMapper.selectTMtRiskreminderList(tMtRiskreminder);
+        for (TMtRiskreminder m : tMtRiskreminderList
+        ) {
+            m.setMeetingId(tMtMeeting.getId());
+            m.setIsHis(1l);
+            tMtRiskreminderMapper.insertTMtRiskreminder(m);
+        }
+
+        TMtOpextrack tMtOpextrack = new TMtOpextrack();
+        tk.setIsHis(0l);
+        List<TMtOpextrack> tMtOpextrackList = tMtOpextrackMapper.selectTMtOpextrackList(tMtOpextrack);
+        for (TMtOpextrack m : tMtOpextrackList
+        ) {
+            m.setMeetingId(tMtMeeting.getId());
+            m.setIsHis(1l);
+            tMtOpextrackMapper.insertTMtOpextrack(m);
+        }
+
+        TMtPerson tMtPerson = new TMtPerson();
+        tk.setIsHis(0l);
+        List<TMtPerson> tMtPersonList = tMtPersonMapper.selectTMtPersonList(tMtPerson);
+        for (TMtPerson m : tMtPersonList
+        ) {
+            m.setMeetingId(tMtMeeting.getId());
+            m.setIsHis(1l);
+            tMtPersonMapper.insertTMtPerson(m);
+        }
+
+
         return 1;
     }
 

+ 1 - 1
master/src/main/resources/mybatis/plant/TMtKeymaintenanceMapper.xml

@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectTMtKeymaintenanceList" parameterType="TMtKeymaintenance" resultMap="TMtKeymaintenanceResult">
         <include refid="selectTMtKeymaintenanceVo"/>
         <where>
-            <if test="responsible != null  and responsible != ''"> and responsible like concat(concat('%', #{responsible}), '%')</if>
+            <if test="responsible != null  and responsible != ''"> and responsible = #{responsible}</if>
             <if test="deadline != null "> and deadline = #{deadline}</if>
             <if test="status != null  and status != ''"> and d.status = #{status}</if>
             <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>

+ 1 - 1
ui/src/router/index.js

@@ -74,7 +74,7 @@ export const constantRoutes = [
   {
     path: '/pptyulan',
     name: 'pptyulan',
-    component: (resolve) => require(['@/views/yulan/index'], resolve),
+    component: (resolve) => require(['@/views/components/yulan/index'], resolve),
     hidden: true
   },
   {

+ 1 - 1
ui/src/store/index.js

@@ -15,7 +15,7 @@ const store = new Vuex.Store({
     user,
     tagsView,
     permission,
-    settings
+    settings,
   },
   getters
 })

+ 6 - 1
ui/src/store/modules/user.js

@@ -8,7 +8,8 @@ const user = {
     avatar: '',
     roles: [],
     permissions: [],
-    sex: ''
+    sex: '',
+    staffId: ''
   },
 
   mutations: {
@@ -32,6 +33,9 @@ const user = {
     },
     SET_DEPT_ID: (state, deptId) => {
       state.deptId = deptId
+    },
+    SET_STAFF_ID: (state, staffId) => {
+      state.staffId = staffId
     }
   },
 
@@ -69,6 +73,7 @@ const user = {
           commit('SET_AVATAR', avatar)
           commit('SET_HOME', user.homeType)
           commit('SET_DEPT_ID' , user.deptId)
+          commit('SET_STAFF_ID' , user.staffId)
           resolve(res)
         }).catch(error => {
           reject(error)

+ 3 - 2
ui/src/utils/permission.js

@@ -6,12 +6,13 @@ import store from '@/store'
  * @returns {Boolean}
  */
 export function checkPermi(value) {
+  const all_permission = "*:*:*";
   if (value && value instanceof Array && value.length > 0) {
     const permissions = store.getters && store.getters.permissions
     const permissionDatas = value
 
     const hasPermission = permissions.some(permission => {
-      return permissionDatas.includes(permission)
+      return all_permission === permission || permissionDatas.includes(permission)
     })
 
     if (!hasPermission) {
@@ -46,4 +47,4 @@ export function checkRole(value) {
     console.error(`need roles! Like checkRole="['admin','editor']"`)
     return false
   }
-}
+}

+ 47 - 32
ui/src/views/components/meeting/actionlist.vue

@@ -95,9 +95,8 @@
 
     <el-table v-loading="loading" :data="actionlistList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
-      <el-table-column :label="$t('责任人')" align="center" prop="responsible" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('行动')" align="center" prop="action" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('责任人')" width="100" align="center" prop="respName" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('行动')" width="400"  align="center" prop="action" />
       <el-table-column :label="$t('截止日期')" align="center" prop="deadline" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.deadline, '{y}-{m}-{d}') }}</span>
@@ -110,14 +109,20 @@
         </template>
       </el-table-column>
       <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="更新人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="更新日期" align="center" prop="updatedate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding">
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['plant:meeting:edit']"
+            v-if="checkPermi(['plant:meeting:edit']) || scope.row.responsible == getStaffId()"
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"
@@ -141,19 +146,19 @@
     <!-- 添加或修改装置会议执行对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
+
+        <el-form-item :label="$t('责任人')" prop="responsible">
+          <el-select v-model="form.responsible" filterable :placeholder="$t('请选择') + $t('负责人姓名')" filterable >
             <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
+              v-for="dict in stffmgrOptions"
+              :key="dict.userId"
+              :label="dict.nickName"
+              :value="dict.staffId">
+              <span style="float: left">{{ dict.nickName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+            </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item :label="$t('责任人')" prop="responsible">
-          <el-input v-model="form.responsible" :placeholder="$t('请输入') + $t('责任人')" />
-        </el-form-item>
         <el-form-item :label="$t('行动')" prop="action">
           <el-input v-model="form.action" :placeholder="$t('请输入') + $t('行动')" />
         </el-form-item>
@@ -183,18 +188,11 @@
             :placeholder="$t('请选择') + $t('录入日期')">
           </el-date-picker>
         </el-form-item>
-        <el-form-item :label="$t('删除')" prop="delFlag">
-          <el-input v-model="form.delFlag" :placeholder="$t('请输入') + $t('删除')" />
-        </el-form-item>
-        <el-form-item :label="$t('所属部门')" prop="deptId">
-          <el-input v-model="form.deptId" :placeholder="$t('请输入') + $t('所属部门')" />
-        </el-form-item>
+
         <el-form-item :label="$t('备注')" prop="remarks">
           <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>
@@ -267,6 +265,8 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import ActionStatusData from "./actionStatusData";
+  import {listPostUser} from "@/api/system/user";
+  import {checkPermi} from "@/utils/permission";
 
   export default {
   name: "Actionlist",
@@ -277,6 +277,7 @@
       direction: 'rtl',
       // 遮罩层
       loading: true,
+      staffId:'',
       // 选中数组
       ids: [],
       // 非单个禁用
@@ -298,6 +299,7 @@
       open: false,
       // 装置字典
       plantCodeOptions: [],
+      stffmgrOptions: [],
       // 状态字典
       statusOptions: [],
         // 用户导入参数
@@ -318,7 +320,7 @@
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 20,
+        pageSize: 50,
         responsible: null,
         action: null,
         deadline: null,
@@ -329,9 +331,7 @@
       form: {},
       // 表单校验
       rules: {
-        plantCode: [
-          { required: true, message: this.$t('装置') + this.$t('不能为空'), trigger: "change" }
-        ],
+
       }
     };
   },
@@ -341,6 +341,11 @@
             this.$refs.tree.filter(val);
         }
    },
+    computed: {
+      checkPermi() {
+        return checkPermi;
+      },
+    },
   created() {
       //设置表格高度对应屏幕高度
       this.$nextTick(() => {
@@ -348,10 +353,11 @@
       })
     this.queryParams.meetingId = this.$route.params && this.$route.params.tableId;
     this.getList();
-    this.getTreeselect();
-    this.getDicts("PLANT_DIVIDE").then(response => {
-      this.plantCodeOptions = response.data;
-    });
+    // this.getTreeselect();
+    this.getStaffmar()
+    // this.getDicts("PLANT_DIVIDE").then(response => {
+    //   this.plantCodeOptions = response.data;
+    // });
     this.getDicts("ACTION_STATUS").then(response => {
       this.statusOptions = response.data;
     });
@@ -365,6 +371,15 @@
         this.total = response.total;
         this.loading = false;
       });
+    },
+    getStaffId(){
+      return this.$store.state.user.staffId
+    },
+    //获取人员表
+    getStaffmar() {
+      listPostUser(this.queryParams).then(response => {
+        this.stffmgrOptions = response;
+      });
     },
      /** 查询部门下拉树结构 */
      getTreeselect() {

+ 3 - 15
ui/src/views/components/meeting/ehsopenitem.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item :label="$t('开项类别')" prop="category">
         <el-input
@@ -86,7 +86,6 @@
 
     <el-table v-loading="loading" :data="ehsopenitemList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
       <el-table-column :label="$t('开项类别')" align="center" prop="category" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('未关闭开项数量')" align="center" prop="notopen" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('关闭率')" align="center" prop="closed" :show-overflow-tooltip="true"/>
@@ -128,16 +127,7 @@
     <!-- 添加或修改EHS开项跟踪对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
-            <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
+
         <el-form-item :label="$t('开项类别')" prop="category">
           <el-input v-model="form.category" :placeholder="$t('请输入') + $t('开项类别')" />
         </el-form-item>
@@ -161,9 +151,7 @@
         <el-form-item :label="$t('备注')" prop="remarks">
           <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>

+ 8 - 16
ui/src/views/components/meeting/interlock.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('搜索') }}</el-button>
@@ -42,15 +42,19 @@
 
     <el-table v-loading="loading" :data="interlockList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
       <el-table-column :label="$t('主要内容')" align="center" prop="maincontents" />
       <el-table-column :label="$t('录入日期')" align="center" prop="inputdate" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.inputdate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <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-column label="更新人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="更新日期" align="center" prop="updatedate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
       <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -82,16 +86,7 @@
     <!-- 添加或修改关键机组联锁旁路对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
-            <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
+
         <el-form-item :label="$t('主要内容')" prop="maincontents">
           <el-input v-model="form.maincontents" type="textarea" :placeholder="$t('请输入') + $t('主要内容')" />
         </el-form-item>
@@ -106,9 +101,6 @@
         <el-form-item :label="$t('备注')" prop="remarks">
           <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>

+ 44 - 28
ui/src/views/components/meeting/keymaintenance.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item :label="$t('责任人')" prop="responsible">
         <el-input
@@ -86,9 +86,8 @@
 
     <el-table v-loading="loading" :data="keymaintenanceList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
-      <el-table-column :label="$t('责任人')" align="center" prop="responsible" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('行动')" align="center" prop="action" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('责任人')" align="center" prop="respName" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('行动')" width="400" align="center" prop="action" />
       <el-table-column :label="$t('截止日期')" align="center" prop="deadline" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.deadline, '{y}-{m}-{d}') }}</span>
@@ -101,6 +100,12 @@
         </template>
       </el-table-column>
       <el-table-column :label="$t('备注')" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+      <el-table-column label="更新人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="更新日期" align="center" prop="updatedate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
       <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -108,7 +113,7 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['plant:meeting:edit']"
+            v-if="checkPermi(['plant:meeting:edit']) || scope.row.responsible == getStaffId()"
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"
@@ -132,19 +137,19 @@
     <!-- 添加或修改下周关键维修工作对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
+
+        <el-form-item :label="$t('责任人')" prop="responsible">
+          <el-select v-model="form.responsible" filterable :placeholder="$t('请选择') + $t('负责人姓名')" filterable >
             <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
+              v-for="dict in stffmgrOptions"
+              :key="dict.userId"
+              :label="dict.nickName"
+              :value="dict.staffId">
+              <span style="float: left">{{ dict.nickName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+            </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item :label="$t('责任人')" prop="responsible">
-          <el-input v-model="form.responsible" :placeholder="$t('请输入') + $t('责任人')" />
-        </el-form-item>
         <el-form-item :label="$t('行动')" prop="action">
           <el-input v-model="form.action" :placeholder="$t('请输入') + $t('行动')" />
         </el-form-item>
@@ -174,18 +179,10 @@
             :placeholder="$t('请选择') + $t('录入日期')">
           </el-date-picker>
         </el-form-item>
-        <el-form-item :label="$t('删除')" prop="delFlag">
-          <el-input v-model="form.delFlag" :placeholder="$t('请输入') + $t('删除')" />
-        </el-form-item>
-        <el-form-item :label="$t('所属部门')" prop="deptId">
-          <el-input v-model="form.deptId" :placeholder="$t('请输入') + $t('所属部门')" />
-        </el-form-item>
         <el-form-item :label="$t('备注')" prop="remarks">
           <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>
@@ -255,9 +252,12 @@
   } from "@/api/plant/keymaintenance";
   import {treeselect} from "@/api/system/dept";
   import {getToken} from "@/utils/auth";
+  import {checkPermi} from "@/utils/permission";
+
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import KeyStatusData from "./keyStatusData";
+  import {listPostUser} from "@/api/system/user";
 
   export default {
   name: "Keymaintenance",
@@ -270,6 +270,7 @@
       loading: true,
       // 选中数组
       ids: [],
+      stffmgrOptions: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -333,6 +334,11 @@
             this.$refs.tree.filter(val);
         }
    },
+    computed: {
+      checkPermi() {
+        return checkPermi;
+      },
+    },
   created() {
       //设置表格高度对应屏幕高度
       this.$nextTick(() => {
@@ -340,10 +346,11 @@
       })
     this.queryParams.meetingId = this.$route.params && this.$route.params.tableId;
     this.getList();
-    this.getTreeselect();
-    this.getDicts("PLANT_DIVIDE").then(response => {
-      this.plantCodeOptions = response.data;
-    });
+    // this.getTreeselect();
+    // this.getDicts("PLANT_DIVIDE").then(response => {
+    //   this.plantCodeOptions = response.data;
+    // });
+    this.getStaffmar()
     this.getDicts("ACTION_STATUS").then(response => {
       this.statusOptions = response.data;
     });
@@ -357,6 +364,15 @@
         this.total = response.total;
         this.loading = false;
       });
+    },
+    getStaffId(){
+      return this.$store.state.user.staffId
+    },
+    //获取人员表
+    getStaffmar() {
+      listPostUser(this.queryParams).then(response => {
+        this.stffmgrOptions = response;
+      });
     },
      /** 查询部门下拉树结构 */
      getTreeselect() {

+ 44 - 39
ui/src/views/components/meeting/messageattention.vue

@@ -1,15 +1,7 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item :label="$t('责任人')" prop="responsible">
-        <el-input
-          v-model="queryParams.responsible"
-          :placeholder="$t('请输入') + $t('责任人')"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+
       <el-form-item :label="$t('行动')" prop="action">
         <el-input
           v-model="queryParams.action"
@@ -79,9 +71,8 @@
 
     <el-table v-loading="loading" :data="messageattentionList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
-      <el-table-column :label="$t('责任人')" align="center" prop="responsible" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('行动')" align="center" prop="action" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('责任人')" align="center" prop="respName" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('行动')" align="center" prop="action" width="400"/>
       <el-table-column :label="$t('截止日期')" align="center" prop="deadline" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('状态')" align="center" prop="status" :formatter="statusFormat" />
       <el-table-column :label="$t('录入日期')" align="center" prop="inputdate" width="100">
@@ -89,8 +80,13 @@
           <span>{{ parseTime(scope.row.inputdate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <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-column label="更新人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="更新日期" align="center" prop="updatedate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
       <el-table-column :label="$t('操作')" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -98,7 +94,7 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['plant:meeting:edit']"
+            v-if="checkPermi(['plant:meeting:edit']) || scope.row.responsible == getStaffId()"
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"
@@ -122,19 +118,18 @@
     <!-- 添加或修改信息提醒对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
+        <el-form-item :label="$t('责任人')" prop="responsible">
+          <el-select v-model="form.responsible" filterable :placeholder="$t('请选择') + $t('负责人姓名')" filterable >
             <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
+              v-for="dict in stffmgrOptions"
+              :key="dict.userId"
+              :label="dict.nickName"
+              :value="dict.staffId">
+              <span style="float: left">{{ dict.nickName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+            </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item :label="$t('责任人')" prop="responsible">
-          <el-input v-model="form.responsible" :placeholder="$t('请输入') + $t('责任人')" />
-        </el-form-item>
         <el-form-item :label="$t('行动')" prop="action">
           <el-input v-model="form.action" :placeholder="$t('请输入') + $t('行动')" />
         </el-form-item>
@@ -162,9 +157,7 @@
         <el-form-item :label="$t('备注')" prop="remarks">
           <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>
@@ -218,6 +211,8 @@
   import {getToken} from "@/utils/auth";
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import {checkPermi} from "@/utils/permission";
+  import {listPostUser} from "@/api/system/user";
 
   export default {
   name: "Messageattention",
@@ -247,6 +242,7 @@
       open: false,
       // 装置字典
       plantCodeOptions: [],
+      stffmgrOptions: [],
       // 状态字典
       statusOptions: [],
         // 用户导入参数
@@ -267,7 +263,7 @@
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 20,
+        pageSize: 50,
         responsible: null,
         action: null,
         deadline: null,
@@ -278,12 +274,6 @@
       form: {},
       // 表单校验
       rules: {
-        plantCode: [
-          { required: true, message: this.$t('装置') + this.$t('不能为空'), trigger: "change" }
-        ],
-        responsible: [
-          { required: true, message: this.$t('责任人') + this.$t('不能为空'), trigger: "blur" }
-        ],
       }
     };
   },
@@ -293,17 +283,23 @@
             this.$refs.tree.filter(val);
         }
    },
+    computed: {
+      checkPermi() {
+        return checkPermi;
+      },
+    },
   created() {
       //设置表格高度对应屏幕高度
       this.$nextTick(() => {
           this.clientHeight = (document.body.clientHeight - 80) * 0.8
       })
+    this.queryParams.meetingId = this.$route.params && this.$route.params.tableId;
     this.getList();
     this.getTreeselect();
-    this.queryParams.meetingId = this.$route.params && this.$route.params.tableId;
-    this.getDicts("PLANT_DIVIDE").then(response => {
-      this.plantCodeOptions = response.data;
-    });
+    this.getStaffmar()
+    // this.getDicts("PLANT_DIVIDE").then(response => {
+    //   this.plantCodeOptions = response.data;
+    // });
     this.getDicts("ACTION_STATUS").then(response => {
       this.statusOptions = response.data;
     });
@@ -332,6 +328,15 @@
     statusFormat(row, column) {
       return this.selectDictLabel(this.statusOptions, row.status);
     },
+    getStaffId(){
+      return this.$store.state.user.staffId
+    },
+    //获取人员表
+    getStaffmar() {
+      listPostUser(this.queryParams).then(response => {
+        this.stffmgrOptions = response;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;

+ 1 - 15
ui/src/views/components/meeting/opextrack.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item :label="$t('年份')" prop="year">
         <el-input
@@ -78,7 +78,6 @@
 
     <el-table v-loading="loading" :data="opextrackList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
       <el-table-column :label="$t('进行中')" align="center" prop="ongoing" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('已完成')" align="center" prop="finished" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('共计')" align="center" prop="totalitem" :show-overflow-tooltip="true"/>
@@ -120,16 +119,6 @@
     <!-- 添加或修改OpEx项目跟踪对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
-            <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
         <el-form-item :label="$t('进行中')" prop="ongoing">
           <el-input v-model="form.ongoing" :placeholder="$t('请输入') + $t('进行中')" />
         </el-form-item>
@@ -153,9 +142,6 @@
         <el-form-item :label="$t('预计收益')" prop="benefit">
           <el-input v-model="form.benefit" :placeholder="$t('请输入') + $t('预计收益')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>

+ 32 - 43
ui/src/views/components/meeting/person.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item :label="$t('姓名')" prop="name">
         <el-input
@@ -41,13 +41,9 @@
 
     <el-table v-loading="loading" :data="personList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('装置名称')" align="center" prop="plantCode" :formatter="plantCodeFormat" />
       <el-table-column :label="$t('员工号')" align="center" prop="staffid" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('姓名')" align="center" prop="name" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('性别')" align="center" prop="sex" :formatter="sexFormat" />
-      <el-table-column :label="$t('部门')" align="center" prop="unit" :formatter="unitFormat" />
-      <el-table-column :label="$t('班值')" align="center" prop="team" :formatter="teamFormat" />
-      <el-table-column :label="$t('实际岗位')" align="center" prop="actualpost" width="100" :formatter="actualpostFormat" />
+      <el-table-column :label="$t('部门')" align="center" prop="unit" />
       <el-table-column :label="$t('联系方式')" align="center" prop="contact" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('操作')" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -74,21 +70,16 @@
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('姓名')" prop="name">
-<!--          <el-select v-model="form.staffid" filterable placeholder="请选择人员">-->
-<!--            <el-option-->
-<!--              v-for="dict in stffmgrOptions"-->
-<!--              :key="dict.staffid"-->
-<!--              :label="dict.name"-->
-<!--              :value="dict.staffid">-->
-<!--              <span style="float: left">{{ dict.name }}</span>-->
-<!--              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>-->
-<!--            </el-option>-->
-<!--          </el-select>-->
-                    <bl-select v-model="form.staffid" filterable :placeholder="$t('请选择') + $t('人员')"
-                               :props="{label:'name', value:'staffid'}"
-                               :options="stffmgrOptions"
-                    >
-                    </bl-select>
+          <el-select v-model="form.staffid" filterable :placeholder="$t('请选择') + $t('负责人姓名')" filterable >
+            <el-option
+              v-for="dict in stffmgrOptions"
+              :key="dict.userId"
+              :label="dict.nickName"
+              :value="dict.staffId">
+              <span style="float: left">{{ dict.nickName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+            </el-option>
+          </el-select>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -144,6 +135,7 @@
   import Treeselect from "@riophae/vue-treeselect";
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
   import {listStaffmgr} from "@/api/plant/staffmgr";
+  import {listPostUser} from "@/api/system/user";
 
   export default {
   props: ['isCc'],
@@ -225,24 +217,25 @@
       this.$nextTick(() => {
           this.clientHeight = (document.body.clientHeight - 80) * 0.8
       })
+    this.queryParams.meetingId = this.$route.params && this.$route.params.tableId;
     this.getList();
     this.getTreeselect();
-    this.queryParams.meetingId = this.$route.params && this.$route.params.tableId;
-    this.getDicts("PLANT_DIVIDE").then(response => {
-      this.plantCodeOptions = response.data;
-    });
-    this.getDicts("sys_user_sex").then(response => {
-      this.sexOptions = response.data;
-    });
-    this.getDicts("STAFF_UNIT").then(response => {
-      this.unitOptions = response.data;
-    });
-    this.getDicts("TEAM_DIVIDE").then(response => {
-      this.teamOptions = response.data;
-    });
-    this.getDicts("ACTUALPOST").then(response => {
-      this.actualpostOptions = response.data;
-    });
+    this.getStaffmar()
+    // this.getDicts("PLANT_DIVIDE").then(response => {
+    //   this.plantCodeOptions = response.data;
+    // });
+    // this.getDicts("sys_user_sex").then(response => {
+    //   this.sexOptions = response.data;
+    // });
+    // this.getDicts("STAFF_UNIT").then(response => {
+    //   this.unitOptions = response.data;
+    // });
+    // this.getDicts("TEAM_DIVIDE").then(response => {
+    //   this.teamOptions = response.data;
+    // });
+    // this.getDicts("ACTUALPOST").then(response => {
+    //   this.actualpostOptions = response.data;
+    // });
   },
   methods: {
     /** 查询会议人员列表 */
@@ -419,12 +412,8 @@
       },
     //获取人员表
     getStaffmar() {
-      listStaffmgr(this.staffmgrQueryParams).then(response => {
-        this.stffmgrOptions = response.rows;
-        for (let i = 0; i < this.stffmgrOptions.length; i++) {
-          this.stffmgrOptions[i].name = this.stffmgrOptions[i].name +' '+ this.stffmgrOptions[i].staffid
-        }
-
+      listPostUser(this.queryParams).then(response => {
+        this.stffmgrOptions = response;
       });
     },
   }

+ 1 - 14
ui/src/views/components/meeting/riskreminder.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container" style="padding: 0px;">
+  <div class="app-container" style="padding: 10px;">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item :label="$t('主要内容')" prop="maincontents">
         <el-input
@@ -100,16 +100,6 @@
     <!-- 添加或修改风险提醒对话框 -->
     <el-dialog  :close-on-click-modal="false" v-dialogDrag :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="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
-            <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
         <el-form-item :label="$t('主要内容')" prop="maincontents">
           <el-input v-model="form.maincontents" :placeholder="$t('请输入') + $t('主要内容')" />
         </el-form-item>
@@ -127,9 +117,6 @@
         <el-form-item :label="$t('备注')" prop="remarks">
           <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
         </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>

+ 115 - 0
ui/src/views/components/yulan/index.vue

@@ -0,0 +1,115 @@
+<template>
+  <div >
+    <el-dialog :close-on-click-modal="false" v-loading="loadingFlash" element-loading-background="rgba(0,0,0,0.2)"
+               v-dialogDrag :title="pdf.title"
+               :visible.sync="pdf.open" width="1300px" :center="true" append-to-body>
+      <div style="margin-top: -60px;float: right;margin-right: 40px;">
+        <el-button size="mini" type="text" @click="openPdf">{{ $t('新页面打开PDF') }}</el-button>
+      </div>
+      <div style="margin-top: -30px">
+        <iframe id="iFrame" class="iframe-html" :src="pdf.pdfUrl" frameborder="0" width="100%" height="700px"
+                v-if="ppt"></iframe>
+      </div>
+      <div style="padding: 30px; width: 100%; height: 100%;">
+        <el-carousel class="" ref="carousel" arrow="always" v-if="pptView"
+                     height="700px" trigger="click" :autoplay="false" indicator-position="outside">
+          <el-carousel-item class="lun_img" v-for="item in imgs" v-bind:key="item">
+            <img :src="item" width="100%" height="100%" object-fit="cover"/>
+          </el-carousel-item>
+        </el-carousel>
+      </div>
+    </el-dialog>
+  </div>
+
+</template>
+<script>
+
+
+export default {
+
+  data() {
+    return {
+      imgs:[],
+      pptView:false,
+      ppt: false,
+      pdf: {
+        title: '',
+        pdfUrl: '',
+        numPages: null,
+        open: false,
+        pageNum: 1,
+        pageTotalNum: 1,
+        loadedRatio: 0,
+      },
+    }
+  },
+  mounted() {
+  },
+
+  methods: {
+    handleSee(fileName, url) {
+      //office预览
+      this.loadingFlash = true
+      this.pdf.open = true
+      this.pdf.title = fileName
+      this.pdf.pdfUrl = ""
+      this.pptView = false
+      this.ppt = true
+      //如果是PDF等直接可以打开的就不调接口,否则调用接口
+      if (fileName.endsWith('pdf')) {
+        this.pdf.pdfUrl = process.env.VUE_APP_BASE_API + '/pdf/web/viewer.html?file=' + process.env.VUE_APP_BASE_API + url
+        this.loadingFlash = false
+      } else {
+        const formatDate = new FormData();
+        formatDate.append("filepath", url)
+        //调用文件预览api
+        let res = this.officeConvert.bookConvertCommon(formatDate)
+        //查看接受全局方法的返回结果 console.log(res)
+        //利用.then方法接受Promise对象
+        res.then((result) => {
+          //关闭加载中
+          this.loadingFlash = false
+          if (result.msg.includes("csv")) {
+            this.pdf.pdfUrl = process.env.VUE_APP_BASE_API + result.data
+            this.$alert(result.msg, this.$t('检查乱码'), {dangerouslyUseHTMLString: true});
+            //    this.$message({message: result.msg, center: true,type:'warning',  offset:400, });
+          } else if (result.msg.includes("不存在")) {
+            //文件不存在时提示
+            this.pdf.pdfUrl = ""
+            this.$alert(result.msg, this.$t('预览失败'), {dangerouslyUseHTMLString: true});
+            //    this.$message({message: result.msg, center: true,type:'warning',  offset:400, });
+            this.pdf.open = false
+          } else if (result.msg.includes("不支持此格式")) {
+            this.pdf.pdfUrl = ""
+            this.$alert(result.msg, this.$t('预览失败'), {dangerouslyUseHTMLString: true});
+            //    this.$message({message: result.msg, center: true,type:'warning',  offset:400, });
+            this.pdf.open = false
+          } else {
+            //成功时直接给地址
+            this.pdf.pdfUrl = process.env.VUE_APP_BASE_API + result.data
+          }
+        }).catch(result => {
+          //请求失败,关闭loading,pdf地址直接为为空,不显示
+          this.pdf.pdfUrl = ""
+          this.loadingFlash = false;
+        })
+      }
+    },
+    //文件预览
+    openPdf() {
+      //ppt就跳路由预览,office就直接打开文件新页面
+      const didi = {imgs: this.imgs}
+      if (this.pptView == true && this.ppt == false) {
+        let routeUrl = this.$router.resolve({
+          path: "/cpms/index.html#/pptyulan",
+          query: didi
+        });
+        window.open("/cpms/index.html#/pptyulan?id=" + this.pdf.pdfUrl, '_blank')
+        console.log(this.imgs)
+      } else {
+        window.open(this.pdf.pdfUrl)
+      }
+    },
+  }
+}
+</script>

+ 44 - 22
ui/src/views/plant/dailyMeeting/detail.vue

@@ -66,7 +66,9 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="Safety Topic">1、现场动火安全<br />2、环保注意事项</el-form-item>
+            <el-form-item label="Safety Topic">
+              <el-input type="textarea" style="width: 360px"  v-model="form.safetyTopic"></el-input>
+              </el-form-item>
           </el-col>
         </el-row>
 
@@ -86,16 +88,10 @@
           </tr>
           <tr class="yellowbg">
             <td>1.1</td>
-            <td>裂解炉运行模式:<el-select v-model="form.optMode">
-              <el-option
-                v-for="dict in optModeOptions"
-                :key="dict.dictValue"
-                :label="dict.dictLabel"
-                :value="dict.dictValue"
-              ></el-option>
-            </el-select>
-              <el-checkbox-group v-model="optItemList">
-                <el-checkbox v-for="dict in optItemOptions" :label="dict.dictLabel">
+            <td>裂解炉运行模式:
+              <el-input v-model="form.optMode" style="width: 360px"></el-input>
+              <el-checkbox-group v-model="optItemList" @change="changeOpt" >
+                <el-checkbox v-for="dict in optItemOptions" :label="dict.dictLabel" border >
 
                 </el-checkbox>
               </el-checkbox-group>
@@ -114,7 +110,7 @@
           </tr>
           <tr class="yellowbg" v-for="(item1, index) in form.items1" :key="'item1'+index">
             <td>1.{{ 3 + index}}</td>
-            <td><el-input type="textarea" v-model="item1.description"></el-input></td>
+            <td><el-input type="textarea" autosize="{ minRows: 1}" v-model="item1.description"></el-input></td>
             <td><el-select v-model="item1.actionby">
               <el-option
                 v-for="dict in actionOptions"
@@ -138,7 +134,7 @@
           </tr>
           <tr class="greenbg" v-for="(item2, index) in form.items2" :key="'item2'+index">
             <td>2.{{ 1 + index}}</td>
-            <td><el-input v-model="item2.description"></el-input></td>
+            <td><el-input type="textarea" autosize="{ minRows: 1}" v-model="item2.description"></el-input></td>
             <td><el-select v-model="item2.actionby">
               <el-option
                 v-for="dict in actionOptions"
@@ -162,7 +158,7 @@
           </tr>
           <tr class="yellowbg" v-for="(item3, index) in form.items3" :key="'item3'+index">
             <td>3.{{ 1 + index}}</td>
-            <td><el-input v-model="item3.description"></el-input></td>
+            <td><el-input type="textarea" autosize="{ minRows: 1}" v-model="item3.description"></el-input></td>
             <td><el-select v-model="item3.actionby">
               <el-option
                 v-for="dict in actionOptions"
@@ -185,7 +181,7 @@
           </tr>
           <tr class="greenbg" v-for="(item4, index) in form.items4" :key="'item4'+index">
             <td>4.{{ 1 + index}}</td>
-            <td><el-input v-model="item4.description"></el-input></td>
+            <td><el-input type="textarea" autosize="{ minRows: 1}" v-model="item4.description"></el-input></td>
             <td><el-select v-model="item4.actionby">
               <el-option
                 v-for="dict in actionOptions"
@@ -208,7 +204,7 @@
           </tr>
           <tr class="yellowbg" v-for="(item5, index) in form.items5" :key="'item5'+index">
             <td>2.{{ 1 + index}}</td>
-            <td><el-input v-model="item5.description">
+            <td><el-input type="textarea" autosize="{ minRows: 1}" v-model="item5.description">
 
             </el-input></td>
             <td><el-select v-model="item5.actionby">
@@ -228,7 +224,7 @@
       </el-form>
       <el-form label-width="100px">
         <el-form-item style="text-align: center;margin-left:-100px;margin-top:10px;">
-          <el-button type="primary" @click="submitForm()">提交</el-button>
+          <el-button v-hasPermi="['plant:dailyMeeting:edit']" type="primary" @click="submitForm()">提交</el-button>
           <el-button @click="close()">返回</el-button>
         </el-form-item>
       </el-form>
@@ -304,9 +300,7 @@ export default {
     getDailyMeetingConfig(1).then(response => { // 地点
       this.venueOptions = response.data.dictList;
     });
-    getDailyMeetingConfig(2).then(response => { // 运行模式
-      this.optModeOptions = response.data.dictList;
-    });
+
     getDailyMeetingConfig(3).then(response => { // 运行明细
       this.optItemOptions = response.data.dictList;
       if (pId == 0) {
@@ -354,7 +348,10 @@ export default {
         this.attendLabList= response.data.attendLab.split(",")
       });
     }else {
+      this.form.safetyTopic =  "1、现场动火安全 \n" +
+        "2、环保注意事项"
       this.attendCrackerList = this.attendCrackerOptions;
+      this.form.optMode = "7+0+A+B"
     }
   },
   methods: {
@@ -407,11 +404,36 @@ export default {
         });
       }
     },
-    /** 关闭按钮 */
+    changeOpt(data){
+      let arr1 = ["H110","H112","H113","H115","H116","H118","111"]
+      let arr2 = ["111"]
+      let arr3 = ["H109A"]
+      let arr4 = ["H109B"]
+      let val1 = this.countDupVal(data,arr1)
+      if (this.countDupVal(data,arr2) > 0) {
+        val1 = val1 + "+0"
+      }
+      if (this.countDupVal(data,arr3) > 0) {
+        val1 = val1 + "+A"
+      }
+      if (this.countDupVal(data,arr4) > 0) {
+        val1 = val1 + "+B"
+      }
+      this.form.optMode = val1
+    },
+
+    countDupVal(array1, array2) {
+    // 找到两个数组的交集
+    const intersection = array1.filter(value => array2.includes(value));
+    // 返回交集中元素的个数
+    return intersection.length;
+},
+
+/** 关闭按钮 */
     close() {
       this.$store.dispatch("tagsView/delView", this.$route);
       this.$router.push({ path: "/plant/meeting/dailyMeeting", query: { t: Date.now()}})
-    }
+    },
   },
 
 }

+ 18 - 10
ui/src/views/plant/dailyMeeting/index.vue

@@ -79,7 +79,7 @@
           size="mini"
           @click="handleEmail"
           v-hasPermi="['plant:dailyMeeting:edit']"
-        >调度会议配置</el-button>
+        >邮件配置</el-button>
       </el-col>
 <!--      <el-col :span="1.5">-->
 <!--        <el-button-->
@@ -106,6 +106,12 @@
       <el-table-column label="所属部门" align="center" prop="deptName" :show-overflow-tooltip="true"/>
       <el-table-column label="操作" align="center" fixed="right" width="300" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="wordView(scope.row.wordUrl)"
+          >预览</el-button>
           <el-button
             size="mini"
             type="text"
@@ -118,15 +124,9 @@
             type="text"
             icon="el-icon-mail"
             @click="handleMail(scope.row)"
-            v-hasPermi="['plant:dailyMeeting:remove']"
+            v-hasPermi="['plant:dailyMeeting:edit']"
           >发送邮件</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-mail"
-            @click="handleCc(scope.row)"
-            v-hasPermi="['plant:dailyMeeting:remove']"
-          >配置抄送人</el-button>
+
         </template>
       </el-table-column>
     </el-table>
@@ -195,6 +195,7 @@
               <el-button @click="upload.open = false">取 消</el-button>
           </div>
       </el-dialog>
+    <Yulan ref="yulanRef"></Yulan>
   </div>
 </template>
 
@@ -205,10 +206,11 @@ import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {listPostUser} from "@/api/system/user";
+import Yulan from '@/views/components/yulan/index.vue'
 
 export default {
   name: "DailyMeeting",
-  components: { Treeselect },
+  components: { Treeselect,Yulan },
   data() {
     return {
       // 遮罩层
@@ -446,6 +448,12 @@ export default {
       submitFileForm() {
           this.$refs.upload.submit();
       },
+      wordView(url){
+        // 通过ref引用子组件
+        const yulan = this.$refs.yulanRef;
+        // 调用子组件的方法并传递参数
+        yulan.handleSee("调度会议" , url);
+      },
       handleMail(row){
         let parm = {id: row.id}
         sendMail(parm).then(response => {

+ 1 - 1
ui/src/views/plant/dailyMeetingConfig/index.vue

@@ -54,7 +54,7 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="参数名称" align="center" prop="configName" :show-overflow-tooltip="true"/>
       <el-table-column label="参数键名" align="center" prop="configKey" :show-overflow-tooltip="true"/>
-      <el-table-column label="参数键值" align="center" prop="configValue" :show-overflow-tooltip="true"/>
+      <el-table-column label="参数键值" align="center" prop="configValue" width="800" />
       <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true"/>
       <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">

+ 85 - 189
ui/src/views/plant/dailyMeetingEmail/index.vue

@@ -1,92 +1,14 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="类型 1-发送 2-抄送" prop="type">
+      <el-form-item label="发送类型" prop="type">
         <el-select v-model="queryParams.type" placeholder="请选择类型 1-发送 2-抄送" clearable size="small">
-          <el-option label="请选择字典生成" value="" />
+          <el-option label="发送" value="1" />
+          <el-option label="抄送" value="2" />
         </el-select>
       </el-form-item>
-      <el-form-item label="装置" prop="plantCode">
-        <el-input
-          v-model="queryParams.plantCode"
-          placeholder="请输入装置"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="负责人姓名" prop="userName">
-        <el-input
-          v-model="queryParams.userName"
-          placeholder="请输入负责人姓名"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="???
-" prop="createrCode">
-        <el-input
-          v-model="queryParams.createrCode"
-          placeholder="请输入???
-"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建日期" prop="createdate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.createdate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择创建日期">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="更新人" prop="updaterCode">
-        <el-input
-          v-model="queryParams.updaterCode"
-          placeholder="请输入更新人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="更新日期" prop="updatedate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.updatedate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择更新日期">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="部门编号" prop="deptId">
-        <el-input
-          v-model="queryParams.deptId"
-          placeholder="请输入部门编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="备注" prop="remarks">
-        <el-input
-          v-model="queryParams.remarks"
-          placeholder="请输入备注"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="员工号,userId" prop="staffid">
-        <el-input
-          v-model="queryParams.staffid"
-          placeholder="请输入员工号,userId"
-          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>
@@ -123,49 +45,19 @@
           v-hasPermi="['plant:email:remove']"
         >删除</el-button>
       </el-col>
-        <el-col :span="1.5">
-            <el-button
-                    type="info"
-                    icon="el-icon-upload2"
-                    size="mini"
-                    @click="handleImport"
-                    v-hasPermi="['plant:email:edit']"
-            >导入</el-button>
-        </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['plant:email:export']"
-        >导出</el-button>
-      </el-col>
+
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="emailList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="唯一标识id" align="center" prop="id" :show-overflow-tooltip="true"/>
-      <el-table-column label="类型 1-发送 2-抄送" align="center" prop="type" :show-overflow-tooltip="true"/>
-      <el-table-column label="装置" align="center" prop="plantCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="负责人姓名" align="center" prop="userName" :show-overflow-tooltip="true"/>
-      <el-table-column label="???
-" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="创建日期" align="center" prop="createdate" width="100">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="更新人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="更新日期" align="center" prop="updatedate" width="100">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>
+      <el-table-column label="发送类型" align="center" prop="type" :formatter="statusFormat" :show-overflow-tooltip="true"/>
+      <el-table-column label="发送人姓名" align="center" prop="userName" :show-overflow-tooltip="true"/>
+      <el-table-column label="发送人部门" align="center" prop="userDept" :show-overflow-tooltip="true"/>
+      <el-table-column label="发送人邮箱" align="center" prop="userEmail" :show-overflow-tooltip="true"/>
+
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column label="员工号,userId" align="center" prop="staffid" :show-overflow-tooltip="true"/>
+      <el-table-column label="数据归属" align="center" prop="deptName" :show-overflow-tooltip="true"/>
       <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -197,53 +89,33 @@
     <!-- 添加或修改会议邮件配置对话框 -->
     <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="类型 1-发送 2-抄送" prop="type">
-          <el-select v-model="form.type" placeholder="请选择类型 1-发送 2-抄送">
-            <el-option label="请选择字典生成" value="" />
+        <el-form-item label="类型" prop="type">
+          <el-select v-model="form.type" placeholder="请选择类型 ">
+            <el-option label="发送" value="1" />
+            <el-option label="抄送" value="2" />
           </el-select>
         </el-form-item>
-        <el-form-item label="装置" prop="plantCode">
-          <el-input v-model="form.plantCode" placeholder="请输入装置" />
-        </el-form-item>
-        <el-form-item label="负责人姓名" prop="userName">
-          <el-input v-model="form.userName" placeholder="请输入负责人姓名" />
-        </el-form-item>
-        <el-form-item label="删除标识" prop="delFlag">
-          <el-input v-model="form.delFlag" placeholder="请输入删除标识" />
-        </el-form-item>
-        <el-form-item label="???
-" prop="createrCode">
-          <el-input v-model="form.createrCode" placeholder="请输入???
-" />
-        </el-form-item>
-        <el-form-item label="创建日期" prop="createdate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.createdate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择创建日期">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="更新人" prop="updaterCode">
-          <el-input v-model="form.updaterCode" placeholder="请输入更新人" />
-        </el-form-item>
-        <el-form-item label="更新日期" prop="updatedate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.updatedate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择更新日期">
-          </el-date-picker>
+
+        <el-form-item label="发送人姓名" prop="staffid">
+          <el-select v-model="form.staffid" filterable :placeholder="$t('请选择') + $t('负责人姓名')" filterable @change="pricipalChange($event)">
+            <el-option
+              v-for="dict in stffmgrOptions"
+              :key="dict.userId"
+              :label="dict.nickName"
+              :value="dict.staffId">
+              <span style="float: left">{{ dict.nickName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+            </el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="部门编号" prop="deptId">
-          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        <el-form-item label="发送人邮箱" prop="principalEmail">
+          <el-input v-model="stffmgrEmail" placeholder="发送人邮箱" disabled/>
         </el-form-item>
+
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>
-        <el-form-item label="员工号,userId" prop="staffid">
-          <el-input v-model="form.staffid" placeholder="请输入员工号,userId" />
-        </el-form-item>
+
           <el-form-item label="归属部门" prop="deptId">
               <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
           </el-form-item>
@@ -254,35 +126,6 @@
       </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>
 
@@ -292,6 +135,7 @@ 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";
+import {listPostUser} from "@/api/system/user";
 
 export default {
   name: "Email",
@@ -306,12 +150,15 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      //负责人邮箱变化值
+      stffmgrEmail: null,
       // 显示搜索条件
       showSearch: false,
       // 总条数
       total: 0,
       // 会议邮件配置表格数据
       emailList: [],
+      stffmgrOptions: [],
       // 弹出层标题
       title: "",
       // 部门树选项
@@ -334,6 +181,11 @@ export default {
             // 上传的地址
             url: process.env.VUE_APP_BASE_API + "/plant/email/importData"
         },
+      //人员表查询参数
+      staffmgrQueryParams: {
+        staffid: null,
+        haveEmail: 1
+      },
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -352,7 +204,17 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
+      // 表单校验
       rules: {
+        deptId: [
+          { required: true, message:  this.$t('不能为空'), trigger: "change" }
+        ],
+        staffid: [
+          { required: true, message: this.$t('不能为空'), trigger: "blur" }
+        ],
+        type: [
+          { required: true, message: this.$t('不能为空'), trigger: "blur" }
+        ],
       }
     };
   },
@@ -367,6 +229,7 @@ export default {
       this.$nextTick(() => {
           this.clientHeight = document.body.clientHeight -250
       })
+    this.getStaffmar()
     this.getList();
     this.getTreeselect();
   },
@@ -379,6 +242,37 @@ export default {
         this.total = response.total;
         this.loading = false;
       });
+    },
+    //获取人员表
+    getStaffmar() {
+      listPostUser(this.queryParams).then(response => {
+        this.stffmgrOptions = response;
+      });
+    },
+    /** 负责人变换操作 */
+    pricipalChange(val) {
+      let _this = this
+      this.staffmgrQueryParams.staffid = val
+      console.log(val)
+      this.stffmgrOptions.forEach(function (item, index) {
+        if (item.staffId == val) {
+          _this.stffmgrEmail = item.email
+        }
+      })
+    },
+    // 字典翻译
+    statusFormat(row, column) {
+      let type = 'success';
+      if (row.type == 1) {
+        let s = '发送'
+        return <el-tag type={type}>{s}</el-tag>;
+      }
+      if (row.type == 2) {
+        let s = '抄送'
+        type = 'info';
+        return <el-tag type={type}>{s}</el-tag>;
+      }
+
     },
      /** 查询部门下拉树结构 */
      getTreeselect() {
@@ -428,6 +322,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.stffmgrEmail = null;
       this.open = true;
       this.title = "添加会议邮件配置";
     },
@@ -437,6 +332,7 @@ export default {
       const id = row.id || this.ids
       getEmail(id).then(response => {
         this.form = response.data;
+        this.stffmgrEmail = response.data.userEmail;
         this.open = true;
         this.title = "修改会议邮件配置";
       });

+ 0 - 1
ui/src/views/plant/hismeeting/index.vue

@@ -98,7 +98,6 @@
       <el-table-column :label="$t('会议编号')" align="center" prop="meetingNo" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('会议地点')" align="center" prop="venue" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('主题')" align="center" prop="subject" :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-column :label="$t('操作')" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">

+ 1 - 9
ui/src/views/plant/weekmeeting/index.vue

@@ -9,15 +9,7 @@
       @click="handleAdd"
       v-hasPermi="['plant:meeting:edit']"
     >{{ $t('保存会议') }}</el-button>
-    <el-button
-      v-if="this.meetingId == null"
-      style="margin: 15px 1px 1px 35px;"
-      type="success"
-      icon="el-icon-edit"
-      size="mini"
-      @click="importMeeting"
-      v-hasPermi="['plant:meeting:edit']"
-    >{{ $t('导入会议') }}</el-button>
+
     <h3
       v-if="this.meetingId != null"
       style="margin: 15px 1px 1px 35px;"

+ 0 - 63
ui/src/views/yulan/index.vue

@@ -1,63 +0,0 @@
-<template>
-
-
-  <div style="" >
-    <el-carousel class="" ref="carousel"  arrow="always"  v-if="pptView"
-                 height="900px"  trigger="click" :autoplay="false" indicator-position="outside">
-
-      <el-carousel-item class="lun_img" v-for="(item,index) in imgs" v-bind:key="item" >
-        <img :src="item" width="100%" height="100%" object-fit="cover" />
-      </el-carousel-item>
-    </el-carousel>
-
-  </div>
-
-</template>
-<script>
-
-export default {
-
-  data() {
-    return {
-      imgs:[],
-      pptView:false,
-    }
-  },
-  mounted() {
-    this.ppt()
-  },
-
-
-  methods: {
-    ppt(){
-      this.pptView=true;
-
-      console.log(this.$route.query.id)
-
-      const formatDate =new FormData();
-      formatDate.append("filepath",this.$route.query.id)
-
-      //调用文件预览api
-      let res= this.officeConvert.pptConvertCommon(formatDate)
-      res.then((result)=>{
-        //关闭加载中
-        this.loadingFlash=false
-
-        //成功时直接给地址
-        this.videoList = result.data.imagePathList
-        //将返回的地址集合遍历添加到绑定的数组中
-        this.imgs=[]
-        for (var key=0;key<this.videoList.length;key++) {
-          this.imgs.push( process.env.VUE_APP_BASE_API+  this.videoList[key]  );
-        }
-      }).catch(result => {
-        //请求失败,关闭loading,pdf地址直接为为空,不显示
-        // this.pdf.pdfUrl =""
-        // this.loadingFlash = false;
-      })
-
-
-    }
-  }
-}
-</script>