瀏覽代碼

标准规范部分图片、部分流程文件

Wang Zi Wen 1 年之前
父節點
當前提交
748180d4eb
共有 23 個文件被更改,包括 1728 次插入289 次删除
  1. 7 0
      ruoyi-admin/pom.xml
  2. 893 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/branch/TApproveDangerController.java
  3. 18 0
      ruoyi-common/pom.xml
  4. 154 0
      ruoyi-common/src/main/java/com/ruoyi/common/config/ActivitiConfig.java
  5. 13 0
      ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
  6. 6 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
  7. 110 0
      ruoyi-common/src/main/resources/processes/common.bpmn
  8. 101 104
      ruoyi-system/src/main/java/com/ruoyi/branch/domain/approve/DevProcess.java
  9. 149 157
      ruoyi-system/src/main/java/com/ruoyi/branch/domain/approve/DevTask.java
  10. 二進制
      ruoyi-ui/src/assets/images/bzgf/党务公开-程序1.png
  11. 二進制
      ruoyi-ui/src/assets/images/bzgf/党务公开-范围与内容1.png
  12. 二進制
      ruoyi-ui/src/assets/images/bzgf/党务公开-范围与内容2.png
  13. 二進制
      ruoyi-ui/src/assets/images/bzgf/融入中心工作-一岗双责.png
  14. 二進制
      ruoyi-ui/src/assets/images/bzgf/融入中心工作-三基工作.png
  15. 二進制
      ruoyi-ui/src/assets/images/bzgf/融入中心工作-党建引领.png
  16. 二進制
      ruoyi-ui/src/assets/images/bzgf/融入中心工作-基层班组建设.png
  17. 28 28
      ruoyi-ui/src/views/branch/approve/myapprove/index.vue
  18. 12 0
      ruoyi-ui/src/views/branch/bzgf/dwgk/cx/index.vue
  19. 47 0
      ruoyi-ui/src/views/branch/bzgf/dwgk/fwynr/index.vue
  20. 48 0
      ruoyi-ui/src/views/branch/bzgf/rrzxgz/djyl/index.vue
  21. 47 0
      ruoyi-ui/src/views/branch/bzgf/rrzxgz/jcbzjs/index.vue
  22. 48 0
      ruoyi-ui/src/views/branch/bzgf/rrzxgz/sjgz/index.vue
  23. 47 0
      ruoyi-ui/src/views/branch/bzgf/rrzxgz/ygsz/index.vue

+ 7 - 0
ruoyi-admin/pom.xml

@@ -17,6 +17,13 @@
 
     <dependencies>
 
+        <!-- 阿里JSON解析器 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.74</version>
+        </dependency>
+
         <!--oracle驱动-->
         <dependency>
             <groupId>com.oracle</groupId>

+ 893 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/branch/TApproveDangerController.java

