Эх сурвалжийг харах

PSSR:
-添加盲板创建流程

jiangbiao 8 сар өмнө
parent
commit
3f677c7c25

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

@@ -163,7 +163,11 @@ public class ActivitiConfig {
 
         DeploymentBuilder pssr1Db = repositoryService().createDeployment();
         Resource pssr1 = resourceLoader.getResource("classpath:/processes/pssr/pssr1confirm.bpmn"); //加载流程图资源文件
-        pssr1Db.enableDuplicateFiltering().addInputStream(pssr1.getFilename(), pssr1.getInputStream()).name("单确认人审批流程").deploy();//按流程id部署
+        pssr1Db.enableDuplicateFiltering().addInputStream(pssr1.getFilename(), pssr1.getInputStream()).name("PSSR单确认人确认流程").deploy();//按流程id部署
+
+        DeploymentBuilder pssr2Db = repositoryService().createDeployment();
+        Resource pssr2 = resourceLoader.getResource("classpath:/processes/pssr/pssr2confirm.bpmn"); //加载流程图资源文件
+        pssr2Db.enableDuplicateFiltering().addInputStream(pssr2.getFilename(), pssr2.getInputStream()).name("PSSR双确认人确认流程").deploy();//按流程id部署
 
     }
 }

+ 1 - 1
master/src/main/java/com/ruoyi/project/approve/controller/TApproveController.java

