1、修改了流程发送系统判断符合条件的步骤默认全部选中。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\run\send.vue
2、修改了应用程序设计没有设计查询条件时生成模板错误的问题。
修改文件:\RoadFlow.Service\Program.cs
3、修改了editor上传文件withCredentials设置。
修改文件:\RoadFlow.WebUIElement\src\roadui-components\el-ckeditor.vue
修改文件:\RoadFlow.Service\User.cs
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\form\design.vue
4、增加了前加签功能。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\run\addwrite.vue
修改文件:\RoadFlow.Service\FlowRun.cs
#region 如果是前加签,则发送给加签人 if (currentTaskModel != null && currentTaskModel.TaskType == 6) { var prevTask = groupTaskList.Where(p => p.Id == currentTaskModel.PrevId).FirstOrDefault(); if (prevTask != null) { string members = RoadFlow.Service.FlowTask.GetTaskReceiverId(prevTask); jObject.Add("designNextStepSize", 1); jObject.Add("flowType", 0); jObject.Add("steps", new JArray() { new JObject() { { "id", currentTaskModel.StepId.ToString() }, { "name", currentTaskModel.StepName }, { "checked", true }, { "disabled", false }, { "members", members}, { "selectType", "" }, { "selectRange", members }, { "allowSelect", 0 }, { "selectTime", 0 }, { "completeTime", "" },//选择的完成时间 { "autoConfirm", 0 },//有默认处理人时自动确认 } }); return jObject; } } #endregion
修改文件:\RoadFlow.Service\FlowExecute.cs
#region 处理前加签任务 if (currentTaskModel.TaskType == 6) { //查询同步骤的同一加签任务,判断是否加签通过。 var existsAddWriteTasks = groupTaskList.Exists(p => p.StepId == currentTaskModel.StepId && p.PrevId == currentTaskModel.PrevId && p.ReceiveOrder == currentTaskModel.ReceiveOrder && p.Status < 1 && p.Id != currentTaskModel.Id); //如果所有加签人都处理完成,则激活加签前任务。 if (!existsAddWriteTasks) { var prevTask = groupTaskList.Where(p => p.Id == currentTaskModel.PrevId).FirstOrDefault(); if (prevTask != null) { prevTask.Status = 0; updateTasks.Add(prevTask); executeResult.ReceiveHandler = string.IsNullOrEmpty(prevTask.ReceiverName) ? "" : prevTask.ReceiverName; } } #region 完成当前任务 currentTaskModel.HandleType = executeModel.Type == RoadFlow.Model.FlowRunModel.ExecuteType.AutoSubmit ? 16 : 2; currentTaskModel.Status = 1; currentTaskModel.CompletedTime = RoadFlow.Utility.Extensions.DateTimeExtensions.Now(); currentTaskModel.Comment = executeModel.Comment; currentTaskModel.Attachment = executeModel.Attachment; currentTaskModel.IsSign = executeModel.IsSign; updateTasks.Add(currentTaskModel); #endregion return; } #endregion
/// <summary> /// 处理加签-前加签 /// </summary> /// <param name="executeResult">执行返回实体</param> /// <param name="addStep">加签步骤</param> /// <param name="receiveUsers">加签接收人</param> /// <param name="currentTaskModel">当前任务</param> /// <param name="groupTaskList">当前任务组</param> /// <param name="addTasks">要添加的任务列表</param> private static void ExecuteAddWrite_Before(RoadFlow.Model.FlowRunModel.FlowExecuteResult executeResult, RoadFlow.Model.FlowRunModel.FlowExecuteStep addStep, List<RoadFlow.Model.User> receiveUsers, RoadFlow.Model.FlowTask currentTaskModel, List<RoadFlow.Model.FlowTask> groupTaskList, List<RoadFlow.Model.FlowTask> updateTasks, List<RoadFlow.Model.FlowTask> addTasks) { List<string> receiverNames = new(); foreach (var receiveUser in receiveUsers) { //如果当前步骤接收人已经有任务,则不再添加。 if (groupTaskList.Exists(p => p.StepId == addStep.Id && p.ReceiverId == receiveUser.Id && p.TaskType.NotIn(5, 11) && p.Status != 1) || addTasks.Exists(p => p.StepId == addStep.Id && p.ReceiverId == receiveUser.Id && p.TaskType.NotIn(5, 11) && p.Status != 1) ) { continue; } var taskModel = currentTaskModel.NotNullClone(); taskModel.Id = IdGenerator.NextId(); taskModel.Status = 0; taskModel.HandleType = 0; taskModel.ReceiveMember = string.Empty; taskModel.Comment = string.Empty; taskModel.Attachment = string.Empty; taskModel.IsSign = 0; taskModel.SenderId = currentTaskModel.ReceiverId; taskModel.SenderName = currentTaskModel.ReceiverName; taskModel.ReceiverId = receiveUser.Id; taskModel.ReceiverName = receiveUser.Name; taskModel.ReceiveTime = RoadFlow.Utility.Extensions.DateTimeExtensions.Now(); taskModel.OrganizeUserId = receiveUser.ParttimeId; taskModel.TaskType = 6; taskModel.OtherType = addStep.AddWriteHandleType == 0 ? 20 : 21; taskModel.CompletedTime = null; //taskModel.CompleteTime = null; taskModel.OpenTime = null; taskModel.PrevId = currentTaskModel.Id; taskModel.ReceiveOrder = currentTaskModel.ReceiveOrder + 1; //RoadFlow.Service.FlowTask.GetMaxReceiveOrder(groupTaskList, currentTaskModel.StepId, currentTaskModel); addTasks.Add(taskModel); executeResult.NextTasks.Add(taskModel); receiverNames.Add(string.IsNullOrEmpty(receiveUser.Name) ? string.Empty : receiveUser.Name); } executeResult.ReceiveHandler = receiverNames.JoinToString("、"); //前加签要将当前任务改为等待中。 currentTaskModel.Status = -1; updateTasks.Add(currentTaskModel); }
5、增加了主流程查看子流程处理过程。
流程按钮库增加按钮,在子流程步骤上配置按钮。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\run\index.vue
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\run\process.vue
修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\FlowController.cs
/// <summary> /// 得到子流程信息 /// </summary> /// <returns></returns> [HttpPost("GetSubFlowData")] [ApiValidate(ValidEnterpriseWeChat = true)] public string GetSubFlowData() { long taskId = Request.QueryLong("taskid"); var taskModel = RoadFlow.Service.FlowTask.Get(taskId); JObject jObject = new(); if (taskModel == null || string.IsNullOrWhiteSpace(taskModel.SubflowGroupId)) { return RoadFlow.Utility.Json.GetResponseJsonString(1); } long subflowGroupId = taskModel.SubflowGroupId.SplitToArray()[0].ToLong(); var sunflowGroupList = RoadFlow.Service.FlowTask.GetListByGroupId(subflowGroupId); jObject.Add("subflowGroupId", subflowGroupId.ToString()); jObject.Add("subflowId", sunflowGroupList.Count > 0 ? sunflowGroupList.First().FlowId.ToString() : ""); return RoadFlow.Utility.Json.GetResponseJsonString(jObject); }
6、修改了独立退回策略为退回给发送人。
修改文件:\RoadFlow.Service\FlowRun.cs
int backType = currentStepModel.StepStrategy.BackType; //2023-10-11修改了独立退回时,如果是退回前一步,则策略为直接退回给发送人 if (backMode == 4 && backType == 0) { var prevTask = groupTaskList.Where(p => p.Id == currentTaskModel.PrevId).FirstOrDefault(); if (prevTask != null) { string prevUserId = RoadFlow.Service.FlowTask.GetTaskReceiverId(prevTask); stepsJArray.Add(new JObject() { { "id", prevTask.StepId.ToString() },//步骤id { "name", prevTask.StepName },//步骤名称 { "checked", true },//是否选中 { "disabled", false },//是否禁用 { "members", prevUserId },//默认处理者 { "selectRange", prevUserId },//选择范围 { "allowSelect", currentStepModel.StepStrategy.BackSelectUser },//是否允许运行时选择 }); jObject.Add("code", 0); return jObject; } }
7、修改了文件上传控件上传不允许的文件类型会清空列表问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-components\el_selectfile.vue
8、修改了查看附件图片的弹出层大小显示。
修改文件:\RoadFlow.WebUIElement\src\roadui-assets\utils.js
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\index.vue
<template #header> <div> <span style="width:calc(100% - 80px);display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;vertical-align:middle;" class="el-dialog__title">{{dialogTitle}}</span> <span style="width: 80px; display: inline-block; vertical-align: middle;"> <a v-if="dialogIsShowFile&&utils.query('isminiprogram',dialogFileUrl)!=1" class="roaduia" onclick="javascript:;" @click="utils.openNew(dialogFileUrl+'&download=1')" style="margin-left:12px">下载文件</a> </span> </div> </template> <div v-if="dialogIsIframe"> <!--移动端显示pdf--> <span v-if="utils.query('ismobile',dialogFileUrl)==1&&(utils.isPdfFile(dialogTitle)||utils.isOfficeFile(dialogTitle))"> <VuePdf :src="dialogFileUrl" :style="`width:100%;height:${dialogHeight};border:0;`"></VuePdf> </span> <img v-else-if="utils.isImageFile(dialogTitle)" :src="dialogFileUrl" style="display:block;margin:0 auto;" /> <iframe v-else :src="dialogIsShowFile?dialogFileUrl:dialogComponentId" :style="`width:100%;height:${dialogHeight};border:0;`" frameborder="0"></iframe> </div>
将\RoadFlow\RoadFlow.WebUIElement\src\roadui-assets\share.css
红框中的内容移动到\RoadFlow.WebUIElement\index.html
9、修改了待办批量列表不显示抄送和征求意见任务。
修改文件:\RoadFlow.Data\FlowTask.cs
10、修改了表单设计子表复选按钮发布时错误。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\form\form-design.js
11、升级element-plus至2.4.1。
npm install element-plus@2.4.1
联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2024 重庆天知软件技术有限公司 版权所有
|