.NET CORE开源工作流引擎 - 可视化流程设计器 - 工作流表单设计器 - .NET快速开发平台 - .NET三层代码生成器 - 通用权限管理

.NET MVC CORE开源工作流平台,可视化流程设计器
RoadFlow-Plus8.1.3升级说明

1、增加了流程处理页面按钮点击前执行脚本。

    修改文件:\RoadFlow.WebUI\src\roadui-pages\flow\run\index.vue

    image.png

    image.png

    修改文件:\RoadFlow.WebUI\src\roadui-assets\utils.js

    image.png

2、修改了表单验证脚本可写异步方法。

    修改文件:\RoadFlow.WebUI\src\roadui-pages\flow\run\index.vue

    image.png

3、修改了url中的token可以保存到localStorage。

    修改文件:\RoadFlow.WebUI\src\roadui-assets\utils.js

    image.png

4、修改了移动端子表隐藏字段不生效的问题。

    修改文件:\RoadFlow.WebUI\src\roadui-pages\form\design\design.js

    image.png

5、增加了布局样式。

    修改文件:\RoadFlow.WebUI\src\roadui-assets\main.css

    image.png

    修改文件:\RoadFlow.WebUI\src\roadui-pages\index.vue

    image.png

    增加文件:

    image.png

6、增加了流程事件sql可指定执行sql的数据连接。

    修改文件:\RoadFlow.Service\Flow\FlowExecuteService.cs

    修改方法:

    image.png

    /// <summary>
    /// 执行流程事件
    /// </summary>
    /// <param name="eventName">事件</param>
    /// <param name="flowEventParamsModel">事件参数</param>
    /// <param name="formDataJsonObject">表单数据json</param>
    /// <param name="currentFlowTaskModel">当前任务实体</param>
    /// <returns>object</returns>
    private object? ExecuteEvent(string eventName, FlowEventParamsModel flowEventParamsModel, JsonObject formDataJsonObject, FlowTaskModel currentFlowTaskModel)
    {
        if (string.IsNullOrWhiteSpace(eventName))
        {
            return null;
        }
        var eventTrim = eventName.Trim();
        if (eventTrim.StartsWithIgnoreCase("[sql-json"))
        {
            //执行sql并且要同步更新rf_form_data表中的json_data。
            var (sqlString, connId) = GetEventSqlAndConnId(eventTrim);
            var sql = wildcardService.Replace(sqlString, formDataJsonObject, currentFlowTaskModel);
            var i = ConnService.ExecuteSql(IdGeneratorUtils.IsId(connId) ? connService.GetOrDefault(connId) : flowEventParamsModel.ConnModel, sql, filterSql: false);
            formService.UpdateTableToFormDataJson(flowEventParamsModel.InstanceId, flowEventParamsModel.FormTemplateJsonObject, formDataJsonObject);
            return i;
        }
        else if (eventTrim.StartsWithIgnoreCase("[sql-select"))
        {
            //执行查询sql,返回sql查询的数据。
            var (sqlString, connId) = GetEventSqlAndConnId(eventTrim);
            var sql = wildcardService.Replace(sqlString, formDataJsonObject, currentFlowTaskModel);
            return ConnService.GetOneString(IdGeneratorUtils.IsId(connId) ? connService.GetOrDefault(connId) : flowEventParamsModel.ConnModel, sql);
        }
        else if (eventTrim.StartsWithIgnoreCase("[sql"))
        {
            //如果是sql,返回执行sql后影响的行数
            var (sqlString, connId) = GetEventSqlAndConnId(eventTrim);
            var sql = wildcardService.Replace(sqlString, formDataJsonObject, currentFlowTaskModel);
            return ConnService.ExecuteSql(IdGeneratorUtils.IsId(connId) ? connService.GetOrDefault(connId) : flowEventParamsModel.ConnModel, sql, filterSql: false);
        }
        var (obj, ex) = Tools.ExecuteMethod(eventTrim, flowEventParamsModel);
        if (ex != null)
        {
            logService.Add("执行流程事件错误-" + currentFlowTaskModel.FlowName + "-" + currentFlowTaskModel.StepName + "-" + eventTrim, LogType.Exception, ex.Message, null, currentFlowTaskModel.ReceiverId, currentFlowTaskModel.ReceiverName, ex.StackTrace);
            return ex.Message;
        }
        return obj;
    }

    增加方法:

    image.png

    /// <summary>
    /// 得到流程事件里的SQL语句和数据连接ID
    /// </summary>
    /// <param name="sql">事件SQL</param>
    /// <returns>(sql,连接id)</returns>
    private static (string, long) GetEventSqlAndConnId(string? sql)
    {
        if (string.IsNullOrWhiteSpace(sql))
        {
            return (string.Empty, IdGeneratorUtils.MIN_VALUE);
        }
        var rightIndexOf = sql.IndexOf(']');
        if (rightIndexOf < 0)
        {
            return (string.Empty, IdGeneratorUtils.MIN_VALUE);
        }
        var connIdString = string.Empty;
        var prefixString = sql[..(rightIndexOf + 1)];
        if (prefixString.Contains('<') && prefixString.Contains('>'))
        {
            connIdString = prefixString.Substring(prefixString.IndexOf('<') + 1, prefixString.LastIndexOf('>') - prefixString.IndexOf('<') - 1);
        }
        return (sql.TrimStartStringIgnoreCase(prefixString), connIdString.IsLong(out var connId) && IdGeneratorUtils.IsId(connId) ? connId : IdGeneratorUtils.MIN_VALUE);
    }

    用法:在写事件sql时加上连接id,例如:[sql<619319725076549>]select 1或[sql-json<619319725076549>]select 1或[sql-select<619319725076549>]select 1。<>内的为连接id。