@@ -0,0 +1,893 @@
+package com.ruoyi.web.controller.branch;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.branch.domain.approve.DevProcess;
+import com.ruoyi.branch.domain.approve.DevTask;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.system.service.ISysUserService;
+import org.activiti.bpmn.model.BpmnModel;
+import org.activiti.bpmn.model.FlowNode;
+import org.activiti.bpmn.model.Process;
+import org.activiti.bpmn.model.SequenceFlow;
+import org.activiti.engine.*;
+import org.activiti.engine.history.HistoricActivityInstance;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.history.HistoricTaskInstance;
+import org.activiti.engine.history.HistoricTaskInstanceQuery;
+import org.activiti.engine.repository.ProcessDefinition;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Comment;
+import org.activiti.engine.task.Task;
+import org.activiti.image.impl.DefaultProcessDiagramGenerator;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.InputStream;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 隐患申请Controller
+ *
+ * @author ruoyi
+ * @date 2021-02-20
+ */
+@RestController
+@RequestMapping("/ehs/approvedanger")
+public class TApproveDangerController extends BaseController {
+//    @Autowired
+//    private ITApproveDangerService tApproveDangerService;
+
+//    @Autowired
+//    private ITApproveAccidentService tApproveAccidentService;
+
+    @Autowired
+    private RuntimeService runtimeService;
+
+    @Autowired
+    private HistoryService historyService;
+
+    @Autowired
+    private TaskService taskService;
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+//    @Autowired
+//    private ITCommonfileService tCommonfileService;
+//    @Autowired
+//    private ITApproveService tApproveService;
+//    @Autowired
+//    private ITApproveSpecModifyService tApproveSpecModifyService;
+//    @Autowired
+//    private ITStApproveService tStApproveService;
+    @Autowired
+    private RepositoryService repositoryService;
+//    @Autowired
+//    private ITApproveMaintenanceService tApproveMaintenanceService;
+//    @Autowired
+//    private ITIntactApproveService tIntactApproveService;
+//    @Autowired
+//    private ITKekaoApproveService tKekaoApproveService;
+//    @Autowired
+//    private ITApproveReserveInvoiceService tApproveReserveInvoiceService;
+//
+//    @Autowired
+//    private ITApplyOfflinevalveService tApplyOfflinevalveService;
+//
+//    @Autowired
+//    private ITApplySafetychangeService tApplySafetychangeService;
+//
+//    @Autowired
+//    private ITSaiApplyService tSaiApplyService;
+
+//    /**
+//     * 任务申请
+//     */
+//    @PostMapping("/save")
+//    public AjaxResult save(@RequestBody TApproveDanger tApprove) {
+//        try {
+//            logger.info("任务申请" + JSON.toJSONString(tApprove));
+//            Long userid = getUserId();
+//            //审批编号
+//            Date dt = new Date();
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+//            String data = sdf.format(dt) + userid;
+//            tApprove.setApproveNo(data);
+//            tApprove.setRecorderId(userid);
+//            logger.info("tApprove:" + tApprove);
+//            tApproveDangerService.insertTApproveDanger(tApprove);
+//
+//            Map<String, Object> variables = new HashMap<>();
+//            //执行人、验证人确认
+//            Long verificationId = null;
+//            Long deptId = sysUserService.selectUserById(userid).getDeptId();
+//            List<SysUser> deptPerson = sysUserService.selectUserByDept(deptId);
+//            for (SysUser s : deptPerson) {
+//                SysUserRole userRole = sysUserService.selectRoleByUserId(s.getUserId());
+//                if (userRole.getRoleId() == 100) {
+//                    verificationId = userRole.getUserId();
+//                }
+//            }
+//            tApprove.setVerificationId(verificationId);
+//
+//            //开始工作流、监听
+//            variables.put("endSucessListener", new EndSucessListener());
+//            variables.put("recorderTaskCreateListener", new RecorderTaskCreateListener());
+//            variables.put("executorTaskCreateListener", new ExecutorTaskCreateListener());
+//            variables.put("verificationTaskCreateListener", new VerificationTaskCreateListener());
+//
+//            //审批人员设置
+//            variables.put("recorder", userid);
+//            variables.put("executor", tApprove.getExecutorId());
+//            variables.put("verification", verificationId);
+//            logger.info("executor:" + tApprove.getExecutorId());
+//            logger.info("verification:" + verificationId);
+//
+//            long bussniseeKey = tApprove.getId();
+//            logger.info("bussniseeKey:" + bussniseeKey);
+//            Authentication.setAuthenticatedUserId(userid.toString());
+//            //采用key来启动流程定义并设置流程变量,返回流程实例
+//            ProcessInstance pi = null;
+//            if (tApprove.getHiddendangerLevel() == 2) {
+//                pi = runtimeService.startProcessInstanceByKey("commonProcess", String.valueOf(bussniseeKey), variables);
+//            } else if (tApprove.getHiddendangerLevel() == 3) {
+//                //初始化会签人员
+//                List<Long> confirmlist = new ArrayList<>();
+//                confirmlist.add(tApprove.getConfirmoneId());
+//                confirmlist.add(tApprove.getConfirmtwoId());
+//                //条件表达式方法 一定要序列号
+//                variables.put("confirmlist", confirmlist);
+//                pi = runtimeService.startProcessInstanceByKey("majorProcess", String.valueOf(bussniseeKey), variables);
+//            }
+//
+//            logger.info("流程部署id:" + pi.getDeploymentId());
+//            logger.info("流程定义id:" + pi.getProcessDefinitionId());
+//            logger.info("流程实例id:" + pi.getProcessInstanceId());
+//            logger.info("流程定义对象:" + pi.getProcessVariables());
+//            tApprove.setProcessId(Long.parseLong(pi.getProcessInstanceId()));
+//
+//            logger.info("tApprove:" + tApprove);
+//            tApproveDangerService.updateTApproveDanger(tApprove);
+//        } catch (Exception e) {
+//            logger.info("e:" + e);
+//        }
+//        return AjaxResult.success("申请成功", tApprove);
+//    }
+
+//    /**
+//     * 一般隐患任务申请
+//     */
+//    @PostMapping("/savegeneral")
+//    public AjaxResult saveGeneral(@RequestBody TApproveDanger tApprove) {
+//        try {
+//            Long userid = getUserId();
+//            tApprove.setRecorderId(userid);
+//            logger.info("tApprove:" + tApprove);
+//            //tApproveDangerService.insertTApproveDanger(tApprove);
+//        } catch (Exception e) {
+//            logger.info("e:" + e);
+//            return AjaxResult.error(e.toString());
+//        }
+//        return AjaxResult.success("申请成功");
+//    }
+
+    /**
+     * 我的申请列表
+     */
+    @GetMapping("/myApprovelist")
+    public TableDataInfo myApprovelist(@RequestParam Map<String, Object> params) {
+        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+        //查询发起流程
+        List<HistoricProcessInstance> historicProcessInstanceList =
+                historyService.createHistoricProcessInstanceQuery()
+                        .startedBy(getUserId().toString()).orderByProcessInstanceStartTime().desc()//参与者,组任务查询
+                        .listPage(PageUtils.getStart(params), Integer.parseInt((String) params.get("pageSize")));
+        Long count = historyService.createHistoricProcessInstanceQuery()
+                .startedBy(getUserId().toString()).count();
+        logger.info(JSON.toJSONString(historicProcessInstanceList));
+        //整合我的申请数据
+        List<DevProcess> list = new ArrayList<>();
+        if (historicProcessInstanceList.size() > 0)
+            for (HistoricProcessInstance h : historicProcessInstanceList
+            ) {
+                HistoricProcessInstance pi = processEngine.getHistoryService()
+                        .createHistoricProcessInstanceQuery().processInstanceId(h.getId()).singleResult();
+                logger.info(JSON.toJSONString(pi));
+                if (pi == null) {
+                    continue;
+                }
+                DevProcess devProcess = new DevProcess();
+                logger.info("审批类型" + pi.getProcessDefinitionName());
+                try {
+                    if (pi.getProcessDefinitionName().equals("特种设备审核")) {
+//                        TApprove approve = tApproveService.selectTApproveById(Long.parseLong(h.getBusinessKey()));
+//                        devProcess.setSpecApprove(approve);
+//                        devProcess.setApNo(approve.getApNo());
+                    }
+//                    else if (pi.getProcessDefinitionName().equals("年度检查报告申请")) {
+//                        TApprove approve = tApproveService.selectTApproveById(Long.parseLong(h.getBusinessKey()));
+//                        devProcess.setSpecApprove(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("月度检查")) {
+//                        TApprove approve = tApproveService.selectTApproveById(Long.parseLong(h.getBusinessKey()));
+//                        devProcess.setSpecApprove(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核") || pi.getProcessDefinitionName().equals("设备新增/删除审核")) {
+//                        TApproveSpecModify approve = tApproveSpecModifyService.selectTApproveSpecModifyById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveSpecModify(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("事件审批流程")) {
+//                        TApproveDanger approveDanger = tApproveDangerService.selectTApproveDangerById(Long.parseLong(h.getBusinessKey()));
+//                        devProcess.settApprove(approveDanger);
+//                        devProcess.setApNo(approveDanger.getApproveNo());
+//                    } else if (pi.getProcessDefinitionName().equals("重大隐患审批流程") || pi.getProcessDefinitionName().equals("普通隐患审批流程")) {
+//                        TApproveDanger approveDanger = tApproveDangerService.selectTApproveDangerById(Long.parseLong(h.getBusinessKey()));
+//                        devProcess.settApprove(approveDanger);
+//                        devProcess.setApNo(approveDanger.getApproveNo());
+//                    } else if (pi.getProcessDefinitionName().equals("专项培训计划审核")) {
+//                        TStApprove approve = tStApproveService.selectTStApproveById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("设备维修审批流程")) {
+//                        TApproveMaintenance approve = tApproveMaintenanceService.selectTApproveMaintenanceById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("设备变更申请")) {
+//                        TIntactApprove approve = tIntactApproveService.selectTIntactApproveById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("可靠性管理申请")) {
+//                        TKekaoApprove approve = tKekaoApproveService.selectTKekaoApproveById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("预约开票审批流程")) {
+//                        TApproveReserveInvoice approve = tApproveReserveInvoiceService.selectTApproveReserveInvoiceById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("安全阀离线/切出申请流程")) {
+//                        TApplyOfflinevalve approve = tApplyOfflinevalveService.selectTApplyOfflinevalveById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("组织保护措施状态变更申请流程")) {
+//                        TApplySafetychange approve = tApplySafetychangeService.selectTApplySafetychangeById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    } else if (pi.getProcessDefinitionName().equals("SAI开项申请流程")) {
+//                        TSaiApply approve = tSaiApplyService.selectTSaiApplyById(Long.parseLong(pi.getBusinessKey()));
+//                        devProcess.setApproveObject(approve);
+//                        devProcess.setApNo(approve.getApNo());
+//                    }
+                } 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);
+                } else {
+                    devProcess.setEnd(false);
+                }
+                ;
+                logger.info("devProcess:" + devProcess);
+                list.add(devProcess);
+            }
+        return getDataTable(list , count);
+    }
+
+    /**
+     * 我的待办列表
+     */
+    @GetMapping("/backlogList")
+    public TableDataInfo backlogList(@RequestParam Map<String, Object> params) {
+        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+        List<Task> taskList = processEngine.getTaskService()//获取任务service
+                .createTaskQuery()//创建查询对象
+                .taskCandidateOrAssigned(getUserId().toString())
+//                .taskAssignee(getUserId().toString())
+                .orderByTaskCreateTime().desc()//参与者,组任务查询
+                .listPage(PageUtils.getStart(params), Integer.parseInt((String) params.get("pageSize")));
+        //分页数据
+        Long count = processEngine.getTaskService().createTaskQuery().taskCandidateUser(getUserId().toString()).count();
+        List<DevTask> list = new ArrayList<>();
+        if (taskList.size() > 0) {
+            for (Task task : taskList) {
+                ProcessInstance pi = processEngine.getRuntimeService()/**表示正在执行的流程实例和执行对象*/
+                        .createProcessInstanceQuery()/**创建流程实例查询*/
+                        .processInstanceId(task.getProcessInstanceId())/**使用流程实例ID查询*/
+                        .singleResult();
+                logger.info("待办任务ID:" + task.getId());
+                logger.info("待办任务name:" + task.getName());
+                logger.info("待办任务创建时间:" + task.getCreateTime());
+                logger.info("待办任务办理人:" + task.getAssignee());
+                logger.info("流程实例ID:" + task.getProcessInstanceId());
+                logger.info("执行对象ID:" + task.getExecutionId());
+                logger.info(task.getTenantId());
+                logger.info(task.getCategory());
+                logger.info(task.getFormKey());
+                logger.info("流程实例Name:" + pi.getProcessDefinitionName());
+                DevTask devTask = new DevTask();
+                devTask.setTaskId(task.getId());
+                devTask.setTaskName(task.getName());
+                devTask.setTaskCreateTime(task.getCreateTime());
+                devTask.setProcessId(task.getProcessInstanceId());
+                devTask.setProcessName(pi.getProcessDefinitionName());
+                devTask.setProcessCreateTime(pi.getStartTime());
+                devTask.setBusinessKey(pi.getBusinessKey());
+                if (pi.getProcessDefinitionName().equals("重大隐患审批流程") || pi.getProcessDefinitionName().equals("普通隐患审批流程")) {
+//                    TApproveDanger approveDanger = tApproveDangerService.selectTApproveDangerById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.settApprove(approveDanger);
+//                    devTask.setApNo(approveDanger.getApproveNo());
+                }
+//                else if (pi.getProcessDefinitionName().equals("事件审批流程")) {
+//                    TApproveAccident approveAccident = tApproveAccidentService.selectTApproveAccidentById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.settApproveAccident(approveAccident);
+//                    devTask.setApNo(approveAccident.getApproveNo());
+//                } else if (pi.getProcessDefinitionName().equals("特种设备审核")) {
+//                    TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setSpecApprove(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("年度检查报告申请")) {
+//                    TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setSpecApprove(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("月度检查")) {
+//                    TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setSpecApprove(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核") || pi.getProcessDefinitionName().equals("设备新增/删除审核")) {
+//                    TApproveSpecModify approve = tApproveSpecModifyService.selectTApproveSpecModifyById(Long.parseLong(pi.getBusinessKey()));
+//                    logger.info("设备修改/删除审核" + JSON.toJSONString(approve));
+//                    devTask.setApproveSpecModify(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("专项培训计划审核")) {
+//                    TStApprove approve = tStApproveService.selectTStApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    logger.info("专项培训计划审核" + JSON.toJSONString(approve));
+//                    devTask.setApproveObj(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("设备维修审批流程")) {
+//                    TApproveMaintenance approve = tApproveMaintenanceService.selectTApproveMaintenanceById(Long.parseLong(pi.getBusinessKey()));
+//                    logger.info("设备维修审批流程" + JSON.toJSONString(approve));
+//                    devTask.setApproveObj(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("设备变更申请")) {
+//                    TIntactApprove approve = tIntactApproveService.selectTIntactApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    logger.info("设备变更申请" + JSON.toJSONString(approve));
+//                    devTask.setApproveObj(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("可靠性管理申请")) {
+//                    TKekaoApprove approve = tKekaoApproveService.selectTKekaoApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    logger.info("可靠性管理申请" + JSON.toJSONString(approve));
+//                    devTask.setApproveObj(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("预约开票审批流程")) {
+//                    TApproveReserveInvoice approve = tApproveReserveInvoiceService.selectTApproveReserveInvoiceById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setApproveObject(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("安全阀离线/切出申请流程")) {
+//                    TApplyOfflinevalve approve = tApplyOfflinevalveService.selectTApplyOfflinevalveById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setApproveObject(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("组织保护措施状态变更申请流程")) {
+//                    TApplySafetychange approve = tApplySafetychangeService.selectTApplySafetychangeById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setApproveObject(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                } else if (pi.getProcessDefinitionName().equals("SAI开项申请流程")) {
+//                    TSaiApply approve = tSaiApplyService.selectTSaiApplyById(Long.parseLong(pi.getBusinessKey()));
+//                    devTask.setApproveObject(approve);
+//                    devTask.setApNo(approve.getApNo());
+//                }
+                list.add(devTask);
+            }
+        }
+        return getDataTable(list,count);
+    }
+
+    /**
+     * 已办任务列表
+     */
+    @GetMapping("/doneTaskList")
+    public TableDataInfo doneTaskList(@RequestParam Map<String, Object> params) {
+        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+        List<HistoricTaskInstance> taskList = historyService.createHistoricTaskInstanceQuery()
+                .taskAssignee(getUserId().toString())
+                .finished().orderByHistoricTaskInstanceEndTime().desc()
+                .listPage(PageUtils.getStart(params), Integer.parseInt((String) params.get("pageSize")));
+        //分页数据
+        Long count = historyService.createHistoricTaskInstanceQuery()
+                .taskAssignee(getUserId().toString())
+                .finished().count();
+        logger.info(JSON.toJSONString(taskList));
+        List<DevProcess> list = new ArrayList<>();
+        if (taskList.size() > 0) {
+            for (HistoricTaskInstance h : taskList) {
+                //logger.info("HistoricTaskInstance:" + JSON.toJSONString(h));
+                HistoricProcessInstance pi = processEngine.getHistoryService()
+                        .createHistoricProcessInstanceQuery().processInstanceId(h.getProcessInstanceId()).singleResult();
+                logger.info(JSON.toJSONString(pi));
+                if (pi == null) {
+                    continue;
+                }
+                DevProcess devProcess = new DevProcess();
+                if (pi.getProcessDefinitionName().equals("特种设备审核")) {
+//                    TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setSpecApprove(approve);
+                }
+//                else if (pi.getProcessDefinitionName().equals("年度检查报告申请")) {
+//                    TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setSpecApprove(approve);
+//                } else if (pi.getProcessDefinitionName().equals("月度检查")) {
+//                    TApprove approve = tApproveService.selectTApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setSpecApprove(approve);
+//                } else if (pi.getProcessDefinitionName().equals("设备修改/删除审核") || pi.getProcessDefinitionName().equals("设备新增/删除审核")) {
+//                    TApproveSpecModify approve = tApproveSpecModifyService.selectTApproveSpecModifyById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveSpecModify(approve);
+//                } else if (pi.getProcessDefinitionName().equals("专项培训计划审核")) {
+//                    TStApprove approve = tStApproveService.selectTStApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else if (pi.getProcessDefinitionName().equals("设备维修审批流程")) {
+//                    TApproveMaintenance approve = tApproveMaintenanceService.selectTApproveMaintenanceById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else if (pi.getProcessDefinitionName().equals("设备变更申请")) {
+//                    TIntactApprove approve = tIntactApproveService.selectTIntactApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else if (pi.getProcessDefinitionName().equals("可靠性管理申请")) {
+//                    TKekaoApprove approve = tKekaoApproveService.selectTKekaoApproveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else if (pi.getProcessDefinitionName().equals("预约开票审批流程")) {
+//                    TApproveReserveInvoice approve = tApproveReserveInvoiceService.selectTApproveReserveInvoiceById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approve.getUserId());
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else if (pi.getProcessDefinitionName().equals("安全阀离线/切出申请流程")) {
+//                    TApplyOfflinevalve approve = tApplyOfflinevalveService.selectTApplyOfflinevalveById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(Long.valueOf(approve.getCreaterCode()));
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                }  else if (pi.getProcessDefinitionName().equals("组织保护措施状态变更申请流程")) {
+//                    TApplySafetychange approve = tApplySafetychangeService.selectTApplySafetychangeById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(Long.valueOf(approve.getCreaterCode()));
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else if (pi.getProcessDefinitionName().equals("SAI开项申请流程")) {
+//                    TSaiApply approve = tSaiApplyService.selectTSaiApplyById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(Long.valueOf(approve.getCreateBy()));
+//                    devProcess.setApNo(approve.getApNo());
+//                    devProcess.setApName(user.getNickName());
+//                    devProcess.setApproveObject(approve);
+//                } else {
+//                    TApproveDanger approveDanger = tApproveDangerService.selectTApproveDangerById(Long.parseLong(pi.getBusinessKey()));
+//                    SysUser user = sysUserService.selectUserById(approveDanger.getRecorderId());
+//                    approveDanger.setRecorderName(user.getNickName());
+//                    devProcess.settApprove(approveDanger);
+//                    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);
+                } else {
+                    devProcess.setEnd(false);
+                }
+                list.add(devProcess);
+            }
+        }
+        return getDataTable(list,count);
+    }
+
+//    /**
+//     * 审核处理
+//     */
+//    @Log(title = "隐患审核处理", businessType = BusinessType.UPDATE)
+//    @PutMapping("/handle")
+//    public AjaxResult handle(@RequestBody DevTask devTask) {
+//        logger.info("devTask:" + devTask);
+//        Map<String, Object> param = new HashMap<>();
+//        param.put("submitType", devTask.getSubmitType());
+//        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+//        TaskService taskService = processEngine.getTaskService();
+//        //使用任务服务完成任务(提交任务)
+//        String taskId = devTask.getTaskId();
+//        // 使用任务id,获取任务对象,获取流程实例id
+//        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+//        logger.info("Assignee:" + task.getAssignee());
+//        //利用任务对象,获取流程实例id
+//        String processInstancesId = task.getProcessInstanceId();
+//        System.out.println(processInstancesId);
+//        //认领任务
+//        processEngine.getTaskService()//
+//                .claim(taskId, getUserId().toString());
+////        Authentication.setAuthenticatedUserId("cmc"); // 添加批注时候的审核人
+//        if (devTask.getComment() == null) {
+//            devTask.setComment("");
+//        }
+//        taskService.addComment(taskId, processInstancesId, devTask.getComment());
+//        //业务监听处理
+////        tApproveService.handleApprove(task ,devTask);
+//        taskService.complete(taskId, param);
+//
+//        //执行人上传措施前后照片
+//        if (devTask.getTaskName().equals("执行人") && devTask.getSubmitType().equals("1")) {
+//            TApproveDanger updatepicture = devTask.gettApprove();
+//            updatepicture.setBeforeUrl(devTask.getBeforeUrl());
+//            updatepicture.setBeforeFilename(devTask.getBeforeFilename());
+//            updatepicture.setAfterUrl(devTask.getAfterUrl());
+//            updatepicture.setAfterFilename(devTask.getAfterFilename());
+//            tApproveDangerService.updateTApproveDanger(updatepicture);
+//        }
+//        //流程结束,approveDanger实体类实际完成时间字段更新
+//        if (devTask.getTaskName().equals("验证人") && devTask.getSubmitType().equals("1")) {
+//            TApproveDanger updateEndTime = devTask.gettApprove();
+//            updateEndTime.setEndtime(new Date());
+//            tApproveDangerService.updateTApproveDanger(updateEndTime);
+//        }
+//        return AjaxResult.success();
+//    }
+
+    /**
+     * 流转列表
+     */
+    @GetMapping("/hiTaskList")
+    public TableDataInfo hiTaskList(@RequestParam Map<String, Object> params) {
+        String pid = (String) params.get("processId");
+        logger.info("processId:" + JSON.toJSONString(pid));
+        HistoricTaskInstanceQuery htiq = historyService.createHistoricTaskInstanceQuery();
+        List<HistoricTaskInstance> htiLists = htiq.processInstanceId(pid).finished().orderByHistoricTaskInstanceEndTime().asc().list();
+
+
+        logger.info("历史任务:" + JSON.toJSONString(htiLists));
+        List<DevTask> devTaskList = new ArrayList<>();
+        if (htiLists.size() > 0) {
+            for (HistoricTaskInstance hi : htiLists
+            ) {
+                List<Comment> commentList = taskService.getTaskComments(hi.getId());
+                logger.info("评论列表:" + JSON.toJSONString(commentList));
+                DevTask devTask = new DevTask();
+                devTask.setTaskName(hi.getName());
+                devTask.setTaskCreateTime(hi.getCreateTime());
+                devTask.setTaskEndTime(hi.getEndTime());
+                if (commentList.size() > 0) {
+                    devTask.setComment(commentList.get(0).getFullMessage());
+                }
+                SysUser user = sysUserService.selectUserById(Long.parseLong(hi.getAssignee()));
+                devTask.setUserName(user.getNickName());
+                devTaskList.add(devTask);
+            }
+        }
+        //当前任务
+        try {
+            Task task = taskService.createTaskQuery().processInstanceId(pid).active().singleResult();
+            if (task!= null) {
+                task.getName();
+                task.getCreateTime();
+                DevTask devTask = new DevTask();
+                devTask.setTaskName(task.getName());
+                devTask.setTaskCreateTime(task.getCreateTime());
+                if (task.getAssignee()!= null) {
+                    SysUser user = sysUserService.selectUserById(Long.parseLong(task.getAssignee()));
+                    devTask.setUserName(user.getNickName());
+                }
+                devTaskList.add(devTask);
+            }
+        }catch (Exception e) {
+            logger.error(e.toString());
+        }
+        return getDataTable(devTaskList);
+    }
+
+//    /**
+//     * 查询隐患申请列表
+//     */
+//    @PreAuthorize("@ss.hasPermi('ehs:approvedanger:list')")
+//    @GetMapping("/list")
+//    public TableDataInfo list(TApproveDanger tApproveDanger) {
+//        startPage();
+//        List<TApproveDanger> list = tApproveDangerService.selectTApproveDangerList(tApproveDanger);
+//        return getDataTable(list);
+//    }
+
+//    /**
+//     * 导出隐患申请列表
+//     */
+//    @PreAuthorize("@ss.hasPermi('ehs:approvedanger:export')")
+//    @Log(title = "隐患申请", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(TApproveDanger tApproveDanger) {
+//        List<TApproveDanger> list = tApproveDangerService.selectTApproveDangerList(tApproveDanger);
+//        ExcelUtil<TApproveDanger> util = new ExcelUtil<TApproveDanger>(TApproveDanger.class);
+//        return util.exportExcel(list, "approvedanger");
+//    }
+
+//    /**
+//     * 获取隐患申请详细信息
+//     */
+//    @PreAuthorize("@ss.hasPermi('ehs:approvedanger:query')")
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id) {
+//        return AjaxResult.success(tApproveDangerService.selectTApproveDangerById(id));
+//    }
+
+//    /**
+//     * 新增隐患申请
+//     */
+//    @PreAuthorize("@ss.hasPermi('ehs:approvedanger:add')")
+//    @Log(title = "隐患申请", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody TApproveDanger tApproveDanger) {
+//        return toAjax(tApproveDangerService.insertTApproveDanger(tApproveDanger));
+//    }
+//
+//    /**
+//     * 修改隐患申请
+//     */
+//    @PreAuthorize("@ss.hasPermi('ehs:approvedanger:edit')")
+//    @Log(title = "隐患申请", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody TApproveDanger tApproveDanger) {
+//        return toAjax(tApproveDangerService.updateTApproveDanger(tApproveDanger));
+//    }
+//
+//    /**
+//     * 删除隐患申请
+//     */
+//    @PreAuthorize("@ss.hasPermi('ehs:approvedanger:remove')")
+//    @Log(title = "隐患申请", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids) {
+//        return toAjax(tApproveDangerService.deleteTApproveDangerByIds(ids));
+//    }
+//
+//    @GetMapping("processImg/{processId}")
+//    public void currentProcessInstanceImage(@PathVariable("processId") String processId, HttpServletResponse response) throws IOException {
+//        InputStream inputStream = currentProcessInstanceImage(processId);
+//        OutputStream outputStream = response.getOutputStream();
+//        HttpContextUtils.copyImageStream(inputStream, outputStream);
+//    }
+
+    /**
+     * 获取当前任务流程图
+     *
+     * @param processId
+     * @return
+     */
+    public InputStream currentProcessInstanceImage(String processId) {
+//        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+//        ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processId);
+        HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processId).singleResult();
+        ProcessDefinition processDefinition = repositoryService.getProcessDefinition(hi.getProcessDefinitionId());
+
+        BpmnModel bpmnModel = repositoryService.getBpmnModel(hi.getProcessDefinitionId());
+        // ID 为 流程定义Key
+        Process process = bpmnModel.getProcessById(processDefinition.getKey());
+
+        // 流程节点ID
+        // 获取历史流程实例
+        HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processId).singleResult();
+        // 获取流程中已经执行的节点,按照执行先后顺序排序
+        List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processId)
+                .orderByHistoricActivityInstanceId().asc().list();
+        // 高亮已经执行流程节点ID集合
+        List<String> highLightedActivitiIds = new ArrayList<>();
+        for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
+            highLightedActivitiIds.add(historicActivityInstance.getActivityId());
+        }
+        //获取已完成的节点
+        List<HistoricActivityInstance> finished = historyService.createHistoricActivityInstanceQuery()
+                .processInstanceId(processId)
+                .finished().list();
+        //高亮线路id集合
+//        List<String> highLightedFlowIds = getHighLightedFlows(bpmnModel, historicActivityInstances);
+        List<String> highLightedFlowIds = getHighLine(bpmnModel, historicActivityInstances,finished);
+        DefaultProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();
+
+//     生成流程图
+//        InputStream inputStream = generator.generateJpgDiagram(bpmnModel);
+//        InputStream inputStream = generator.generatePngDiagram(bpmnModel);
+//        InputStream inputStream = generator.generateDiagram(bpmnModel, "jpg", highLightedActivities);
+
+// 生成图片
+        InputStream inputStream = generator.generateDiagram(bpmnModel, "jpg", highLightedActivitiIds, highLightedFlowIds, "宋体", "宋体", "宋体", null, 2.0);
+        return inputStream;
+    }
+
+    /**
+     * 获取流程定义图片
+     *
+     * @param processDefinitionId
+     * @return
+     */
+    public InputStream getDefinitionImage(String processDefinitionId) {
+
+        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();
+        InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getDiagramResourceName());
+        return inputStream;
+    }
+
+
+
+
+    /**
+     * 获取已经流转的线
+     *
+     * @param bpmnModel
+     * @param historicActivityInstances
+     * @return
+     */
+    private static List<String> getHighLightedFlows(BpmnModel bpmnModel, List<HistoricActivityInstance> historicActivityInstances) {
+        // 高亮流程已发生流转的线id集合
+        List<String> highLightedFlowIds = new ArrayList<>();
+        // 全部活动节点
+        List<FlowNode> historicActivityNodes = new ArrayList<>();
+        // 已完成的历史活动节点
+        List<HistoricActivityInstance> finishedActivityInstances = new ArrayList<>();
+
+        for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
+            FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(historicActivityInstance.getActivityId(), true);
+            historicActivityNodes.add(flowNode);
+            if (historicActivityInstance.getEndTime() != null) {
+                finishedActivityInstances.add(historicActivityInstance);
+            }
+        }
+
+        FlowNode currentFlowNode = null;
+        FlowNode targetFlowNode = null;
+        // 遍历已完成的活动实例,从每个实例的outgoingFlows中找到已执行的
+        for (HistoricActivityInstance currentActivityInstance : finishedActivityInstances) {
+            // 获得当前活动对应的节点信息及outgoingFlows信息
+            currentFlowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currentActivityInstance.getActivityId(), true);
+            List<SequenceFlow> sequenceFlows = currentFlowNode.getOutgoingFlows();
+
+            /**
+             * 遍历outgoingFlows并找到已已流转的 满足如下条件认为已已流转: 1.当前节点是并行网关或兼容网关,则通过outgoingFlows能够在历史活动中找到的全部节点均为已流转 2.当前节点是以上两种类型之外的,通过outgoingFlows查找到的时间最早的流转节点视为有效流转
+             */
+            if ("parallelGateway".equals(currentActivityInstance.getActivityType()) || "inclusiveGateway".equals(currentActivityInstance.getActivityType())) {
+                // 遍历历史活动节点,找到匹配流程目标节点的
+                for (SequenceFlow sequenceFlow : sequenceFlows) {
+                    targetFlowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(sequenceFlow.getTargetRef(), true);
+                    if (historicActivityNodes.contains(targetFlowNode)) {
+                        highLightedFlowIds.add(targetFlowNode.getId());
+                    }
+                }
+            } else {
+                List<Map<String, Object>> tempMapList = new ArrayList<>();
+                for (SequenceFlow sequenceFlow : sequenceFlows) {
+                    for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
+                        if (historicActivityInstance.getActivityId().equals(sequenceFlow.getTargetRef())) {
+                            Map<String, Object> map = new HashMap<>();
+                            map.put("highLightedFlowId", sequenceFlow.getId());
+                            map.put("highLightedFlowStartTime", historicActivityInstance.getStartTime().getTime());
+                            tempMapList.add(map);
+                        }
+                    }
+                }
+
+                if (!CollectionUtils.isEmpty(tempMapList)) {
+                    // 遍历匹配的集合,取得开始时间最早的一个
+                    long earliestStamp = 0L;
+                    String highLightedFlowId = null;
+                    for (Map<String, Object> map : tempMapList) {
+                        long highLightedFlowStartTime = Long.valueOf(map.get("highLightedFlowStartTime").toString());
+                        if (earliestStamp == 0 || earliestStamp >= highLightedFlowStartTime) {
+                            highLightedFlowId = map.get("highLightedFlowId").toString();
+                            earliestStamp = highLightedFlowStartTime;
+                        }
+                    }
+
+                    highLightedFlowIds.add(highLightedFlowId);
+                }
+
+            }
+
+        }
+        return highLightedFlowIds;
+    }
+
+    private List<String> getHighLine(BpmnModel bpmnModel, List<HistoricActivityInstance> historicActivityInstances, List<HistoricActivityInstance> finishedActivityInstances) {
+
+        // 高亮流程已发生流转的线id集合
+        List<String> highLightedFlowIds = new ArrayList<>();
+        // 全部活动节点
+        List<FlowNode> historicActivityNodes = new ArrayList<>();
+
+        //1、拿到所有的活动节点定义
+        for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
+            FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(historicActivityInstance.getActivityId(), true);
+            historicActivityNodes.add(flowNode);
+        }
+
+        FlowNode currentFlowNode;
+        FlowNode targetFlowNode;
+        // 2、遍历已完成的活动实例,从每个实例的outgoingFlows中找到已执行的
+        for (HistoricActivityInstance currentActivityInstance : finishedActivityInstances) {
+            // 获得当前活动对应的节点信息及outgoingFlows信息
+            currentFlowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currentActivityInstance.getActivityId(), true);
+            List<SequenceFlow> outgoingFlows = currentFlowNode.getOutgoingFlows();
+
+            /*
+             * 遍历outgoingFlows并找到已流转的 满足如下条件认为已已流转:
+             * 1.当前节点是并行网关或包含网关,则通过outgoingFlows能够在历史活动中找到的全部节点均为已流转
+             * 2.当前节点是以上两种类型之外的,通过outgoingFlows查找到的开始时间最早的流转节点视为有效流转
+             */
+            String activityType = currentActivityInstance.getActivityType();
+
+            if ("parallelGateway".equals(currentActivityInstance.getActivityType()) || "inclusiveGateway".equals(currentActivityInstance.getActivityType())) {
+                // 遍历历史活动节点,找到匹配流程目标节点的
+                for (SequenceFlow sequenceFlow : outgoingFlows) {
+                    targetFlowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(sequenceFlow.getTargetRef(), true);
+                    if (historicActivityNodes.contains(targetFlowNode)) {
+                        highLightedFlowIds.add(targetFlowNode.getId());
+                    }
+                }
+                continue;
+            }
+
+            //1、拿到所有的TargetRef
+            List<String> targetRefList = outgoingFlows.stream()
+                    .map(SequenceFlow::getTargetRef)
+                    .collect(Collectors.toList());
+
+            //2、拿到ActivityId == TargetRef的所有 HistoricActivityInstance
+            List<HistoricActivityInstance> historicActivityInstanceList = historicActivityInstances.stream()
+                    .filter((HistoricActivityInstance instance) -> targetRefList.contains(instance.getActivityId()))
+                    .collect(Collectors.toList());
+
+            //3、开始时间>=当前节点结束时间的第一个 HistoricActivityInstance
+            List<HistoricActivityInstance> historicActivityInstanceResultList = historicActivityInstanceList.stream()
+                    .filter(historicActivityInstance -> historicActivityInstance.getStartTime()
+                            .compareTo(currentActivityInstance.getEndTime()) >= 0)
+                    .sorted(Comparator.comparing(HistoricActivityInstance::getStartTime))
+                    .collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(historicActivityInstanceResultList)) {
+                continue;
+            }
+
+            HistoricActivityInstance historicActivityInstanceResult = historicActivityInstanceResultList.get(0);
+
+            //4、HistoricActivityInstance拿到flowid
+            List<SequenceFlow> sequenceFlowList = outgoingFlows.stream()
+                    .filter(sequenceFlow -> sequenceFlow.getTargetRef().equals(historicActivityInstanceResult.getActivityId()))
+                    .collect(Collectors.toList());
+            highLightedFlowIds.addAll(sequenceFlowList.stream().map(e->e.getId()).collect(Collectors.toList()));
+        }
+        return highLightedFlowIds;
+    }
+}

