This commit is contained in:
2023-05-31 10:19:05 +08:00
parent 1b65a7a9e5
commit 9c621c75cd
238 changed files with 9905 additions and 4034 deletions

View File

@@ -83,6 +83,29 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
{
output.flowFormInfo = await _flowTaskRepository.GetFlowFromModel(flowTaskParamter.startProperties.formId);
output.flowTaskInfo = flowTaskParamter.flowTaskEntity.Adapt<FlowTaskModel>();
output.flowFormInfo.propertyJson = _runService.GetVisualDevModelDataConfig(output.flowFormInfo.propertyJson, output.flowFormInfo.tableJson, (int)output.flowFormInfo.formType);
if (flowTaskParamter.flowTaskEntity.Suspend == 1)
{
// 判断子流程的父流程是否被挂起
if (!flowTaskParamter.flowTaskEntity.ParentId.Equals("0"))
{
if (!await _flowTaskRepository.AnyFlowTask(x => x.Id == flowTaskParamter.flowTaskEntity.ParentId && x.DeleteMark == null && x.Suspend == 1))
{
output.flowTaskInfo.suspend = false;
output.flowTaskInfo.status = 6;
}
else
{
output.flowTaskInfo.status = 6;
output.flowTaskInfo.suspend = true;
}
}
else
{
output.flowTaskInfo.suspend = false;
output.flowTaskInfo.status = 6;
}
}
output.flowTaskOperatorRecordList = await _flowTaskRepository.GetTaskOperatorRecordModelList(id);
if (flowTaskParamter.flowTaskNodeEntityList.IsNotEmptyOrNull())
{
@@ -139,6 +162,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
{
var startProperties = output.flowTemplateInfo.flowTemplateJson.ToObject<FlowTemplateJsonModel>().properties.ToObject<StartProperties>();
output.flowFormInfo = await _flowTaskRepository.GetFlowFromModel(startProperties.formId);
output.flowFormInfo.propertyJson = _runService.GetVisualDevModelDataConfig(output.flowFormInfo.propertyJson, output.flowFormInfo.tableJson, (int)output.flowFormInfo.formType);
output.formData = await _runService.GetFlowFormDataDetails(output.flowFormInfo.id, id);
output.formOperates = startProperties.formOperates;
output.approversProperties = startProperties.ToObject<ApproversProperties>();
@@ -161,8 +185,8 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
try
{
var flowTaskEntity = new FlowTaskEntity();
flowTaskSubmitModel.isDev = _flowTaskRepository.IsDevFlow(flowTaskSubmitModel.flowId);//是否为功能表单
var flowJsonInfo = _flowTaskRepository.GetFlowTemplateInfo(flowTaskSubmitModel.flowId);
flowTaskSubmitModel.isDev = _flowTaskRepository.IsDevFlow(flowJsonInfo.templateId);//是否为功能表单
flowTaskSubmitModel.flowJsonModel = flowJsonInfo;
await flowTaskOtherUtil.GetFlowTitle(flowTaskSubmitModel);
// 表单数据处理
@@ -178,7 +202,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
flowTaskEntity.FlowUrgent = flowTaskSubmitModel.flowUrgent;
flowTaskEntity.FlowId = flowJsonInfo.id;
flowTaskEntity.FlowCode = flowJsonInfo.enCode;
flowTaskEntity.FlowName = flowJsonInfo.fullName;
flowTaskEntity.FlowName = flowJsonInfo.flowName;
flowTaskEntity.FlowType = flowJsonInfo.type;
flowTaskEntity.FlowCategory = flowJsonInfo.category;
flowTaskEntity.FlowTemplateJson = flowJsonInfo.flowTemplateJson;
@@ -205,6 +229,8 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
if (!(flowTaskSubmitModel.isDev && flowTaskSubmitModel.status == 1 && flowTaskSubmitModel.parentId.Equals("0")))
{
flowTaskEntity = _flowTaskRepository.GetTaskFirstOrDefault(flowTaskSubmitModel.id);
if (flowTaskEntity.Suspend == 1)
throw Oops.Oh(ErrorCode.WF0046);
if (flowTaskEntity.Status == FlowTaskStatusEnum.Handle.ParseToInt() && flowTaskSubmitModel.approvaUpType == 0)
throw Oops.Oh(ErrorCode.WF0031);
flowTaskEntity.FlowUrgent = flowTaskSubmitModel.flowUrgent;
@@ -328,9 +354,6 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
foreach (var item in messageDic.Keys)
{
var userList = messageDic[item].Select(x => x.HandleId).ToList();
// 委托人
//var delegateUserIds = await _flowTaskRepository.GetDelegateUserIds(userList, flowTaskParamter.flowTaskEntity.TemplateId);
//userList = userList.Union(delegateUserIds).ToList();
bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, messageDic[item], 2);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.waitMsgConfig, bodyDic.Keys.ToList(), flowTaskParamter, "MBXTLC001", bodyDic);
// 超时提醒
@@ -345,7 +368,13 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
#endregion
bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, new List<string>() { flowTaskParamter.flowTaskEntity.CreatorUserId }, null, 1);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.endMsgConfig, new List<string>() { flowTaskParamter.flowTaskEntity.CreatorUserId }, flowTaskParamter, "MBXTLC0010", bodyDic);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.endMsgConfig, new List<string>() { flowTaskParamter.flowTaskEntity.CreatorUserId }, flowTaskParamter, "MBXTLC010", bodyDic);
}
//委托发起消息
if (flowTaskSubmitModel.isDelegate)
{
await flowTaskMsgUtil.SendDelegateMsg("发起", flowTaskParamter.flowTaskEntity.CreatorUserId, flowTaskParamter.flowTaskEntity.FlowName);
}
#endregion
@@ -379,7 +408,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
if (flowTaskParamter.flowTaskOperatorEntity.Id.IsNotEmptyOrNull() && FlowTaskNodeTypeEnum.approver.ParseToString().Equals(flowTaskParamter.flowTaskNodeEntity.NodeType))
{
var fEntity = _flowTaskRepository.GetFlowFromEntity(flowTaskParamter.flowTaskNodeEntity.FormId);
await _runService.SaveFlowFormData(fEntity, flowTaskParamter.formData.ToJsonString(), flowTaskParamter.flowTaskEntity.Id, true);
await _runService.SaveFlowFormData(fEntity, flowTaskParamter.formData.ToJsonString(), flowTaskParamter.flowTaskEntity.Id, flowTaskParamter.flowTaskEntity.FlowId, true);
}
}
if (flowTaskParamter.flowTaskEntity.RejectDataId.IsNullOrEmpty())
@@ -416,7 +445,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
if (flowTaskParamter.approversProperties.counterSign == 0 || flowTaskOtherUtil.IsAchievebilProportion(flowTaskParamter, 1))
{
var fEntity = _flowTaskRepository.GetFlowFromEntity(flowTaskParamter.flowTaskNodeEntity.FormId);
await _runService.SaveFlowFormData(fEntity, flowTaskParamter.formData.ToJsonString(), flowTaskParamter.flowTaskEntity.Id, true);
await _runService.SaveFlowFormData(fEntity, flowTaskParamter.formData.ToJsonString(), flowTaskParamter.flowTaskEntity.Id, flowTaskParamter.flowTaskEntity.FlowId, true);
var rejectDataEntity = await _flowTaskRepository.GetRejectDataInfo(flowTaskParamter.flowTaskEntity.RejectDataId);
await _flowTaskRepository.UpdateRejectData(rejectDataEntity);
_db.CommitTran();
@@ -508,6 +537,12 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, new List<string>() { flowTaskParamter.flowTaskEntity.CreatorUserId }, null, 1);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.endMsgConfig, new List<string>() { flowTaskParamter.flowTaskEntity.CreatorUserId }, flowTaskParamter, "MBXTLC010", bodyDic);
}
//委托审批消息
if (flowTaskParamter.flowTaskOperatorEntity.HandleId.IsNotEmptyOrNull() && !_userManager.UserId.Equals(flowTaskParamter.flowTaskOperatorEntity.HandleId))
{
await flowTaskMsgUtil.SendDelegateMsg("审批", flowTaskParamter.flowTaskOperatorEntity.HandleId, flowTaskParamter.flowTaskEntity.FlowName);
}
}
#endregion
@@ -605,10 +640,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
foreach (var item in messageDic.Keys)
{
var userList = messageDic[item].Select(x => x.HandleId).ToList();
//委托人
var delegateUserIds = await _flowTaskRepository.GetDelegateUserIds(userList, flowTaskParamter.flowTaskEntity.TemplateId);
//userList = userList.Union(delegateUserIds).ToList();
//bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, messageDic[item], 2);
bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, messageDic[item], 2);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.waitMsgConfig, bodyDic.Keys.ToList(), flowTaskParamter, "MBXTLC001", bodyDic);
await flowTaskMsgUtil.Alerts(flowTaskParamter.approversProperties.rejectMsgConfig, bodyDic.Keys.ToList(), flowTaskParamter, "MBXTLC003", bodyDic);
// 超时提醒
@@ -617,6 +649,12 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
#endregion
}
//委托审批消息
if (!_userManager.UserId.Equals(flowTaskParamter.flowTaskOperatorEntity.HandleId))
{
await flowTaskMsgUtil.SendDelegateMsg("审批", flowTaskParamter.flowTaskOperatorEntity.HandleId, flowTaskParamter.flowTaskEntity.FlowName);
}
//退回到发起.
if (flowTaskParamter.flowTaskEntity.Status == FlowTaskStatusEnum.Reject.ParseToInt())
{
@@ -660,7 +698,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
if (flowTaskParamter.flowTaskEntity.RejectDataId.IsNotEmptyOrNull()) throw Oops.Oh(ErrorCode.WF0046);
//撤回经办记录
if (flowTaskOperatorRecordEntity.Status == -1)
throw Oops.Oh(ErrorCode.WF0011);
throw Oops.Oh(ErrorCode.WF0051);
//所有经办
var flowTaskOperatorEntityList = await _flowTaskRepository.GetTaskOperatorList(x => x.TaskId == flowTaskOperatorRecordEntity.TaskId && x.State == "0");
#region
@@ -673,7 +711,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
//撤回节点下一节点已操作
var recallNextOperatorList = flowTaskOperatorEntityList.FindAll(x => flowTaskParamter.flowTaskNodeEntity.NodeNext.Contains(x.NodeCode));
if (recallNextOperatorList.FindAll(x => x.Completion == 1 && x.HandleStatus == 1).Count > 0 || flowTaskParamter.flowTaskNodeEntityList.Any(x => flowTaskParamter.flowTaskNodeEntity.NodeNext.Contains(x.NodeCode) && x.Completion == 1))
throw Oops.Oh(ErrorCode.WF0011);
throw Oops.Oh(ErrorCode.WF0050);
#endregion
#region
@@ -931,6 +969,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
if (flowTaskParamter.flowTaskOperatorEntity == null)
throw Oops.Oh(ErrorCode.COM1005);
flowTaskParamter.flowTaskOperatorEntity.HandleId = flowTaskParamter.freeApproverUserId;
flowTaskParamter.flowTaskOperatorEntity.CreatorTime = DateTime.Now;
var isOk = await _flowTaskRepository.UpdateTaskOperator(flowTaskParamter.flowTaskOperatorEntity);
if (!isOk)
throw Oops.Oh(ErrorCode.WF0007);
@@ -941,9 +980,6 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
_db.CommitTran();
var userList = new List<string>() { flowTaskParamter.freeApproverUserId };
//委托人
//var delegateUserIds = await _flowTaskRepository.GetDelegateUserIds(userList, flowTaskParamter.flowTaskEntity.TemplateId);
//userList = userList.Union(delegateUserIds).ToList();
var bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, new List<FlowTaskOperatorEntity>() { flowTaskParamter.flowTaskOperatorEntity }, 2);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.waitMsgConfig, bodyDic.Keys.ToList(), flowTaskParamter, "MBXTLC001", bodyDic);
// 超时提醒
@@ -981,10 +1017,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
foreach (var item in messageDic.Keys)
{
var userList = messageDic[item].Select(x => x.HandleId).ToList();
//委托人
//var delegateUserIds = await _flowTaskRepository.GetDelegateUserIds(userList, flowTaskParamter.flowTaskEntity.TemplateId);
//userList = userList.Union(delegateUserIds).ToList();
bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, new List<FlowTaskOperatorEntity>() { flowTaskParamter.flowTaskOperatorEntity }, 2);
bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, messageDic[item], 2);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.waitMsgConfig, bodyDic.Keys.ToList(), flowTaskParamter, "MBXTLC001", bodyDic);
}
}
@@ -1027,7 +1060,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
var flowTaskOperator = await _flowTaskRepository.GetTaskOperatorInfo(id);
if (flowTaskOperator.ParentId.IsNotEmptyOrNull() && type == 0) return output;// 加签不弹窗
// 选择分支:初始审批人前加签不算审批 后加签算审批
var flowTaskOperatorList = await _flowTaskRepository.GetTaskOperatorList(x => x.TaskId == flowTaskOperator.TaskId && x.TaskNodeId == flowTaskOperator.TaskNodeId && x.State == "0" && (SqlFunc.IsNullOrEmpty(x.ParentId)|| !SqlFunc.IsNullOrEmpty(x.RollbackId)));
var flowTaskOperatorList = await _flowTaskRepository.GetTaskOperatorList(x => x.TaskId == flowTaskOperator.TaskId && x.TaskNodeId == flowTaskOperator.TaskNodeId && x.State == "0" && (SqlFunc.IsNullOrEmpty(x.ParentId) || !SqlFunc.IsNullOrEmpty(x.RollbackId)));
var flowTaskNodeEntity = await _flowTaskRepository.GetTaskNodeInfo(flowTaskOperator.TaskNodeId);
flowTaskNodeEntityList = await _flowTaskRepository.GetTaskNodeList(x => x.State == "0" && x.TaskId == flowTaskOperator.TaskId);
#region
@@ -1054,10 +1087,10 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
return flowTaskUserUtil.GetCandidateItems(nextNodeEntity, flowHandleModel);
}
await flowTaskUserUtil.GetCandidates(output, nextNodeEntityList, flowTaskNodeEntityList);
//return output;
// 弹窗类型 1:条件分支弹窗(包含候选人) 2:候选人弹窗 3:无弹窗
var branchType = output.Count > 0 ? (output.Any(x => x.isBranchFlow) ? 1 : 2) : 3;
if (!isCom && branchType == 1)
// 无弹窗1.条件分支且未达到会签比例2.任务冻结驳回
if ((!isCom && branchType == 1) || await _flowTaskRepository.AnyFlowTask(x => x.Id == flowHandleModel.id && !SqlFunc.IsNullOrEmpty(x.RejectDataId)))
{
branchType = 3;
}
@@ -1070,10 +1103,9 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
/// </summary>
/// <param name="flowId">流程id.</param>
/// <returns></returns>
public async Task<dynamic> NodeSelector(string templateId)
public async Task<dynamic> NodeSelector(string flowId)
{
var flowJsonEntity = _flowTaskRepository.GetFlowTemplateJsonInfo(x => x.TemplateId == templateId && x.EnabledMark == 1 && x.DeleteMark == null);
var flowJsonModel = _flowTaskRepository.GetFlowTemplateInfo(flowJsonEntity.Id);
var flowJsonModel = _flowTaskRepository.GetFlowTemplateInfo(flowId);
flowTemplateUtil.Load(flowJsonModel, null, string.Empty);
var taskNodeList = flowTemplateUtil.flowTaskNodeEntityList;
return taskNodeList.FindAll(x => FlowTaskNodeTypeEnum.approver.ParseToString().Equals(x.NodeType)).Select(x => new { id = x.NodeCode, fullName = x.NodePropertyJson.ToObject<ApproversProperties>().title }).ToList();
@@ -1201,6 +1233,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
public async Task<FlowTaskParamter> Validation(string taskOperatorId, FlowHandleModel flowHandleModel)
{
var flowTaskParamter = await _flowTaskRepository.GetTaskParamterByOperatorId(taskOperatorId, flowHandleModel);
if (flowTaskParamter.flowTaskEntity.Suspend == 1) throw Oops.Oh(ErrorCode.WF0046);
if (flowTaskParamter.flowTaskOperatorEntity.IsNullOrEmpty() || flowTaskParamter.flowTaskOperatorEntity.Completion != 0 || flowTaskParamter.flowTaskOperatorEntity.State == "-1")
throw Oops.Oh(ErrorCode.WF0030);
if (flowTaskParamter.flowTaskEntity.IsNullOrEmpty() || flowTaskParamter.flowTaskEntity.Status != 1 || flowTaskParamter.flowTaskEntity.DeleteMark.IsNotEmptyOrNull())
@@ -1217,7 +1250,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
/// <summary>
/// 变更/复活.
/// </summary>
/// <param name="flowHandleModel">变更/复活参数.</param>
/// <param name="flowTaskParamter">任务参数.</param>
/// <returns></returns>
public async Task<dynamic> Change(FlowTaskParamter flowTaskParamter)
{
@@ -1287,9 +1320,6 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
return flowTaskParamter.errorNodeList;
}
// 清空变更/复活流程候选人数据
//_flowTaskRepository.DeleteFlowCandidates(x => x.TaskId == changeNode.TaskId);
//await _flowTaskRepository.DeleteTaskOperatorRecord(x => x.TaskId == changeNode.TaskId);
await _flowTaskRepository.DeleteTaskOperatorRecord(x => x.TaskId == changeNode.TaskId && changeNodeNextIds.Contains(x.TaskNodeId));
foreach (var item in await _flowTaskRepository.GetTaskNodeList(x => x.TaskId == flowTaskParamter.flowTaskEntity.Id))
{
@@ -1340,9 +1370,6 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
foreach (var item in messageDic.Keys)
{
var userList = messageDic[item].Select(x => x.HandleId).ToList();
//委托人
//var delegateUserIds = await _flowTaskRepository.GetDelegateUserIds(userList, flowTaskParamter.flowTaskEntity.TemplateId);
//userList = userList.Union(delegateUserIds).ToList();
var bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, new List<FlowTaskOperatorEntity>() { flowTaskParamter.flowTaskOperatorEntity }, 2);
await flowTaskMsgUtil.Alerts(flowTaskParamter.startProperties.waitMsgConfig, bodyDic.Keys.ToList(), flowTaskParamter, "MBXTLC001", bodyDic);
await TimeoutOrRemind(flowTaskParamter, item, messageDic[item]);// 超时提醒
@@ -1384,6 +1411,63 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
return new { list = upNodeCodeList, isLastAppro = true };
}
}
/// <summary>
/// 挂起.
/// </summary>
/// <param name="flowTaskParamter">任务参数.</param>
/// <returns></returns>
public async Task Suspend(FlowTaskParamter flowTaskParamter)
{
flowTaskParamter.flowTaskEntity.Suspend = 1;
await _flowTaskRepository.UpdateTask(flowTaskParamter.flowTaskEntity);
#region
await flowTaskOtherUtil.CreateOperatorRecode(flowTaskParamter, 11);
#endregion
if (!flowTaskParamter.suspend)
{
var childTask = await _flowTaskRepository.GetTaskList(x => flowTaskParamter.flowTaskEntity.Id == x.ParentId && x.DeleteMark == null);
foreach (var item in childTask)
{
var childFlowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(item.Id, null);
childFlowTaskParamter.handleOpinion = flowTaskParamter.handleOpinion;
childFlowTaskParamter.signImg = flowTaskParamter.signImg;
childFlowTaskParamter.suspend = flowTaskParamter.suspend;
childFlowTaskParamter.fileList = flowTaskParamter.fileList;
await this.Suspend(childFlowTaskParamter);
}
}
}
/// <summary>
/// 恢复.
/// </summary>
/// <param name="flowTaskParamter">任务参数.</param>
/// <returns></returns>
public async Task Restore(FlowTaskParamter flowTaskParamter)
{
flowTaskParamter.flowTaskEntity.Suspend = null;
await _flowTaskRepository.UpdateTask(flowTaskParamter.flowTaskEntity);
#region
await flowTaskOtherUtil.CreateOperatorRecode(flowTaskParamter, 12);
#endregion
var childTask = await _flowTaskRepository.GetTaskList(x => flowTaskParamter.flowTaskEntity.Id == x.ParentId && x.DeleteMark == null);
foreach (var item in childTask)
{
if (item.Suspend == 1)
{
var childFlowTaskParamter = await _flowTaskRepository.GetTaskParamterByTaskId(item.Id, null);
childFlowTaskParamter.handleOpinion = flowTaskParamter.handleOpinion;
childFlowTaskParamter.signImg = flowTaskParamter.signImg;
childFlowTaskParamter.fileList = flowTaskParamter.fileList;
await this.Restore(childFlowTaskParamter);
}
}
}
#endregion
#region PrivateMethod
@@ -1599,6 +1683,9 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
isAsync = childTaskPro.isAsync
};
var childTaskEntity = await this.Save(flowTaskSubmitModel);
var flowTaskParamter = new FlowTaskParamter { flowTaskEntity = childTaskEntity };
var bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, new List<string> { item }, null, 1);
await flowTaskMsgUtil.Alerts(childTaskPro.launchMsgConfig, new List<string> { item }, flowTaskParamter, "MBXTLC011", bodyDic);
childTaskId.Add(childTaskEntity.Id);
}
return childTaskId;
@@ -1755,7 +1842,7 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
flowTaskSubmitModel.formData = formDic;
}
var fEntity = _flowTaskRepository.GetFlowFromEntity(formId);
await _runService.SaveFlowFormData(fEntity, flowTaskSubmitModel.formData.ToJsonString(), id, isUpdate);
await _runService.SaveFlowFormData(fEntity, flowTaskSubmitModel.formData.ToJsonString(), id, flowTaskSubmitModel.flowId, isUpdate);
// 功能流程提交
if (flowTaskSubmitModel.isDev && flowTaskSubmitModel.id.IsNotEmptyOrNull() && flowTaskSubmitModel.status == 0)
{
@@ -1868,35 +1955,39 @@ public class FlowTaskManager : IFlowTaskManager, ITransient
/// <returns></returns>
private async Task NotifyEvent(ApproversProperties approPro, FlowTaskParamter flowTaskParamter, string nodeId, int count, bool isTimeOut)
{
var msgEncode = isTimeOut ? "MBXTLC009" : "MBXTLC008";
var msgReMark = isTimeOut ? "超时" : "提醒";
var msgConfig = isTimeOut ? approPro.overTimeMsgConfig : approPro.noticeMsgConfig;
var funcConfig = isTimeOut ? approPro.overTimeFuncConfig : approPro.noticeFuncConfig;
var timeOutConfig = isTimeOut ? approPro.overTimeConfig : approPro.noticeConfig;
// 通知
if (timeOutConfig.overNotice)
var flowTask = await _flowTaskRepository.GetTaskInfo(flowTaskParamter.flowTaskEntity.Id);
if (flowTask.IsNotEmptyOrNull() && flowTask.Suspend != 1)
{
var operatorList = await _flowTaskRepository.GetTaskOperatorList(x => x.TaskId == flowTaskParamter.flowTaskEntity.Id && x.TaskNodeId == nodeId && x.Completion == 0 && x.State != "-1");
var userList = operatorList.Select(x => x.HandleId).ToList();
var remark = string.Format("现在时间:{3},节点{0}:第{1}次{2}通知", nodeId, count, msgReMark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine(remark);
var bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, operatorList, 2, remark);
if (msgConfig.on > 0)
var msgEncode = isTimeOut ? "MBXTLC009" : "MBXTLC008";
var msgReMark = isTimeOut ? "超时" : "提醒";
var msgConfig = isTimeOut ? approPro.overTimeMsgConfig : approPro.noticeMsgConfig;
var funcConfig = isTimeOut ? approPro.overTimeFuncConfig : approPro.noticeFuncConfig;
var timeOutConfig = isTimeOut ? approPro.overTimeConfig : approPro.noticeConfig;
// 通知
if (timeOutConfig.overNotice)
{
await flowTaskMsgUtil.Alerts(msgConfig, userList, flowTaskParamter, msgEncode, bodyDic);
var operatorList = await _flowTaskRepository.GetTaskOperatorList(x => x.TaskId == flowTaskParamter.flowTaskEntity.Id && x.TaskNodeId == nodeId && x.Completion == 0 && x.State != "-1");
var userList = operatorList.Select(x => x.HandleId).ToList();
var remark = string.Format("现在时间:{3},节点{0}:第{1}次{2}通知", nodeId, count, msgReMark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine(remark);
var bodyDic = flowTaskMsgUtil.GetMesBodyText(flowTaskParamter, userList, operatorList, 2, remark);
if (msgConfig.on > 0)
{
await flowTaskMsgUtil.Alerts(msgConfig, userList, flowTaskParamter, msgEncode, bodyDic);
}
}
// 事件
if (funcConfig.on && timeOutConfig.overEvent && timeOutConfig.overEventTime == count)
{
Console.WriteLine(string.Format("开始执行{0}事件,现在时间:{1}", msgReMark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
await flowTaskMsgUtil.RequestEvents(funcConfig, flowTaskParamter);
}
//自动审批
if (isTimeOut && timeOutConfig.overAutoApproveTime == count && timeOutConfig.overAutoApprove)
{
Console.WriteLine("开始自动审批,现在时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
await AutoAudit(flowTaskParamter, true);
}
}
// 事件
if (funcConfig.on && timeOutConfig.overEvent && timeOutConfig.overEventTime == count)
{
Console.WriteLine(string.Format("开始执行{0}事件,现在时间:{1}", msgReMark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
await flowTaskMsgUtil.RequestEvents(funcConfig, flowTaskParamter);
}
//自动审批
if (isTimeOut && timeOutConfig.overAutoApproveTime == count && timeOutConfig.overAutoApprove)
{
Console.WriteLine("开始自动审批,现在时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
await AutoAudit(flowTaskParamter, true);
}
}