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

.NET MVC CORE开源工作流平台,可视化流程设计器
RoadFlowEle6.1.8升级说明

1、修改了自定义表单流程处理人定义为字段值时取不到值。

    修改文件:\RoadFlow.Service\FlowRun.cs

    image.png

    image.png

2、修改了作废流程实例判断逻辑。

    修改文件:\RoadFlow.Service\FlowTask.cs

    image.png

        /// <summary>
        /// 判断一个任务是否可以作废
        /// </summary>
        /// <param name="model"></param>
        /// <param name="userId">当前用户id</param>
        /// <param name="runModel">流程运行时</param>
        /// <param name="groupTasks">组任务</param>
        /// <returns>第一步任务可以作废</returns>
        public static bool IsDelete(RoadFlow.Model.FlowTask model, long userId, RoadFlow.Model.FlowRunModel.FlowRun? runModel = null, List<RoadFlow.Model.FlowTask>? groupTasks = null)
        {
            var flowRunModel = runModel == null ? RoadFlow.Service.Flow.GetFlowRunModel(model.FlowId) : runModel;
            if (flowRunModel == null)
            {
                return false;
            }
            //如果不是第一步不可以作废
            if (model.StepId != flowRunModel.FirstStepId)
            {
                return false;
            }
            var groupTaskList = groupTasks == null ? GetListByGroupId(model.GroupId, 0, false) : groupTasks;
            if (groupTaskList == null || groupTaskList.Count == 0)
            {
                return false;
            }
            //如果有不是第一步的待办,不能作废。
            if (groupTaskList.Exists(p => p.StepId != flowRunModel.FirstStepId && p.Status < 1))
            {
                return false;
            }
            //如果是发起人的任务,可以作废。
            var firstTaskModel = groupTaskList.Where(p => p.PrevId == IdGenerator.MinValue).FirstOrDefault();
            if (firstTaskModel != null && firstTaskModel.SenderId == userId)
            {
                return true;
            }
            return false;
        }

    修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\FlowController.cs

    image.png

    修改文件:\RoadFlow.Service\FlowExecute.cs

    image.png

      var groupTasks = RoadFlow.Service.FlowTask.GetListByGroupId(currentTaskModel.GroupId);

            //如果处理者不是实例管理员,也不是流程发起人且任务不在第一步,则不能作废。
            if (executeModel.Sender == null || (
                !("," + flowRunModel.InstanceManger + ",").Contains(",u_" + executeModel.Sender.Id.ToString() + ",")
                && !RoadFlow.Service.FlowTask.IsDelete(currentTaskModel, executeModel.Sender.Id, flowRunModel, groupTasks))
                )
            {
                executeResult.Code = 1500;
                executeResult.Message = "不能作废";
                return;
            }

3、修改了流程设计新加步骤时允许选择默认选中。

    修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\design\design.vue

    image.png

4、修改了用户默认头像。

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

    image.png

    image.png

    修改文件:\RoadFlow.WebUIElement\src\roadui-assets\share.css

    image.png

    修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\HomeController.cs

    image.png

    增加文件:

    image.png

5、修改了表单设计删除控件时会引起编译表单错误的问题。

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

    image.png

    image.png

6、修改了消息中心查询已发送记录时已读消息不能删除。

    修改文件:\RoadFlow.WebUIElement\src\roadui-pages\system\message\sendlist.vue

    image.png

    修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\MessageController.cs

    image.png

    修改文件:\RoadFlow.Service\Message.cs

    image.png

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

    image.png

7、修改了流程设计器初始化画板大小计算方式。

    解决在分辩率高的显示器上设计的流程到分辩率低的显示器上显示不完整的问题。

    修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\design\design.vue

    image.png

   //初始化画板 flowJson流程JSON,如果是打开流程时要获取最大步骤的x,y坐标,解决在分辩率大的浏览器上设置的流程,在分辩率小的浏览器打开显示不全的问题。
    function initR(flowJson) {
        const maxStepXY = utils.getFlowMaxXY(flowJson.steps);
        let w = flowDesignDivRef.value.offsetWidth - 25;
        let h = flowDesignDivRef.value.offsetHeight - 25;
        if (maxStepXY.x > w) {
            w = maxStepXY.x + 180;
        }
        if (maxStepXY.y > h) {
            h = maxStepXY.y + 50;
        }
        //根据主题得到colorObj
        let theme = utils.getTheme();
        let colorObj = undefined;
        if (utils.isDef(theme) && utils.length(theme.color) > 0) {
            colorObj = { line: theme.color, step: theme.color, focus: wf_focusColor, fontSize: wf_nodeTextSize, stepText: wf_nodeTextColor };
        }
        init('flowDesignDiv_', w, h, colorObj);
    }

    image.png

8、流程设计增加了业务数据保存前事件。

    方便在业务数据保存前对数据进行处理或检验。如果方法返回不为1,或true,流程都不能提交,并且提示返回的字符串信息。

    修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\design\step.vue

    image.png

                 <tr>
                    <th>数据保存前事件</th>
                    <td>
                        <el-input type="textarea" v-model="eventJson.dataSaveBefore" placeholder="表单数据保存前执行。方法返回字符串1、true以外的其他字符,表示为错误信息,返回客户端提示,任务不提交。"></el-input>
                    </td>
                </tr>

    修改文件:\RoadFlow.Model\FlowRunModel\StepEvents.cs

    image.png

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

    image.png

    修改文件:\RoadFlow.Service\FlowExecute.cs

    image.png

            //执行表单数据保存前事件2023-2-29增加的事件
            if(executeModel.CurrentStepModel != null && !string.IsNullOrWhiteSpace(executeModel.CurrentStepModel.StepEvents.DataSaveBefore))
            {
                string dataSaveBeforeStr = ExecuteEvent(executeModel, executeModel.CurrentStepModel == null ? string.Empty : executeModel.CurrentStepModel.StepEvents.DataSaveBefore, executeResult);
                //如果提交前事件返回字符串"1"、"true"以外的其他字符,则表示为错误信息,返回客户端提示,流程不提交。
                if (dataSaveBeforeStr.NotEqualsAnyIgnoreCase("1", "true"))
                {
                    executeResult.Code = 1001;
                    executeResult.Message = dataSaveBeforeStr;
                    return executeResult;
                }
            }

9、新增加流程事件中以[sql-json]开头的sql语句。

    如果是以[sql-json]开头的sql语句,则表示在执行完sql语句后,还要将业务表对应的数据更新的流程数据json中,避免业务表数据更新了流程数据没更新的情况。

    修改文件:\RoadFlow.Service\FlowExecute.cs

    image.png

                          //更新流程数据json
                            if (eventName.StartsWithIgnoreCase("[sql-json]"))
                            {
                                RoadFlow.Service.FlowData.UpdateFormDataToFlowJsonData(flowExecuteModel.FormData, flowExecuteModel.InstanceId, true, flowExecuteModel.GroupId);
                            }

    修改文件:\RoadFlow.Service\FlowData.cs

    新增方法:

    image.png

10 、修改了应用程序设计人员ID显示为姓名时兼职显示问题。

    修改文件:\RoadFlow.Service\Program.cs

    image.png


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