+ 18 - 0
ruoyi-common/pom.xml

@@ -17,6 +17,24 @@
 
     <dependencies>
 
+        <!-- 工作流 -->
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-engine</artifactId>
+            <version>6.0.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.mybatis</groupId>
+                    <artifactId>mybatis</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-spring</artifactId>
+            <version>6.0.0</version>
+        </dependency>
+
         <!-- Spring框架基本的核心工具 -->
         <dependency>
             <groupId>org.springframework</groupId>

+ 154 - 0
ruoyi-common/src/main/java/com/ruoyi/common/config/ActivitiConfig.java

@@ -0,0 +1,154 @@
+package com.ruoyi.common.config;
+
+
+import org.activiti.engine.*;
+import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
+import org.activiti.engine.repository.DeploymentBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.ResourcePatternResolver;
+
+import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+import java.io.IOException;
+
+/**
+ * 使用Java类完成配置文件
+ */
+@Configuration
+public class ActivitiConfig {
+
+    @Autowired
+    private DataSource dataSource;
+
+    @Autowired
+    private ResourcePatternResolver resourceLoader;
+
+    /**
+     * 初始化配置,将创建28张表
+     *
+     * @return
+     */
+    @Bean
+    public StandaloneProcessEngineConfiguration processEngineConfiguration() {
+
+        /*ProcessEngineConfiguration pec = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
+        pec.setJdbcDriver("oracle.jdbc.driver.OracleDriver");
+        pec.setJdbcUrl("jdbc:oracle:thin:@47.114.101.16:1521/xe");
+        pec.setJdbcUsername("newcpms");
+        pec.setJdbcPassword("ssy123456");
+
+        pec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
+
+        //pec.setDatabaseSchema("FLOWABLE");
+        pec.setDatabaseTablePrefix("flow");
+        ProcessEngine processEngine = pec.buildProcessEngine();*/
+
+        StandaloneProcessEngineConfiguration configuration = new StandaloneProcessEngineConfiguration();
+        configuration.setDataSource(dataSource);
+        configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
+        configuration.setDbIdentityUsed(false);
+        configuration.setAsyncExecutorActivate(true);
+        configuration.setActivityFontName("宋体");
+        configuration.setAnnotationFontName("宋体");
+        configuration.setLabelFontName("宋体");
+        return configuration;
+    }
+
+    @Bean
+    public ProcessEngine processEngine() {
+        return processEngineConfiguration().buildProcessEngine();
+    }
+
+    @Bean
+    public RepositoryService repositoryService() {
+        return processEngine().getRepositoryService();
+    }
+
+    @Bean
+    public RuntimeService runtimeService() {
+        return processEngine().getRuntimeService();
+    }
+
+    @Bean
+    public TaskService taskService() {
+        return processEngine().getTaskService();
+    }
+
+    @Bean
+    public HistoryService historyService() {
+        return processEngine().getHistoryService();
+    }
+
+    /**
+     * 部署流程
+     *
+     * @throws IOException
+     */
+    @PostConstruct
+    public void initProcess() throws IOException {
+        DeploymentBuilder deploymentBuilder = repositoryService().createDeployment();
+        Resource common = resourceLoader.getResource("classpath:/processes/common.bpmn"); //加载流程图资源文件
+        deploymentBuilder.enableDuplicateFiltering().addInputStream(common.getFilename(), common.getInputStream()).name("普通隐患审批流程").deploy(); //按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder1 = repositoryService().createDeployment();
+//        Resource major= resourceLoader.getResource("classpath:/processes/major.bpmn");
+//        deploymentBuilder1.enableDuplicateFiltering().addInputStream(major.getFilename(), major.getInputStream()).name("重大隐患审批流程").deploy();
+//
+//        DeploymentBuilder deploymentBuilder2 = repositoryService().createDeployment();
+//        Resource accident = resourceLoader.getResource("classpath:/processes/accident.bpmn"); //加载流程图资源文件
+//        deploymentBuilder2.enableDuplicateFiltering().addInputStream(accident.getFilename(), accident.getInputStream()).name("事件审批流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder3 = repositoryService().createDeployment();
+//        Resource spec = resourceLoader.getResource("classpath:/processes/MyProcess.bpmn"); //加载流程图资源文件
+//        deploymentBuilder3.enableDuplicateFiltering().addInputStream(spec.getFilename(), spec.getInputStream()).name("特种设备审批流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder4 = repositoryService().createDeployment();
+//        Resource spec2 = resourceLoader.getResource("classpath:/processes/his/semsAddDelProcess.bpmn"); //加载流程图资源文件
+//        deploymentBuilder4.enableDuplicateFiltering().addInputStream(spec2.getFilename(), spec2.getInputStream()).name("特种设备新增修改流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder5 = repositoryService().createDeployment();
+//        Resource spec3 = resourceLoader.getResource("classpath:/processes/sems/yearProcess.bpmn"); //加载流程图资源文件
+//        deploymentBuilder5.enableDuplicateFiltering().addInputStream(spec3.getFilename(), spec3.getInputStream()).name("特种设备年检报告流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder6 = repositoryService().createDeployment();
+//        Resource spec4 = resourceLoader.getResource("classpath:/processes/sems/monthProcess.bpmn"); //加载流程图资源文件
+//        deploymentBuilder6.enableDuplicateFiltering().addInputStream(spec4.getFilename(), spec4.getInputStream()).name("特种设备月度检验流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder7 = repositoryService().createDeployment();
+//        Resource spec7 = resourceLoader.getResource("classpath:/processes/specTraining/specTrainingPlanProcess.bpmn"); //加载流程图资源文件
+//        deploymentBuilder7.enableDuplicateFiltering().addInputStream(spec7.getFilename(), spec7.getInputStream()).name("专项培训计划审核").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder8 = repositoryService().createDeployment();
+//        Resource spec8 = resourceLoader.getResource("classpath:/processes/maintenance.bpmn"); //加载流程图资源文件
+//        deploymentBuilder8.enableDuplicateFiltering().addInputStream(spec8.getFilename(), spec8.getInputStream()).name("设备维修审核").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder9 = repositoryService().createDeployment();
+//        Resource spec9 = resourceLoader.getResource("classpath:/processes/intact/intactChangeApplicationProcess.bpmn"); //加载流程图资源文件
+//        deploymentBuilder9.enableDuplicateFiltering().addInputStream(spec9.getFilename(), spec9.getInputStream()).name("设备变更申请流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder10 = repositoryService().createDeployment();
+//        Resource spec10 = resourceLoader.getResource("classpath:/processes/kekao/reliability.bpmn"); //加载流程图资源文件
+//        deploymentBuilder10.enableDuplicateFiltering().addInputStream(spec10.getFilename(), spec10.getInputStream()).name("可靠性管理申请流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder11 = repositoryService().createDeployment();
+//        Resource spec11 = resourceLoader.getResource("classpath:/processes/reserveInvoice.bpmn"); //加载流程图资源文件
+//        deploymentBuilder11.enableDuplicateFiltering().addInputStream(spec11.getFilename(), spec11.getInputStream()).name("预约开票审批流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder12 = repositoryService().createDeployment();
+//        Resource spec12 = resourceLoader.getResource("classpath:/processes/apply/offlinevalve.bpmn"); //加载流程图资源文件
+//        deploymentBuilder12.enableDuplicateFiltering().addInputStream(spec12.getFilename(), spec12.getInputStream()).name("安全阀离线/切出申请流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder13 = repositoryService().createDeployment();
+//        Resource spec13 = resourceLoader.getResource("classpath:/processes/apply/safetychange.bpmn"); //加载流程图资源文件
+//        deploymentBuilder13.enableDuplicateFiltering().addInputStream(spec13.getFilename(), spec13.getInputStream()).name("组织保护措施状态变更申请流程").deploy();//按流程id部署
+//
+//        DeploymentBuilder deploymentBuilder14 = repositoryService().createDeployment();
+//        Resource spec14 = resourceLoader.getResource("classpath:/processes/sai/saiApply.bpmn"); //加载流程图资源文件
+//        deploymentBuilder14.enableDuplicateFiltering().addInputStream(spec14.getFilename(), spec14.getInputStream()).name("SAI开项申请流程").deploy();//按流程id部署
+    }
+}
+
+

+ 13 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@@ -90,6 +90,19 @@ public class BaseController
         return rspData;
     }
 
+    /**
+     * 响应请求分页数据
+     */
+    protected TableDataInfo getDataTable(List<?> list , long count)
+    {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(count);
+        return rspData;
+    }
+
     /**
      * 返回成功
      */

+ 6 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java

@@ -5,6 +5,8 @@ import com.ruoyi.common.core.page.PageDomain;
 import com.ruoyi.common.core.page.TableSupport;
 import com.ruoyi.common.utils.sql.SqlUtil;
 
+import java.util.Map;
+
 /**
  * 分页工具类
  * 
@@ -12,6 +14,10 @@ import com.ruoyi.common.utils.sql.SqlUtil;
  */
 public class PageUtils extends PageHelper
 {
+    public static int getStart(Map<String, Object> params) {
+        return (Integer.parseInt((String) params.get("pageNum")) - 1) * Integer.parseInt((String) params.get("pageSize"));
+    }
+
     /**
      * 设置请求分页数据
      */

+ 110 - 0
ruoyi-common/src/main/resources/processes/common.bpmn

@@ -0,0 +1,110 @@
+<?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="commonProcess" name="普通隐患审批流程" isExecutable="true">
+    <startEvent id="startevent" name="开始"></startEvent>
+    <userTask id="executor" name="执行人" activiti:assignee="#{executor}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${executorTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <userTask id="verification" name="验证人" activiti:assignee="#{verification}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${verificationTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <endEvent id="endevent" name="结束">
+      <extensionElements>
+        <activiti:executionListener event="end" delegateExpression="${endSucessListener}"></activiti:executionListener>
+      </extensionElements>
+    </endEvent>
+    <sequenceFlow id="flow3" sourceRef="executor" targetRef="verification">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow4" sourceRef="verification" targetRef="endevent">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow5" name="未达标" sourceRef="verification" targetRef="executor">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType == 2}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow7" name="无效" sourceRef="verification" targetRef="recorder">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType == 0}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow2" sourceRef="recorder" targetRef="executor">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow1" sourceRef="startevent" targetRef="executor"></sequenceFlow>
+    <sequenceFlow id="flow6" name="无法执行/逾期" sourceRef="executor" targetRef="recorder">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${submitType == 0}]]></conditionExpression>
+    </sequenceFlow>
+    <userTask id="recorder" name="记录人" activiti:assignee="#{recorder}">
+      <extensionElements>
+        <activiti:taskListener event="create" delegateExpression="${recorderTaskCreateListener}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_commonProcess">
+    <bpmndi:BPMNPlane bpmnElement="commonProcess" id="BPMNPlane_commonProcess">
+      <bpmndi:BPMNShape bpmnElement="startevent" id="BPMNShape_startevent">
+        <omgdc:Bounds height="41.0" width="41.0" x="140.0" y="320.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="executor" id="BPMNShape_executor">
+        <omgdc:Bounds height="61.0" width="141.0" x="680.0" y="310.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="verification" id="BPMNShape_verification">
+        <omgdc:Bounds height="61.0" width="141.0" x="1000.0" y="310.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent" id="BPMNShape_endevent">
+        <omgdc:Bounds height="41.0" width="41.0" x="1310.0" y="320.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="recorder" id="BPMNShape_recorder">
+        <omgdc:Bounds height="61.0" width="141.0" x="261.0" y="445.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="821.0" y="340.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1000.0" y="340.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="1141.0" y="340.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1310.0" y="340.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="1070.0" y="310.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1070.0" y="256.0"></omgdi:waypoint>
+        <omgdi:waypoint x="750.0" y="256.0"></omgdi:waypoint>
+        <omgdi:waypoint x="750.0" y="310.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="18.0" width="48.0" x="880.0" y="231.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+        <omgdi:waypoint x="1070.0" y="371.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1070.0" y="475.0"></omgdi:waypoint>
+        <omgdi:waypoint x="760.0" y="475.0"></omgdi:waypoint>
+        <omgdi:waypoint x="450.0" y="475.0"></omgdi:waypoint>
+        <omgdi:waypoint x="402.0" y="475.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="18.0" width="32.0" x="750.0" y="479.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="331.0" y="445.0"></omgdi:waypoint>
+        <omgdi:waypoint x="331.0" y="340.0"></omgdi:waypoint>
+        <omgdi:waypoint x="680.0" y="340.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="181.0" y="340.0"></omgdi:waypoint>
+        <omgdi:waypoint x="680.0" y="340.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="750.0" y="371.0"></omgdi:waypoint>
+        <omgdi:waypoint x="750.0" y="408.0"></omgdi:waypoint>
+        <omgdi:waypoint x="586.0" y="408.0"></omgdi:waypoint>
+        <omgdi:waypoint x="450.0" y="408.0"></omgdi:waypoint>
+        <omgdi:waypoint x="331.0" y="445.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="18.0" width="100.0" x="550.0" y="409.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 101 - 104
ruoyi-system/src/main/java/com/ruoyi/branch/domain/approve/DevProcess.java

@@ -1,93 +1,90 @@
-//package com.ruoyi.branch.domain.approve;
-//
-//import com.fasterxml.jackson.annotation.JsonFormat;
-//import com.ruoyi.project.ehs.domain.TApproveDanger;
-//import com.ruoyi.project.sems.domain.TApprove;
-//import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
-//
-//import java.util.Date;
-//
-///**
-// * 申请管理我的申请显示实体类
-// *
-// * @author ruoyi
-// * @date 2021-02-23
-// */
-//public class DevProcess {
-//
-//    /** 流程ID */
-//    private String processId;
-//
-//    /** 流程名称 */
-//    private String processName;
-//
-//    /** 流程创建时间 */
-//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
-//    private Date processCreateTime;
-//
-//    /** 业务键 */
-//    private String businessKey;
-//
-//    private String apNo;
-//
-//    private String apName;
-//
+package com.ruoyi.branch.domain.approve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * 申请管理我的申请显示实体类
+ *
+ * @author ruoyi
+ * @date 2021-02-23
+ */
+public class DevProcess {
+
+    /** 流程ID */
+    private String processId;
+
+    /** 流程名称 */
+    private String processName;
+
+    /** 流程创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    private Date processCreateTime;
+
+    /** 业务键 */
+    private String businessKey;
+
+    private String apNo;
+
+    private String apName;
+
 //    /** 隐患申请对象 */
 //    private TApproveDanger tApprove;
 //    private TApprove specApprove;
 //    private Object approveObject;
 //    private TApproveSpecModify approveSpecModify;
-//    /** 是否结束 */
-//    private boolean isEnd;
-//
-//    public String getApName() {
-//        return apName;
-//    }
-//
-//    public void setApName(String apName) {
-//        this.apName = apName;
-//    }
-//
-//    public String getApNo() {
-//        return apNo;
-//    }
-//
-//    public void setApNo(String apNo) {
-//        this.apNo = apNo;
-//    }
-//
-//    public String getProcessId() {
-//        return processId;
-//    }
-//
-//    public void setProcessId(String processId) {
-//        this.processId = processId;
-//    }
-//
-//    public String getProcessName() {
-//        return processName;
-//    }
-//
-//    public void setProcessName(String processName) {
-//        this.processName = processName;
-//    }
-//
-//    public Date getProcessCreateTime() {
-//        return processCreateTime;
-//    }
-//
-//    public void setProcessCreateTime(Date processCreateTime) {
-//        this.processCreateTime = processCreateTime;
-//    }
-//
-//    public String getBusinessKey() {
-//        return businessKey;
-//    }
-//
-//    public void setBusinessKey(String businessKey) {
-//        this.businessKey = businessKey;
-//    }
-//
+    /** 是否结束 */
+    private boolean isEnd;
+
+    public String getApName() {
+        return apName;
+    }
+
+    public void setApName(String apName) {
+        this.apName = apName;
+    }
+
+    public String getApNo() {
+        return apNo;
+    }
+
+    public void setApNo(String apNo) {
+        this.apNo = apNo;
+    }
+
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+    public String getProcessName() {
+        return processName;
+    }
+
+    public void setProcessName(String processName) {
+        this.processName = processName;
+    }
+
+    public Date getProcessCreateTime() {
+        return processCreateTime;
+    }
+
+    public void setProcessCreateTime(Date processCreateTime) {
+        this.processCreateTime = processCreateTime;
+    }
+
+    public String getBusinessKey() {
+        return businessKey;
+    }
+
+    public void setBusinessKey(String businessKey) {
+        this.businessKey = businessKey;
+    }
+
 //    public TApproveDanger gettApprove() {
 //        return tApprove;
 //    }
@@ -96,13 +93,13 @@
 //        this.tApprove = tApprove;
 //    }
 //
-//    public boolean isEnd() {
-//        return isEnd;
-//    }
-//
-//    public void setEnd(boolean end) {
-//        isEnd = end;
-//    }
+    public boolean isEnd() {
+        return isEnd;
+    }
+
+    public void setEnd(boolean end) {
+        isEnd = end;
+    }
 //
 //    public TApprove getSpecApprove() {
 //        return specApprove;
@@ -127,16 +124,16 @@
 //    public void setApproveObject(Object approveObject) {
 //        this.approveObject = approveObject;
 //    }
-//
-//    @Override
-//    public String toString() {
-//        return "DevProcess{" +
-//                "processId='" + processId + '\'' +
-//                ", processName='" + processName + '\'' +
-//                ", processCreateTime=" + processCreateTime +
-//                ", businessKey='" + businessKey + '\'' +
+
+    @Override
+    public String toString() {
+        return "DevProcess{" +
+                "processId='" + processId + '\'' +
+                ", processName='" + processName + '\'' +
+                ", processCreateTime=" + processCreateTime +
+                ", businessKey='" + businessKey + '\'' +
 //                ", tApprove=" + tApprove +
-//                ", isEnd=" + isEnd +
-//                '}';
-//    }
-//}
+                ", isEnd=" + isEnd +
+                '}';
+    }
+}