7、应用设计导入增加了是否清空选项。

    修改文件:\RoadFlow.WebUI\src\roadui-pages\app-design\run\import.vue

    image.png

    image.png

    修改文件:\RoadFlow.WebApi\Controllers\RoadFlowWebApi\AppDesign\AppDesignRunController.cs

    image.png

    修改文件:\RoadFlow.Service\AppDesign\AppDesignRunService.cs

    image.png

    覆盖此方法。

    修改文件:\RoadFlow.Service\Sys\ConnService.cs

    image.png

    新增方法。

    修改文件:\RoadFlow.Data\Sys\ConnDao.cs

    image.png

    新增方法。

8、增加了表单设计间距布局控件。

    修改文件:\RoadFlow.WebUI\src\roadui-pages\form\design\index.vue

    image.png

    image.png

    image.png

    image.png

    增加文件:\RoadFlow.WebUI\src\roadui-pages\form\design\controls\space-ctl.vue

    修改文件:\RoadFlow.WebUI\src\roadui-pages\form\design\design.js

    image.png

    image.png

    image.png

9、增了动态API分类管理。

    修改文件:\RoadFlow.WebUI\src\roadui-pages\system\dynamic-api\index.vue

    修改较多,直接覆盖。

    修改文件:\RoadFlow.WebApi\Controllers\RoadFlowWebApi\Sys\DynamicApiController.cs

    image.png

    修改文件:\RoadFlow.Service\Sys\DynamicApiService.cs

    image.png

    修改文件:\RoadFlowNet\RoadFlow.Data\Sys\DynamicApiDao.cs

    image.png

    修改文件:\RoadFlow.Model\Sys\DynamicApiModel.cs

    image.png

    表rf_sys_dynamic_api增加字段:

    image.png

    数据字典增加节点:

    image.png

10、修改了数据连接缓存问题。

    修改文件:\RoadFlow.Data\SqlSugarHelper.cs

    image.png

    修改文件:\RoadFlow.Data\Sys\ConnDao.cs

    image.png

联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2024 重庆天知软件技术有限公司 版权所有