diff --git a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj
index 602aaff..f227794 100644
--- a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj
+++ b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj
@@ -102,6 +102,9 @@
D:\U8SOFT\Workflow\Lib\UFIDA.U8.Audit.ServiceProxy.dll
False
+
+ D:\U8SOFT\Portal\UFIDA.U8.Portal.MTC.Design.dll
+
D:\U8SOFT\U8M\UFSoft.U8.BO.BE.dll
diff --git a/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs b/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs
index 495c62d..e74f273 100644
--- a/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs
+++ b/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs
@@ -1,29 +1,35 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
using System.Threading.Tasks;
-using ADODB;
using log4net;
using UFIDA.U8.Audit.ServiceProxy;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.U8M;
-using UFSoft.U8.Framework.ContextSrv;
-using UFSoft.U8.Framework.LoginContext;
+// ReSharper disable IdentifierTypo
namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
{
+ ///
+ /// 工作流
+ ///
public class ServiceProxy
{
- protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
+ private readonly ILog _logInfo = LogManager.GetLogger("_logInfo");
+ ///
+ /// #是否启用审批流#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public bool IsFlowEnabled(BaseLogin login, string bizObjectId, string eventId)
{
var auditServiceProxy = new AuditServiceProxy();
var errMsg = "";
var res = auditServiceProxy.IsFlowEnabled(bizObjectId, eventId, login._productContext.calledContext, ref errMsg);
- if (!res && !string.IsNullOrWhiteSpace(errMsg))
+ if (!string.IsNullOrWhiteSpace(errMsg))
{
throw new Exception(errMsg);
}
@@ -31,33 +37,51 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
return res;
}
- public BaseResult SubmitApplicationMessage(BaseLogin login, string bizObjectId, string eventId, string voucherId,string voucherCode)
+ ///
+ /// #提交审批流#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> SubmitApplicationMessage(BaseLogin login, string bizObjectId, string eventId, string voucherId,string voucherCode)
{
try
{
var auditServiceProxy = new AuditServiceProxy();
- var isWFControled = false;
+
+ var isWfControled = false;
var errMsg = "";
- var res = auditServiceProxy.SubmitApplicationMessage(bizObjectId, eventId, voucherId, login._productContext.calledContext, ref isWFControled, ref errMsg);
+
+ var res = auditServiceProxy.SubmitApplicationMessage(bizObjectId, eventId, voucherId, login._productContext.calledContext, ref isWfControled, ref errMsg);
if (!res && !string.IsNullOrWhiteSpace(errMsg))
{
throw new Exception(errMsg);
}
- if (!isWFControled && !string.IsNullOrWhiteSpace(errMsg))
+ if (!isWfControled && !string.IsNullOrWhiteSpace(errMsg))
{
throw new Exception(errMsg);
}
- if (!isWFControled)
+ if (!isWfControled)
{
throw new Exception("当前单据无法进入工作流");
}
- return new BaseResult()
+ if (!res)
{
- bSuccess = res,
+ throw new Exception("审批流发生异常");
+ }
+
+
+ return new BaseResult
+ {
+ bSuccess = true,
message = "提交成功",
result = "提交成功",
voucherId = voucherId,
@@ -67,8 +91,11 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
}
catch (Exception ex)
{
- logInfo.Error($"审批流异常:{ex.Message}", ex);
- return new BaseResult()
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
+
+ await Task.Delay(1);
+
+ return new BaseResult
{
bSuccess = false, message = "提交失败", voucherCode = voucherCode, voucherId = voucherId,
result = ex.Message
@@ -76,28 +103,353 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
}
}
-
- public string GetBizObjectId(Connection conn,string cCardNum)
+ ///
+ /// #单据审核#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> Audit(BaseLogin login, string cCardNum, short action, short state, string opinion, string voucherId, string voucherCode)
{
- var rst = new Recordset();
-
-
- var strSql = $"SELECT cHeadBusObjectId FROM dbo.vouchers WHERE CardNumber='{cCardNum}'";
-
- rst.Open(strSql,conn);
-
- if (rst.EOF || rst.BOF)
+ try
{
- throw new Exception($"未查询到单据类型编码{cCardNum}的配置信息");
+ var keySet = $@"";
+
+ var auditServiceProxy = new AuditServiceProxy();
+ var errMsg = "";
+ var res = auditServiceProxy.Audit(keySet, action, state, opinion, login._productContext.calledContext, ref errMsg);
+
+ if (!res && !string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!res)
+ {
+ throw new Exception("审批流发生异常");
+ }
+
+ return new BaseResult
+ {
+ bSuccess = true,
+ message = "审核成功",
+ result = "审核成功",
+ voucherId = voucherId,
+ voucherCode = voucherCode
+ };
+
}
+ catch (Exception ex)
+ {
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
- rst.MoveFirst();
+ await Task.Delay(1);
- var res = $"{rst.Fields["cHeadBusObjectId"].Value}";
+ return new BaseResult
+ {
+ bSuccess = false,
+ message = "审核失败",
+ voucherCode = voucherCode,
+ voucherId = voucherId,
+ result = ex.Message
+ };
+ }
+ }
- rst.Close();
+ ///
+ /// #单据弃审#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> Abandon(BaseLogin login, string cCardNum, short action, short state, string opinion, string voucherId, string voucherCode)
+ {
+ try
+ {
+ var keySet = $@"";
- return res;
+ var auditServiceProxy = new AuditServiceProxy();
+ var errMsg = "";
+ var res = auditServiceProxy.Abandon(keySet, opinion, state, login._productContext.calledContext, ref errMsg);
+
+ if (!res && !string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!res)
+ {
+ throw new Exception("审批流发生异常");
+ }
+
+ return new BaseResult
+ {
+ bSuccess = true,
+ message = "弃审成功",
+ result = "弃审成功",
+ voucherId = voucherId,
+ voucherCode = voucherCode
+ };
+
+ }
+ catch (Exception ex)
+ {
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
+
+ await Task.Delay(1);
+
+ return new BaseResult
+ {
+ bSuccess = false,
+ message = "审核失败",
+ voucherCode = voucherCode,
+ voucherId = voucherId,
+ result = ex.Message
+ };
+ }
+ }
+
+ ///
+ /// #流程撤销#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> RevokeAudition(BaseLogin login, string cCardNum, string bizObjectId, string eventId, string voucherId, string voucherCode)
+ {
+ try
+ {
+ var auditServiceProxy = new AuditServiceProxy();
+
+ var data = "";
+ var errMsg = "";
+
+ var res = auditServiceProxy.RevokeAudition(bizObjectId, eventId, voucherId, cCardNum,voucherCode,ref data,login._productContext.calledContext, ref errMsg);
+
+ if (!res && !string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!res)
+ {
+ throw new Exception("审批流发生异常");
+ }
+
+ return new BaseResult
+ {
+ bSuccess = true,
+ message = "撤销成功",
+ result = "撤销成功",
+ voucherId = voucherId,
+ voucherCode = voucherCode
+ };
+
+ }
+ catch (Exception ex)
+ {
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
+
+ await Task.Delay(1);
+
+ return new BaseResult
+ {
+ bSuccess = false,
+ message = "撤销失败",
+ voucherCode = voucherCode,
+ voucherId = voucherId,
+ result = ex.Message
+ };
+ }
+ }
+
+ ///
+ /// #取得审批历史进程信息#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> GetAuditedHistoryXml(BaseLogin login, string cCardNum, string voucherId, string voucherCode)
+ {
+ try
+ {
+ var auditServiceProxy = new AuditServiceProxy();
+
+ var res = auditServiceProxy.GetAuditedHistoryXml(voucherId, cCardNum, login._productContext.calledContext);
+
+ if (string.IsNullOrWhiteSpace(res))
+ {
+ throw new Exception("未能取得审批历史进程信息");
+ }
+
+ return new BaseResult
+ {
+ bSuccess = true,
+ message = "获取成功",
+ result = res,
+ voucherId = voucherId,
+ voucherCode = voucherCode
+ };
+
+ }
+ catch (Exception ex)
+ {
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
+
+ await Task.Delay(1);
+
+ return new BaseResult
+ {
+ bSuccess = false,
+ message = "获取失败",
+ voucherCode = voucherCode,
+ voucherId = voucherId,
+ result = ex.Message
+ };
+ }
+ }
+
+ ///
+ /// #退回提交人后重新提交#
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> SubmitResubmitMessage(BaseLogin login, string cCardNum, string voucherId, string voucherCode)
+ {
+ try
+ {
+ var auditServiceProxy = new AuditServiceProxy();
+
+ var keySet = $@"";
+
+ var errMsg = "";
+
+ var res = auditServiceProxy.SubmitResubmitMessage(keySet, login._productContext.calledContext,ref errMsg);
+
+ if (!res && !string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (!res)
+ {
+ throw new Exception("审批流发生异常");
+ }
+
+ return new BaseResult
+ {
+ bSuccess = true,
+ message = "提交成功",
+ result = "提交成功",
+ voucherId = voucherId,
+ voucherCode = voucherCode
+ };
+ }
+ catch (Exception ex)
+ {
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
+
+ await Task.Delay(1);
+
+ return new BaseResult
+ {
+ bSuccess = false,
+ message = "提交失败",
+ voucherCode = voucherCode,
+ voucherId = voucherId,
+ result = ex.Message
+ };
+ }
+ }
+
+ ///
+ /// #取得代办任务#
+ ///
+ ///
+ ///
+ ///
+ public async Task> GetTasks(BaseLogin login, bool hasDone)
+ {
+ try
+ {
+ var auditServiceProxy = new AuditServiceProxy();
+
+ var errMsg = "";
+
+ var res = auditServiceProxy.GetTasks(hasDone, login._productContext.calledContext, ref errMsg);
+
+ if (!string.IsNullOrWhiteSpace(errMsg))
+ {
+ throw new Exception(errMsg);
+ }
+
+ if (string.IsNullOrWhiteSpace(res))
+ {
+ throw new Exception("审批流发生异常");
+ }
+
+ return new BaseResult
+ {
+ bSuccess = true,
+ message = "提交成功",
+ result = res
+ };
+ }
+ catch (Exception ex)
+ {
+ _logInfo.Error($"审批流异常:{ex.Message}", ex);
+
+ await Task.Delay(1);
+
+ return new BaseResult
+ {
+ bSuccess = false,
+ message = "获取失败",
+ result = ex.Message
+ };
+ }
}
}
}
diff --git a/UFIDA.U8.Framework.Api/App_Data/API_Meta.db b/UFIDA.U8.Framework.Api/App_Data/API_Meta.db
index 7bbfe91..065dcc6 100644
Binary files a/UFIDA.U8.Framework.Api/App_Data/API_Meta.db and b/UFIDA.U8.Framework.Api/App_Data/API_Meta.db differ