+ 149 - 157
ruoyi-system/src/main/java/com/ruoyi/branch/domain/approve/DevTask.java

@@ -1,75 +1,67 @@
-//package com.ruoyi.branch.domain.approve;
-//
-//import com.fasterxml.jackson.annotation.JsonFormat;
-//import com.ruoyi.project.apply.domain.TApplyOfflinevalve;
-//import com.ruoyi.project.apply.domain.TApplySafetychange;
-//import com.ruoyi.project.ehs.domain.TApproveAccident;
-//import com.ruoyi.project.ehs.domain.TApproveDanger;
-//import com.ruoyi.project.production.domain.TSaiApply;
-//import com.ruoyi.project.sems.domain.TApprove;
-//import com.ruoyi.project.sems.domain.TApproverFile;
-//import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
-//
-//import java.util.Date;
-//import java.util.List;
-//
-///**
-// * 申请管理我的待办显示实体类
-// *
-// * @author ruoyi
-// * @date 2021-02-23
-// */
-//public class DevTask {
-//
-//    /** 待办任务ID */
-//    private String taskId;
-//
-//    /** 待办任务name */
-//    private String taskName;
-//
-//    /** 待办任务创建时间 */
-//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-//    private Date taskCreateTime;
-//
-//    /** 待办任务结束时间 */
-//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-//    private Date taskEndTime;
-//
+package com.ruoyi.branch.domain.approve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 申请管理我的待办显示实体类
+ *
+ * @author ruoyi
+ * @date 2021-02-23
+ */
+public class DevTask {
+
+    /** 待办任务ID */
+    private String taskId;
+
+    /** 待办任务name */
+    private String taskName;
+
+    /** 待办任务创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date taskCreateTime;
+
+    /** 待办任务结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date taskEndTime;
+
 //    /** 隐患申请对象 */
 //    private Object approveObj;
-//
-//    /** 流程ID */
-//    private String processId;
-//
-//    /** 流程名称 */
-//    private String processName;
-//
-//    /** 流程创建时间 */
-//    private Date processCreateTime;
-//
-//    /** 业务键 */
-//    private String businessKey;
-//
+
+    /** 流程ID */
+    private String processId;
+
+    /** 流程名称 */
+    private String processName;
+
+    /** 流程创建时间 */
+    private Date processCreateTime;
+
+    /** 业务键 */
+    private String businessKey;
+
 //    /** 隐患申请对象 */
 //    private TApproveDanger tApprove;
 //
 //    private Object approveObject;
-//
+
 //    /** 申请对象 */
 //    private TApprove specApprove;
 //    private TApproveSpecModify ApproveSpecModify;
 //    private String apNo;
 //    /** 事件申请对象 */
 //    private TApproveAccident tApproveAccident;
-//
+
 //    /** 隐患申请状态 */
 //    private String submitType;
 //
-//    /** 审批评论 */
-//    private String comment;
+    /** 审批评论 */
+    private String comment;
 //
-//    /** 流转办理人姓名 */
-//    private String userName;
+    /** 流转办理人姓名 */
+    private String userName;
 //
 //    /** 执行人措施前url */
 //    private String beforeUrl;
@@ -84,17 +76,17 @@
 //    private String afterFilename;
 //
 //    private List<TApproverFile> govFiles;
-//    private String condition;
+    private String condition;
 //    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
 //    private Date govDate;
-//
+
 //    private TApplyOfflinevalve offlinevalve;
 //
 //    private TApplySafetychange safetychange;
-//
+
 //    /** SAI开项申请对象 */
 //    private TSaiApply SaiApply;
-//
+
 //    public TSaiApply getSaiApply() {
 //        return SaiApply;
 //    }
@@ -142,15 +134,15 @@
 //    public void setGovFiles(List<TApproverFile> govFiles) {
 //        this.govFiles = govFiles;
 //    }
-//
-//    public String getCondition() {
-//        return condition;
-//    }
-//
-//    public void setCondition(String condition) {
-//        this.condition = condition;
-//    }
-//
+
+    public String getCondition() {
+        return condition;
+    }
+
+    public void setCondition(String condition) {
+        this.condition = condition;
+    }
+
 //    public TApprove getSpecApprove() {
 //        return specApprove;
 //    }
@@ -174,71 +166,71 @@
 //    public void setApNo(String apNo) {
 //        this.apNo = apNo;
 //    }
-//
-//    public String getTaskId() {
-//        return taskId;
-//    }
-//
-//    public void setTaskId(String taskId) {
-//        this.taskId = taskId;
-//    }
-//
-//    public String getTaskName() {
-//        return taskName;
-//    }
-//
-//    public void setTaskName(String taskName) {
-//        this.taskName = taskName;
-//    }
-//
-//    public Date getTaskCreateTime() {
-//        return taskCreateTime;
-//    }
-//
-//    public void setTaskCreateTime(Date taskCreateTime) {
-//        this.taskCreateTime = taskCreateTime;
-//    }
-//
-//    public Date getTaskEndTime() {
-//        return taskEndTime;
-//    }
-//
-//    public void setTaskEndTime(Date taskEndTime) {
-//        this.taskEndTime = taskEndTime;
-//    }
-//
-//    public String getProcessId() {
-//        return processId;
-//    }
-//
-//    public void setProcessId(String processId) {
-//        this.processId = processId;
-//    }
-//
-//    public String getProcessName() {
-//        return processName;
-//    }
-//
-//    public void setProcessName(String processName) {
-//        this.processName = processName;
-//    }
-//
-//    public Date getProcessCreateTime() {
-//        return processCreateTime;
-//    }
-//
-//    public void setProcessCreateTime(Date processCreateTime) {
-//        this.processCreateTime = processCreateTime;
-//    }
-//
-//    public String getBusinessKey() {
-//        return businessKey;
-//    }
-//
-//    public void setBusinessKey(String businessKey) {
-//        this.businessKey = businessKey;
-//    }
-//
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getTaskName() {
+        return taskName;
+    }
+
+    public void setTaskName(String taskName) {
+        this.taskName = taskName;
+    }
+
+    public Date getTaskCreateTime() {
+        return taskCreateTime;
+    }
+
+    public void setTaskCreateTime(Date taskCreateTime) {
+        this.taskCreateTime = taskCreateTime;
+    }
+
+    public Date getTaskEndTime() {
+        return taskEndTime;
+    }
+
+    public void setTaskEndTime(Date taskEndTime) {
+        this.taskEndTime = taskEndTime;
+    }
+
+    public String getProcessId() {
+        return processId;
+    }
+
+    public void setProcessId(String processId) {
+        this.processId = processId;
+    }
+
+    public String getProcessName() {
+        return processName;
+    }
+
+    public void setProcessName(String processName) {
+        this.processName = processName;
+    }
+
+    public Date getProcessCreateTime() {
+        return processCreateTime;
+    }
+
+    public void setProcessCreateTime(Date processCreateTime) {
+        this.processCreateTime = processCreateTime;
+    }
+
+    public String getBusinessKey() {
+        return businessKey;
+    }
+
+    public void setBusinessKey(String businessKey) {
+        this.businessKey = businessKey;
+    }
+
 //    public TApproveDanger gettApprove() {
 //        return tApprove;
 //    }
@@ -259,13 +251,13 @@
 //        this.submitType = submitType;
 //    }
 //
-//    public String getComment() { return comment; }
-//
-//    public void setComment(String comment) { this.comment = comment; }
+    public String getComment() { return comment; }
+
+    public void setComment(String comment) { this.comment = comment; }
 //
-//    public String getUserName() { return userName; }
-//
-//    public void setUserName(String userName) { this.userName = userName; }
+    public String getUserName() { return userName; }
+
+    public void setUserName(String userName) { this.userName = userName; }
 //    public void setBeforeUrl(String beforeUrl) { this.beforeUrl = beforeUrl; }
 //
 //    public String getBeforeUrl() { return beforeUrl; }
@@ -286,27 +278,27 @@
 //    public void setApproveObj(Object approveObj) {
 //        this.approveObj = approveObj;
 //    }
-//
-//    @Override
-//    public String toString() {
-//        return "DevTask{" +
-//                "taskId='" + taskId + '\'' +
-//                ", taskName='" + taskName + '\'' +
-//                ", taskCreateTime=" + taskCreateTime +
-//                ", taskEndTime=" + taskEndTime +
-//                ", processId='" + processId + '\'' +
-//                ", processName='" + processName + '\'' +
-//                ", processCreateTime=" + processCreateTime +
-//                ", businessKey='" + businessKey + '\'' +
+
+    @Override
+    public String toString() {
+        return "DevTask{" +
+                "taskId='" + taskId + '\'' +
+                ", taskName='" + taskName + '\'' +
+                ", taskCreateTime=" + taskCreateTime +
+                ", taskEndTime=" + taskEndTime +
+                ", processId='" + processId + '\'' +
+                ", processName='" + processName + '\'' +
+                ", processCreateTime=" + processCreateTime +
+                ", businessKey='" + businessKey + '\'' +
 //                ", tApprove=" + tApprove +
 //                ", tApproveAccident=" + tApproveAccident +
 //                ", submitType='" + submitType + '\'' +
-//                ", comment='" + comment + '\'' +
-//                ", userName='" + userName + '\'' +
+                ", comment='" + comment + '\'' +
+                ", userName='" + userName + '\'' +
 //                ", beforeUrl='" + beforeUrl + '\'' +
 //                ", beforeFilename='" + beforeFilename + '\'' +
 //                ", afterUrl='" + afterUrl + '\'' +
 //                ", afterFilename='" + afterFilename + '\'' +
-//                '}';
-//    }
-//}
+                '}';
+    }
+}

