Browse Source

PSSR:
-添加锁开锁关创建流程

jiangbiao 8 months ago
parent
commit
08ef7bf04c

+ 18 - 0
master/src/main/java/com/ruoyi/common/utils/file/FileUtils.java

@@ -154,4 +154,22 @@ public class FileUtils extends org.apache.commons.io.FileUtils
         }
         return filename;
     }
+
+    /**
+     * 获取文件名称 /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png
+     *
+     * @param fileName 路径名称
+     * @return 没有文件路径的名称
+     */
+    public static String getName(String fileName)
+    {
+        if (fileName == null)
+        {
+            return null;
+        }
+        int lastUnixPos = fileName.lastIndexOf('/');
+        int lastWindowsPos = fileName.lastIndexOf('\\');
+        int index = Math.max(lastUnixPos, lastWindowsPos);
+        return fileName.substring(index + 1);
+    }
 }

+ 8 - 0
master/src/main/java/com/ruoyi/framework/config/RuoYiConfig.java

@@ -134,6 +134,14 @@ public class RuoYiConfig
         return getProfile() + "/upload";
     }
 
+
+    /**
+     * 获取自定义上传路径
+     */
+    public static String getUploadPath(String filePath) {
+        return getProfile() + "/upload"+filePath;
+    }
+
     /**
      * 获取上传路径
      */

+ 54 - 0
master/src/main/java/com/ruoyi/project/common/CommonController.java

@@ -24,6 +24,8 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.UUID;
 
 /**
@@ -36,6 +38,8 @@ public class CommonController extends BaseController
 {
     private static final Logger log = LoggerFactory.getLogger(CommonController.class);
 
+    private static final String FILE_DELIMETER = ",";
+
     @Autowired
     private ServerConfig serverConfig;
     @Autowired
@@ -406,6 +410,56 @@ public class CommonController extends BaseController
         }
     }
 
+
+    /**
+     * 通用上传请求(多个)
+     */
+    @PostMapping("/common/uploads")
+    public AjaxResult uploadFiles(List<MultipartFile> files, @RequestParam(value = "fileDir", required = false) String fileDir) throws Exception {
+        try {
+            // 上传文件路径
+            String filePath;
+            if (StringUtils.isNotEmpty(fileDir)) {
+                filePath = RuoYiConfig.getUploadPath(getResource(fileDir));
+            } else {
+                filePath = RuoYiConfig.getUploadPath();
+            }
+            List<String> urls = new ArrayList<String>();
+            List<String> fileNames = new ArrayList<String>();
+            List<String> newFileNames = new ArrayList<String>();
+            List<String> originalFilenames = new ArrayList<String>();
+            for (MultipartFile file : files) {
+                // 上传并返回新文件名称
+                String fileName = FileUploadUtils.upload(filePath, file);
+                String url = serverConfig.getUrl() + fileName;
+                urls.add(url);
+                fileNames.add(fileName);
+                newFileNames.add(FileUtils.getName(fileName));
+                originalFilenames.add(file.getOriginalFilename());
+            }
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+            ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+            ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
+            ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+            return ajax;
+        } catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+
+    private static String getResource(String type) {
+        switch (type) {
+            case "1":
+                return "/annihiliator";
+            case "12":
+                return "/eyewash";
+            default:
+                return "";
+        }
+    }
+
     /**
      * 本地资源通用下载
      */

+ 6 - 3
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrAboveallController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.project.pssr.controller;
 
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -71,9 +72,11 @@ public class TPssrAboveallController extends BaseController {
     @Log(title = "PSSR", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TPssrAboveall tPssrAboveall) {
-        String unit = tPssrAboveall.getUnit();
-        tPssrAboveall.setUnit(unit.substring(0, unit.indexOf("_")));
-        tPssrAboveall.setUnitDes(unit.substring(unit.indexOf("_") + 1));
+        if (StringUtils.isNotEmpty(tPssrAboveall.getUnit())) {
+            String unit = tPssrAboveall.getUnit();
+            tPssrAboveall.setUnit(unit.substring(0, unit.indexOf("_")));
+            tPssrAboveall.setUnitDes(unit.substring(unit.indexOf("_") + 1));
+        }
         tPssrAboveallService.insertTPssrAboveall(tPssrAboveall);//新增主表数据
         //新增子表数据
         for (TPssrSubcontent subcontent : tPssrAboveall.getSubcontents()) {

+ 71 - 15
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrApproveController.java

@@ -1,6 +1,7 @@
 package com.ruoyi.project.pssr.controller;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -8,9 +9,12 @@ import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.approve.damain.DevTask;
+import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.pssr.domain.*;
 import com.ruoyi.project.pssr.service.*;
+import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.activiti.engine.*;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.impl.util.CollectionUtil;
@@ -77,6 +81,9 @@ public class TPssrApproveController extends BaseController {
     @Autowired
     private ITPssrPipeService tPssrPipeService;
 
+    @Autowired
+    private ISysUserService userService;
+
     /**
      * 查询pssr审批管理列表
      */
@@ -225,16 +232,26 @@ public class TPssrApproveController extends BaseController {
         String userId = getUserId().toString();
 
         String condition = devTask.getCondition();
+        boolean allDone = false;
+        TPssrSubcontent tPssrSubcontent = tPssrSubcontentService.selectTPssrSubcontentById(approve.getSubId());
         if (condition.equals("0")) {
             approve.setApproveStatus(2L);
-            TPssrSubcontent tPssrSubcontent = new TPssrSubcontent();
-            tPssrSubcontent.setId(approve.getSubId());
             tPssrSubcontent.setApproveStatus(2L);
+            tPssrSubcontent.setConfirmationDate(new Date());
             tPssrSubcontentService.updateTPssrSubcontent(tPssrSubcontent);
             tPssrApproveService.updateTPssrApprove(approve);
-        }else{
+            TPssrSubcontent subcontent = new TPssrSubcontent();
+            subcontent.setAboveallId(tPssrSubcontent.getAboveallId());
+            for (TPssrSubcontent pssrSubcontent : tPssrSubcontentService.selectTPssrSubcontentList(subcontent)) {
+                if (pssrSubcontent.getApproveStatus() != 2) {
+                    allDone = false;
+                    break;
+                }
+                allDone = true;
+            }
+        } else {
             // 驳回操作,修改子表状态
-            handleTurnDown(approve.getSubId(),condition);
+            handleTurnDown(tPssrSubcontent, condition);
         }
         //处理流程节点
         Map<String, Object> param = new HashMap<>();
@@ -244,11 +261,14 @@ public class TPssrApproveController extends BaseController {
         //认领任务
         processEngine.getTaskService().claim(taskId, userId);
         taskService.complete(taskId, param);
+
+        // 所有流程都结束时,发起经理审批
+        if (allDone)
+            doMgrApprove(tPssrSubcontent.getAboveallId());
         return AjaxResult.success();
     }
 
-    public void handleTurnDown(Long subId,String condition){
-        TPssrSubcontent subcontent = tPssrSubcontentService.selectTPssrSubcontentById(subId);
+    public void handleTurnDown(TPssrSubcontent subcontent, String condition) {
         switch (subcontent.getSerialNumber()) {
             case "01":
                 break;
@@ -285,9 +305,9 @@ public class TPssrApproveController extends BaseController {
             case "17":
                 TPssrLock lock = new TPssrLock();
                 lock.setApproveStatus(2L);
-                lock.setSubId(subId);
+                lock.setSubId(subcontent.getId());
                 for (TPssrLock tPssrLock : tPssrLockService.selectTPssrLockList(lock)) {
-                    if("1".equals(condition)){
+                    if ("1".equals(condition)) {
                         tPssrLock.setApproveStatus(1L);
                     } else if ("2".equals(condition)) {
                         tPssrLock.setApproveStatus(3L);
@@ -344,6 +364,43 @@ public class TPssrApproveController extends BaseController {
         taskService.complete(taskId, param);
     }
 
+    // pssr发起经理审批
+    public void doMgrApprove(Long aboveallID) {
+        String userId = getUserId().toString();
+        TPssrApprove approve = new TPssrApprove();
+        approve.setAboveallId(aboveallID);
+        approve.setApproveStatus(1L);
+        approve.setApNo(DateUtils.dateTimeNow() + userId);
+        approve.setApproveStatus(1L);
+        approve.setCreaterCode(userId);
+        approve.setCreatedate(new Date());
+        tPssrApproveService.insertTPssrApprove(approve);
+
+
+        TStaffmgr tStaffmgr = new TStaffmgr();
+        tStaffmgr.setActualposts("24,26");
+        StringBuilder executor = new StringBuilder();
+        for (SysUser user : userService.selectUserPost(tStaffmgr)) {
+            executor.append(user.getUserId().toString()).append(",");
+        }
+        if (StringUtils.isNotEmpty(executor.toString())) {
+            executor = new StringBuilder(executor.substring(0, executor.length() - 1));
+        }
+
+        // 开始申请流程
+        long businessKey = approve.getApproveId();
+        //开始工作流、监听
+        Authentication.setAuthenticatedUserId(userId);//设置当前申请人
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyUser", userId);
+        variables.put("jlUser", executor);
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssrMgrConfirm", String.valueOf(businessKey), variables);
+        approve.setProcessId(pi.getProcessInstanceId());
+        tPssrApproveService.updateTPssrApprove(approve);
+
+    }
+
     // 检修项目审批流程发起申请
     public void do01Approve(TPssrSubcontent sub) {
         String userId = getUserId().toString();
@@ -444,8 +501,6 @@ public class TPssrApproveController extends BaseController {
         }
     }
 
-
-
     // 盲板审批流程发起申请
     public void do03Approve(TPssrSubcontent sub) {
         String userId = getUserId().toString();
@@ -505,7 +560,7 @@ public class TPssrApproveController extends BaseController {
             ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr2confirm", String.valueOf(businessKey), variables);
             approve.setProcessId(pi.getProcessInstanceId());
             tPssrApproveService.updateTPssrApprove(approve);
-        }else{
+        } else {
             // 已存在流程时,删除旧流程,重新发起
             TPssrApprove approve = tPssrApproves.get(0);
             runtimeService.deleteProcessInstance(approve.getProcessId(), "pssr2confirm");
@@ -547,7 +602,8 @@ public class TPssrApproveController extends BaseController {
 
     }
 
-    public void do17Approve(TPssrSubcontent sub){
+    // 锁开锁关审批流程发起申请
+    public void do17Approve(TPssrSubcontent sub) {
         String userId = getUserId().toString();
         //修改状态
         TPssrLock tPssrLock = new TPssrLock();
@@ -600,7 +656,7 @@ public class TPssrApproveController extends BaseController {
             ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr3confirm", String.valueOf(businessKey), variables);
             approve.setProcessId(pi.getProcessInstanceId());
             tPssrApproveService.updateTPssrApprove(approve);
-        }else{
+        } else {
             // 已存在流程时,删除旧流程,重新发起
             TPssrApprove approve = tPssrApproves.get(0);
             try {
@@ -644,7 +700,7 @@ public class TPssrApproveController extends BaseController {
 
     }
 
-    // 盲板审批流程发起申请
+    // 管道审批流程发起申请
     public void do20Approve(TPssrSubcontent sub) {
         String userId = getUserId().toString();
         //修改状态
@@ -695,7 +751,7 @@ public class TPssrApproveController extends BaseController {
             ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr2confirm", String.valueOf(businessKey), variables);
             approve.setProcessId(pi.getProcessInstanceId());
             tPssrApproveService.updateTPssrApprove(approve);
-        }else{
+        } else {
             // 已存在流程时,删除旧流程,重新发起
             TPssrApprove approve = tPssrApproves.get(0);
             runtimeService.deleteProcessInstance(approve.getProcessId(), "pssr2confirm");

+ 7 - 5
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulExchangerController.java

@@ -140,11 +140,13 @@ public class TPssrOverhaulExchangerController extends BaseController {
         entity.setSubId(tPssrOverhaulExchanger.getSubId());
         entity.setApproveStatus(1L);
         TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
-        String confirmedPerson = exchanger.getConfirmedPerson();
-        logger.info("===========confirmedPerson:{}", confirmedPerson);
-        //如果当前用户还有待审批任务
-        if (confirmedPerson.contains(getUserId().toString())) {
-            return AjaxResult.success();
+        if (exchanger!=null) {
+            String confirmedPerson = exchanger.getConfirmedPerson();
+            logger.info("===========confirmedPerson:{}", confirmedPerson);
+            //如果当前用户还有待审批任务
+            if (confirmedPerson.contains(getUserId().toString())) {
+                return AjaxResult.success();
+            }
         }
         //无待审批任务结束当前用户流程
         TPssrApprove approve = new TPssrApprove();

+ 7 - 5
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulFilterController.java

@@ -152,11 +152,13 @@ public class TPssrOverhaulFilterController extends BaseController
         entity.setSubId(tPssrOverhaulFilter.getSubId());
         entity.setApproveStatus(1L);
         TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
-        String confirmedPerson = exchanger.getConfirmedPerson();
-        logger.info("===========confirmedPerson:{}", confirmedPerson);
-        //如果当前用户还有待审批任务
-        if (confirmedPerson.contains(getUserId().toString())) {
-            return AjaxResult.success();
+        if (exchanger!=null) {
+            String confirmedPerson = exchanger.getConfirmedPerson();
+            logger.info("===========confirmedPerson:{}", confirmedPerson);
+            //如果当前用户还有待审批任务
+            if (confirmedPerson.contains(getUserId().toString())) {
+                return AjaxResult.success();
+            }
         }
         //无待审批任务结束当前用户流程
         TPssrApprove approve = new TPssrApprove();

+ 32 - 44
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulPumpController.java

@@ -1,30 +1,23 @@
 package com.ruoyi.project.pssr.controller;
 
-import java.util.Date;
-import java.util.List;
-
-import com.ruoyi.project.pssr.domain.TPssrApprove;
-import com.ruoyi.project.pssr.domain.TPssrOverhaulExchanger;
-import com.ruoyi.project.pssr.service.ITPssrApproveService;
-import com.ruoyi.project.pssr.service.ITPssrOverhaulExchangerService;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.project.pssr.domain.TPssrOverhaulPump;
-import com.ruoyi.project.pssr.service.ITPssrOverhaulPumpService;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrOverhaulExchanger;
+import com.ruoyi.project.pssr.domain.TPssrOverhaulPump;
+import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrOverhaulExchangerService;
+import com.ruoyi.project.pssr.service.ITPssrOverhaulPumpService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * 检修项目-泵Controller
@@ -34,8 +27,7 @@ import com.ruoyi.framework.web.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/pssr/overhaulPump")
-public class TPssrOverhaulPumpController extends BaseController
-{
+public class TPssrOverhaulPumpController extends BaseController {
     @Autowired
     private ITPssrOverhaulPumpService tPssrOverhaulPumpService;
 
@@ -50,9 +42,8 @@ public class TPssrOverhaulPumpController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:overhaulPump:list')")
     @GetMapping("/list")
-    public TableDataInfo list(TPssrOverhaulPump tPssrOverhaulPump)
-    {
-        if ("1".equals(tPssrOverhaulPump.getConfirmedPerson())){
+    public TableDataInfo list(TPssrOverhaulPump tPssrOverhaulPump) {
+        if ("1".equals(tPssrOverhaulPump.getConfirmedPerson())) {
             tPssrOverhaulPump.setConfirmedPerson(getUserId().toString());
         }
         startPage();
@@ -66,8 +57,7 @@ public class TPssrOverhaulPumpController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:overhaulPump:export')")
     @Log(title = "检修项目-泵", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
-    public AjaxResult export(TPssrOverhaulPump tPssrOverhaulPump)
-    {
+    public AjaxResult export(TPssrOverhaulPump tPssrOverhaulPump) {
         List<TPssrOverhaulPump> list = tPssrOverhaulPumpService.selectTPssrOverhaulPumpList(tPssrOverhaulPump);
         ExcelUtil<TPssrOverhaulPump> util = new ExcelUtil<TPssrOverhaulPump>(TPssrOverhaulPump.class);
         return util.exportExcel(list, "overhaulPump");
@@ -78,8 +68,7 @@ public class TPssrOverhaulPumpController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:overhaulPump:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return AjaxResult.success(tPssrOverhaulPumpService.selectTPssrOverhaulPumpById(id));
     }
 
@@ -89,8 +78,7 @@ public class TPssrOverhaulPumpController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:overhaulPump:add')")
     @Log(title = "检修项目-泵", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody TPssrOverhaulPump tPssrOverhaulPump)
-    {
+    public AjaxResult add(@RequestBody TPssrOverhaulPump tPssrOverhaulPump) {
         tPssrOverhaulPump.setApproveStatus(0L);
         return toAjax(tPssrOverhaulPumpService.insertTPssrOverhaulPump(tPssrOverhaulPump));
     }
@@ -101,8 +89,7 @@ public class TPssrOverhaulPumpController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:overhaulPump:edit')")
     @Log(title = "检修项目-泵", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody TPssrOverhaulPump tPssrOverhaulPump)
-    {
+    public AjaxResult edit(@RequestBody TPssrOverhaulPump tPssrOverhaulPump) {
         return toAjax(tPssrOverhaulPumpService.updateTPssrOverhaulPump(tPssrOverhaulPump));
     }
 
@@ -111,9 +98,8 @@ public class TPssrOverhaulPumpController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:overhaulPump:remove')")
     @Log(title = "检修项目-泵", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(tPssrOverhaulPumpService.deleteTPssrOverhaulPumpByIds(ids));
     }
 
@@ -124,7 +110,7 @@ public class TPssrOverhaulPumpController extends BaseController
         if (tPssrOverhaulPump.getIds() != null && tPssrOverhaulPump.getIds().length > 0) {
             for (Long id : tPssrOverhaulPump.getIds()) {
                 TPssrOverhaulPump pump = tPssrOverhaulPumpService.selectTPssrOverhaulPumpById(id);
-                if (pump.getCompletionDate()==null){
+                if (pump.getCompletionDate() == null) {
                     pump.setCompletionDate(new Date());
                 }
                 pump.setApproveStatus(2L);
@@ -138,7 +124,7 @@ public class TPssrOverhaulPumpController extends BaseController
             pump.setConfirmedPerson(getUserId().toString());
             pump.setApproveStatus(1L);
             for (TPssrOverhaulPump overhaulPump : tPssrOverhaulPumpService.selectTPssrOverhaulPumpList(pump)) {
-                if (overhaulPump.getCompletionDate()==null){
+                if (overhaulPump.getCompletionDate() == null) {
                     overhaulPump.setCompletionDate(new Date());
                 }
                 overhaulPump.setApproveStatus(2L);
@@ -152,18 +138,20 @@ public class TPssrOverhaulPumpController extends BaseController
         entity.setSubId(tPssrOverhaulPump.getSubId());
         entity.setApproveStatus(1L);
         TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
-        String confirmedPerson = exchanger.getConfirmedPerson();
-        logger.info("===========confirmedPerson:{}", confirmedPerson);
-        //如果当前用户还有待审批任务
-        if (confirmedPerson.contains(getUserId().toString())) {
-            return AjaxResult.success();
+        if (exchanger != null) {
+            String confirmedPerson = exchanger.getConfirmedPerson();
+            logger.info("===========confirmedPerson:{}", confirmedPerson);
+            //如果当前用户还有待审批任务
+            if (confirmedPerson.contains(getUserId().toString())) {
+                return AjaxResult.success();
+            }
         }
         //无待审批任务结束当前用户流程
         TPssrApprove approve = new TPssrApprove();
         approve.setSubId(tPssrOverhaulPump.getSubId());
         // 因为流程关系所以approve一定会有且只有一条数据
         TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
-        TPssrApproveController.handleConfirmApprove(tPssrApprove,getUserId().toString());
+        TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
         return AjaxResult.success();
     }
 }

+ 7 - 5
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulTowerController.java

@@ -152,11 +152,13 @@ public class TPssrOverhaulTowerController extends BaseController
         entity.setSubId(tPssrOverhaulTower.getSubId());
         entity.setApproveStatus(1L);
         TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
-        String confirmedPerson = exchanger.getConfirmedPerson();
-        logger.info("===========confirmedPerson:{}", confirmedPerson);
-        //如果当前用户还有待审批任务
-        if (confirmedPerson.contains(getUserId().toString())) {
-            return AjaxResult.success();
+        if (exchanger!=null) {
+            String confirmedPerson = exchanger.getConfirmedPerson();
+            logger.info("===========confirmedPerson:{}", confirmedPerson);
+            //如果当前用户还有待审批任务
+            if (confirmedPerson.contains(getUserId().toString())) {
+                return AjaxResult.success();
+            }
         }
         //无待审批任务结束当前用户流程
         TPssrApprove approve = new TPssrApprove();

+ 7 - 5
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulValveController.java

@@ -152,11 +152,13 @@ public class TPssrOverhaulValveController extends BaseController
         entity.setSubId(tPssrOverhaulValve.getSubId());
         entity.setApproveStatus(1L);
         TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
-        String confirmedPerson = exchanger.getConfirmedPerson();
-        logger.info("===========confirmedPerson:{}", confirmedPerson);
-        //如果当前用户还有待审批任务
-        if (confirmedPerson.contains(getUserId().toString())) {
-            return AjaxResult.success();
+        if (exchanger!=null) {
+            String confirmedPerson = exchanger.getConfirmedPerson();
+            logger.info("===========confirmedPerson:{}", confirmedPerson);
+            //如果当前用户还有待审批任务
+            if (confirmedPerson.contains(getUserId().toString())) {
+                return AjaxResult.success();
+            }
         }
         //无待审批任务结束当前用户流程
         TPssrApprove approve = new TPssrApprove();

+ 13 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrApprove.java

@@ -24,6 +24,10 @@ public class TPssrApprove extends BaseEntity
     @Excel(name = "从表id")
     private Long subId;
 
+    /** 从表id */
+    @Excel(name = "主表id")
+    private Long aboveallId;
+
     /** 申请编号 */
     @Excel(name = "申请编号")
     private String apNo;
@@ -92,6 +96,15 @@ public class TPssrApprove extends BaseEntity
     {
         return approveId;
     }
+
+    public Long getAboveallId() {
+        return aboveallId;
+    }
+
+    public void setAboveallId(Long aboveallId) {
+        this.aboveallId = aboveallId;
+    }
+
     public void setSubId(Long subId)
     {
         this.subId = subId;

+ 1 - 0
master/src/main/resources/mybatis/pssr/TPssrAboveallMapper.xml

@@ -50,6 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by createdate desc
     </select>
     
     <select id="selectTPssrAboveallById" parameterType="Long" resultMap="TPssrAboveallResult">

+ 6 - 1
master/src/main/resources/mybatis/pssr/TPssrApproveMapper.xml

@@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="TPssrApprove" id="TPssrApproveResult">
         <result property="approveId"    column="approve_id"    />
         <result property="subId"    column="sub_id"    />
+        <result property="aboveallId"    column="aboveall_id"    />
         <result property="apNo"    column="ap_no"    />
         <result property="processId"    column="process_id"    />
         <result property="approveStatus"    column="approve_status"    />
@@ -23,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTPssrApproveVo">
-        select d.approve_id, d.sub_id, d.ap_no, d.process_id, d.approve_status, d.sub_approver, d.sub_charge, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks ,s.dept_name from t_pssr_approve d
+        select d.approve_id, d.sub_id,d.aboveall_id, d.ap_no, d.process_id, d.approve_status, d.sub_approver, d.sub_charge, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks ,s.dept_name from t_pssr_approve d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -32,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <where>  
             <if test="subId != null "> and sub_id = #{subId}</if>
             <if test="apNo != null  and apNo != ''"> and ap_no = #{apNo}</if>
+            <if test="aboveallId != null "> and aboveall_id = #{aboveallId}</if>
             <if test="processId != null  and processId != ''"> and process_id = #{processId}</if>
             <if test="approveStatus != null  and approveStatus != ''"> and approve_status = #{approveStatus}</if>
             <if test="subApprover != null  and subApprover != ''"> and sub_approver = #{subApprover}</if>
@@ -61,6 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="approveId != null">approve_id,</if>
             <if test="subId != null">sub_id,</if>
+            <if test="aboveallId != null">aboveall_id,</if>
             <if test="apNo != null">ap_no,</if>
             <if test="processId != null">process_id,</if>
             <if test="approveStatus != null">approve_status,</if>
@@ -77,6 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="approveId != null">#{approveId},</if>
             <if test="subId != null">#{subId},</if>
+            <if test="aboveallId != null">#{aboveallId},</if>
             <if test="apNo != null">#{apNo},</if>
             <if test="processId != null">#{processId},</if>
             <if test="approveStatus != null">#{approveStatus},</if>
@@ -96,6 +100,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update t_pssr_approve
         <trim prefix="SET" suffixOverrides=",">
             <if test="subId != null">sub_id = #{subId},</if>
+            <if test="aboveallId != null">aboveall_id = #{aboveallId},</if>
             <if test="apNo != null">ap_no = #{apNo},</if>
             <if test="processId != null">process_id = #{processId},</if>
             <if test="approveStatus != null">approve_status = #{approveStatus},</if>

+ 44 - 0
master/src/main/resources/processes/pssr/pssrMgrConfirm.bpmn

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
+  <process id="pssrMgrConfirm" name="PSSR装置经理审批" isExecutable="true">
+    <startEvent id="applyUser" name="Start" activiti:initiator="${applyUser}"></startEvent>
+    <userTask id="jlUser" name="装置经理" activiti:candidateUsers="#{chargePerson}"></userTask>
+    <sequenceFlow id="flow1" sourceRef="applyUser" targetRef="jlUser"></sequenceFlow>
+    <endEvent id="endevent2" name="End"></endEvent>
+    <sequenceFlow id="flow3" sourceRef="jlUser" targetRef="endevent2">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
+    </sequenceFlow>
+    <endEvent id="endevent3" name="End"></endEvent>
+    <sequenceFlow id="flow4" sourceRef="jlUser" targetRef="endevent3">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_pssrMgrConfirm">
+    <bpmndi:BPMNPlane bpmnElement="pssrMgrConfirm" id="BPMNPlane_pssrMgrConfirm">
+      <bpmndi:BPMNShape bpmnElement="applyUser" id="BPMNShape_applyUser">
+        <omgdc:Bounds height="35.0" width="35.0" x="140.0" y="260.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="jlUser" id="BPMNShape_jlUser">
+        <omgdc:Bounds height="55.0" width="105.0" x="220.0" y="250.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2">
+        <omgdc:Bounds height="35.0" width="35.0" x="370.0" y="260.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent3" id="BPMNShape_endevent3">
+        <omgdc:Bounds height="35.0" width="35.0" x="250.0" y="340.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="175.0" y="277.0"></omgdi:waypoint>
+        <omgdi:waypoint x="220.0" y="277.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="325.0" y="277.0"></omgdi:waypoint>
+        <omgdi:waypoint x="370.0" y="277.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="272.0" y="305.0"></omgdi:waypoint>
+        <omgdi:waypoint x="267.0" y="340.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 2 - 2
ui/src/views/pssr/lock/index.vue

@@ -70,7 +70,7 @@
         >删除
         </el-button>
       </el-col>
-      <el-col :span="1.5">
+<!--      <el-col :span="1.5">
         <el-button
           type="info"
           icon="el-icon-upload2"
@@ -91,7 +91,7 @@
           v-hasPermi="['pssr:lock:export']"
         >导出
         </el-button>
-      </el-col>
+      </el-col>-->
       <el-col :span="1.5">
         <el-button
           type="danger"