├── .gitignore ├── README.md ├── pom.xml ├── sql └── workflow_alone_all.sql ├── workflow-admin ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── workflow │ │ ├── WorkflowApplication.java │ │ ├── WorkflowServletInitializer.java │ │ └── web │ │ ├── controller │ │ ├── common │ │ │ ├── CaptchaController.java │ │ │ └── CommonController.java │ │ ├── monitor │ │ │ ├── CacheController.java │ │ │ ├── ServerController.java │ │ │ ├── SysLogininforController.java │ │ │ ├── SysOperlogController.java │ │ │ └── SysUserOnlineController.java │ │ ├── system │ │ │ ├── SysConfigController.java │ │ │ ├── SysDeptController.java │ │ │ ├── SysDictDataController.java │ │ │ ├── SysDictTypeController.java │ │ │ ├── SysIndexController.java │ │ │ ├── SysLoginController.java │ │ │ ├── SysMenuController.java │ │ │ ├── SysNoticeController.java │ │ │ ├── SysPostController.java │ │ │ ├── SysProfileController.java │ │ │ ├── SysRegisterController.java │ │ │ ├── SysRoleController.java │ │ │ └── SysUserController.java │ │ └── tool │ │ │ ├── SwaggerController.java │ │ │ └── TestController.java │ │ └── core │ │ └── config │ │ ├── P6spySqlFormatConfig.java │ │ └── SwaggerConfig.java │ └── resources │ ├── META-INF │ └── spring-devtools.properties │ ├── application-druid.yml │ ├── application.yml │ ├── banner.txt │ ├── i18n │ └── messages.properties │ ├── log4j2-spring.xml │ ├── mybatis │ └── mybatis-config.xml │ └── spy.properties ├── workflow-center-api ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── workflow │ └── process │ └── center │ ├── api │ ├── TaskService.java │ └── WorkBenchService.java │ └── domain │ └── dto │ ├── AssigneeDTO.java │ ├── CandidateGroupDTO.java │ ├── FlowableNodeDTO.java │ ├── ProcessInstanceDTO.java │ ├── ProcessInstanceQueryDTO.java │ ├── StartProcessServiceDTO.java │ ├── TaskDTO.java │ ├── TaskQueryDTO.java │ └── task │ ├── AddSignTaskDTO.java │ ├── BackTaskDTO.java │ ├── BaseTaskDTO.java │ ├── ClaimTaskDTO.java │ ├── CompleteTaskDTO.java │ ├── DelegateTaskDTO.java │ ├── EndTaskDTO.java │ ├── RevokeTaskDTO.java │ ├── RollbackTaskDTO.java │ ├── SynergyTaskDTO.java │ ├── TurnTaskDTO.java │ └── UpdateCandidateTaskDTO.java ├── workflow-center ├── .gitignore ├── README.md ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── workflow │ │ └── process │ │ └── center │ │ ├── annotation │ │ ├── CacheDb.java │ │ └── DistributedLock.java │ │ ├── aspect │ │ ├── CacheDbAspect.java │ │ └── DistributedLockAspect.java │ │ ├── common │ │ ├── contant │ │ │ ├── CacheConstants.java │ │ │ ├── CommonContant.java │ │ │ ├── Constants.java │ │ │ └── ServiceNameConstants.java │ │ └── enums │ │ │ ├── GroupTypeEnum.java │ │ │ ├── ModelStatusEnum.java │ │ │ ├── NodeStatusEnum.java │ │ │ ├── NodeTypeEnum.java │ │ │ ├── ProcessStatusEnum.java │ │ │ ├── StartVariableEnum.java │ │ │ ├── TaskEmergencyDegreeEnum.java │ │ │ ├── TaskPriorityEnum.java │ │ │ └── entity │ │ │ ├── ButtonTypeEnum.java │ │ │ ├── CommentTypeEnum.java │ │ │ └── CommonTypeEnum.java │ │ ├── config │ │ ├── LocalDateTimeConfiguration.java │ │ ├── component │ │ │ ├── LockUtils.java │ │ │ └── RedisService.java │ │ ├── file │ │ │ └── minio │ │ │ │ └── MinioConfig.java │ │ ├── flowable │ │ │ ├── FlowableConfig.java │ │ │ ├── behavior │ │ │ │ ├── CustomActivityBehaviorFactory.java │ │ │ │ ├── mail │ │ │ │ │ └── CustomMailActivityBehavior.java │ │ │ │ └── usertask │ │ │ │ │ ├── CustomParallelMultiInstanceBehavior.java │ │ │ │ │ ├── CustomSequentialMultiInstanceBehavior.java │ │ │ │ │ └── CustomUserTaskActivityBehavior.java │ │ │ ├── cache │ │ │ │ └── CustomDeploymentCache.java │ │ │ ├── canvas │ │ │ │ ├── MyDefaultProcessDiagramCanvas.java │ │ │ │ ├── MyProcessDiagramCanvas.java │ │ │ │ └── MyProcessDiagramGenerator.java │ │ │ ├── converter │ │ │ │ ├── CustomBpmnJsonConverter.java │ │ │ │ ├── ExtansionProperties.java │ │ │ │ ├── MyCallActivityJsonConverter.java │ │ │ │ ├── MySubProcessJsonConverter.java │ │ │ │ └── MyUserTaskJsonConverter.java │ │ │ ├── expression │ │ │ │ ├── condition │ │ │ │ │ └── ConditionParser.java │ │ │ │ └── idm │ │ │ │ │ └── FlowableIdmService.java │ │ │ └── listener │ │ │ │ ├── event │ │ │ │ ├── CreateTaskListener.java │ │ │ │ ├── FlowableGlobListenerConfig.java │ │ │ │ ├── ProcistCompletedListener.java │ │ │ │ └── RollbackEventListener.java │ │ │ │ └── task │ │ │ │ ├── idm │ │ │ │ ├── IdmAssignGroupByTaskListener.java │ │ │ │ ├── IdmCommonTaskListener.java │ │ │ │ └── IdmCommonTaskListenerService.java │ │ │ │ └── interaction │ │ │ │ ├── TaskBusinessDubboCallListener.java │ │ │ │ ├── TaskBusinessHttpCallListener.java │ │ │ │ └── TaskBusinessRabbitMqCallListener.java │ │ ├── httpclinet │ │ │ └── OkHttpConfig.java │ │ ├── mybatis │ │ │ ├── AutoFillEntityConfig.java │ │ │ ├── MybatisPlusConfig.java │ │ │ └── ProcessTenantLineHandler.java │ │ └── process │ │ │ └── ProcessEngineConfig.java │ │ ├── controller │ │ ├── AuthController.java │ │ ├── BaseController.java │ │ ├── FileController.java │ │ ├── FlowableDefinitionController.java │ │ ├── FlowableModelController.java │ │ ├── FlowableTaskController.java │ │ ├── FlowableWorkBenchController.java │ │ ├── FlowableWorkManagementController.java │ │ ├── WorkFlowAreaController.java │ │ ├── WorkFlowButtonController.java │ │ ├── WorkFlowCategoryController.java │ │ ├── WorkFlowDeptController.java │ │ ├── WorkFlowEmailController.java │ │ ├── WorkFlowExpressionController.java │ │ ├── WorkFlowExtendHisprocinstController.java │ │ ├── WorkFlowFormDataController.java │ │ ├── WorkFlowGroupController.java │ │ ├── WorkFlowHiCommentController.java │ │ ├── WorkFlowListenerController.java │ │ ├── WorkFlowListenerParamController.java │ │ ├── WorkFlowModelController.java │ │ ├── WorkFlowModelInfoController.java │ │ ├── WorkFlowModelReFormController.java │ │ ├── WorkFlowModelReFormReActivityController.java │ │ ├── WorkFlowRoleController.java │ │ ├── WorkFlowServiceCategoryController.java │ │ ├── WorkFlowServiceCollectController.java │ │ ├── WorkFlowServiceController.java │ │ ├── WorkFlowServiceGuideController.java │ │ ├── WorkFlowServiceRelCategoryController.java │ │ ├── WorkFlowTenantController.java │ │ ├── WorkFlowUserController.java │ │ └── WorkFlowVariableController.java │ │ ├── domain │ │ ├── dto │ │ │ ├── FlowableModelDTO.java │ │ │ ├── MigrationValidationProcessServiceDTO.java │ │ │ ├── ModelInfoDTO.java │ │ │ ├── ServiceReProcessDefinitionDTO.java │ │ │ ├── StartProcessInstanceByKeyDTO.java │ │ │ ├── WorkFlowGroupPageUserDTO.java │ │ │ └── WorkFlowGroupUserDTO.java │ │ ├── entity │ │ │ ├── BaseEntity.java │ │ │ ├── WorkFlowButton.java │ │ │ ├── WorkFlowCategory.java │ │ │ ├── WorkFlowEmail.java │ │ │ ├── WorkFlowExpression.java │ │ │ ├── WorkFlowExtendHisprocinst.java │ │ │ ├── WorkFlowHiComment.java │ │ │ ├── WorkFlowListener.java │ │ │ ├── WorkFlowListenerParam.java │ │ │ ├── WorkFlowModel.java │ │ │ ├── WorkFlowModelInfo.java │ │ │ ├── WorkFlowModelReForm.java │ │ │ ├── WorkFlowModelReFormReActivity.java │ │ │ ├── WorkFlowService.java │ │ │ ├── WorkFlowServiceCategory.java │ │ │ ├── WorkFlowServiceCollect.java │ │ │ ├── WorkFlowServiceGuide.java │ │ │ ├── WorkFlowServiceRelCategory.java │ │ │ ├── WorkFlowTenant.java │ │ │ └── WorkFlowVariable.java │ │ ├── mongo │ │ │ ├── MongoBaseInfo.java │ │ │ └── MongoWorkFlowFormData.java │ │ └── vo │ │ │ ├── ActivityVO.java │ │ │ ├── CommentInfoVO.java │ │ │ ├── CommentVO.java │ │ │ ├── HighLightedNodeVO.java │ │ │ └── ProcessDefinitionVO.java │ │ ├── exception │ │ └── BizException.java │ │ ├── mapper │ │ ├── CommonSqlMapper.java │ │ ├── FlowableExtensionMapper.java │ │ ├── FlowableQueryMapper.java │ │ ├── WorkFlowButtonMapper.java │ │ ├── WorkFlowCategoryMapper.java │ │ ├── WorkFlowEmailMapper.java │ │ ├── WorkFlowExpressionMapper.java │ │ ├── WorkFlowExtendHisprocinstMapper.java │ │ ├── WorkFlowHiCommentMapper.java │ │ ├── WorkFlowListenerMapper.java │ │ ├── WorkFlowListenerParamMapper.java │ │ ├── WorkFlowModelInfoMapper.java │ │ ├── WorkFlowModelMapper.java │ │ ├── WorkFlowModelReFormMapper.java │ │ ├── WorkFlowModelReFormReActivityMapper.java │ │ ├── WorkFlowServiceCategoryMapper.java │ │ ├── WorkFlowServiceCollectMapper.java │ │ ├── WorkFlowServiceGuideMapper.java │ │ ├── WorkFlowServiceMapper.java │ │ ├── WorkFlowServiceRelCategoryMapper.java │ │ ├── WorkFlowTenantMapper.java │ │ └── WorkFlowVariableMapper.java │ │ ├── service │ │ ├── AuthService.java │ │ ├── BussinessService.java │ │ ├── CommonMongoService.java │ │ ├── ExpressionService.java │ │ ├── FileService.java │ │ ├── FlowableBpmnModelService.java │ │ ├── FlowableExpressionService.java │ │ ├── FlowableModelService.java │ │ ├── FlowableService.java │ │ ├── FlowableTaskService.java │ │ ├── FlowableWorkBenchService.java │ │ ├── IDynamDubbo.java │ │ ├── WorkFlowAreaService.java │ │ ├── WorkFlowButtonService.java │ │ ├── WorkFlowCategoryService.java │ │ ├── WorkFlowDeptService.java │ │ ├── WorkFlowEmailService.java │ │ ├── WorkFlowExpressionService.java │ │ ├── WorkFlowExtendHisprocinstService.java │ │ ├── WorkFlowFormDataService.java │ │ ├── WorkFlowGroupService.java │ │ ├── WorkFlowHiCommentService.java │ │ ├── WorkFlowListenerParamService.java │ │ ├── WorkFlowListenerService.java │ │ ├── WorkFlowModelInfoService.java │ │ ├── WorkFlowModelReFormReActivityService.java │ │ ├── WorkFlowModelReFormService.java │ │ ├── WorkFlowModelService.java │ │ ├── WorkFlowRoleService.java │ │ ├── WorkFlowServiceCategoryService.java │ │ ├── WorkFlowServiceCollectService.java │ │ ├── WorkFlowServiceGuideService.java │ │ ├── WorkFlowServiceRelCategoryService.java │ │ ├── WorkFlowServiceService.java │ │ ├── WorkFlowTenantService.java │ │ ├── WorkFlowUserService.java │ │ ├── WorkFlowVariableService.java │ │ ├── cmd │ │ │ ├── jump │ │ │ │ └── JumpCmd.java │ │ │ └── rollback │ │ │ │ ├── DefaultRollbackStrategyFactoryBean.java │ │ │ │ ├── RollbackCmd.java │ │ │ │ ├── RollbackOperateStrategy.java │ │ │ │ ├── RollbackParams.java │ │ │ │ ├── RollbackStrategyFactory.java │ │ │ │ └── strategy │ │ │ │ ├── AbstractGateWayRollbackOperateStrategy.java │ │ │ │ ├── AbstractRollbackOperateStrategy.java │ │ │ │ ├── ActiveMultiInstanceTaskRollbackOperateStrategy.java │ │ │ │ ├── CompletedMultiInstanceTaskAndNextDefaultTaskRollbackOperateStrategy.java │ │ │ │ ├── DefaultNextGatewayRollbackOperateStrategy.java │ │ │ │ ├── NextCallActivityRollbackOperateStrategy.java │ │ │ │ ├── NextDefaultUserTaskRollbackOperateStrategy.java │ │ │ │ └── NextSubProcessRollbackOperateStrategy.java │ │ ├── dubbo │ │ │ ├── BussinessServiceImpl.java │ │ │ ├── TaskServiceImpl.java │ │ │ └── WorkBenchServiceImpl.java │ │ └── impl │ │ │ ├── AuthServiceImpl.java │ │ │ ├── CommonMongoServiceImpl.java │ │ │ ├── ExpressionServiceImpl.java │ │ │ ├── FlowableBpmnModelServiceImpl.java │ │ │ ├── FlowableExpressionServiceImpl.java │ │ │ ├── FlowableModelServiceImpl.java │ │ │ ├── FlowableServiceImpl.java │ │ │ ├── FlowableTaskServiceImpl.java │ │ │ ├── FlowableWorkBenchServiceImpl.java │ │ │ ├── MinioFileServiceImpl.java │ │ │ ├── WorkFlowAreaServiceImpl.java │ │ │ ├── WorkFlowButtonServiceImpl.java │ │ │ ├── WorkFlowCategoryServiceImpl.java │ │ │ ├── WorkFlowDeptServiceImpl.java │ │ │ ├── WorkFlowEmailServiceImpl.java │ │ │ ├── WorkFlowExpressionServiceImpl.java │ │ │ ├── WorkFlowExtendHisprocinstServiceImpl.java │ │ │ ├── WorkFlowFormDataServiceImpl.java │ │ │ ├── WorkFlowGroupServiceImpl.java │ │ │ ├── WorkFlowHiCommentServiceImpl.java │ │ │ ├── WorkFlowListenerParamServiceImpl.java │ │ │ ├── WorkFlowListenerServiceImpl.java │ │ │ ├── WorkFlowModelInfoServiceImpl.java │ │ │ ├── WorkFlowModelReFormReActivityServiceImpl.java │ │ │ ├── WorkFlowModelReFormServiceImpl.java │ │ │ ├── WorkFlowModelServiceImpl.java │ │ │ ├── WorkFlowRoleServiceImpl.java │ │ │ ├── WorkFlowServiceCategoryServiceImpl.java │ │ │ ├── WorkFlowServiceCollectServiceImpl.java │ │ │ ├── WorkFlowServiceGuideServiceImpl.java │ │ │ ├── WorkFlowServiceRelCategoryServiceImpl.java │ │ │ ├── WorkFlowServiceServiceImpl.java │ │ │ ├── WorkFlowTenantServiceImpl.java │ │ │ ├── WorkFlowUserServiceImpl.java │ │ │ └── WorkFlowVariableServiceImpl.java │ │ └── utils │ │ ├── ElUtils.java │ │ ├── FastJsonUtils.java │ │ ├── IdUtils.java │ │ ├── SecurityUtils.java │ │ ├── ServletUtils.java │ │ ├── SnowIdUtils.java │ │ ├── StringUtils.java │ │ ├── date │ │ └── DateUtils.java │ │ ├── file │ │ ├── FileTypeUtils.java │ │ ├── FileUploadUtils.java │ │ └── MimeTypeUtils.java │ │ ├── flowable │ │ ├── FindNextNodeUtil.java │ │ └── FlowableUtils.java │ │ ├── text │ │ ├── CharsetKit.java │ │ ├── Convert.java │ │ └── StrFormatter.java │ │ └── tree │ │ └── TreeUtils.java │ └── resources │ ├── log4j2-spring.xml │ ├── lua │ ├── distributedLock.lua │ └── releaseLock.lua │ └── mapper │ ├── CommonSqlMapper.xml │ ├── FlowableExtensionMapper.xml │ ├── FlowableQueryMapper.xml │ ├── WorkFlowButtonMapper.xml │ ├── WorkFlowCategoryMapper.xml │ ├── WorkFlowEmailMapper.xml │ ├── WorkFlowExpressionMapper.xml │ ├── WorkFlowExtendHisprocinstMapper.xml │ ├── WorkFlowHiCommentMapper.xml │ ├── WorkFlowListenerMapper.xml │ ├── WorkFlowListenerParamMapper.xml │ ├── WorkFlowModelInfoMapper.xml │ ├── WorkFlowModelMapper.xml │ ├── WorkFlowModelReFormMapper.xml │ ├── WorkFlowModelReFormReActivityMapper.xml │ ├── WorkFlowServiceCategoryMapper.xml │ ├── WorkFlowServiceCollectMapper.xml │ ├── WorkFlowServiceGuideMapper.xml │ ├── WorkFlowServiceMapper.xml │ ├── WorkFlowServiceRelCategoryMapper.xml │ ├── WorkFlowTenantMapper.xml │ └── WorkFlowVariableMapper.xml ├── workflow-common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── workflow │ └── common │ ├── annotation │ ├── DataScope.java │ ├── DataSource.java │ ├── Excel.java │ ├── Excels.java │ ├── Log.java │ ├── RateLimiter.java │ └── RepeatSubmit.java │ ├── config │ └── WorkflowConfig.java │ ├── constant │ ├── Constants.java │ ├── GenConstants.java │ ├── HttpStatus.java │ ├── ScheduleConstants.java │ └── UserConstants.java │ ├── core │ ├── controller │ │ └── BaseController.java │ ├── domain │ │ ├── AjaxResult.java │ │ ├── BaseEntity.java │ │ ├── TreeEntity.java │ │ ├── TreeSelect.java │ │ ├── entity │ │ │ ├── SysDept.java │ │ │ ├── SysDictData.java │ │ │ ├── SysDictType.java │ │ │ ├── SysMenu.java │ │ │ ├── SysRole.java │ │ │ └── SysUser.java │ │ └── model │ │ │ ├── LoginBody.java │ │ │ ├── LoginUser.java │ │ │ └── RegisterBody.java │ ├── page │ │ ├── PageDomain.java │ │ ├── TableDataInfo.java │ │ └── TableSupport.java │ ├── redis │ │ └── RedisCache.java │ └── text │ │ ├── CharsetKit.java │ │ ├── Convert.java │ │ └── StrFormatter.java │ ├── enums │ ├── BusinessStatus.java │ ├── BusinessType.java │ ├── DataSourceType.java │ ├── HttpMethod.java │ ├── LimitType.java │ ├── OperatorType.java │ └── UserStatus.java │ ├── exception │ ├── DemoModeException.java │ ├── GlobalException.java │ ├── ServiceException.java │ ├── UtilException.java │ ├── base │ │ └── BaseException.java │ ├── file │ │ ├── FileException.java │ │ ├── FileNameLengthLimitExceededException.java │ │ ├── FileSizeLimitExceededException.java │ │ └── InvalidExtensionException.java │ ├── job │ │ └── TaskException.java │ └── user │ │ ├── CaptchaException.java │ │ ├── CaptchaExpireException.java │ │ ├── UserException.java │ │ └── UserPasswordNotMatchException.java │ ├── filter │ ├── RepeatableFilter.java │ ├── RepeatedlyRequestWrapper.java │ ├── XssFilter.java │ └── XssHttpServletRequestWrapper.java │ └── utils │ ├── Arith.java │ ├── DateUtils.java │ ├── DictUtils.java │ ├── ExceptionUtil.java │ ├── LogUtils.java │ ├── MessageUtils.java │ ├── SecurityUtils.java │ ├── ServletUtils.java │ ├── StringUtils.java │ ├── Threads.java │ ├── VerifyCodeUtils.java │ ├── bean │ └── BeanUtils.java │ ├── file │ ├── FileTypeUtils.java │ ├── FileUploadUtils.java │ ├── FileUtils.java │ ├── ImageUtils.java │ └── MimeTypeUtils.java │ ├── html │ ├── EscapeUtil.java │ └── HTMLFilter.java │ ├── http │ ├── HttpHelper.java │ └── HttpUtils.java │ ├── ip │ ├── AddressUtils.java │ └── IpUtils.java │ ├── poi │ └── ExcelUtil.java │ ├── reflect │ └── ReflectUtils.java │ ├── sign │ ├── Base64.java │ └── Md5Utils.java │ ├── spring │ └── SpringUtils.java │ ├── sql │ └── SqlUtil.java │ └── uuid │ ├── IdUtils.java │ └── UUID.java ├── workflow-form ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── workflow │ │ │ └── form │ │ │ └── center │ │ │ ├── controller │ │ │ ├── DictDataController.java │ │ │ ├── DictTypeController.java │ │ │ ├── WorkFlowFormCategoryController.java │ │ │ ├── WorkFlowFormModelController.java │ │ │ └── WorkFlowFormModelInfoController.java │ │ │ ├── domain │ │ │ └── entity │ │ │ │ ├── DictData.java │ │ │ │ ├── DictType.java │ │ │ │ ├── WorkFlowFormCategory.java │ │ │ │ ├── WorkFlowFormModel.java │ │ │ │ └── WorkFlowFormModelInfo.java │ │ │ ├── exception │ │ │ └── BizException.java │ │ │ ├── mapper │ │ │ ├── DictDataMapper.java │ │ │ ├── DictTypeMapper.java │ │ │ ├── WorkFlowFormCategoryMapper.java │ │ │ ├── WorkFlowFormModelInfoMapper.java │ │ │ └── WorkFlowFormModelMapper.java │ │ │ └── service │ │ │ ├── DictDataService.java │ │ │ ├── DictTypeService.java │ │ │ ├── WorkFlowFormCategoryService.java │ │ │ ├── WorkFlowFormModelInfoService.java │ │ │ ├── WorkFlowFormModelService.java │ │ │ └── impl │ │ │ ├── DictDataServiceImpl.java │ │ │ ├── DictTypeServiceImpl.java │ │ │ ├── WorkFlowFormCategoryServiceImpl.java │ │ │ ├── WorkFlowFormModelInfoServiceImpl.java │ │ │ └── WorkFlowFormModelServiceImpl.java │ └── resources │ │ ├── log4j2-spring.xml │ │ ├── mapper │ │ ├── DictDataMapper.xml │ │ ├── DictTypeMapper.xml │ │ ├── WorkFlowFormCategoryMapper.xml │ │ ├── WorkFlowFormModelInfoMapper.xml │ │ └── WorkFlowFormModelMapper.xml │ │ └── spy.properties │ └── test │ └── java │ └── com │ └── cci │ └── formcenter │ └── FormCenterApplicationTests.java ├── workflow-framework ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── workflow │ └── framework │ ├── aspectj │ ├── DataScopeAspect.java │ ├── DataSourceAspect.java │ ├── LogAspect.java │ └── RateLimiterAspect.java │ ├── config │ ├── ApplicationConfig.java │ ├── CaptchaConfig.java │ ├── DruidConfig.java │ ├── FastJson2JsonRedisSerializer.java │ ├── FilterConfig.java │ ├── KaptchaTextCreator.java │ ├── MyBatisConfig.java │ ├── RedisConfig.java │ ├── ResourcesConfig.java │ ├── SecurityConfig.java │ ├── ServerConfig.java │ ├── ThreadPoolConfig.java │ └── properties │ │ └── DruidProperties.java │ ├── datasource │ ├── DynamicDataSource.java │ └── DynamicDataSourceContextHolder.java │ ├── interceptor │ ├── RepeatSubmitInterceptor.java │ └── impl │ │ └── SameUrlDataInterceptor.java │ ├── manager │ ├── AsyncManager.java │ ├── ShutdownManager.java │ └── factory │ │ └── AsyncFactory.java │ ├── security │ ├── filter │ │ └── JwtAuthenticationTokenFilter.java │ └── handle │ │ ├── AuthenticationEntryPointImpl.java │ │ └── LogoutSuccessHandlerImpl.java │ └── web │ ├── domain │ ├── Server.java │ └── server │ │ ├── Cpu.java │ │ ├── Jvm.java │ │ ├── Mem.java │ │ ├── Sys.java │ │ └── SysFile.java │ ├── exception │ └── GlobalExceptionHandler.java │ └── service │ ├── PermissionService.java │ ├── SysLoginService.java │ ├── SysPermissionService.java │ ├── SysRegisterService.java │ ├── TokenService.java │ └── UserDetailsServiceImpl.java ├── workflow-generator ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── workflow │ │ └── generator │ │ ├── config │ │ └── GenConfig.java │ │ ├── controller │ │ └── GenController.java │ │ ├── domain │ │ └── entity │ │ │ ├── GenTable.java │ │ │ └── GenTableColumn.java │ │ ├── mapper │ │ ├── GenTableColumnMapper.java │ │ └── GenTableMapper.java │ │ ├── service │ │ ├── GenTableColumnServiceImpl.java │ │ ├── GenTableServiceImpl.java │ │ ├── IGenTableColumnService.java │ │ └── IGenTableService.java │ │ └── util │ │ ├── GenUtils.java │ │ ├── VelocityInitializer.java │ │ └── VelocityUtils.java │ └── resources │ ├── generator.yml │ ├── mapper │ └── generator │ │ ├── GenTableColumnMapper.xml │ │ └── GenTableMapper.xml │ └── vm │ ├── java │ ├── controller.java.vm │ ├── domain.java.vm │ ├── mapper.java.vm │ ├── service.java.vm │ ├── serviceImpl.java.vm │ └── sub-domain.java.vm │ ├── js │ └── api.js.vm │ ├── sql │ └── sql.vm │ ├── vue │ ├── index-tree.vue.vm │ └── index.vue.vm │ └── xml │ └── mapper.xml.vm ├── workflow-idm-api ├── .gitignore ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── workflow │ └── process │ └── center │ └── api │ ├── AreaService.java │ ├── DeptService.java │ ├── LoginInfoService.java │ ├── RoleService.java │ └── UserService.java ├── workflow-process-common ├── pom.xml ├── workflow-process-common-pojo │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── workflow │ │ └── process │ │ └── center │ │ ├── common │ │ ├── ResultBean.java │ │ └── enums │ │ │ └── BaseExceptionEnum.java │ │ ├── domain │ │ ├── LoginUser.java │ │ └── dto │ │ │ └── BaseQueryDTO.java │ │ └── utils │ │ └── tree │ │ └── TreeNode.java └── workflow-process-idm-pojo │ ├── pom.xml │ └── src │ └── main │ └── java │ └── com │ └── workflow │ └── process │ └── center │ └── api │ └── domain │ ├── LoginDTO.java │ ├── WorkFlowAreaDTO.java │ ├── WorkFlowDeptDTO.java │ ├── WorkFlowRoleDTO.java │ └── WorkFlowUserDTO.java ├── workflow-quartz ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── workflow │ │ └── quartz │ │ ├── config │ │ └── ScheduleConfig.java │ │ ├── controller │ │ ├── SysJobController.java │ │ └── SysJobLogController.java │ │ ├── domain │ │ └── entity │ │ │ ├── SysJob.java │ │ │ └── SysJobLog.java │ │ ├── mapper │ │ ├── SysJobLogMapper.java │ │ └── SysJobMapper.java │ │ ├── service │ │ ├── ISysJobLogService.java │ │ ├── ISysJobService.java │ │ └── impl │ │ │ ├── SysJobLogServiceImpl.java │ │ │ └── SysJobServiceImpl.java │ │ ├── task │ │ └── RyTask.java │ │ └── util │ │ ├── AbstractQuartzJob.java │ │ ├── CronUtils.java │ │ ├── JobInvokeUtil.java │ │ ├── QuartzDisallowConcurrentExecution.java │ │ ├── QuartzJobExecution.java │ │ └── ScheduleUtils.java │ └── resources │ └── mapper │ └── quartz │ ├── SysJobLogMapper.xml │ └── SysJobMapper.xml ├── workflow-system ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── workflow │ │ └── system │ │ ├── domain │ │ ├── entity │ │ │ ├── SysConfig.java │ │ │ ├── SysLogininfor.java │ │ │ ├── SysNotice.java │ │ │ ├── SysOperLog.java │ │ │ ├── SysPost.java │ │ │ ├── SysRoleDept.java │ │ │ ├── SysRoleMenu.java │ │ │ ├── SysUserOnline.java │ │ │ ├── SysUserPost.java │ │ │ └── SysUserRole.java │ │ └── vo │ │ │ ├── MetaVo.java │ │ │ └── RouterVo.java │ │ ├── mapper │ │ ├── ProcessIdmMapper.java │ │ ├── SysConfigMapper.java │ │ ├── SysDeptMapper.java │ │ ├── SysDictDataMapper.java │ │ ├── SysDictTypeMapper.java │ │ ├── SysLogininforMapper.java │ │ ├── SysMenuMapper.java │ │ ├── SysNoticeMapper.java │ │ ├── SysOperLogMapper.java │ │ ├── SysPostMapper.java │ │ ├── SysRoleDeptMapper.java │ │ ├── SysRoleMapper.java │ │ ├── SysRoleMenuMapper.java │ │ ├── SysUserMapper.java │ │ ├── SysUserPostMapper.java │ │ └── SysUserRoleMapper.java │ │ └── service │ │ ├── ISysConfigService.java │ │ ├── ISysDeptService.java │ │ ├── ISysDictDataService.java │ │ ├── ISysDictTypeService.java │ │ ├── ISysLogininforService.java │ │ ├── ISysMenuService.java │ │ ├── ISysNoticeService.java │ │ ├── ISysOperLogService.java │ │ ├── ISysPostService.java │ │ ├── ISysRoleService.java │ │ ├── ISysUserOnlineService.java │ │ ├── ISysUserService.java │ │ ├── idm │ │ ├── PrcessDeptAervice.java │ │ ├── ProcessAreaService.java │ │ ├── ProcessRoleService.java │ │ └── ProcessUserService.java │ │ └── impl │ │ ├── SysConfigServiceImpl.java │ │ ├── SysDeptServiceImpl.java │ │ ├── SysDictDataServiceImpl.java │ │ ├── SysDictTypeServiceImpl.java │ │ ├── SysLogininforServiceImpl.java │ │ ├── SysMenuServiceImpl.java │ │ ├── SysNoticeServiceImpl.java │ │ ├── SysOperLogServiceImpl.java │ │ ├── SysPostServiceImpl.java │ │ ├── SysRoleServiceImpl.java │ │ ├── SysUserOnlineServiceImpl.java │ │ └── SysUserServiceImpl.java │ └── resources │ └── mapper │ └── system │ ├── ProcessIdmMapper.xml │ ├── SysConfigMapper.xml │ ├── SysDeptMapper.xml │ ├── SysDictDataMapper.xml │ ├── SysDictTypeMapper.xml │ ├── SysLogininforMapper.xml │ ├── SysMenuMapper.xml │ ├── SysNoticeMapper.xml │ ├── SysOperLogMapper.xml │ ├── SysPostMapper.xml │ ├── SysRoleDeptMapper.xml │ ├── SysRoleMapper.xml │ ├── SysRoleMenuMapper.xml │ ├── SysUserMapper.xml │ ├── SysUserPostMapper.xml │ └── SysUserRoleMapper.xml └── workflow-ui ├── .editorconfig ├── .env.development ├── .env.production ├── .env.staging ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── README.md ├── babel.config.js ├── bin ├── build.bat ├── package.bat └── run-web.bat ├── build └── index.js ├── package.json ├── public ├── favicon.ico ├── html │ └── ie.html ├── index.html └── robots.txt ├── src ├── App.vue ├── api │ ├── dict.js │ ├── formGenerator │ │ ├── form.js │ │ ├── formCategory.js │ │ └── formModel.js │ ├── login.js │ ├── menu.js │ ├── monitor │ │ ├── cache.js │ │ ├── job.js │ │ ├── jobLog.js │ │ ├── logininfor.js │ │ ├── online.js │ │ ├── operlog.js │ │ └── server.js │ ├── processCenter │ │ ├── definition.js │ │ ├── model.js │ │ └── variable.js │ ├── processManagement │ │ ├── email.js │ │ ├── processButton.js │ │ ├── processCategory.js │ │ ├── processExpression.js │ │ ├── processListener.js │ │ ├── processModelInfo.js │ │ ├── processSerivceCategory.js │ │ ├── processServiceConfig.js │ │ └── processTenant.js │ ├── system │ │ ├── config.js │ │ ├── dept.js │ │ ├── dict │ │ │ ├── data.js │ │ │ └── type.js │ │ ├── menu.js │ │ ├── notice.js │ │ ├── post.js │ │ ├── role.js │ │ └── user.js │ ├── tool │ │ └── gen.js │ └── workmenu │ │ ├── add.js │ │ ├── donemission.js │ │ ├── groupmission.js │ │ ├── handlecontent.js │ │ ├── personalmission.js │ │ └── sentmission.js ├── assets │ ├── 401_images │ │ └── 401.gif │ ├── 404_images │ │ ├── 404.png │ │ └── 404_cloud.png │ ├── icons │ │ ├── index.js │ │ ├── svg │ │ │ ├── 404.svg │ │ │ ├── bug.svg │ │ │ ├── build.svg │ │ │ ├── button.svg │ │ │ ├── cascader.svg │ │ │ ├── chart.svg │ │ │ ├── checkbox.svg │ │ │ ├── clipboard.svg │ │ │ ├── code.svg │ │ │ ├── color.svg │ │ │ ├── component.svg │ │ │ ├── dashboard.svg │ │ │ ├── date-range.svg │ │ │ ├── date.svg │ │ │ ├── dict.svg │ │ │ ├── documentation.svg │ │ │ ├── download.svg │ │ │ ├── drag.svg │ │ │ ├── druid.svg │ │ │ ├── edit.svg │ │ │ ├── education.svg │ │ │ ├── email.svg │ │ │ ├── example.svg │ │ │ ├── excel.svg │ │ │ ├── exit-fullscreen.svg │ │ │ ├── eye-open.svg │ │ │ ├── eye.svg │ │ │ ├── form.svg │ │ │ ├── fullscreen.svg │ │ │ ├── github.svg │ │ │ ├── guide.svg │ │ │ ├── icon.svg │ │ │ ├── input.svg │ │ │ ├── international.svg │ │ │ ├── job.svg │ │ │ ├── language.svg │ │ │ ├── link.svg │ │ │ ├── list.svg │ │ │ ├── lock.svg │ │ │ ├── log.svg │ │ │ ├── logininfor.svg │ │ │ ├── message.svg │ │ │ ├── money.svg │ │ │ ├── monitor.svg │ │ │ ├── nested.svg │ │ │ ├── number.svg │ │ │ ├── online.svg │ │ │ ├── password.svg │ │ │ ├── pdf.svg │ │ │ ├── people.svg │ │ │ ├── peoples.svg │ │ │ ├── phone.svg │ │ │ ├── post.svg │ │ │ ├── qq.svg │ │ │ ├── question.svg │ │ │ ├── radio.svg │ │ │ ├── rate.svg │ │ │ ├── redis.svg │ │ │ ├── row.svg │ │ │ ├── search.svg │ │ │ ├── select.svg │ │ │ ├── server.svg │ │ │ ├── shopping.svg │ │ │ ├── size.svg │ │ │ ├── skill.svg │ │ │ ├── slider.svg │ │ │ ├── star.svg │ │ │ ├── swagger.svg │ │ │ ├── switch.svg │ │ │ ├── system.svg │ │ │ ├── tab.svg │ │ │ ├── table.svg │ │ │ ├── textarea.svg │ │ │ ├── theme.svg │ │ │ ├── time-range.svg │ │ │ ├── time.svg │ │ │ ├── tool.svg │ │ │ ├── tree-table.svg │ │ │ ├── tree.svg │ │ │ ├── upload.svg │ │ │ ├── user.svg │ │ │ ├── validCode.svg │ │ │ ├── wechat.svg │ │ │ └── zip.svg │ │ └── svgo.yml │ ├── images │ │ ├── back.jpg │ │ ├── back.png │ │ ├── dark.svg │ │ ├── light.svg │ │ ├── login-background.jpg │ │ └── profile.jpg │ ├── logo │ │ └── logo.png │ └── styles │ │ ├── btn.scss │ │ ├── element-ui.scss │ │ ├── element-variables.scss │ │ ├── index.scss │ │ ├── mixin.scss │ │ ├── sidebar.scss │ │ ├── transition.scss │ │ ├── variables.scss │ │ └── workflow.scss ├── components │ ├── Breadcrumb │ │ └── index.vue │ ├── Crontab │ │ ├── day.vue │ │ ├── hour.vue │ │ ├── index.vue │ │ ├── min.vue │ │ ├── month.vue │ │ ├── result.vue │ │ ├── second.vue │ │ ├── week.vue │ │ └── year.vue │ ├── DictTag │ │ └── index.vue │ ├── Editor │ │ └── index.vue │ ├── FileUpload │ │ └── index.vue │ ├── Hamburger │ │ └── index.vue │ ├── HeaderSearch │ │ └── index.vue │ ├── IconSelect │ │ ├── index.vue │ │ └── requireIcons.js │ ├── ImageUpload │ │ └── index.vue │ ├── Pagination │ │ └── index.vue │ ├── PanThumb │ │ └── index.vue │ ├── ParentView │ │ └── index.vue │ ├── Process │ │ ├── BpmData.js │ │ ├── PropertyPanel.vue │ │ ├── common │ │ │ ├── customTranslate.js │ │ │ ├── mixinExecutionListener.js │ │ │ ├── mixinPanel.js │ │ │ ├── mixinXcrud.js │ │ │ └── parseElement.js │ │ ├── components │ │ │ ├── custom │ │ │ │ └── customContextPad.vue │ │ │ └── nodePanel │ │ │ │ ├── gateway.vue │ │ │ │ ├── process.vue │ │ │ │ ├── property │ │ │ │ ├── executionListener.vue │ │ │ │ ├── listenerParam.vue │ │ │ │ ├── multiInstance.vue │ │ │ │ ├── signal.vue │ │ │ │ └── taskListener.vue │ │ │ │ ├── sequenceFlow.vue │ │ │ │ ├── startEnd.vue │ │ │ │ └── task.vue │ │ ├── flowable │ │ │ ├── flowable.json │ │ │ ├── init.js │ │ │ └── showConfig.js │ │ ├── index.js │ │ ├── index.vue │ │ ├── lang │ │ │ └── zh.js │ │ └── model.vue │ ├── RightPanel │ │ └── index.vue │ ├── RightToolbar │ │ └── index.vue │ ├── Screenfull │ │ └── index.vue │ ├── SizeSelect │ │ └── index.vue │ ├── SvgIcon │ │ └── index.vue │ ├── ThemePicker │ │ └── index.vue │ ├── TopNav │ │ └── index.vue │ ├── iFrame │ │ └── index.vue │ ├── package │ │ ├── bpmnViewer │ │ │ └── index.vue │ │ ├── index.js │ │ ├── process-designer │ │ │ ├── ProcessDesigner.vue │ │ │ ├── index.js │ │ │ └── plugins │ │ │ │ ├── content-pad │ │ │ │ ├── contentPadProvider.js │ │ │ │ └── index.js │ │ │ │ ├── defaultEmpty.js │ │ │ │ ├── descriptor │ │ │ │ ├── activitiDescriptor.json │ │ │ │ ├── camundaDescriptor.json │ │ │ │ └── flowableDescriptor.json │ │ │ │ ├── extension-moddle │ │ │ │ ├── activiti │ │ │ │ │ ├── activitiExtension.js │ │ │ │ │ └── index.js │ │ │ │ ├── camunda │ │ │ │ │ ├── extension.js │ │ │ │ │ └── index.js │ │ │ │ └── flowable │ │ │ │ │ ├── flowableExtension.js │ │ │ │ │ └── index.js │ │ │ │ ├── palette │ │ │ │ ├── index.js │ │ │ │ └── paletteProvider.js │ │ │ │ └── translate │ │ │ │ ├── customTranslate.js │ │ │ │ └── zh.js │ │ ├── refactor │ │ │ ├── PropertiesPanel.vue │ │ │ ├── base │ │ │ │ └── ElementBaseInfo.vue │ │ │ ├── components │ │ │ │ └── expression │ │ │ │ │ ├── dict.js │ │ │ │ │ └── expressionDialog.vue │ │ │ ├── flow-condition │ │ │ │ └── FlowCondition.vue │ │ │ ├── form │ │ │ │ └── ElementForm.vue │ │ │ ├── index.js │ │ │ ├── listeners │ │ │ │ ├── ElementListeners.vue │ │ │ │ ├── UserTaskListeners.vue │ │ │ │ ├── components │ │ │ │ │ ├── SelectListenerDialog.vue │ │ │ │ │ └── dict.js │ │ │ │ ├── template.js │ │ │ │ └── utilSelf.js │ │ │ ├── multi-instance │ │ │ │ └── ElementMultiInstance.vue │ │ │ ├── other │ │ │ │ └── ElementOtherConfig.vue │ │ │ ├── properties │ │ │ │ └── ElementProperties.vue │ │ │ ├── signal-message │ │ │ │ └── SignalAndMessage.vue │ │ │ └── task │ │ │ │ ├── ElementTask.vue │ │ │ │ ├── elementUtils.js │ │ │ │ └── task-components │ │ │ │ ├── ReceiveTask.vue │ │ │ │ ├── ScriptTask.vue │ │ │ │ ├── UserTask.vue │ │ │ │ ├── dateDialog.vue │ │ │ │ ├── fixed-components │ │ │ │ ├── tableCompany.vue │ │ │ │ ├── tableCompanyMatrix.vue │ │ │ │ ├── tableDepartment.vue │ │ │ │ ├── tableRole.vue │ │ │ │ └── variableDialog.vue │ │ │ │ └── identity-components │ │ │ │ ├── personnelDialog.vue │ │ │ │ ├── roleDialog.vue │ │ │ │ ├── tableCommonly.vue │ │ │ │ └── tableCompanyMatrix.vue │ │ ├── theme │ │ │ ├── element-variables.scss │ │ │ ├── index.scss │ │ │ ├── process-designer.scss │ │ │ └── process-panel.scss │ │ └── utils.js │ ├── parser │ │ ├── Parser.vue │ │ ├── README.md │ │ ├── example │ │ │ └── Index.vue │ │ ├── index.js │ │ └── package.json │ ├── render │ │ ├── package.json │ │ ├── render.js │ │ └── slots │ │ │ ├── el-button.js │ │ │ ├── el-checkbox-group.js │ │ │ ├── el-input.js │ │ │ ├── el-radio-group.js │ │ │ ├── el-select.js │ │ │ └── el-upload.js │ ├── tinymce │ │ ├── README.md │ │ ├── config.js │ │ ├── example │ │ │ └── Index.vue │ │ ├── index.js │ │ ├── index.vue │ │ ├── package.json │ │ └── zh_CN.js │ └── workflow │ │ ├── Doc │ │ └── index.vue │ │ └── Git │ │ └── index.vue ├── directive │ ├── dialog │ │ ├── drag.js │ │ ├── dragHeight.js │ │ └── dragWidth.js │ ├── index.js │ └── permission │ │ ├── hasPermi.js │ │ └── hasRole.js ├── icons │ ├── index.js │ └── svg │ │ ├── button.svg │ │ ├── cascader.svg │ │ ├── checkbox.svg │ │ ├── color.svg │ │ ├── component.svg │ │ ├── date-range.svg │ │ ├── date.svg │ │ ├── input.svg │ │ ├── number.svg │ │ ├── password.svg │ │ ├── radio.svg │ │ ├── rate.svg │ │ ├── rich-text.svg │ │ ├── row.svg │ │ ├── select.svg │ │ ├── slider.svg │ │ ├── switch.svg │ │ ├── table.svg │ │ ├── textarea.svg │ │ ├── time-range.svg │ │ ├── time.svg │ │ └── upload.svg ├── layout │ ├── components │ │ ├── AppMain.vue │ │ ├── InnerLink │ │ │ └── index.vue │ │ ├── Navbar.vue │ │ ├── Settings │ │ │ └── index.vue │ │ ├── Sidebar │ │ │ ├── FixiOSBug.js │ │ │ ├── Item.vue │ │ │ ├── Link.vue │ │ │ ├── Logo.vue │ │ │ ├── SidebarItem.vue │ │ │ └── index.vue │ │ ├── TagsView │ │ │ ├── ScrollPane.vue │ │ │ └── index.vue │ │ └── index.js │ ├── index.vue │ └── mixin │ │ └── ResizeHandler.js ├── main.js ├── permission.js ├── plugins │ ├── content-pad │ │ ├── contentPadProvider.js │ │ └── index.js │ ├── defaultEmpty.js │ ├── descriptor │ │ ├── activitiDescriptor.json │ │ ├── camundaDescriptor.json │ │ └── flowableDescriptor.json │ ├── extension-moddle │ │ ├── activiti │ │ │ ├── activitiExtension.js │ │ │ └── index.js │ │ ├── camunda │ │ │ ├── extension.js │ │ │ └── index.js │ │ └── flowable │ │ │ ├── flowableExtension.js │ │ │ └── index.js │ ├── highlight │ │ └── index.js │ ├── palette │ │ ├── CustomPalette.js │ │ ├── index.js │ │ └── paletteProvider.js │ └── translate │ │ ├── customTranslate.js │ │ └── zh.js ├── router │ └── index.js ├── settings.js ├── store │ ├── getters.js │ ├── index.js │ └── modules │ │ ├── app.js │ │ ├── dict.js │ │ ├── modelSelect.js │ │ ├── permission.js │ │ ├── settings.js │ │ ├── tagsView.js │ │ └── user.js ├── styles │ ├── home.scss │ ├── index.scss │ └── mixin.scss ├── utils │ ├── auth.js │ ├── db.js │ ├── errorCode.js │ ├── generator │ │ ├── config.js │ │ ├── css.js │ │ ├── drawingDefalut.js │ │ ├── html.js │ │ ├── icon.json │ │ ├── js.js │ │ ├── render.js │ │ └── ruleTrigger.js │ ├── index.js │ ├── jsencrypt.js │ ├── loadBeautifier.js │ ├── loadMonaco.js │ ├── loadScript.js │ ├── loadTinymce.js │ ├── permission.js │ ├── pluginsConfig.js │ ├── request.js │ ├── scroll-to.js │ ├── validate.js │ ├── workflow.js │ ├── xml2json.js │ └── zipdownload.js └── views │ ├── components │ └── icons │ │ ├── element-icons.js │ │ ├── index.vue │ │ └── svg-icons.js │ ├── dashboard │ ├── BarChart.vue │ ├── LineChart.vue │ ├── PanelGroup.vue │ ├── PieChart.vue │ ├── RaddarChart.vue │ └── mixins │ │ └── resize.js │ ├── error │ ├── 401.vue │ └── 404.vue │ ├── formCore │ ├── formCategory │ │ └── index.vue │ ├── formDesign │ │ └── index.vue │ └── formModel │ │ └── index.vue │ ├── index.vue │ ├── index_v1.vue │ ├── login.vue │ ├── monitor │ ├── cache │ │ └── index.vue │ ├── druid │ │ └── index.vue │ ├── job │ │ ├── index.vue │ │ └── log.vue │ ├── logininfor │ │ └── index.vue │ ├── online │ │ └── index.vue │ ├── operlog │ │ └── index.vue │ └── server │ │ └── index.vue │ ├── processCore │ ├── processConfig │ │ ├── email │ │ │ ├── dict.js │ │ │ └── index.vue │ │ └── processTenant │ │ │ ├── dict.js │ │ │ └── index.vue │ ├── processMeta │ │ ├── definition │ │ │ ├── dict.js │ │ │ └── index.vue │ │ ├── task │ │ │ └── record │ │ │ │ ├── flow.vue │ │ │ │ └── index.vue │ │ └── variable │ │ │ └── index.vue │ └── processService │ │ ├── processButton │ │ └── index.vue │ │ ├── processCategory │ │ └── index.vue │ │ ├── processExpression │ │ ├── dict.js │ │ └── index.vue │ │ ├── processListener │ │ ├── configure.vue │ │ ├── dict.js │ │ └── index.vue │ │ ├── processModelDesign │ │ ├── custom-renderer │ │ │ ├── CustomRenderer.js │ │ │ └── index.js │ │ ├── index.vue │ │ └── translations.js │ │ ├── processModelInfo │ │ ├── dict.js │ │ └── index.vue │ │ ├── processSerivceCategory │ │ ├── dict.js │ │ └── index.vue │ │ └── processServiceConfig │ │ ├── dict.js │ │ └── index.vue │ ├── redirect.vue │ ├── register.vue │ ├── system │ ├── config │ │ └── index.vue │ ├── dept │ │ └── index.vue │ ├── dict │ │ ├── data.vue │ │ └── index.vue │ ├── menu │ │ └── index.vue │ ├── notice │ │ └── index.vue │ ├── post │ │ └── index.vue │ ├── role │ │ ├── authUser.vue │ │ ├── index.vue │ │ └── selectUser.vue │ └── user │ │ ├── authRole.vue │ │ ├── index.vue │ │ └── profile │ │ ├── index.vue │ │ ├── resetPwd.vue │ │ ├── userAvatar.vue │ │ └── userInfo.vue │ ├── tool │ ├── build │ │ ├── App.vue │ │ ├── CodeTypeDialog.vue │ │ ├── DraggableItem.vue │ │ ├── FormDrawer.vue │ │ ├── IconsDialog.vue │ │ ├── JsonDrawer.vue │ │ ├── ResourceDialog.vue │ │ ├── RightPanel.vue │ │ ├── TreeNodeDialog.vue │ │ ├── index.vue │ │ └── main.js │ ├── gen │ │ ├── basicInfoForm.vue │ │ ├── editTable.vue │ │ ├── genInfoForm.vue │ │ ├── importTable.vue │ │ └── index.vue │ └── swagger │ │ └── index.vue │ └── workBench │ ├── done │ ├── DoneMission.vue │ └── dict.js │ ├── group │ ├── GroupMission.vue │ └── dict.js │ ├── homePage │ ├── DoneMission │ │ ├── DoneMission.vue │ │ └── dict.js │ ├── GroupMission │ │ ├── GroupMission.vue │ │ └── dict.js │ ├── LaunchMission │ │ └── LaunchMission.vue │ ├── PersonalMission │ │ ├── PersonalMission.vue │ │ └── dict.js │ ├── SentMission │ │ ├── SentMission.vue │ │ └── dict.js │ ├── add │ │ └── index.vue │ ├── components │ │ └── handlecontent.vue │ └── index.vue │ ├── overTime │ ├── dict.js │ └── overTime.vue │ ├── sent │ ├── SentMission.vue │ └── dict.js │ └── todo │ ├── PersonalMission.vue │ └── dict.js └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | ###################################################################### 2 | # Build Tools 3 | 4 | .gradle 5 | /build/ 6 | !gradle/wrapper/gradle-wrapper.jar 7 | 8 | target/ 9 | !.mvn/wrapper/maven-wrapper.jar 10 | 11 | ###################################################################### 12 | # IDE 13 | 14 | ### STS ### 15 | .apt_generated 16 | .classpath 17 | .factorypath 18 | .project 19 | .settings 20 | .springBeans 21 | 22 | ### IntelliJ IDEA ### 23 | .idea 24 | *.iws 25 | *.iml 26 | *.ipr 27 | 28 | ### NetBeans ### 29 | nbproject/private/ 30 | build/* 31 | nbbuild/ 32 | dist/ 33 | nbdist/ 34 | .nb-gradle/ 35 | 36 | ###################################################################### 37 | # Others 38 | *.log 39 | *.xml.versionsBackup 40 | *.swp 41 | 42 | !*/build/*.java 43 | !*/build/*.html 44 | !*/build/*.xml 45 | -------------------------------------------------------------------------------- /workflow-admin/src/main/java/com/workflow/WorkflowServletInitializer.java: -------------------------------------------------------------------------------- 1 | package com.workflow; 2 | 3 | import org.springframework.boot.builder.SpringApplicationBuilder; 4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 5 | 6 | /** 7 | * web容器中进行部署 8 | * 9 | * @author workflow 10 | */ 11 | public class WorkflowServletInitializer extends SpringBootServletInitializer { 12 | @Override 13 | protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 14 | return application.sources(WorkflowApplication.class); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-admin/src/main/java/com/workflow/web/controller/monitor/ServerController.java: -------------------------------------------------------------------------------- 1 | package com.workflow.web.controller.monitor; 2 | 3 | import org.springframework.security.access.prepost.PreAuthorize; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | import com.workflow.common.core.domain.AjaxResult; 8 | import com.workflow.framework.web.domain.Server; 9 | 10 | /** 11 | * 服务器监控 12 | * 13 | * @author workflow 14 | */ 15 | @RestController 16 | @RequestMapping("/monitor/server") 17 | public class ServerController 18 | { 19 | @PreAuthorize("@ss.hasPermi('monitor:server:list')") 20 | @GetMapping() 21 | public AjaxResult getInfo() throws Exception 22 | { 23 | Server server = new Server(); 24 | server.copyTo(); 25 | return AjaxResult.success(server); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /workflow-admin/src/main/java/com/workflow/web/controller/system/SysIndexController.java: -------------------------------------------------------------------------------- 1 | package com.workflow.web.controller.system; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | import com.workflow.common.config.WorkflowConfig; 7 | import com.workflow.common.utils.StringUtils; 8 | 9 | /** 10 | * 首页 11 | * 12 | * @author workflow 13 | */ 14 | @RestController 15 | public class SysIndexController 16 | { 17 | /** 系统基础配置 */ 18 | @Autowired 19 | private WorkflowConfig workflowConfig; 20 | 21 | /** 22 | * 访问首页,提示语 23 | */ 24 | @RequestMapping("/") 25 | public String index() 26 | { 27 | return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", workflowConfig.getName(), workflowConfig.getVersion()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /workflow-admin/src/main/java/com/workflow/web/controller/tool/SwaggerController.java: -------------------------------------------------------------------------------- 1 | package com.workflow.web.controller.tool; 2 | 3 | import org.springframework.security.access.prepost.PreAuthorize; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RequestMapping; 7 | import com.workflow.common.core.controller.BaseController; 8 | 9 | /** 10 | * swagger 接口 11 | * 12 | * @author workflow 13 | */ 14 | @Controller 15 | @RequestMapping("/tool/swagger") 16 | public class SwaggerController extends BaseController 17 | { 18 | @PreAuthorize("@ss.hasPermi('tool:swagger:view')") 19 | @GetMapping() 20 | public String index() 21 | { 22 | return redirect("/swagger-ui.html"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /workflow-admin/src/main/java/com/workflow/web/core/config/P6spySqlFormatConfig.java: -------------------------------------------------------------------------------- 1 | package com.workflow.web.core.config; 2 | 3 | import com.p6spy.engine.spy.appender.MessageFormattingStrategy; 4 | import com.workflow.common.utils.DateUtils; 5 | import org.apache.commons.lang3.StringUtils; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * 自定义 p6spy sql输出格式 11 | * 12 | */ 13 | public class P6spySqlFormatConfig implements MessageFormattingStrategy { 14 | 15 | /** 16 | * 过滤掉定时任务的 SQL 17 | */ 18 | @Override 19 | public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) { 20 | return StringUtils.isNotBlank(sql) ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", new Date()) 21 | + " | 耗时 " + elapsed + " ms | SQL 语句:" + StringUtils.LF + sql.replaceAll("[\\s]+", StringUtils.SPACE) + ";" : ""; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /workflow-admin/src/main/resources/META-INF/spring-devtools.properties: -------------------------------------------------------------------------------- 1 | restart.include.json=/com.alibaba.fastjson.*.jar -------------------------------------------------------------------------------- /workflow-admin/src/main/resources/mybatis/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /workflow-admin/src/main/resources/spy.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-admin/src/main/resources/spy.properties -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/AssigneeDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class AssigneeDTO implements Serializable { 9 | 10 | //用户id 11 | private String userId; 12 | //名称 13 | private String name; 14 | //电话 15 | private String mobile; 16 | } 17 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/CandidateGroupDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | @Data 9 | @ApiModel("修改候选组") 10 | public class CandidateGroupDTO implements Serializable { 11 | 12 | private String areaKey; 13 | 14 | private String deptKey; 15 | 16 | private String roleKey; 17 | } 18 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/FlowableNodeDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.Date; 7 | 8 | @Data 9 | public class FlowableNodeDTO implements Serializable { 10 | /** 11 | * 节点id 12 | */ 13 | private String nodeId; 14 | /** 15 | * 节点名称 16 | */ 17 | private String nodeName; 18 | /** 19 | * 执行人的code 20 | */ 21 | private String userCode; 22 | /** 23 | * 执行人姓名 24 | */ 25 | private String userName; 26 | 27 | /** 28 | * 任务节点结束时间 29 | */ 30 | private Date endTime; 31 | } 32 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/AddSignTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import javax.validation.constraints.NotEmpty; 8 | import java.util.List; 9 | 10 | /** 11 | * @Author: 土豆仙 12 | * @Date: 2021/6/28 17:56 13 | * @Description: 加签 14 | */ 15 | @EqualsAndHashCode(callSuper = true) 16 | @Data 17 | @ApiModel("加签参数") 18 | public class AddSignTaskDTO extends BaseTaskDTO { 19 | 20 | /** 21 | * 被加签人 22 | */ 23 | @NotEmpty(message = "请指明向谁加签!!") 24 | private List signUserIds; 25 | } 26 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/BackTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import javax.validation.constraints.NotBlank; 8 | 9 | /** 10 | * @Author: 土豆仙 11 | * @Date: 2021/6/28 17:55 12 | * @Description: 指定驳回 13 | */ 14 | @EqualsAndHashCode(callSuper = true) 15 | @Data 16 | @ApiModel("指定驳回参数") 17 | public class BackTaskDTO extends BaseTaskDTO { 18 | 19 | /** 20 | * 需要驳回的节点id 必填 21 | */ 22 | @NotBlank(message = "需要驳回的节点id不能为空!") 23 | private String distFlowElementId; 24 | } 25 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/ClaimTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | * @Author: 土豆仙 9 | * @Date: 2021/6/28 17:54 10 | * @Description: 签收 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | @ApiModel("签收参数") 15 | public class ClaimTaskDTO extends BaseTaskDTO { 16 | } 17 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/CompleteTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * @Author: 土豆仙 11 | * @Date: 2021/6/28 17:49 12 | * @Description: 审批完成 13 | */ 14 | @EqualsAndHashCode(callSuper = true) 15 | @Data 16 | @ApiModel("审批完成参数") 17 | public class CompleteTaskDTO extends BaseTaskDTO { 18 | /** 19 | * 任务参数 选填 20 | */ 21 | private Map variables; 22 | } 23 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/DelegateTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import javax.validation.constraints.NotBlank; 8 | 9 | /** 10 | * @Author: 土豆仙 11 | * @Date: 2021/6/28 17:53 12 | * @Description: 委派 13 | */ 14 | @EqualsAndHashCode(callSuper = true) 15 | @Data 16 | @ApiModel("委派参数") 17 | public class DelegateTaskDTO extends BaseTaskDTO{ 18 | /** 19 | * 委派人 20 | */ 21 | @NotBlank(message = "委派人Id不能为空!") 22 | private String delegateUserId; 23 | } 24 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/RollbackTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | 4 | import io.swagger.annotations.ApiModel; 5 | import lombok.Data; 6 | import lombok.EqualsAndHashCode; 7 | 8 | @EqualsAndHashCode(callSuper = true) 9 | @Data 10 | @ApiModel("回撤任务") 11 | public class RollbackTaskDTO extends BaseTaskDTO { 12 | } 13 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/SynergyTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import javax.validation.constraints.NotEmpty; 8 | import java.util.List; 9 | 10 | /** 11 | * @Author: 土豆仙 12 | * @Date: 2021/6/28 17:56 13 | * @Description: 协同 14 | */ 15 | @EqualsAndHashCode(callSuper = true) 16 | @Data 17 | @ApiModel("协同参数") 18 | public class SynergyTaskDTO extends BaseTaskDTO{ 19 | 20 | /** 21 | * 协同人 22 | */ 23 | @NotEmpty(message = "请指明和谁协同办理!!") 24 | private List synergyUserIds; 25 | } 26 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/TurnTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import io.swagger.annotations.ApiModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import javax.validation.constraints.NotBlank; 8 | 9 | /** 10 | * @Author: 土豆仙 11 | * @Date: 2021/6/28 17:49 12 | * @Description: 转办 13 | */ 14 | @EqualsAndHashCode(callSuper = true) 15 | @Data 16 | @ApiModel("转办参数") 17 | public class TurnTaskDTO extends BaseTaskDTO { 18 | /** 19 | * 被转办人工号 必填 20 | */ 21 | @NotBlank(message = "请指明向谁转办!") 22 | private String turnToUserId; 23 | } 24 | -------------------------------------------------------------------------------- /workflow-center-api/src/main/java/com/workflow/process/center/domain/dto/task/UpdateCandidateTaskDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto.task; 2 | 3 | import com.workflow.process.center.domain.dto.CandidateGroupDTO; 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | import lombok.EqualsAndHashCode; 8 | 9 | import javax.validation.constraints.NotBlank; 10 | import javax.validation.constraints.NotEmpty; 11 | import java.util.List; 12 | 13 | @EqualsAndHashCode(callSuper = true) 14 | @Data 15 | @ApiModel("修改候选组") 16 | public class UpdateCandidateTaskDTO extends BaseTaskDTO{ 17 | 18 | @NotEmpty(message = "候选组不能为空!") 19 | @ApiModelProperty(value = "候选组") 20 | private List candidateGroupDTOS; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /workflow-center/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | !**/src/main/**/target/ 4 | !**/src/test/**/target/ 5 | 6 | ### STS ### 7 | .apt_generated 8 | .classpath 9 | .factorypath 10 | .project 11 | .settings 12 | .springBeans 13 | .sts4-cache 14 | 15 | ### IntelliJ IDEA ### 16 | .idea 17 | *.iws 18 | *.iml 19 | *.ipr 20 | *.mvnw 21 | *.mvnw.cmd 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | 35 | 36 | *.mvnw 37 | *.mvnw.cmd 38 | 39 | ###日志 40 | logs/ -------------------------------------------------------------------------------- /workflow-center/README.md: -------------------------------------------------------------------------------- 1 | # 流程引擎系统简介 2 | 3 | #### “作始也简,将毕也钜” 4 | 5 | ### API DOC 文档地址 6 | * [流程引擎-临时引擎后台管理](localhost) 7 | * [流程引擎showdoc地址](http://47.105.165.206:8888/web/#/7?page_id=77) 8 | * [流程引擎swagger文档地址](http://localhost:8080/swagger-ui/index.html) 9 | 10 | ### 流程引擎指南 11 | 12 | ####架构 13 | ![](docs/流程中心设计架构草图.png) 14 | 15 | * 项目打包 mvn install -Dmaven.test.skip=true 16 | 17 | 18 | * [Springboot]() 19 | * [MybatisPlus]() 20 | * [Flowable]() 21 | * [Nacos]() 22 | * [Openfeign]() 23 | 24 | #### 开发参考模板文件,自行配置easyCode-实现基本增、删、改、查、分页 25 | 26 | #### 开发计划| 27 | * tag① 完善流程引擎 28 | * tag② 完善自定义表单 29 | * tag③ 完善自定义报表 30 | * tag④ 完善决策引擎 31 | * tag⑤ 引入深度学习 32 | 33 | #### 依赖服务部署 34 | * 对象存储MINIO docker run -d -it -p 9090:9000 -p 9999:9999 --name minio -e "MINIO_ACCESS_KEY=cykj" -e "MINIO_SECRET_KEY=cykj123456" minio/minio server --address '0.0.0.0:9000' --console-address '0.0.0.0:9999' /data -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/annotation/DistributedLock.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface DistributedLock { 11 | 12 | /** 13 | * 当前锁的:自动过期时间 (单位:秒)默认值:1s 14 | * 15 | * @return 16 | */ 17 | long releaseTime() default 5; 18 | } 19 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/common/contant/CacheConstants.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.common.contant; 2 | 3 | /** 4 | * 缓存的key 常量 5 | * 6 | */ 7 | public class CacheConstants 8 | { 9 | /** 10 | * 令牌自定义标识 11 | */ 12 | public static final String HEADER = "Authorization"; 13 | 14 | /** 15 | * 令牌前缀 16 | */ 17 | public static final String TOKEN_PREFIX = "Bearer "; 18 | 19 | /** 20 | * 权限缓存前缀 21 | */ 22 | public final static String LOGIN_TOKEN_KEY = "login_tokens:"; 23 | 24 | /** 25 | * 用户ID字段 26 | */ 27 | public static final String DETAILS_USER_ID = "user_id"; 28 | 29 | /** 30 | * 用户名字段 31 | */ 32 | public static final String DETAILS_USERNAME = "username"; 33 | 34 | /** 35 | * 授权信息字段 36 | */ 37 | public static final String AUTHORIZATION_HEADER = "authorization"; 38 | } 39 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/common/contant/ServiceNameConstants.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.common.contant; 2 | 3 | /** 4 | * @Author: 土豆仙 5 | * @Date: 2021/6/23 15:38 6 | * @Description: 服务名称 7 | */ 8 | public class ServiceNameConstants 9 | { 10 | 11 | /** 12 | * 系统模块的serviceid 13 | */ 14 | public static final String SYSTEM_SERVICE = "process-system"; 15 | 16 | public static final String AUTH_SERVICE = "process-auth"; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/common/enums/TaskPriorityEnum.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.common.enums; 2 | 3 | import com.baomidou.mybatisplus.annotation.EnumValue; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | public enum TaskPriorityEnum { 7 | 8 | NOTHING(1,"无"), 9 | LOW(50,"低"), 10 | MIDDLE(80,"中"), 11 | HIGH(100,"高"); 12 | @EnumValue 13 | private Integer type; 14 | 15 | @JsonValue 16 | private String name; 17 | 18 | TaskPriorityEnum(Integer type, String name) { 19 | this.type = type; 20 | this.name = name; 21 | } 22 | 23 | public Integer getType() { 24 | return type; 25 | } 26 | 27 | public void setType(Integer type) { 28 | this.type = type; 29 | } 30 | 31 | public String getName() { 32 | return name; 33 | } 34 | 35 | public void setName(String name) { 36 | this.name = name; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/common/enums/entity/CommonTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.common.enums.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.EnumValue; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | public enum CommonTypeEnum { 7 | 8 | NO(0,"否"), 9 | YSE(1,"是"); 10 | 11 | 12 | @EnumValue 13 | private Integer key; 14 | 15 | @JsonValue 16 | private String display; 17 | 18 | CommonTypeEnum(Integer key, String display) { 19 | this.key = key; 20 | this.display = display; 21 | } 22 | 23 | public Integer getKey() { 24 | return key; 25 | } 26 | 27 | public void setKey(Integer key) { 28 | this.key = key; 29 | } 30 | 31 | public String getDisplay() { 32 | return display; 33 | } 34 | 35 | public void setDisplay(String display) { 36 | this.display = display; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/behavior/CustomActivityBehaviorFactory.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.behavior; 2 | 3 | import com.workflow.process.center.config.flowable.behavior.usertask.CustomUserTaskActivityBehavior; 4 | import org.flowable.bpmn.model.UserTask; 5 | import org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior; 6 | import org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory; 7 | 8 | public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactory { 9 | 10 | @Override 11 | public UserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask) { 12 | return new CustomUserTaskActivityBehavior(userTask); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/behavior/mail/CustomMailActivityBehavior.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.behavior.mail; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.flowable.engine.impl.bpmn.behavior.MailActivityBehavior; 5 | 6 | @Slf4j 7 | public class CustomMailActivityBehavior extends MailActivityBehavior { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/behavior/usertask/CustomParallelMultiInstanceBehavior.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.behavior.usertask; 2 | 3 | import org.flowable.bpmn.model.Activity; 4 | import org.flowable.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; 5 | import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; 6 | 7 | public class CustomParallelMultiInstanceBehavior extends ParallelMultiInstanceBehavior { 8 | public CustomParallelMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior originalActivityBehavior) { 9 | super(activity, originalActivityBehavior); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/behavior/usertask/CustomSequentialMultiInstanceBehavior.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.behavior.usertask; 2 | 3 | import org.flowable.bpmn.model.Activity; 4 | import org.flowable.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; 5 | import org.flowable.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior; 6 | 7 | public class CustomSequentialMultiInstanceBehavior extends SequentialMultiInstanceBehavior { 8 | public CustomSequentialMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior innerActivityBehavior) { 9 | super(activity, innerActivityBehavior); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/converter/CustomBpmnJsonConverter.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.converter; 2 | 3 | import org.flowable.editor.language.json.converter.BpmnJsonConverter; 4 | 5 | /** 6 | * @Author: 土豆仙 7 | * @Date: 2021/6/27 0:27 8 | * @Description: 扩展配置 9 | */ 10 | public class CustomBpmnJsonConverter extends BpmnJsonConverter { 11 | static { 12 | MyUserTaskJsonConverter.customFillTypes(convertersToBpmnMap, convertersToJsonMap); 13 | MyCallActivityJsonConverter.customFillTypes(convertersToBpmnMap, convertersToJsonMap); 14 | MySubProcessJsonConverter.customFillTypes(convertersToBpmnMap, convertersToJsonMap); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/listener/task/idm/IdmCommonTaskListenerService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.listener.task.idm; 2 | 3 | import org.flowable.task.service.delegate.DelegateTask; 4 | 5 | public interface IdmCommonTaskListenerService { 6 | 7 | void setLastNodeAssignee(DelegateTask delegateTask); 8 | } 9 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/flowable/listener/task/interaction/TaskBusinessRabbitMqCallListener.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.flowable.listener.task.interaction; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.flowable.engine.ProcessEngine; 5 | import org.flowable.engine.delegate.TaskListener; 6 | import org.flowable.task.service.delegate.DelegateTask; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.stereotype.Component; 9 | 10 | @Component(value = "taskBusinessRabbitMqCallListener") 11 | @Slf4j 12 | public class TaskBusinessRabbitMqCallListener implements TaskListener { 13 | 14 | @Autowired 15 | private ProcessEngine processEngine; 16 | 17 | @Override 18 | public void notify(DelegateTask delegateTask) { 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/config/mybatis/ProcessTenantLineHandler.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.config.mybatis; 2 | 3 | import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; 4 | import lombok.extern.slf4j.Slf4j; 5 | import net.sf.jsqlparser.expression.Expression; 6 | 7 | @Slf4j 8 | public class ProcessTenantLineHandler implements TenantLineHandler { 9 | @Override 10 | public Expression getTenantId() { 11 | return null; 12 | } 13 | 14 | @Override 15 | public String getTenantIdColumn() { 16 | return null; 17 | } 18 | 19 | @Override 20 | public boolean ignoreTable(String tableName) { 21 | return false; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/controller/BaseController.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.controller; 2 | 3 | /** 4 | * @Author: 土豆仙 5 | * @Date: 2021/7/6 14:06 6 | * @Description: 通用接口 7 | */ 8 | public class BaseController { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/domain/dto/MigrationValidationProcessServiceDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | import javax.validation.constraints.NotBlank; 7 | 8 | @Data 9 | public class MigrationValidationProcessServiceDTO { 10 | 11 | /** 12 | * 流程实例ID 必填 13 | */ 14 | @ApiModelProperty(value = "流程实例ID", required = true) 15 | @NotBlank(message = "流程实例ID不能为空!") 16 | private String procInsId; 17 | 18 | /** 19 | * 新版本流程定义ID 必填 20 | */ 21 | @ApiModelProperty(value = "新版本流程定义ID", required = true) 22 | @NotBlank(message = "流程定义ID不能为空!") 23 | private String procDefId; 24 | } 25 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/domain/dto/ServiceReProcessDefinitionDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | 4 | import io.swagger.annotations.ApiModel; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | @Data 9 | @ApiModel("服务配置关联流程定义") 10 | public class ServiceReProcessDefinitionDTO { 11 | 12 | @ApiModelProperty("流程分类") 13 | private String category; 14 | 15 | @ApiModelProperty("流程key") 16 | private String key; 17 | 18 | @ApiModelProperty("流程名称") 19 | private String name; 20 | 21 | @ApiModelProperty("版本") 22 | private int version; 23 | 24 | @ApiModelProperty("流程定义id") 25 | private String id; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/domain/dto/WorkFlowGroupPageUserDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowUserDTO; 4 | import com.workflow.process.center.common.ResultBean; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | public class WorkFlowGroupPageUserDTO { 11 | 12 | //组类型=》角色、部门、区域 13 | private String groupType; 14 | 15 | //组名称 16 | private String groupName; 17 | 18 | //组key 19 | private String groupKey; 20 | 21 | //对应用户集合 22 | private ResultBean> resultBean; 23 | } 24 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/domain/dto/WorkFlowGroupUserDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowUserDTO; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class WorkFlowGroupUserDTO { 10 | 11 | //组类型=》角色、部门、区域 12 | private String groupType; 13 | 14 | //组名称 15 | private String groupName; 16 | 17 | //组key 18 | private String groupKey; 19 | 20 | //对应用户集合 21 | private List workFlowUserDTOS; 22 | } 23 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/domain/mongo/MongoBaseInfo.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.mongo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MongoBaseInfo { 7 | } 8 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/domain/mongo/MongoWorkFlowFormData.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.mongo; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MongoWorkFlowFormData { 7 | } 8 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/CommonSqlMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | @Mapper 10 | public interface CommonSqlMapper { 11 | 12 | List> queryColumns(String tableName); 13 | 14 | int insertOrUpadteMap(Map columnMap, String databaseName, String tableName); 15 | } 16 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowButtonMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowButton; 5 | 6 | /** 7 | * 流程按钮(WorkFlowButton)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-21 16:39:38 11 | */ 12 | public interface WorkFlowButtonMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowCategory; 5 | 6 | /** 7 | * 流程分类(WorkFlowCategory)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-21 15:59:40 11 | */ 12 | public interface WorkFlowCategoryMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowEmailMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowEmail; 5 | 6 | /** 7 | * 租户邮箱服务配置(WorkFlowEmail)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-09-06 10:58:03 11 | */ 12 | public interface WorkFlowEmailMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowExpressionMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowExpression; 5 | 6 | /** 7 | * 流程表达式(WorkFlowExpression)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-23 16:24:55 11 | */ 12 | public interface WorkFlowExpressionMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowExtendHisprocinstMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowExtendHisprocinst; 5 | 6 | /** 7 | * 流程引擎扩展表-主要记录流程实例运行状态(WorkFlowExtendHisprocinst)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-12 14:07:37 11 | */ 12 | public interface WorkFlowExtendHisprocinstMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowHiCommentMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowHiComment; 5 | 6 | /** 7 | * (WorkFlowHiComment)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-20 15:54:09 11 | */ 12 | public interface WorkFlowHiCommentMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowListenerMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowListener; 5 | 6 | /** 7 | * 流程监听器(WorkFlowListener)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-23 15:15:26 11 | */ 12 | public interface WorkFlowListenerMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowListenerParamMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowListenerParam; 5 | 6 | /** 7 | * 流程监听器(WorkFlowListenerParam)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-23 15:16:00 11 | */ 12 | public interface WorkFlowListenerParamMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowModelInfoMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelInfo; 5 | 6 | /** 7 | * (WorkFlowModelInfo)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-26 22:25:20 11 | */ 12 | public interface WorkFlowModelInfoMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowModelMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowModel; 5 | 6 | /** 7 | * 流程模型信息(WorkFlowModel)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-26 14:17:52 11 | */ 12 | public interface WorkFlowModelMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowModelReFormMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelReForm; 5 | 6 | /** 7 | * 流程模型关联表单(先只控制到表级读写权限=》后期再扩展到表内字段的读写权限)(WorkFlowModelReForm)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 09:59:10 11 | */ 12 | public interface WorkFlowModelReFormMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowModelReFormReActivityMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelReFormReActivity; 5 | 6 | /** 7 | * 节点对流程模型关联的表单的权限(WorkFlowModelReFormReActivity)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 09:59:36 11 | */ 12 | public interface WorkFlowModelReFormReActivityMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowServiceCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceCategory; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * 服务分类表(WorkFlowServiceCategory)表数据库访问层 11 | * 12 | * @author 土豆仙 13 | * @since 2021-07-03 09:34:00 14 | */ 15 | public interface WorkFlowServiceCategoryMapper extends BaseMapper { 16 | 17 | List listAllCategoryUnderCategoryId(@Param("serviceCategoryId") Integer serviceCategoryId); 18 | } 19 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowServiceCollectMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceCollect; 5 | 6 | /** 7 | * 服务收藏表(WorkFlowServiceCollect)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-03 09:34:31 11 | */ 12 | public interface WorkFlowServiceCollectMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowServiceGuideMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceGuide; 5 | 6 | /** 7 | * 服务指南配置(WorkFlowServiceGuide)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-03 09:34:58 11 | */ 12 | public interface WorkFlowServiceGuideMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowServiceMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 服务表(WorkFlowService)表数据库访问层 10 | * 11 | * @author 土豆仙 12 | * @since 2021-07-03 09:18:06 13 | */ 14 | public interface WorkFlowServiceMapper extends BaseMapper { 15 | 16 | List listAll(WorkFlowService workFlowService); 17 | } 18 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowServiceRelCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceRelCategory; 5 | 6 | /** 7 | * 服务与服务分类关联表-服务可以配置在多个分类下(WorkFlowServiceRelCategory)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-03 09:35:23 11 | */ 12 | public interface WorkFlowServiceRelCategoryMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowTenantMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowTenant; 5 | 6 | /** 7 | * (WorkFlowTenant)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-30 10:45:00 11 | */ 12 | public interface WorkFlowTenantMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/mapper/WorkFlowVariableMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.process.center.domain.entity.WorkFlowVariable; 5 | 6 | /** 7 | * (ActRuVariable)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-09-17 13:54:42 11 | */ 12 | public interface WorkFlowVariableMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/AuthService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.workflow.process.center.api.domain.LoginDTO; 4 | import com.workflow.process.center.domain.LoginUser; 5 | 6 | import java.util.Map; 7 | 8 | public interface AuthService { 9 | 10 | // Map createToken(LoginDTO loginDTO); 11 | 12 | //获取登录用户信息 13 | LoginUser getLoginUser(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/BussinessService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import java.util.Map; 4 | 5 | public interface BussinessService { 6 | 7 | Map findByProcessInstanceId(String processInstanceId); 8 | } 9 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/FileService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | public interface FileService { 6 | 7 | /** 8 | * 文件上传接口 9 | * 10 | * @param file 上传的文件 11 | * @return 访问地址 12 | * @throws Exception 13 | */ 14 | public String uploadFile(MultipartFile file) throws Exception; 15 | } 16 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/IDynamDubbo.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import java.util.Map; 4 | 5 | public interface IDynamDubbo { 6 | 7 | public Object invoke(String clazzName, String method, String version, String parameter); 8 | 9 | public Object invoke(String clazzName, String method, String version, Map parameter); 10 | 11 | public Object invoke(String clazzName, String method, String version, String[] parameters); 12 | } 13 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowAreaService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowAreaDTO; 4 | import com.workflow.process.center.common.ResultBean; 5 | 6 | import java.util.List; 7 | 8 | public interface WorkFlowAreaService { 9 | 10 | ResultBean> listAreas(WorkFlowAreaDTO workFlowAreaDTO); 11 | 12 | List deptTree(WorkFlowAreaDTO workFlowAreaDTO); 13 | 14 | /** 15 | * 根据区域key获取区域信息 16 | */ 17 | WorkFlowAreaDTO queryAreaByAreaKey(String areaKey); 18 | 19 | /** 20 | * 根据区域key获取上N级区域信息 21 | */ 22 | WorkFlowAreaDTO queryUpArea(String areaId, Integer stepSize); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowButtonService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowButton; 5 | 6 | /** 7 | * 流程按钮(WorkFlowButton)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-21 16:39:38 11 | */ 12 | public interface WorkFlowButtonService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowCategory; 5 | 6 | /** 7 | * 流程分类(WorkFlowCategory)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-21 15:59:47 11 | */ 12 | public interface WorkFlowCategoryService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowDeptService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowDeptDTO; 4 | import com.workflow.process.center.common.ResultBean; 5 | 6 | import java.util.List; 7 | 8 | public interface WorkFlowDeptService { 9 | 10 | ResultBean> listDepts(WorkFlowDeptDTO workFlowDeptDTO); 11 | 12 | List deptTree(WorkFlowDeptDTO workFlowDeptDTO); 13 | 14 | /** 15 | * 根据部门key获取部门信息 16 | */ 17 | WorkFlowDeptDTO queryDeptByDeptKey(String deptKey); 18 | 19 | /** 20 | * 根据部门key获取上N级部门信息 21 | */ 22 | WorkFlowDeptDTO queryUpDept(String deptId, Integer stepSize); 23 | } 24 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowEmailService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowEmail; 5 | 6 | /** 7 | * 租户邮箱服务配置(WorkFlowEmail)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-09-06 10:58:03 11 | */ 12 | public interface WorkFlowEmailService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowExpressionService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowExpression; 5 | 6 | /** 7 | * 流程表达式(WorkFlowExpression)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-23 16:24:55 11 | */ 12 | public interface WorkFlowExpressionService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowExtendHisprocinstService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowExtendHisprocinst; 5 | 6 | /** 7 | * 流程引擎扩展表-主要记录流程实例运行状态(WorkFlowExtendHisprocinst)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-12 14:07:37 11 | */ 12 | public interface WorkFlowExtendHisprocinstService extends IService { 13 | 14 | /** 15 | * 通过流程实例获取历史时的扩展信息 16 | * 17 | * @param processInstanceId 流程实例id 18 | * @return 19 | */ 20 | WorkFlowExtendHisprocinst findExtendHisprocinstByProcessInstanceId(String processInstanceId); 21 | } 22 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowFormDataService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.workflow.process.center.domain.mongo.MongoWorkFlowFormData; 4 | 5 | import java.util.Map; 6 | 7 | public interface WorkFlowFormDataService { 8 | 9 | MongoWorkFlowFormData getStartFormData(String processDefId); 10 | 11 | MongoWorkFlowFormData getTaskFormData(String taskId); 12 | 13 | MongoWorkFlowFormData getCompletedTaskFormData(String taskId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowGroupService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowUserDTO; 4 | import com.workflow.process.center.domain.dto.WorkFlowGroupPageUserDTO; 5 | import com.workflow.process.center.domain.dto.WorkFlowGroupUserDTO; 6 | 7 | import java.util.List; 8 | import java.util.Set; 9 | 10 | public interface WorkFlowGroupService { 11 | 12 | 13 | WorkFlowGroupUserDTO queryUsersByGroupKey(String groupKey); 14 | 15 | Set queryUsersByGroupKeys(List groupKeys); 16 | 17 | WorkFlowGroupPageUserDTO queryPageUsersByGroupKey(String groupKey, Integer pageIndex, Integer pageSize); 18 | 19 | Set generatorGroupKeys(Set areaKeys,Set deptKeys,Set roles); 20 | 21 | String generatorGroupKey(String areaKey, String deptKey, String roleKey); 22 | } 23 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowHiCommentService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowHiComment; 5 | 6 | /** 7 | * (WorkFlowHiComment)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-20 15:54:09 11 | */ 12 | public interface WorkFlowHiCommentService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowListenerParamService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowListenerParam; 5 | 6 | /** 7 | * 流程监听器(WorkFlowListenerParam)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-23 15:16:00 11 | */ 12 | public interface WorkFlowListenerParamService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowListenerService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowListener; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 流程监听器(WorkFlowListener)表服务接口 10 | * 11 | * @author 土豆仙 12 | * @since 2021-08-23 15:15:26 13 | */ 14 | public interface WorkFlowListenerService extends IService { 15 | 16 | boolean deleteByIds(List idList); 17 | } 18 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowModelInfoService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelInfo; 5 | 6 | /** 7 | * (WorkFlowModelInfo)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-26 22:25:20 11 | */ 12 | public interface WorkFlowModelInfoService extends IService { 13 | 14 | void insertOrUpdate(WorkFlowModelInfo workFlowModelInfo); 15 | } 16 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowModelReFormReActivityService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelReFormReActivity; 5 | 6 | /** 7 | * 节点对流程模型关联的表单的权限(WorkFlowModelReFormReActivity)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 09:59:36 11 | */ 12 | public interface WorkFlowModelReFormReActivityService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowModelReFormService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelReForm; 5 | 6 | /** 7 | * 流程模型关联表单(先只控制到表级读写权限=》后期再扩展到表内字段的读写权限)(WorkFlowModelReForm)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 09:59:11 11 | */ 12 | public interface WorkFlowModelReFormService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowModelService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowModel; 5 | import org.flowable.bpmn.model.BpmnModel; 6 | import org.flowable.engine.repository.Model; 7 | 8 | /** 9 | * 流程模型信息(WorkFlowModel)表服务接口 10 | * 11 | * @author 土豆仙 12 | * @since 2021-08-26 14:17:52 13 | */ 14 | public interface WorkFlowModelService extends IService { 15 | 16 | 17 | BpmnModel getBpmnModel(String modelId); 18 | } 19 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowRoleService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowDeptDTO; 4 | import com.workflow.process.center.api.domain.WorkFlowRoleDTO; 5 | import com.workflow.process.center.common.ResultBean; 6 | 7 | import java.util.List; 8 | 9 | public interface WorkFlowRoleService { 10 | 11 | ResultBean> listRoles(WorkFlowRoleDTO workFlowRoleDTO); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowServiceCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceCategory; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 服务分类表(WorkFlowServiceCategory)表服务接口 10 | * 11 | * @author 土豆仙 12 | * @since 2021-07-03 09:34:00 13 | */ 14 | public interface WorkFlowServiceCategoryService extends IService { 15 | 16 | List treeByCateGroyName(WorkFlowServiceCategory workFlowServiceCategory); 17 | 18 | List listAllCategoryUnderCategoryId(Integer serviceCategoryId); 19 | } 20 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowServiceCollectService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceCollect; 5 | 6 | /** 7 | * 服务收藏表(WorkFlowServiceCollect)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-03 09:34:31 11 | */ 12 | public interface WorkFlowServiceCollectService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowServiceGuideService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceGuide; 5 | 6 | /** 7 | * 服务指南配置(WorkFlowServiceGuide)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-03 09:34:58 11 | */ 12 | public interface WorkFlowServiceGuideService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowServiceRelCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceRelCategory; 5 | 6 | /** 7 | * 服务与服务分类关联表-服务可以配置在多个分类下(WorkFlowServiceRelCategory)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-03 09:35:24 11 | */ 12 | public interface WorkFlowServiceRelCategoryService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowServiceService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * 服务表(WorkFlowService)表服务接口 10 | * 11 | * @author 土豆仙 12 | * @since 2021-07-03 09:18:06 13 | */ 14 | public interface WorkFlowServiceService extends IService { 15 | 16 | List listAllServiceUnderCategory(WorkFlowService workFlowService); 17 | 18 | List listAll(WorkFlowService workFlowService); 19 | } 20 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowTenantService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowTenant; 5 | 6 | /** 7 | * (WorkFlowTenant)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-06-30 10:45:03 11 | */ 12 | public interface WorkFlowTenantService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/WorkFlowVariableService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.process.center.domain.entity.WorkFlowVariable; 5 | 6 | /** 7 | * (ActRuVariable)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-09-17 13:54:42 11 | */ 12 | public interface WorkFlowVariableService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/cmd/jump/JumpCmd.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.cmd.jump; 2 | 3 | import org.flowable.common.engine.impl.interceptor.Command; 4 | import org.flowable.common.engine.impl.interceptor.CommandContext; 5 | 6 | public class JumpCmd implements Command { 7 | 8 | @Override 9 | public Void execute(CommandContext commandContext) { 10 | return null; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/cmd/rollback/RollbackStrategyFactory.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.cmd.rollback; 2 | 3 | import org.flowable.task.api.history.HistoricTaskInstance; 4 | 5 | /** 6 | * @Author: 土豆仙 7 | * @Date: 2021/7/16 19:25 8 | * @Description: 回撤工厂类-考虑流程当前运行状态不同,撤回逻辑不同=》使用策略+模板模式 9 | */ 10 | public interface RollbackStrategyFactory { 11 | /** 12 | * 创建回滚策略 13 | * @param hisTask 14 | * @return 15 | */ 16 | RollbackOperateStrategy createStrategy(HistoricTaskInstance hisTask); 17 | 18 | /** 19 | * 当前任务未完成判定 20 | * @param template 21 | * @return 22 | */ 23 | boolean currentMultiInstanceTaskUnfinished(RollbackParams template); 24 | } 25 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/dubbo/BussinessServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.dubbo; 2 | 3 | import com.workflow.process.center.service.BussinessService; 4 | import org.springframework.stereotype.Component; 5 | 6 | import java.util.HashMap; 7 | import java.util.Map; 8 | 9 | @Component 10 | public class BussinessServiceImpl implements BussinessService { 11 | @Override 12 | public Map findByProcessInstanceId(String processInstanceId) { 13 | HashMap map = new HashMap<>(); 14 | map.put("days", 3); 15 | return map; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowButtonServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowButton; 5 | import com.workflow.process.center.mapper.WorkFlowButtonMapper; 6 | import com.workflow.process.center.service.WorkFlowButtonService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 流程按钮(WorkFlowButton)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-06-21 16:39:38 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowButtonServiceImpl extends ServiceImpl implements WorkFlowButtonService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowCategoryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowCategory; 5 | import com.workflow.process.center.mapper.WorkFlowCategoryMapper; 6 | import com.workflow.process.center.service.WorkFlowCategoryService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 流程分类(WorkFlowCategory)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-06-21 15:59:48 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowCategoryServiceImpl extends ServiceImpl implements WorkFlowCategoryService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowEmailServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowEmail; 5 | import com.workflow.process.center.mapper.WorkFlowEmailMapper; 6 | import com.workflow.process.center.service.WorkFlowEmailService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 租户邮箱服务配置(WorkFlowEmail)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-09-06 10:58:04 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowEmailServiceImpl extends ServiceImpl implements WorkFlowEmailService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowExpressionServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowExpression; 5 | import com.workflow.process.center.mapper.WorkFlowExpressionMapper; 6 | import com.workflow.process.center.service.WorkFlowExpressionService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 流程表达式(WorkFlowExpression)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-08-23 16:24:55 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowExpressionServiceImpl extends ServiceImpl implements WorkFlowExpressionService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowHiCommentServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowHiComment; 5 | import com.workflow.process.center.mapper.WorkFlowHiCommentMapper; 6 | import com.workflow.process.center.service.WorkFlowHiCommentService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * (WorkFlowHiComment)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-20 15:54:09 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowHiCommentServiceImpl extends ServiceImpl implements WorkFlowHiCommentService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowListenerParamServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowListenerParam; 5 | import com.workflow.process.center.mapper.WorkFlowListenerParamMapper; 6 | import com.workflow.process.center.service.WorkFlowListenerParamService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 流程监听器(WorkFlowListenerParam)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-08-23 15:16:00 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowListenerParamServiceImpl extends ServiceImpl implements WorkFlowListenerParamService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowModelReFormReActivityServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelReFormReActivity; 5 | import com.workflow.process.center.mapper.WorkFlowModelReFormReActivityMapper; 6 | import com.workflow.process.center.service.WorkFlowModelReFormReActivityService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 节点对流程模型关联的表单的权限(WorkFlowModelReFormReActivity)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-29 09:59:36 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowModelReFormReActivityServiceImpl extends ServiceImpl implements WorkFlowModelReFormReActivityService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowModelReFormServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowModelReForm; 5 | import com.workflow.process.center.mapper.WorkFlowModelReFormMapper; 6 | import com.workflow.process.center.service.WorkFlowModelReFormService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 流程模型关联表单(先只控制到表级读写权限=》后期再扩展到表内字段的读写权限)(WorkFlowModelReForm)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-29 09:59:11 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowModelReFormServiceImpl extends ServiceImpl implements WorkFlowModelReFormService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowServiceCollectServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceCollect; 5 | import com.workflow.process.center.mapper.WorkFlowServiceCollectMapper; 6 | import com.workflow.process.center.service.WorkFlowServiceCollectService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 服务收藏表(WorkFlowServiceCollect)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-03 09:34:31 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowServiceCollectServiceImpl extends ServiceImpl implements WorkFlowServiceCollectService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowServiceGuideServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceGuide; 5 | import com.workflow.process.center.mapper.WorkFlowServiceGuideMapper; 6 | import com.workflow.process.center.service.WorkFlowServiceGuideService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 服务指南配置(WorkFlowServiceGuide)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-03 09:34:58 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowServiceGuideServiceImpl extends ServiceImpl implements WorkFlowServiceGuideService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowServiceRelCategoryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowServiceRelCategory; 5 | import com.workflow.process.center.mapper.WorkFlowServiceRelCategoryMapper; 6 | import com.workflow.process.center.service.WorkFlowServiceRelCategoryService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 服务与服务分类关联表-服务可以配置在多个分类下(WorkFlowServiceRelCategory)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-03 09:35:24 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowServiceRelCategoryServiceImpl extends ServiceImpl implements WorkFlowServiceRelCategoryService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowTenantServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowTenant; 5 | import com.workflow.process.center.mapper.WorkFlowTenantMapper; 6 | import com.workflow.process.center.service.WorkFlowTenantService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * (WorkFlowTenant)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-06-30 10:45:03 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowTenantServiceImpl extends ServiceImpl implements WorkFlowTenantService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/java/com/workflow/process/center/service/impl/WorkFlowVariableServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.process.center.domain.entity.WorkFlowVariable; 5 | import com.workflow.process.center.mapper.WorkFlowVariableMapper; 6 | import com.workflow.process.center.service.WorkFlowVariableService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * (WorkFlowVariableDTO)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-09-17 13:54:42 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowVariableServiceImpl extends ServiceImpl implements WorkFlowVariableService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-center/src/main/resources/lua/distributedLock.lua: -------------------------------------------------------------------------------- 1 | local key = KEYS[1] 2 | local value = ARGV[1] 3 | local expire = ARGV[2] 4 | 5 | if redis.call("SET", key, value, "NX", "EX", expire) then 6 | return 1 7 | --ttl当 key 存在但没有设置剩余生存时间时,返回 -1 8 | elseif redis.call("TTL", key) == -1 then 9 | --设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 10 | redis.call("EXPIRE", key, expire) 11 | end 12 | return 0 13 | 14 | 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/resources/lua/releaseLock.lua: -------------------------------------------------------------------------------- 1 | local key = KEYS[1] 2 | local value = ARGV[1] 3 | 4 | 5 | local val_ = redis.call("GET", key); 6 | 7 | if val_ == nil then 8 | return 1 9 | elseif val_ == value then 10 | if redis.call("DEL", key) then 11 | return 1 12 | end 13 | end 14 | return 0 15 | -------------------------------------------------------------------------------- /workflow-center/src/main/resources/mapper/WorkFlowCategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /workflow-center/src/main/resources/mapper/WorkFlowServiceRelCategoryMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/annotation/DataScope.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 数据权限过滤注解 11 | * 12 | * @author workflow 13 | */ 14 | @Target(ElementType.METHOD) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Documented 17 | public @interface DataScope 18 | { 19 | /** 20 | * 部门表的别名 21 | */ 22 | public String deptAlias() default ""; 23 | 24 | /** 25 | * 用户表的别名 26 | */ 27 | public String userAlias() default ""; 28 | } 29 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/annotation/DataSource.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | import com.workflow.common.enums.DataSourceType; 10 | 11 | /** 12 | * 自定义多数据源切换注解 13 | * 14 | * 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准 15 | * 16 | * @author workflow 17 | */ 18 | @Target({ ElementType.METHOD, ElementType.TYPE }) 19 | @Retention(RetentionPolicy.RUNTIME) 20 | @Documented 21 | @Inherited 22 | public @interface DataSource 23 | { 24 | /** 25 | * 切换数据源名称 26 | */ 27 | public DataSourceType value() default DataSourceType.MASTER; 28 | } 29 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/annotation/Excels.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Excel注解集 10 | * 11 | * @author workflow 12 | */ 13 | @Target(ElementType.FIELD) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface Excels 16 | { 17 | public Excel[] value(); 18 | } 19 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/annotation/RepeatSubmit.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 自定义注解防止表单重复提交 12 | * 13 | * @author workflow 14 | * 15 | */ 16 | @Inherited 17 | @Target(ElementType.METHOD) 18 | @Retention(RetentionPolicy.RUNTIME) 19 | @Documented 20 | public @interface RepeatSubmit 21 | { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/core/domain/model/RegisterBody.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.core.domain.model; 2 | 3 | /** 4 | * 用户注册对象 5 | * 6 | * @author workflow 7 | */ 8 | public class RegisterBody extends LoginBody 9 | { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/BusinessStatus.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | /** 4 | * 操作状态 5 | * 6 | * @author workflow 7 | * 8 | */ 9 | public enum BusinessStatus 10 | { 11 | /** 12 | * 成功 13 | */ 14 | SUCCESS, 15 | 16 | /** 17 | * 失败 18 | */ 19 | FAIL, 20 | } 21 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/BusinessType.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | /** 4 | * 业务操作类型 5 | * 6 | * @author workflow 7 | */ 8 | public enum BusinessType 9 | { 10 | /** 11 | * 其它 12 | */ 13 | OTHER, 14 | 15 | /** 16 | * 新增 17 | */ 18 | INSERT, 19 | 20 | /** 21 | * 修改 22 | */ 23 | UPDATE, 24 | 25 | /** 26 | * 删除 27 | */ 28 | DELETE, 29 | 30 | /** 31 | * 授权 32 | */ 33 | GRANT, 34 | 35 | /** 36 | * 导出 37 | */ 38 | EXPORT, 39 | 40 | /** 41 | * 导入 42 | */ 43 | IMPORT, 44 | 45 | /** 46 | * 强退 47 | */ 48 | FORCE, 49 | 50 | /** 51 | * 生成代码 52 | */ 53 | GENCODE, 54 | 55 | /** 56 | * 清空数据 57 | */ 58 | CLEAN, 59 | } 60 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/DataSourceType.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | /** 4 | * 数据源 5 | * 6 | * @author workflow 7 | */ 8 | public enum DataSourceType 9 | { 10 | /** 11 | * 主库 12 | */ 13 | MASTER, 14 | 15 | /** 16 | * 从库 17 | */ 18 | SLAVE 19 | } 20 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/HttpMethod.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | import org.springframework.lang.Nullable; 6 | 7 | /** 8 | * 请求方式 9 | * 10 | * @author workflow 11 | */ 12 | public enum HttpMethod 13 | { 14 | GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; 15 | 16 | private static final Map mappings = new HashMap<>(16); 17 | 18 | static 19 | { 20 | for (HttpMethod httpMethod : values()) 21 | { 22 | mappings.put(httpMethod.name(), httpMethod); 23 | } 24 | } 25 | 26 | @Nullable 27 | public static HttpMethod resolve(@Nullable String method) 28 | { 29 | return (method != null ? mappings.get(method) : null); 30 | } 31 | 32 | public boolean matches(String method) 33 | { 34 | return (this == resolve(method)); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/LimitType.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | /** 4 | * 限流类型 5 | * 6 | * @author workflow 7 | */ 8 | 9 | public enum LimitType 10 | { 11 | /** 12 | * 默认策略全局限流 13 | */ 14 | DEFAULT, 15 | 16 | /** 17 | * 根据请求者IP进行限流 18 | */ 19 | IP 20 | } 21 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/OperatorType.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | /** 4 | * 操作人类别 5 | * 6 | * @author workflow 7 | */ 8 | public enum OperatorType 9 | { 10 | /** 11 | * 其它 12 | */ 13 | OTHER, 14 | 15 | /** 16 | * 后台用户 17 | */ 18 | MANAGE, 19 | 20 | /** 21 | * 手机端用户 22 | */ 23 | MOBILE 24 | } 25 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/enums/UserStatus.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.enums; 2 | 3 | /** 4 | * 用户状态 5 | * 6 | * @author workflow 7 | */ 8 | public enum UserStatus 9 | { 10 | OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); 11 | 12 | private final String code; 13 | private final String info; 14 | 15 | UserStatus(String code, String info) 16 | { 17 | this.code = code; 18 | this.info = info; 19 | } 20 | 21 | public String getCode() 22 | { 23 | return code; 24 | } 25 | 26 | public String getInfo() 27 | { 28 | return info; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/DemoModeException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception; 2 | 3 | /** 4 | * 演示模式异常 5 | * 6 | * @author workflow 7 | */ 8 | public class DemoModeException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public DemoModeException() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/UtilException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception; 2 | 3 | /** 4 | * 工具类异常 5 | * 6 | * @author workflow 7 | */ 8 | public class UtilException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 8247610319171014183L; 11 | 12 | public UtilException(Throwable e) 13 | { 14 | super(e.getMessage(), e); 15 | } 16 | 17 | public UtilException(String message) 18 | { 19 | super(message); 20 | } 21 | 22 | public UtilException(String message, Throwable throwable) 23 | { 24 | super(message, throwable); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/file/FileException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.file; 2 | 3 | import com.workflow.common.exception.base.BaseException; 4 | 5 | /** 6 | * 文件信息异常类 7 | * 8 | * @author workflow 9 | */ 10 | public class FileException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public FileException(String code, Object[] args) 15 | { 16 | super("file", code, args, null); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/file/FileNameLengthLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.file; 2 | 3 | /** 4 | * 文件名称超长限制异常类 5 | * 6 | * @author workflow 7 | */ 8 | public class FileNameLengthLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileNameLengthLimitExceededException(int defaultFileNameLength) 13 | { 14 | super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/file/FileSizeLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.file; 2 | 3 | /** 4 | * 文件名大小限制异常类 5 | * 6 | * @author workflow 7 | */ 8 | public class FileSizeLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileSizeLimitExceededException(long defaultMaxSize) 13 | { 14 | super("upload.exceed.maxSize", new Object[] { defaultMaxSize }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/job/TaskException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.job; 2 | 3 | /** 4 | * 计划策略异常 5 | * 6 | * @author workflow 7 | */ 8 | public class TaskException extends Exception 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | private Code code; 13 | 14 | public TaskException(String msg, Code code) 15 | { 16 | this(msg, code, null); 17 | } 18 | 19 | public TaskException(String msg, Code code, Exception nestedEx) 20 | { 21 | super(msg, nestedEx); 22 | this.code = code; 23 | } 24 | 25 | public Code getCode() 26 | { 27 | return code; 28 | } 29 | 30 | public enum Code 31 | { 32 | TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE 33 | } 34 | } -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/user/CaptchaException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.user; 2 | 3 | /** 4 | * 验证码错误异常类 5 | * 6 | * @author workflow 7 | */ 8 | public class CaptchaException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CaptchaException() 13 | { 14 | super("user.jcaptcha.error", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/user/CaptchaExpireException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.user; 2 | 3 | /** 4 | * 验证码失效异常类 5 | * 6 | * @author workflow 7 | */ 8 | public class CaptchaExpireException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CaptchaExpireException() 13 | { 14 | super("user.jcaptcha.expire", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/user/UserException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.user; 2 | 3 | import com.workflow.common.exception.base.BaseException; 4 | 5 | /** 6 | * 用户信息异常类 7 | * 8 | * @author workflow 9 | */ 10 | public class UserException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public UserException(String code, Object[] args) 15 | { 16 | super("user", code, args, null); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/exception/user/UserPasswordNotMatchException.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.exception.user; 2 | 3 | /** 4 | * 用户密码不正确或不符合规范异常类 5 | * 6 | * @author workflow 7 | */ 8 | public class UserPasswordNotMatchException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordNotMatchException() 13 | { 14 | super("user.password.not.match", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/utils/LogUtils.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.utils; 2 | 3 | /** 4 | * 处理并记录日志文件 5 | * 6 | * @author workflow 7 | */ 8 | public class LogUtils 9 | { 10 | public static String getBlock(Object msg) 11 | { 12 | if (msg == null) 13 | { 14 | msg = ""; 15 | } 16 | return "[" + msg.toString() + "]"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /workflow-common/src/main/java/com/workflow/common/utils/MessageUtils.java: -------------------------------------------------------------------------------- 1 | package com.workflow.common.utils; 2 | 3 | import org.springframework.context.MessageSource; 4 | import org.springframework.context.i18n.LocaleContextHolder; 5 | import com.workflow.common.utils.spring.SpringUtils; 6 | 7 | /** 8 | * 获取i18n资源文件 9 | * 10 | * @author workflow 11 | */ 12 | public class MessageUtils 13 | { 14 | /** 15 | * 根据消息键和参数 获取消息 委托给spring messageSource 16 | * 17 | * @param code 消息键 18 | * @param args 参数 19 | * @return 获取国际化翻译值 20 | */ 21 | public static String message(String code, Object... args) 22 | { 23 | MessageSource messageSource = SpringUtils.getBean(MessageSource.class); 24 | return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /workflow-form/.gitignore: -------------------------------------------------------------------------------- 1 | README.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | 35 | mvnw.cmd 36 | .mvn 37 | 38 | logs 39 | mvn 40 | 41 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/mapper/DictDataMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.form.center.domain.entity.DictData; 5 | 6 | /** 7 | * 字典数据表(DictData)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-10 14:35:42 11 | */ 12 | public interface DictDataMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/mapper/DictTypeMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.form.center.domain.entity.DictType; 5 | 6 | /** 7 | * 字典类型表(DictType)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-10 14:34:59 11 | */ 12 | public interface DictTypeMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/mapper/WorkFlowFormCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormCategory; 5 | 6 | /** 7 | * 表单分类表(WorkFlowFormCategory)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 10:54:24 11 | */ 12 | public interface WorkFlowFormCategoryMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/mapper/WorkFlowFormModelInfoMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormModelInfo; 5 | 6 | /** 7 | * 表单模型信息表(WorkFlowFormModelInfo)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 10:55:18 11 | */ 12 | public interface WorkFlowFormModelInfoMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/mapper/WorkFlowFormModelMapper.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormModel; 5 | 6 | /** 7 | * 自定义表单模型表(WorkFlowFormModel)表数据库访问层 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 10:54:57 11 | */ 12 | public interface WorkFlowFormModelMapper extends BaseMapper { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/DictDataService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.form.center.domain.entity.DictData; 5 | 6 | /** 7 | * 字典数据表(DictData)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-10 14:35:42 11 | */ 12 | public interface DictDataService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/DictTypeService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.form.center.domain.entity.DictType; 5 | 6 | /** 7 | * 字典类型表(DictType)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-08-10 14:34:59 11 | */ 12 | public interface DictTypeService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/WorkFlowFormCategoryService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormCategory; 5 | 6 | /** 7 | * 表单分类表(WorkFlowFormCategory)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 10:54:24 11 | */ 12 | public interface WorkFlowFormCategoryService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/WorkFlowFormModelInfoService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormModelInfo; 5 | 6 | /** 7 | * 表单模型信息表(WorkFlowFormModelInfo)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 10:55:18 11 | */ 12 | public interface WorkFlowFormModelInfoService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/WorkFlowFormModelService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormModel; 5 | 6 | /** 7 | * 自定义表单模型表(WorkFlowFormModel)表服务接口 8 | * 9 | * @author 土豆仙 10 | * @since 2021-07-29 10:54:57 11 | */ 12 | public interface WorkFlowFormModelService extends IService { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/impl/DictDataServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.form.center.domain.entity.DictData; 5 | import com.workflow.form.center.mapper.DictDataMapper; 6 | import com.workflow.form.center.service.DictDataService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 字典数据表(DictData)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-08-10 14:35:42 15 | */ 16 | @Slf4j 17 | @Service 18 | public class DictDataServiceImpl extends ServiceImpl implements DictDataService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/impl/DictTypeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.form.center.domain.entity.DictType; 5 | import com.workflow.form.center.mapper.DictTypeMapper; 6 | import com.workflow.form.center.service.DictTypeService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 字典类型表(DictType)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-08-10 14:34:59 15 | */ 16 | @Slf4j 17 | @Service 18 | public class DictTypeServiceImpl extends ServiceImpl implements DictTypeService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/impl/WorkFlowFormCategoryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormCategory; 5 | import com.workflow.form.center.mapper.WorkFlowFormCategoryMapper; 6 | import com.workflow.form.center.service.WorkFlowFormCategoryService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 表单分类表(WorkFlowFormCategory)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-29 10:54:25 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowFormCategoryServiceImpl extends ServiceImpl implements WorkFlowFormCategoryService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/impl/WorkFlowFormModelInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormModelInfo; 5 | import com.workflow.form.center.mapper.WorkFlowFormModelInfoMapper; 6 | import com.workflow.form.center.service.WorkFlowFormModelInfoService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 表单模型信息表(WorkFlowFormModelInfo)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-29 10:55:18 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowFormModelInfoServiceImpl extends ServiceImpl implements WorkFlowFormModelInfoService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-form/src/main/java/com/workflow/form/center/service/impl/WorkFlowFormModelServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.workflow.form.center.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.workflow.form.center.domain.entity.WorkFlowFormModel; 5 | import com.workflow.form.center.mapper.WorkFlowFormModelMapper; 6 | import com.workflow.form.center.service.WorkFlowFormModelService; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * 自定义表单模型表(WorkFlowFormModel)表服务实现类 12 | * 13 | * @author 土豆仙 14 | * @since 2021-07-29 10:54:57 15 | */ 16 | @Slf4j 17 | @Service 18 | public class WorkFlowFormModelServiceImpl extends ServiceImpl implements WorkFlowFormModelService { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-form/src/main/resources/mapper/DictTypeMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /workflow-form/src/main/resources/spy.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-form/src/main/resources/spy.properties -------------------------------------------------------------------------------- /workflow-form/src/test/java/com/cci/formcenter/FormCenterApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.cci.formcenter; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class FormCenterApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /workflow-framework/src/main/java/com/workflow/framework/datasource/DynamicDataSource.java: -------------------------------------------------------------------------------- 1 | package com.workflow.framework.datasource; 2 | 3 | import java.util.Map; 4 | import javax.sql.DataSource; 5 | import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; 6 | 7 | /** 8 | * 动态数据源 9 | * 10 | * @author workflow 11 | */ 12 | public class DynamicDataSource extends AbstractRoutingDataSource 13 | { 14 | public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) 15 | { 16 | super.setDefaultTargetDataSource(defaultTargetDataSource); 17 | super.setTargetDataSources(targetDataSources); 18 | super.afterPropertiesSet(); 19 | } 20 | 21 | @Override 22 | protected Object determineCurrentLookupKey() 23 | { 24 | return DynamicDataSourceContextHolder.getDataSourceType(); 25 | } 26 | } -------------------------------------------------------------------------------- /workflow-generator/src/main/resources/generator.yml: -------------------------------------------------------------------------------- 1 | # 代码生成 2 | gen: 3 | # 作者 4 | author: workflow 5 | # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool 6 | packageName: com.workflow.system 7 | # 自动去除表前缀,默认是false 8 | autoRemovePre: false 9 | # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) 10 | tablePrefix: sys_ -------------------------------------------------------------------------------- /workflow-idm-api/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | !**/src/main/**/target/ 4 | !**/src/test/**/target/ 5 | 6 | ### STS ### 7 | .apt_generated 8 | .classpath 9 | .factorypath 10 | .project 11 | .settings 12 | .springBeans 13 | .sts4-cache 14 | 15 | ### IntelliJ IDEA ### 16 | .idea 17 | *.iws 18 | *.iml 19 | *.ipr 20 | *.mvnw 21 | *.mvnw.cmd 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | 35 | 36 | *.mvnw 37 | *.mvnw.cmd 38 | 39 | ###日志 40 | logs/ -------------------------------------------------------------------------------- /workflow-idm-api/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-idm-api/README.md -------------------------------------------------------------------------------- /workflow-idm-api/src/main/java/com/workflow/process/center/api/AreaService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.api; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowAreaDTO; 4 | import com.workflow.process.center.common.ResultBean; 5 | 6 | import java.util.List; 7 | 8 | public interface AreaService { 9 | 10 | /** 11 | * 获取区域列表 12 | */ 13 | public ResultBean> listAreas(WorkFlowAreaDTO workFlowAreaDTO); 14 | 15 | /** 16 | * 根据区域key获取部门信息 17 | */ 18 | ResultBean queryGroupByKey(String areaKey); 19 | } 20 | -------------------------------------------------------------------------------- /workflow-idm-api/src/main/java/com/workflow/process/center/api/DeptService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.api; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowDeptDTO; 4 | import com.workflow.process.center.common.ResultBean; 5 | 6 | import java.util.List; 7 | 8 | public interface DeptService { 9 | 10 | /** 11 | * 获取部门列表 12 | */ 13 | public ResultBean> listDepts(WorkFlowDeptDTO workFlowDeptDTO); 14 | 15 | /** 16 | * 根据部门key获取部门信息 17 | */ 18 | ResultBean queryGroupByKey(String deptKey); 19 | } 20 | -------------------------------------------------------------------------------- /workflow-idm-api/src/main/java/com/workflow/process/center/api/LoginInfoService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.api; 2 | 3 | import com.workflow.process.center.api.domain.LoginDTO; 4 | import com.workflow.process.center.domain.LoginUser; 5 | 6 | import java.util.Map; 7 | 8 | public interface LoginInfoService { 9 | 10 | //授权token放在变量access_token中 11 | //Map createToken(LoginDTO loginDTO); 12 | 13 | public LoginUser getLoginUser(String token); 14 | } 15 | -------------------------------------------------------------------------------- /workflow-idm-api/src/main/java/com/workflow/process/center/api/RoleService.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.api; 2 | 3 | import com.workflow.process.center.api.domain.WorkFlowRoleDTO; 4 | import com.workflow.process.center.common.ResultBean; 5 | 6 | import java.util.List; 7 | 8 | public interface RoleService { 9 | 10 | /** 11 | * 获取角色列表 12 | */ 13 | public ResultBean> listRoles(WorkFlowRoleDTO workFlowRoleDTO); 14 | 15 | /** 16 | * 根据角色key获取角色名 17 | */ 18 | public ResultBean queryGroupByKey(String roleKey); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /workflow-process-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | workflow 7 | com.workflow 8 | 3.6.0 9 | 10 | 4.0.0 11 | 12 | workflow-process-common 13 | pom 14 | 15 | workflow-process-common-pojo 16 | workflow-process-idm-pojo 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /workflow-process-common/workflow-process-common-pojo/src/main/java/com/workflow/process/center/domain/dto/BaseQueryDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.domain.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class BaseQueryDTO implements Serializable { 9 | 10 | private Integer pageIndex =1; 11 | 12 | private Integer pageSize =10; 13 | } 14 | -------------------------------------------------------------------------------- /workflow-process-common/workflow-process-idm-pojo/src/main/java/com/workflow/process/center/api/domain/LoginDTO.java: -------------------------------------------------------------------------------- 1 | package com.workflow.process.center.api.domain; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | import java.io.Serializable; 7 | 8 | @Data 9 | public class LoginDTO implements Serializable { 10 | 11 | @NotBlank(message = "账号不能为空!") 12 | private String username; 13 | 14 | @NotBlank(message = "密码不能为空!") 15 | private String password; 16 | } 17 | -------------------------------------------------------------------------------- /workflow-quartz/src/main/java/com/workflow/quartz/task/RyTask.java: -------------------------------------------------------------------------------- 1 | package com.workflow.quartz.task; 2 | 3 | import org.springframework.stereotype.Component; 4 | import com.workflow.common.utils.StringUtils; 5 | 6 | /** 7 | * 定时任务调度测试 8 | * 9 | * @author workflow 10 | */ 11 | @Component("ryTask") 12 | public class RyTask 13 | { 14 | public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) 15 | { 16 | System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); 17 | } 18 | 19 | public void ryParams(String params) 20 | { 21 | System.out.println("执行有参方法:" + params); 22 | } 23 | 24 | public void ryNoParams() 25 | { 26 | System.out.println("执行无参方法"); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /workflow-quartz/src/main/java/com/workflow/quartz/util/QuartzDisallowConcurrentExecution.java: -------------------------------------------------------------------------------- 1 | package com.workflow.quartz.util; 2 | 3 | import org.quartz.DisallowConcurrentExecution; 4 | import org.quartz.JobExecutionContext; 5 | import com.workflow.quartz.domain.entity.SysJob; 6 | 7 | /** 8 | * 定时任务处理(禁止并发执行) 9 | * 10 | * @author workflow 11 | * 12 | */ 13 | @DisallowConcurrentExecution 14 | public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob 15 | { 16 | @Override 17 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception 18 | { 19 | JobInvokeUtil.invokeMethod(sysJob); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /workflow-quartz/src/main/java/com/workflow/quartz/util/QuartzJobExecution.java: -------------------------------------------------------------------------------- 1 | package com.workflow.quartz.util; 2 | 3 | import org.quartz.JobExecutionContext; 4 | import com.workflow.quartz.domain.entity.SysJob; 5 | 6 | /** 7 | * 定时任务处理(允许并发执行) 8 | * 9 | * @author workflow 10 | * 11 | */ 12 | public class QuartzJobExecution extends AbstractQuartzJob 13 | { 14 | @Override 15 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception 16 | { 17 | JobInvokeUtil.invokeMethod(sysJob); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /workflow-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # 告诉EditorConfig插件,这是根文件,不用继续往上查找 2 | root = true 3 | 4 | # 匹配全部文件 5 | [*] 6 | # 设置字符集 7 | charset = utf-8 8 | # 缩进风格,可选space、tab 9 | indent_style = space 10 | # 缩进的空格数 11 | indent_size = 2 12 | # 结尾换行符,可选lf、cr、crlf 13 | end_of_line = lf 14 | # 在文件结尾插入新行 15 | insert_final_newline = true 16 | # 删除一行中的前后空格 17 | trim_trailing_whitespace = true 18 | 19 | # 匹配md结尾的文件 20 | [*.md] 21 | insert_final_newline = false 22 | trim_trailing_whitespace = false 23 | -------------------------------------------------------------------------------- /workflow-ui/.env.development: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VUE_APP_TITLE = 流程引擎管理系统 3 | 4 | # 开发环境配置 5 | ENV = 'development' 6 | 7 | # 流程引擎管理系统/开发环境 8 | VUE_APP_BASE_API = '/dev-api' 9 | 10 | # 路由懒加载 11 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 12 | -------------------------------------------------------------------------------- /workflow-ui/.env.production: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VUE_APP_TITLE = 流程引擎管理系统 3 | 4 | # 生产环境配置 5 | ENV = 'production' 6 | 7 | # 流程引擎管理系统/生产环境 8 | VUE_APP_BASE_API = '/prod-api' 9 | -------------------------------------------------------------------------------- /workflow-ui/.env.staging: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VUE_APP_TITLE = 流程引擎管理系统 3 | 4 | NODE_ENV = production 5 | 6 | # 测试环境配置 7 | ENV = 'staging' 8 | 9 | # 流程引擎管理系统/测试环境 10 | VUE_APP_BASE_API = '/stage-api' 11 | -------------------------------------------------------------------------------- /workflow-ui/.eslintignore: -------------------------------------------------------------------------------- 1 | # 忽略build目录下类型为js的文件的语法检查 2 | build/*.js 3 | # 忽略src/assets目录下文件的语法检查 4 | src/assets 5 | # 忽略public目录下文件的语法检查 6 | public 7 | # 忽略当前目录下为js的文件的语法检查 8 | *.js 9 | # 忽略当前目录下为vue的文件的语法检查 10 | *.vue -------------------------------------------------------------------------------- /workflow-ui/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | **/*.log 8 | 9 | tests/**/coverage/ 10 | tests/e2e/reports 11 | selenium-debug.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.local 21 | 22 | package-lock.json 23 | yarn.lock 24 | -------------------------------------------------------------------------------- /workflow-ui/README.md: -------------------------------------------------------------------------------- 1 | ## 开发 2 | 3 | ```bash 4 | # 克隆项目 5 | git clone https://gitee.com/y_project/workflow-Vue 6 | 7 | # 进入项目目录 8 | cd workflow-ui 9 | 10 | # 安装依赖 11 | npm install 12 | 13 | # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 14 | npm install --registry=https://registry.npm.taobao.org 15 | 16 | # 启动服务 17 | npm run dev 18 | ``` 19 | 20 | 浏览器访问 http://localhost:80 21 | 22 | ## 发布 23 | 24 | ```bash 25 | # 构建测试环境 26 | npm run build:stage 27 | 28 | # 构建生产环境 29 | npm run build:prod 30 | ``` -------------------------------------------------------------------------------- /workflow-ui/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app 4 | '@vue/cli-plugin-babel/preset' 5 | ], 6 | 'env': { 7 | 'development': { 8 | // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). 9 | // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. 10 | 'plugins': ['dynamic-import-node'] 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /workflow-ui/bin/build.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/bin/build.bat -------------------------------------------------------------------------------- /workflow-ui/bin/package.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/bin/package.bat -------------------------------------------------------------------------------- /workflow-ui/bin/run-web.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/bin/run-web.bat -------------------------------------------------------------------------------- /workflow-ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/public/favicon.ico -------------------------------------------------------------------------------- /workflow-ui/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / -------------------------------------------------------------------------------- /workflow-ui/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 20 | -------------------------------------------------------------------------------- /workflow-ui/src/api/dict.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | // 字典项-分类 3 | export function getCategoryDict() { 4 | return request({ 5 | url: '/workFlowCategory/list', 6 | method: 'get' 7 | }) 8 | } 9 | 10 | // 字典项-部门 11 | export function getDeptDict() { 12 | return request({ 13 | url: '/workFlowDepts/selectAll', 14 | method: 'get' 15 | }) 16 | } 17 | 18 | // 字典项-租户 19 | export function getTenantDict() { 20 | return request({ 21 | url: '/workFlowTenant/list', 22 | method: 'get' 23 | }) 24 | } 25 | 26 | // 字典项-待办人列表 27 | export const getToDoUsers = () => { 28 | return request({ 29 | url: '/flowable/workBench/findToDoUsers', 30 | method: 'get' 31 | }) 32 | } 33 | 34 | export function getFormCategoryDict() { 35 | return request({ 36 | url: '/workFlowFormCategory/list', 37 | method: 'get' 38 | }) 39 | } 40 | -------------------------------------------------------------------------------- /workflow-ui/src/api/menu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取路由 4 | export const getRouters = () => { 5 | return request({ 6 | url: '/getRouters', 7 | method: 'get' 8 | }) 9 | } -------------------------------------------------------------------------------- /workflow-ui/src/api/monitor/cache.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询缓存详细 4 | export function getCache() { 5 | return request({ 6 | url: '/monitor/cache', 7 | method: 'get' 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /workflow-ui/src/api/monitor/jobLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询调度日志列表 4 | export function listJobLog(query) { 5 | return request({ 6 | url: '/monitor/jobLog/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除调度日志 13 | export function delJobLog(jobLogId) { 14 | return request({ 15 | url: '/monitor/jobLog/' + jobLogId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空调度日志 21 | export function cleanJobLog() { 22 | return request({ 23 | url: '/monitor/jobLog/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | 28 | // 导出调度日志 29 | export function exportJobLog(query) { 30 | return request({ 31 | url: '/monitor/jobLog/export', 32 | method: 'get', 33 | params: query 34 | }) 35 | } -------------------------------------------------------------------------------- /workflow-ui/src/api/monitor/logininfor.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询登录日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/monitor/logininfor/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除登录日志 13 | export function delLogininfor(infoId) { 14 | return request({ 15 | url: '/monitor/logininfor/' + infoId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空登录日志 21 | export function cleanLogininfor() { 22 | return request({ 23 | url: '/monitor/logininfor/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | 28 | // 导出登录日志 29 | export function exportLogininfor(query) { 30 | return request({ 31 | url: '/monitor/logininfor/export', 32 | method: 'get', 33 | params: query 34 | }) 35 | } -------------------------------------------------------------------------------- /workflow-ui/src/api/monitor/online.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询在线用户列表 4 | export function list(query) { 5 | return request({ 6 | url: '/monitor/online/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 强退用户 13 | export function forceLogout(tokenId) { 14 | return request({ 15 | url: '/monitor/online/' + tokenId, 16 | method: 'delete' 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /workflow-ui/src/api/monitor/operlog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询操作日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/monitor/operlog/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除操作日志 13 | export function delOperlog(operId) { 14 | return request({ 15 | url: '/monitor/operlog/' + operId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空操作日志 21 | export function cleanOperlog() { 22 | return request({ 23 | url: '/monitor/operlog/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | 28 | // 导出操作日志 29 | export function exportOperlog(query) { 30 | return request({ 31 | url: '/monitor/operlog/export', 32 | method: 'get', 33 | params: query 34 | }) 35 | } -------------------------------------------------------------------------------- /workflow-ui/src/api/monitor/server.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询服务器详细 4 | export function getServer() { 5 | return request({ 6 | url: '/monitor/server', 7 | method: 'get' 8 | }) 9 | } -------------------------------------------------------------------------------- /workflow-ui/src/api/system/notice.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询公告列表 4 | export function listNotice(query) { 5 | return request({ 6 | url: '/system/notice/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 查询公告详细 13 | export function getNotice(noticeId) { 14 | return request({ 15 | url: '/system/notice/' + noticeId, 16 | method: 'get' 17 | }) 18 | } 19 | 20 | // 新增公告 21 | export function addNotice(data) { 22 | return request({ 23 | url: '/system/notice', 24 | method: 'post', 25 | data: data 26 | }) 27 | } 28 | 29 | // 修改公告 30 | export function updateNotice(data) { 31 | return request({ 32 | url: '/system/notice', 33 | method: 'put', 34 | data: data 35 | }) 36 | } 37 | 38 | // 删除公告 39 | export function delNotice(noticeId) { 40 | return request({ 41 | url: '/system/notice/' + noticeId, 42 | method: 'delete' 43 | }) 44 | } -------------------------------------------------------------------------------- /workflow-ui/src/api/workmenu/handlecontent.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: your name 3 | * @Date: 2021-07-20 15:37:09 4 | * @LastEditTime: 2021-07-21 10:35:43 5 | * @LastEditors: Please set LastEditors 6 | * @Description: In User Settings Edit 7 | * @FilePath: /flow-template-front/src/api/workmenu/handlecontent.js 8 | */ 9 | import request from '@/utils/request' 10 | 11 | export const getStepList = async (processInstanceId, taskId) => { 12 | return request({ 13 | url: `/flowable/task/getBackNodesByProcessInstanceId/${processInstanceId}/${taskId}`, 14 | method: 'get' 15 | }) 16 | } 17 | 18 | export const getUserList = async (params) => { 19 | return request({ 20 | url: `/workFlowUsers/selectAll`, 21 | method: 'get', 22 | params 23 | }) 24 | } 25 | 26 | export const handleActions = async ({ url, params }) => { 27 | 28 | return await request({ 29 | url: `${url}`, 30 | method: 'post', 31 | data: params 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /workflow-ui/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/404_images/404.png -------------------------------------------------------------------------------- /workflow-ui/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/build.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/documentation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/druid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/education.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/excel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/fullscreen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/guide.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/input.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/monitor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/row.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/server.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/slider.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/textarea.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/theme.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/time.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/tree-table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /workflow-ui/src/assets/images/back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/back.jpg -------------------------------------------------------------------------------- /workflow-ui/src/assets/images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/back.png -------------------------------------------------------------------------------- /workflow-ui/src/assets/images/login-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/login-background.jpg -------------------------------------------------------------------------------- /workflow-ui/src/assets/images/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/images/profile.jpg -------------------------------------------------------------------------------- /workflow-ui/src/assets/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tudouxian/workflow/f7793a7511a611dd8f421f4318c4ddc9d1083f71/workflow-ui/src/assets/logo/logo.png -------------------------------------------------------------------------------- /workflow-ui/src/assets/styles/element-variables.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * I think element-ui's default theme color is too light for long-term use. 3 | * So I modified the default color and you can modify it to your liking. 4 | **/ 5 | 6 | /* theme color */ 7 | $--color-primary: #1890ff; 8 | $--color-success: #13ce66; 9 | $--color-warning: #ffba00; 10 | $--color-danger: #ff4949; 11 | // $--color-info: #1E1E1E; 12 | 13 | $--button-font-weight: 400; 14 | 15 | // $--color-text-regular: #1f2d3d; 16 | 17 | $--border-color-light: #dfe4ed; 18 | $--border-color-lighter: #e6ebf5; 19 | 20 | $--table-border:1px solid#dfe6ec; 21 | 22 | /* icon font path, required */ 23 | $--font-path: '~element-ui/lib/theme-chalk/fonts'; 24 | 25 | @import "~element-ui/packages/theme-chalk/src/index"; 26 | 27 | // the :export directive is the magic sauce for webpack 28 | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass 29 | :export { 30 | theme: $--color-primary; 31 | } 32 | -------------------------------------------------------------------------------- /workflow-ui/src/components/IconSelect/requireIcons.js: -------------------------------------------------------------------------------- 1 | 2 | const req = require.context('../../assets/icons/svg', false, /\.svg$/) 3 | const requireAll = requireContext => requireContext.keys() 4 | 5 | const re = /\.\/(.*)\.svg/ 6 | 7 | const icons = requireAll(req).map(i => { 8 | return i.match(re)[1] 9 | }) 10 | 11 | export default icons 12 | -------------------------------------------------------------------------------- /workflow-ui/src/components/ParentView/index.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /workflow-ui/src/components/Process/common/customTranslate.js: -------------------------------------------------------------------------------- 1 | import translations from '../lang/zh' 2 | 3 | export default function customTranslate(template, replacements) { 4 | replacements = replacements || {} 5 | 6 | // Translate 7 | template = translations[template] || template 8 | 9 | // Replace 10 | return template.replace(/{([^}]+)}/g, function(_, key) { 11 | var str = replacements[key] 12 | if ( 13 | translations[replacements[key]] !== null && 14 | translations[replacements[key]] !== 'undefined' 15 | ) { 16 | str = translations[replacements[key]] 17 | } 18 | return str || '{' + key + '}' 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /workflow-ui/src/components/Process/common/mixinExecutionListener.js: -------------------------------------------------------------------------------- 1 | 2 | import executionListenerDialog from '../components/nodePanel/property/executionListener' 3 | export default { 4 | components: { 5 | executionListenerDialog 6 | }, 7 | data() { 8 | return { 9 | executionListenerLength: 0, 10 | dialogName: null 11 | } 12 | }, 13 | methods: { 14 | computedExecutionListenerLength() { 15 | this.executionListenerLength = this.element.businessObject.extensionElements?.values?.length ?? 0 16 | }, 17 | finishExecutionListener() { 18 | if (this.dialogName === 'executionListenerDialog') { 19 | this.computedExecutionListenerLength() 20 | } 21 | this.dialogName = '' 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /workflow-ui/src/components/Process/common/mixinXcrud.js: -------------------------------------------------------------------------------- 1 | import xcrud from 'xcrud' 2 | import golbalConfig from 'xcrud/package/common/config' 3 | golbalConfig.set({ 4 | input: { 5 | // size: 'mini' 6 | }, 7 | select: { 8 | // size: 'mini' 9 | }, 10 | colorPicker: { 11 | showAlpha: true 12 | }, 13 | xform: { 14 | form: { 15 | labelWidth: 'auto' 16 | // size: 'mini' 17 | } 18 | } 19 | }) 20 | export default { 21 | components: { xForm: xcrud.xForm } 22 | } 23 | -------------------------------------------------------------------------------- /workflow-ui/src/components/Process/components/custom/customContextPad.vue: -------------------------------------------------------------------------------- 1 | export default class CustomContextPad { 2 | constructor(config, contextPad, create, elementFactory, injector, translate) { 3 | this.create = create; 4 | this.elementFactory = elementFactory; 5 | this.translate = translate; 6 | 7 | if (config.autoPlace !== false) { 8 | this.autoPlace = injector.get('autoPlace', false); 9 | } 10 | 11 | contextPad.registerProvider(this); // 定义这是一个contextPad 12 | } 13 | 14 | getContextPadEntries(element) {} 15 | } 16 | 17 | CustomContextPad.$inject = [ 18 | 'config', 19 | 'contextPad', 20 | 'create', 21 | 'elementFactory', 22 | 'injector', 23 | 'translate' 24 | ]; 25 | -------------------------------------------------------------------------------- /workflow-ui/src/components/Process/index.js: -------------------------------------------------------------------------------- 1 | import workflowBpmnModeler from './index.vue' 2 | 3 | workflowBpmnModeler.install = Vue => Vue.component(workflowBpmnModeler.name, workflowBpmnModeler) // 给组件配置install方法 4 | 5 | export default workflowBpmnModeler 6 | -------------------------------------------------------------------------------- /workflow-ui/src/components/iFrame/index.vue: -------------------------------------------------------------------------------- 1 |