二進制
ruoyi-ui/src/assets/images/bzgf/党务公开-程序1.png


二進制
ruoyi-ui/src/assets/images/bzgf/党务公开-范围与内容1.png


二進制
ruoyi-ui/src/assets/images/bzgf/党务公开-范围与内容2.png


二進制
ruoyi-ui/src/assets/images/bzgf/融入中心工作-一岗双责.png


二進制
ruoyi-ui/src/assets/images/bzgf/融入中心工作-三基工作.png


二進制
ruoyi-ui/src/assets/images/bzgf/融入中心工作-党建引领.png


二進制
ruoyi-ui/src/assets/images/bzgf/融入中心工作-基层班组建设.png


+ 28 - 28
ruoyi-ui/src/views/branch/approve/myapprove/index.vue

@@ -2,23 +2,23 @@
   <div class="app-container">
     <el-table v-loading="loading" :data="approvedangerList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column :label="$t('流程')+' '+ $t('ID')" align="center" prop="processId" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('流程')+' '+ $t('名称')" align="center" prop="processName" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('流程')+' '+ $t('创建时间')" align="center" prop="processCreateTime" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程ID" align="center" prop="processId" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程名称" align="center" prop="processName" :show-overflow-tooltip="true"/>
+      <el-table-column label="流程创建时间" align="center" prop="processCreateTime" :show-overflow-tooltip="true"/>
 <!--      <el-table-column :label="$t('隐患级别')" align="center" prop="tApprove.hiddendangerLevel" :show-overflow-tooltip="true"/>-->
-      <el-table-column :label="$t('申请编号')" align="center" prop="apNo" :show-overflow-tooltip="true"/>
+      <el-table-column label="申请编号" align="center" prop="apNo" :show-overflow-tooltip="true"/>
       <el-table-column
         prop="isEnd"
         header-align="center"
         align="center"
-        :label="$t('是否结束')">
+        label="是否结束">
         <template slot-scope="scope">
           <el-tag
             :type="scope.row.end? 'success' : 'danger'"
-            disable-transitions>{{scope.row.end? $t('是') : $t('否')}}</el-tag>
+            disable-transitions>{{scope.row.end? '是' : '否'}}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
 <!--          <el-button-->
 <!--            size="mini"-->
@@ -29,12 +29,12 @@
             size="mini"
             type="text"
             @click="detailHandle(scope.row)"
-          >{{ $t('查看') }}</el-button>
+          >查看</el-button>
           <el-button
             size="mini"
             type="text"
             @click="processImg(scope.row.processId)"
-          >{{ $t('流程图') }}</el-button>
+          >流程图</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -47,16 +47,16 @@
       @pagination="getList"
     />
     <process-img v-if="processImgVisible" ref="processImg" @refreshDataList="getList"></process-img>
-    <add-or-update v-if="specDealVisible" ref="specDeal" @refreshDataList="getList"></add-or-update>
-    <spec-modify v-if="specModifyDealVisible" ref="specModifyDeal" @refreshDataList="getList"></spec-modify>
-    <spec-training-plan v-if="specTrainingPlanVisible" ref="specTrainingPlan" @refreshDataList="getList"></spec-training-plan>
-    <spec-maintenance v-if="specMaintenanceVisible" ref="specMaintenance" @refreshDataList="getList"></spec-maintenance>
-    <intact-detail v-if="intactDetailVisible" ref="intactDetail" @refreshDataList="getList"></intact-detail>
-    <kekao-detail v-if="kekaoDetailVisible" ref="kekaoDetail" @refreshDataList="getList"></kekao-detail>
-    <invoice-detail v-if="invoiceDetailVisible" ref="invoiceDetail" @refreshDataList="getList"></invoice-detail>
-    <offlinevalve-detail v-if="offlinevalveDetailVisible" ref="offlinevalveDetail" @refreshDataList="getList"></offlinevalve-detail>
-    <safetychange-detail v-if="safetychangeDetailVisible" ref="safetychangeDetail" @refreshDataList="getList"></safetychange-detail>
-    <sai-apply-detail v-if="saiApplyVisible" ref="saiApplyDetail" @refreshDataList="getList"></sai-apply-detail>
+    <!--<add-or-update v-if="specDealVisible" ref="specDeal" @refreshDataList="getList"></add-or-update>-->
+    <!--<spec-modify v-if="specModifyDealVisible" ref="specModifyDeal" @refreshDataList="getList"></spec-modify>-->
+    <!--<spec-training-plan v-if="specTrainingPlanVisible" ref="specTrainingPlan" @refreshDataList="getList"></spec-training-plan>-->
+    <!--<spec-maintenance v-if="specMaintenanceVisible" ref="specMaintenance" @refreshDataList="getList"></spec-maintenance>-->
+    <!--<intact-detail v-if="intactDetailVisible" ref="intactDetail" @refreshDataList="getList"></intact-detail>-->
+    <!--<kekao-detail v-if="kekaoDetailVisible" ref="kekaoDetail" @refreshDataList="getList"></kekao-detail>-->
+    <!--<invoice-detail v-if="invoiceDetailVisible" ref="invoiceDetail" @refreshDataList="getList"></invoice-detail>-->
+    <!--<offlinevalve-detail v-if="offlinevalveDetailVisible" ref="offlinevalveDetail" @refreshDataList="getList"></offlinevalve-detail>-->
+    <!--<safetychange-detail v-if="safetychangeDetailVisible" ref="safetychangeDetail" @refreshDataList="getList"></safetychange-detail>-->
+    <!--<sai-apply-detail v-if="saiApplyVisible" ref="saiApplyDetail" @refreshDataList="getList"></sai-apply-detail>-->
   </div>
 </template>
 
@@ -79,11 +79,11 @@
 
   export default {
     name: "Myapprove",
-    components: {
-      SaiApplyDetail,
-      SafetychangeDetail,
-      OfflinevalveDetail,
-      Treeselect,ProcessImg,AddOrUpdate,SpecModify,SpecTrainingPlan,SpecMaintenance,IntactDetail,KekaoDetail,InvoiceDetail},
+    // components: {
+    //   SaiApplyDetail,
+    //   SafetychangeDetail,
+    //   OfflinevalveDetail,
+    //   Treeselect,ProcessImg,AddOrUpdate,SpecModify,SpecTrainingPlan,SpecMaintenance,IntactDetail,KekaoDetail,InvoiceDetail},
     data() {
       return {
         // 遮罩层
@@ -162,11 +162,11 @@
       /** 查询隐患申请列表 */
       getList() {
         this.loading = true;
-        getMyApprovelist(this.queryParams).then(response => {
-          this.approvedangerList = response.rows;
-          this.total = response.total;
+        // getMyApprovelist(this.queryParams).then(response => {
+        //   this.approvedangerList = response.rows;
+        //   this.total = response.total;
           this.loading = false;
-        });
+        // });
       },
       //操作审批流程
       detailHandle (row) {

+ 12 - 0
ruoyi-ui/src/views/branch/bzgf/dwgk/cx/index.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>程序</span>
+        </div>
+        <img src="../../../../../assets/images/bzgf/党务公开-程序1.png" style="max-width: 60%;height: auto; width: auto;"/>
+      </el-card>
+    </div>
+  </div>
+</template>

+ 47 - 0
ruoyi-ui/src/views/branch/bzgf/dwgk/fwynr/index.vue

@@ -0,0 +1,47 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-card class="box-card" style="margin-bottom: 20px;">
+        <div slot="header" class="clearfix">
+          <span>标准规范</span>
+        </div>
+        <span class="paragraph">
+          党的组织将其实施党的领导活动、加强党的建设工作的有关事务,按规定在党内或者向党外公开。
+        </span>
+      </el-card>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>范围与内容</span>
+        </div>
+        <img src="../../../../../assets/images/bzgf/党务公开-范围与内容1.png" style="max-width: 60%;height: auto; width: auto;"/><br/>
+        <img src="../../../../../assets/images/bzgf/党务公开-范围与内容2.png" style="max-width: 60%;height: auto; width: auto;"/>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<style>
+  .paragraph{
+    font-size: 14px;
+    line-height: 28px;
+  }
+  .text {
+    font-size: 14px;
+  }
+
+  .item {
+    margin-bottom: 18px;
+  }
+
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+
+  .box-card {
+  }
+</style>

+ 48 - 0
ruoyi-ui/src/views/branch/bzgf/rrzxgz/djyl/index.vue

@@ -0,0 +1,48 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-card class="box-card" style="margin-bottom: 20px;">
+        <div slot="header" class="clearfix">
+          <span>标准规范</span>
+        </div>
+        <span class="paragraph">
+          (1)坚持党建带群建,充分发挥群团组织桥梁纽带作用。<br/>
+          (2)推动群团组织团结动员职工群众围绕企业改革发展和生产经营建功立业。<br/>
+          (3)多为职工群众办好事、解难事,维护和发展职工群众利益。
+        </span>
+      </el-card>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>党建引领</span>
+        </div>
+        <img src="../../../../../assets/images/bzgf/融入中心工作-党建引领.png" style="max-width: 60%;height: auto; width: auto;"/>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<style>
+  .paragraph{
+    font-size: 14px;
+    line-height: 28px;
+  }
+  .text {
+    font-size: 14px;
+  }
+
+  .item {
+    margin-bottom: 18px;
+  }
+
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+
+  .box-card {
+  }
+</style>

+ 47 - 0
ruoyi-ui/src/views/branch/bzgf/rrzxgz/jcbzjs/index.vue

@@ -0,0 +1,47 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-card class="box-card" style="margin-bottom: 20px;">
+        <div slot="header" class="clearfix">
+          <span>标准规范</span>
+        </div>
+        <span class="paragraph">
+          (1)到 2020年,全系统党员班组覆盖率整体达 80%以上。<br/>
+          (2)到 2023年,全系统党员班组覆盖率整体达 95%以上。
+        </span>
+      </el-card>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>基层班组建设</span>
+        </div>
+        <img src="../../../../../assets/images/bzgf/融入中心工作-基层班组建设.png" style="max-width: 60%;height: auto; width: auto;"/>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<style>
+  .paragraph{
+    font-size: 14px;
+    line-height: 28px;
+  }
+  .text {
+    font-size: 14px;
+  }
+
+  .item {
+    margin-bottom: 18px;
+  }
+
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+
+  .box-card {
+  }
+</style>

+ 48 - 0
ruoyi-ui/src/views/branch/bzgf/rrzxgz/sjgz/index.vue

@@ -0,0 +1,48 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-card class="box-card" style="margin-bottom: 20px;">
+        <div slot="header" class="clearfix">
+          <span>标准规范</span>
+        </div>
+        <span class="paragraph">
+          (1)在基层建设中发挥引领作用。<br/>
+          (2)在基础工作中发挥促进作用。<br/>
+          (3)在基本功训练中发挥带动作用。
+        </span>
+      </el-card>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>三基工作</span>
+        </div>
+        <img src="../../../../../assets/images/bzgf/融入中心工作-三基工作.png" style="max-width: 60%;height: auto; width: auto;"/>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<style>
+  .paragraph{
+    font-size: 14px;
+    line-height: 28px;
+  }
+  .text {
+    font-size: 14px;
+  }
+
+  .item {
+    margin-bottom: 18px;
+  }
+
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+
+  .box-card {
+  }
+</style>

+ 47 - 0
ruoyi-ui/src/views/branch/bzgf/rrzxgz/ygsz/index.vue

@@ -0,0 +1,47 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-card class="box-card" style="margin-bottom: 20px;">
+        <div slot="header" class="clearfix">
+          <span>标准规范</span>
+        </div>
+        <span class="paragraph">
+          (1)党支部应当坚持融入中心抓党建、抓好党建促发展。<br/>
+          (2)开展创先争优活动,引导党员做好本职工作,干在实处、走在前列,在联系服务群众、完成重大任务中勇于担当作为。
+        </span>
+      </el-card>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>一岗双责</span>
+        </div>
+        <img src="../../../../../assets/images/bzgf/融入中心工作-一岗双责.png" style="max-width: 60%;height: auto; width: auto;"/>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<style>
+  .paragraph{
+    font-size: 14px;
+    line-height: 28px;
+  }
+  .text {
+    font-size: 14px;
+  }
+
+  .item {
+    margin-bottom: 18px;
+  }
+
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+
+  .box-card {
+  }
+</style>