@@ -253,7 +253,7 @@ public class TApproveController extends BaseController {
                         TTsApprove t = tTsApproveService.selectTTsApproveById(Long.parseLong(pi.getBusinessKey()));
                         devProcess.setApNo(t.getApNo());
                         devProcess.setApproveObject(t);
-                    } else if (pi.getProcessDefinitionName().equals("PSSR单确认人确认流程")) {
+                    } else if (pi.getProcessDefinitionName().contains("PSSR")) {
                         TPssrApprove t = tPssrApproveService.selectTPssrApproveById(Long.parseLong(pi.getBusinessKey()));
                         devProcess.setApNo(t.getApNo());
                         devProcess.setApproveObject(t);

+ 22 - 12
master/src/main/java/com/ruoyi/project/ehs/controller/TApproveDangerController.java

@@ -34,7 +34,9 @@ import com.ruoyi.project.listener.VerificationTaskCreateListener;
 import com.ruoyi.project.production.domain.TSaiApply;
 import com.ruoyi.project.production.service.ITSaiApplyService;
 import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrSubcontent;
 import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
 import com.ruoyi.project.reliability.domain.TKekaoApprove;
 import com.ruoyi.project.reliability.service.ITKekaoApproveService;
 import com.ruoyi.project.sems.domain.TApprove;
@@ -138,6 +140,8 @@ public class TApproveDangerController extends BaseController {
     private ITTsApproveService tTsApproveService;
     @Autowired
     private ITPssrApproveService tPssrApproveService;
+    @Autowired
+    private ITPssrSubcontentService tPssrSubcontentService;
 
     /**
      * 任务申请
@@ -268,6 +272,10 @@ public class TApproveDangerController extends BaseController {
                 }
                 DevProcess devProcess = new DevProcess();
                 logger.info("审批类型" + pi.getProcessDefinitionName());
+                devProcess.setBusinessKey(pi.getBusinessKey());
+                devProcess.setProcessCreateTime(pi.getStartTime());
+                devProcess.setProcessId(pi.getId());
+                devProcess.setProcessName(pi.getProcessDefinitionName());
                 try {
                     if (pi.getProcessDefinitionName().equals("特种设备审核")) {
                         TApprove approve = tApproveService.selectTApproveById(Long.parseLong(h.getBusinessKey()));
@@ -339,18 +347,16 @@ public class TApproveDangerController extends BaseController {
                         TTsApprove t = tTsApproveService.selectTTsApproveById(Long.parseLong(pi.getBusinessKey()));
                         devProcess.setApNo(t.getApNo());
                         devProcess.setApproveObject(t);
-                    } else if (pi.getProcessDefinitionName().equals("PSSR单确认人确认流程")) {
+                    } else if (pi.getProcessDefinitionName().contains("PSSR")) {
                         TPssrApprove t = tPssrApproveService.selectTPssrApproveById(Long.parseLong(pi.getBusinessKey()));
+                        TPssrSubcontent tPssrSubcontent = tPssrSubcontentService.selectTPssrSubcontentById(t.getSubId());
+                        devProcess.setProcessName(pi.getProcessDefinitionName()+"_"+tPssrSubcontent.getItem());
                         devProcess.setApNo(t.getApNo());
                         devProcess.setApproveObject(t);
                     }
                 } catch (Exception e) {
                     logger.error(e.toString());
                 }
-                devProcess.setBusinessKey(pi.getBusinessKey());
-                devProcess.setProcessCreateTime(pi.getStartTime());
-                devProcess.setProcessId(pi.getId());
-                devProcess.setProcessName(pi.getProcessDefinitionName());
 
                 if (pi.getEndActivityId() != null) {
                     devProcess.setEnd(true);
@@ -490,8 +496,10 @@ public class TApproveDangerController extends BaseController {
                     TTsApprove t = tTsApproveService.selectTTsApproveById(Long.parseLong(pi.getBusinessKey()));
                     devTask.setApNo(t.getApNo());
                     devTask.setApproveObject(t);
-                } else if (pi.getProcessDefinitionName().equals("PSSR单确认人确认流程")) {
+                } else if (pi.getProcessDefinitionName().contains("PSSR")) {
                     TPssrApprove t = tPssrApproveService.selectTPssrApproveById(Long.parseLong(pi.getBusinessKey()));
+                    TPssrSubcontent tPssrSubcontent = tPssrSubcontentService.selectTPssrSubcontentById(t.getSubId());
+                    devTask.setProcessName(pi.getProcessDefinitionName()+"_"+tPssrSubcontent.getItem());
                     devTask.setApNo(t.getApNo());
                     devTask.setApproveObject(t);
                 }
@@ -541,6 +549,11 @@ public class TApproveDangerController extends BaseController {
                     continue;
                 }
                 DevProcess devProcess = new DevProcess();
+                devProcess.setBusinessKey(pi.getBusinessKey());
+                devProcess.setProcessCreateTime(pi.getStartTime());
+                devProcess.setProcessId(pi.getId());
+                devProcess.setProcessName(pi.getProcessDefinitionName());
+
                 if (pi.getProcessDefinitionName().equals("特种设备审核")) {
                     TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
                     SysUser user = sysUserService.selectUserById(approve.getUserId());
@@ -631,8 +644,10 @@ public class TApproveDangerController extends BaseController {
                     devProcess.setApNo(t.getApNo());
                     devProcess.setApName(user.getNickName());
                     devProcess.setApproveObject(t);
-                } else if (pi.getProcessDefinitionName().equals("PSSR单确认人确认流程")) {
+                } else if (pi.getProcessDefinitionName().contains("PSSR")) {
                     TPssrApprove t = tPssrApproveService.selectTPssrApproveById(Long.parseLong(pi.getBusinessKey()));
+                    TPssrSubcontent tPssrSubcontent = tPssrSubcontentService.selectTPssrSubcontentById(t.getSubId());
+                    devProcess.setProcessName(pi.getProcessDefinitionName()+"_"+tPssrSubcontent.getItem());
                     SysUser user = sysUserService.selectUserById(Long.valueOf(t.getCreaterCode()));
                     devProcess.setApName(user.getNickName());
                     devProcess.setApNo(t.getApNo());
@@ -645,11 +660,6 @@ public class TApproveDangerController extends BaseController {
                     devProcess.setApNo(approveDanger.getApproveNo());
                     devProcess.setApName(user.getNickName());
                 }
-                devProcess.setBusinessKey(pi.getBusinessKey());
-                devProcess.setProcessCreateTime(pi.getStartTime());
-                devProcess.setProcessId(pi.getId());
-                devProcess.setProcessName(pi.getProcessDefinitionName());
-
                 logger.info("devProcess:" + devProcess);
                 if (pi.getEndActivityId() != null) {
                     devProcess.setEnd(true);

+ 105 - 0
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrApproveController.java

@@ -68,6 +68,9 @@ public class TPssrApproveController extends BaseController {
     @Autowired
     private ITPssrOverhaulValveService tPssrOverhaulValveService;
 
+    @Autowired
+    private ITPssrBlindService tPssrBlindService;
+
     /**
      * 查询pssr审批管理列表
      */
@@ -143,6 +146,7 @@ public class TPssrApproveController extends BaseController {
             case "02":
                 break;
             case "03":
+                do03Approve(tPssrSubcontent);
                 break;
             case "04":
                 break;
@@ -394,4 +398,105 @@ public class TPssrApproveController extends BaseController {
     }
 
 
+
+    // 盲板审批流程发起申请
+    public void do03Approve(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrBlind tPssrBlind = new TPssrBlind();
+        tPssrBlind.setApproveStatus(0L);
+        tPssrBlind.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrBlind item : tPssrBlindService.selectTPssrBlindList(tPssrBlind)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrBlindService.updateTPssrBlind(item);
+
+            // 安装人员
+            installer.add(item.getInConfirm1());
+            installer.add(item.getInConfirm2());
+            installer.add(item.getInContractor());
+            installer.add(item.getInProcess());
+            installer.add(item.getInCoordinator());
+
+            //拆除人员
+            remover.add(item.getReConfirm1());
+            remover.add(item.getReConfirm2());
+            remover.add(item.getReContractor());
+            remover.add(item.getReProcess());
+            remover.add(item.getReCoordinator());
+        }
+
+        TPssrApprove exist = new TPssrApprove();
+        exist.setSubId(sub.getId());
+        List<TPssrApprove> tPssrApproves = tPssrApproveService.selectTPssrApproveList(exist);
+        if (CollectionUtil.isEmpty(tPssrApproves)) {
+            //新增审批数据
+            TPssrApprove approve = new TPssrApprove();
+            approve.setSubId(sub.getId());
+            approve.setApNo(DateUtils.dateTimeNow() + userId);
+            approve.setApproveStatus(1L);
+            approve.setSubCharge(sub.getConfirm());
+            approve.setCreaterCode(userId);
+            approve.setCreatedate(new Date());
+            tPssrApproveService.insertTPssrApprove(approve);
+
+            // 开始申请流程
+            long businessKey = approve.getApproveId();
+            //开始工作流、监听
+            Authentication.setAuthenticatedUserId(userId);//设置当前申请人
+            Map<String, Object> variables = new HashMap<>();
+            variables.put("applyUser", userId);
+            variables.put("confirmUsers1", new ArrayList<>(installer));
+            variables.put("confirmUsers2", new ArrayList<>(remover));
+            variables.put("chargePerson", sub.getConfirm());
+            //采用key来启动流程定义并设置流程变量,返回流程实例
+            ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr2confirm", String.valueOf(businessKey), variables);
+            approve.setProcessId(pi.getProcessInstanceId());
+            tPssrApproveService.updateTPssrApprove(approve);
+        }else{
+            // 已存在流程时,删除旧流程,重新发起
+            TPssrApprove approve = tPssrApproves.get(0);
+            runtimeService.deleteProcessInstance(approve.getProcessId(), "pssr2confirm");
+            historyService.deleteHistoricProcessInstance(approve.getProcessId());
+
+            tPssrBlind = new TPssrBlind();
+            tPssrBlind.setApproveStatus(1L);
+            tPssrBlind.setSubId(sub.getId());
+            for (TPssrBlind item : tPssrBlindService.selectTPssrBlindList(tPssrBlind)) {
+                // 安装人员
+                installer.add(item.getInConfirm1());
+                installer.add(item.getInConfirm2());
+                installer.add(item.getInContractor());
+                installer.add(item.getInProcess());
+                installer.add(item.getInCoordinator());
+
+                //拆除人员
+                remover.add(item.getReConfirm1());
+                remover.add(item.getReConfirm2());
+                remover.add(item.getReContractor());
+                remover.add(item.getReProcess());
+                remover.add(item.getReCoordinator());
+            }
+
+            // 开始申请流程
+            long businessKey = approve.getApproveId();
+            //开始工作流、监听
+            Authentication.setAuthenticatedUserId(userId);//设置当前申请人
+            Map<String, Object> variables = new HashMap<>();
+            variables.put("applyUser", userId);
+            variables.put("confirmUsers1", new ArrayList<>(installer));
+            variables.put("confirmUsers2", new ArrayList<>(remover));
+            variables.put("chargePerson", sub.getConfirm());
+            //采用key来启动流程定义并设置流程变量,返回流程实例
+            ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr2confirm", String.valueOf(businessKey), variables);
+            approve.setProcessId(pi.getProcessInstanceId());
+            tPssrApproveService.updateTPssrApprove(approve);
+        }
+
+    }
+
+
 }

+ 116 - 29
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrBlindController.java

@@ -1,24 +1,23 @@
 package com.ruoyi.project.pssr.controller;
 
-import java.util.List;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.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.TPssrBlind;
-import com.ruoyi.project.pssr.service.ITPssrBlindService;
 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.TPssrBlind;
+import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrBlindService;
+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.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 盲板Controller
@@ -28,18 +27,19 @@ import com.ruoyi.framework.web.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/pssr/blind")
-public class TPssrBlindController extends BaseController
-{
+public class TPssrBlindController extends BaseController {
     @Autowired
     private ITPssrBlindService tPssrBlindService;
 
+    @Autowired
+    private ITPssrApproveService tPssrApproveService;
+
     /**
      * 查询盲板列表
      */
     @PreAuthorize("@ss.hasPermi('pssr:blind:list')")
     @GetMapping("/list")
-    public TableDataInfo list(TPssrBlind tPssrBlind)
-    {
+    public TableDataInfo list(TPssrBlind tPssrBlind) {
         startPage();
         List<TPssrBlind> list = tPssrBlindService.selectTPssrBlindList(tPssrBlind);
         return getDataTable(list);
@@ -51,8 +51,7 @@ public class TPssrBlindController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:blind:export')")
     @Log(title = "盲板", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
-    public AjaxResult export(TPssrBlind tPssrBlind)
-    {
+    public AjaxResult export(TPssrBlind tPssrBlind) {
         List<TPssrBlind> list = tPssrBlindService.selectTPssrBlindList(tPssrBlind);
         ExcelUtil<TPssrBlind> util = new ExcelUtil<TPssrBlind>(TPssrBlind.class);
         return util.exportExcel(list, "blind");
@@ -63,8 +62,7 @@ public class TPssrBlindController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:blind:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return AjaxResult.success(tPssrBlindService.selectTPssrBlindById(id));
     }
 
@@ -74,8 +72,8 @@ public class TPssrBlindController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:blind:add')")
     @Log(title = "盲板", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody TPssrBlind tPssrBlind)
-    {
+    public AjaxResult add(@RequestBody TPssrBlind tPssrBlind) {
+        tPssrBlind.setApproveStatus(0L);
         return toAjax(tPssrBlindService.insertTPssrBlind(tPssrBlind));
     }
 
@@ -85,8 +83,7 @@ public class TPssrBlindController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:blind:edit')")
     @Log(title = "盲板", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody TPssrBlind tPssrBlind)
-    {
+    public AjaxResult edit(@RequestBody TPssrBlind tPssrBlind) {
         return toAjax(tPssrBlindService.updateTPssrBlind(tPssrBlind));
     }
 
@@ -95,9 +92,99 @@ public class TPssrBlindController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:blind:remove')")
     @Log(title = "盲板", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(tPssrBlindService.deleteTPssrBlindByIds(ids));
     }
+
+
+    /**
+     * 确认检修项目-换热器
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:blind:edit')")
+    @Log(title = "盲板", businessType = BusinessType.UPDATE)
+    @PutMapping("/confirmBlind")
+    public AjaxResult confirmBlind(@RequestBody TPssrBlind tPssrBlind) {
+        if (tPssrBlind.getIds() != null && tPssrBlind.getIds().length > 0) {
+            for (Long id : tPssrBlind.getIds()) {
+                TPssrBlind blind = tPssrBlindService.selectTPssrBlindById(id);
+                if (tPssrBlind.getTaskType() == 0) {
+                    if (blind.getInstallDate() == null) {
+                        blind.setInstallDate(new Date());
+                    }
+                    blind.setApproveStatus(2L);
+                    blind.setUpdatedate(new Date());
+                    blind.setUpdaterCode(String.valueOf(getUserId()));
+                    tPssrBlindService.updateTPssrBlind(blind);
+                } else if (tPssrBlind.getTaskType() == 1) {
+                    if (blind.getRemovedDate() == null) {
+                        blind.setRemovedDate(new Date());
+                    }
+                    blind.setApproveStatus(3L);
+                    blind.setUpdatedate(new Date());
+                    blind.setUpdaterCode(String.valueOf(getUserId()));
+                    tPssrBlindService.updateTPssrBlind(blind);
+                }
+            }
+        } else {
+            TPssrBlind blind = new TPssrBlind();
+            blind.setSubId(tPssrBlind.getSubId());
+            blind.setCurrentUser(getUserId().toString());
+            blind.setApproveStatus(1L);
+            for (TPssrBlind item : tPssrBlindService.selectTPssrBlindList(blind)) {
+                if (tPssrBlind.getTaskType() == 0) {
+                    if (blind.getInstallDate() == null) {
+                        blind.setInstallDate(new Date());
+                    }
+                    blind.setApproveStatus(2L);
+                    blind.setUpdatedate(new Date());
+                    blind.setUpdaterCode(String.valueOf(getUserId()));
+                    tPssrBlindService.updateTPssrBlind(blind);
+                } else if (tPssrBlind.getTaskType() == 1) {
+                    if (blind.getRemovedDate() == null) {
+                        blind.setRemovedDate(new Date());
+                    }
+                    blind.setApproveStatus(3L);
+                    blind.setUpdatedate(new Date());
+                    blind.setUpdaterCode(String.valueOf(getUserId()));
+                    tPssrBlindService.updateTPssrBlind(blind);
+                }
+            }
+        }
+        //查询当前待审批的确认人
+        TPssrBlind entity = new TPssrBlind();
+        entity.setSubId(tPssrBlind.getSubId());
+        entity.setApproveStatus(1L);
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrBlind item : tPssrBlindService.selectTPssrBlindList(entity)) {
+            // 安装人员
+            installer.add(item.getInConfirm1());
+            installer.add(item.getInConfirm2());
+            installer.add(item.getInContractor());
+            installer.add(item.getInProcess());
+            installer.add(item.getInCoordinator());
+
+            //拆除人员
+            remover.add(item.getReConfirm1());
+            remover.add(item.getReConfirm2());
+            remover.add(item.getReContractor());
+            remover.add(item.getReProcess());
+            remover.add(item.getReCoordinator());
+        }
+        //如果当前用户还有待审批任务
+        if (installer.contains(getUserId().toString())) {
+            return AjaxResult.success();
+        }
+        if (remover.contains(getUserId().toString())) {
+            return AjaxResult.success();
+        }
+        //无待审批任务结束当前用户流程
+        TPssrApprove approve = new TPssrApprove();
+        approve.setSubId(tPssrBlind.getSubId());
+        // 因为流程关系所以approve一定会有且只有一条数据
+        TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
+        TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
+        return AjaxResult.success();
+    }
 }

+ 31 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrBlind.java

@@ -6,6 +6,7 @@ import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.framework.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
+import org.jodconverter.office.utils.Lo;
 
 /**
  * 盲板对象 t_pssr_blind
@@ -165,10 +166,40 @@ public class TPssrBlind extends BaseEntity
     @Excel(name = "备注")
     private String remarks;
 
+    private String currentUser;
+
     /** 审批状态 */
     @Excel(name = "审批状态")
     private Long approveStatus;
 
+    private Long[] ids;
+
+    private Long taskType;
+
+    public String getCurrentUser() {
+        return currentUser;
+    }
+
+    public void setCurrentUser(String currentUser) {
+        this.currentUser = currentUser;
+    }
+
+    public Long[] getIds() {
+        return ids;
+    }
+
+    public void setIds(Long[] ids) {
+        this.ids = ids;
+    }
+
+    public Long getTaskType() {
+        return taskType;
+    }
+
+    public void setTaskType(Long taskType) {
+        this.taskType = taskType;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 1 - 1
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrOverhaulExchanger.java

@@ -37,7 +37,7 @@ public class TPssrOverhaulExchanger extends BaseEntity
     private String equipmentName;
 
     /** 检修内容(长文本) */
-    @Excel(name = "检修内容", readConverterExp = "长=文本")
+    @Excel(name = "检修内容(长文本)")
     private String workDes;
 
     /** 图号 */

+ 11 - 0
master/src/main/resources/mybatis/pssr/TPssrBlindMapper.xml

@@ -66,6 +66,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="pressurized != null  and pressurized != ''"> and pressurized = #{pressurized}</if>
             <if test="figure != null  and figure != ''"> and figure = #{figure}</if>
             <if test="installDate != null "> and install_date = #{installDate}</if>
+            <if test="currentUser != null "> and (in_process = #{currentUser} or
+                in_coordinator = #{currentUser} or
+                in_contractor = #{currentUser} or
+                in_confirm1 = #{currentUser} or
+                in_confirm2 = #{currentUser} or
+                re_process = #{currentUser} or
+                re_coordinator = #{currentUser} or
+                re_contractor = #{currentUser} or
+                re_confirm1 = #{currentUser} or
+                re_confirm2 = #{currentUser})
+             </if>
             <if test="inProcess != null  and inProcess != ''"> and in_process = #{inProcess}</if>
             <if test="inCoordinator != null  and inCoordinator != ''"> and in_coordinator = #{inCoordinator}</if>
             <if test="inContractor != null  and inContractor != ''"> and in_contractor = #{inContractor}</if>

+ 0 - 11
master/src/main/resources/processes/pssr/pssr1confirm.bpmn

@@ -22,10 +22,6 @@
     <sequenceFlow id="flow3" sourceRef="chargePerson" targetRef="confirmUser">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>
-    <endEvent id="endevent1" name="End"></endEvent>
-    <sequenceFlow id="flow4" sourceRef="chargePerson" targetRef="endevent1">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
-    </sequenceFlow>
     <userTask id="stoped" name="流程挂起"></userTask>
     <sequenceFlow id="flow5" sourceRef="chargePerson" targetRef="stoped">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
@@ -49,9 +45,6 @@
       <bpmndi:BPMNShape bpmnElement="confirmUser" id="BPMNShape_confirmUser">
         <omgdc:Bounds height="55.0" width="105.0" x="240.0" y="240.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="540.0" y="250.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape bpmnElement="stoped" id="BPMNShape_stoped">
         <omgdc:Bounds height="55.0" width="105.0" x="540.0" y="240.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
@@ -73,10 +66,6 @@
         <omgdi:waypoint x="292.0" y="353.0"></omgdi:waypoint>
         <omgdi:waypoint x="292.0" y="295.0"></omgdi:waypoint>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
-        <omgdi:waypoint x="495.0" y="267.0"></omgdi:waypoint>
-        <omgdi:waypoint x="540.0" y="267.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
         <omgdi:waypoint x="495.0" y="267.0"></omgdi:waypoint>
         <omgdi:waypoint x="540.0" y="267.0"></omgdi:waypoint>

+ 88 - 0
master/src/main/resources/processes/pssr/pssr2confirm.bpmn

@@ -0,0 +1,88 @@
+<?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="pssr2confirm" name="PSSR双确认人确认流程" isExecutable="true">
+    <startEvent id="applyUser" name="Start" activiti:initiator="${applyUser}"></startEvent>
+    <sequenceFlow id="flow1" sourceRef="applyUser" targetRef="confirmUser1"></sequenceFlow>
+    <userTask id="confirmUser1" name="确认人1" activiti:assignee="${confirmUser1}">
+            <extensionElements>
+                <!-- 定义多实例任务,使用集合变量 confirmUsers 动态生成 -->
+                <activiti:multiInstanceLoopCharacteristics isSequential="false" activiti:collection="confirmUsers1" activiti:elementVariable="confirmUser1">
+                    <completionCondition>${nrOfCompletedInstances == nrOfInstances}</completionCondition>
+                </activiti:multiInstanceLoopCharacteristics>
+            </extensionElements>
+        </userTask>
+    <userTask id="confirmUser2" name="确认人2" activiti:assignee="${confirmUser2}">
+            <extensionElements>
+                <!-- 定义多实例任务,使用集合变量 confirmUsers 动态生成 -->
+                <activiti:multiInstanceLoopCharacteristics isSequential="false" activiti:collection="confirmUsers2" activiti:elementVariable="confirmUser2">
+                    <completionCondition>${nrOfCompletedInstances == nrOfInstances}</completionCondition>
+                </activiti:multiInstanceLoopCharacteristics>
+            </extensionElements>
+        </userTask>
+    <sequenceFlow id="flow2" sourceRef="confirmUser1" targetRef="confirmUser2">
+   <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <userTask id="chargePerson" name="检查内容负责人" activiti:assignee="#{chargePerson}"></userTask>
+    <sequenceFlow id="flow3" sourceRef="confirmUser2" targetRef="chargePerson">
+    <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <endEvent id="endevent1" name="End"></endEvent>
+    <sequenceFlow id="flow4" sourceRef="chargePerson" targetRef="endevent1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow5" sourceRef="chargePerson" targetRef="confirmUser1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow6" sourceRef="chargePerson" targetRef="confirmUser2">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 2}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_pssr2confirm">
+    <bpmndi:BPMNPlane bpmnElement="pssr2confirm" id="BPMNPlane_pssr2confirm">
+      <bpmndi:BPMNShape bpmnElement="applyUser" id="BPMNShape_applyUser">
+        <omgdc:Bounds height="35.0" width="35.0" x="160.0" y="250.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="confirmUser1" id="BPMNShape_confirmUser1">
+        <omgdc:Bounds height="55.0" width="105.0" x="240.0" y="240.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="confirmUser2" id="BPMNShape_confirmUser2">
+        <omgdc:Bounds height="55.0" width="105.0" x="390.0" y="240.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="chargePerson" id="BPMNShape_chargePerson">
+        <omgdc:Bounds height="55.0" width="105.0" x="540.0" y="240.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="690.0" y="250.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="195.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="240.0" y="267.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="345.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="390.0" y="267.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="495.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="540.0" y="267.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="645.0" y="267.0"></omgdi:waypoint>
+        <omgdi:waypoint x="690.0" y="267.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="592.0" y="240.0"></omgdi:waypoint>
+        <omgdi:waypoint x="592.0" y="179.0"></omgdi:waypoint>
+        <omgdi:waypoint x="292.0" y="179.0"></omgdi:waypoint>
+        <omgdi:waypoint x="292.0" y="240.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="592.0" y="295.0"></omgdi:waypoint>
+        <omgdi:waypoint x="592.0" y="354.0"></omgdi:waypoint>
+        <omgdi:waypoint x="512.0" y="354.0"></omgdi:waypoint>
+        <omgdi:waypoint x="442.0" y="354.0"></omgdi:waypoint>
+        <omgdi:waypoint x="442.0" y="295.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 10 - 1
ui/src/api/pssr/blind.js

@@ -35,6 +35,15 @@ export function updateBlind(data) {
   })
 }
 
+// 确认盲板
+export function handleConfirmApprove(data) {
+  return request({
+    url: '/pssr/blind/confirmBlind',
+    method: 'put',
+    data: data
+  })
+}
+
 // 删除盲板
 export function delBlind(id) {
   return request({
@@ -50,4 +59,4 @@ export function exportBlind(query) {
     method: 'get',
     params: query
   })
-}
+}

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

@@ -276,7 +276,7 @@
           this.$nextTick(() => {
             this.$refs.dsdtNopassDetail.init(row.approveObject.id, row.taskId, row.processId, row.taskName)
           })
-        } else if (row.processName == "PSSR单确认人确认流程") {
+        } else if (row.processName.contains('PSSR')) {
           this.pssrApproveDetailVisible = true
           this.$nextTick(() => {
             this.$refs.pssrApproveDetail.init(row.approveObject.subId, row.taskId, row.processId, row.taskName)

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

@@ -453,7 +453,7 @@
           this.$nextTick(() => {
             this.$refs.dsdtNopassDetail.init(row.approveObject.id, row.taskId, row.processId, row.taskName)
           })
-        }  else if (row.processName == "PSSR单确认人确认流程") {
+        }  else if (row.processName == "PSSR单确认人确认流程"||row.processName == "PSSR双确认人确认流程") {
           this.pssrApproveDetailVisible = true
           this.$nextTick(() => {
             this.$refs.pssrApproveDetail.init(row.approveObject.subId, row.taskId, row.processId, row.taskName)

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

@@ -288,7 +288,7 @@
           this.$nextTick(() => {
             this.$refs.dsdtNopassDetail.init(row.approveObject.id, row.taskId, row.processId, row.taskName)
           })
-        } else if (row.processName == "PSSR单确认人确认流程") {
+        } else if (row.processName == "PSSR单确认人确认流程"||row.processName == "PSSR双确认人确认流程") {
           this.pssrApproveDetailVisible = true
           this.$nextTick(() => {
             this.$refs.pssrApproveDetail.init(row.approveObject.subId, row.taskId, row.processId, row.taskName)

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 431 - 501
ui/src/views/pssr/blind/index.vue


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно