Files
lserp_cs_6.0/插件库/Lskj.Business/Impl/BaseAuditImpl.cs
T
cyf d6739afcd1 SVN r999
SVN-Revision: r999
2025-09-28 06:46:58 +00:00

1141 lines
60 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*******************************
* 说明:基础档案审批接口
* 创建人:龚宇超
* 创建日期:2017-12-19
* 修改人:
* 修改日期:
* 修改备注:
* 版本:1.0.0.0
********************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Lskj.Core;
using System.Data.SqlClient;
using Lskj.Model;
using Lskj.Util;
namespace Lskj.Business.Impl
{
/// <summary>
/// 基础档案审批相关接口实现
/// </summary>
public class BaseAuditImpl : BaseModuleImpl
{
/// <summary>
/// <para>说明:设置确认信息</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-19</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="confirmId">确认权限Id</param>
/// <param name="operatorId">用户Id</param>
/// <param name="comfirmAdvice">确认意见.</param>
/// <returns>System.Int32.</returns>
public static int SetBaseFlowComfirm(string UserId, string ModuleCode, string PrimaryValue, string comfirmAdvice)
{
int result = 0;
if (BaseImpl.HasExistsTable("p_baseflowComfirm"))
{
string sqlValue = string.Format("Update p_baseflowComfirm set comfirmFlag=1,comfirmOper='{0}',comfirmDate='{1}',comfirmAdvice='{2}' where modid='{3}' and keyvalue='{4}' and operatorid='{5}'", UserId, DateTime.Now.ToString(), comfirmAdvice, ModuleCode, PrimaryValue, ERPInfo.Instance.UserId);
result = ExecSqlValue(sqlValue);
}
return result;
}
/// <summary>
/// <para>说明:判断存储过程参数方法</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-11-18</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="confirmId">确认权限Id</param>
/// <param name="operatorId">用户Id</param>
/// <param name="comfirmAdvice">确认意见.</param>
/// <returns>System.Int32.</returns>
public static bool isParamComplete(string storedName, string[] Param)
{
string whereConfig = string.Empty;
for (int i = 0; i < Param.Length; i++)
{
whereConfig += string.Format(" LOWER(PARAMETER_NAME)=LOWER('{0}') or", Param[i]);
}
string sql = string.Format("SELECT PARAMETER_NAME AS [参数名称] FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='{1}' and ({0})", whereConfig.Substring(0, whereConfig.Length - 2), storedName);
return SqlHelper.ExecuteDataTable(sql).Rows.Count == Param.Length;
}
/// <summary>
/// <para>说明:返回审批结果(通用多种审批处理结果)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-11</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="dam">基础模型</param>
/// <param name="stepCode">步骤编号</param>
/// <param name="billDocumentId">单据编号.</param>
/// <param name="Msg">特定消息</param>
/// <param name="storedName">存储过程名.</param>
/// <param name="accractFlag">审批方向'F'=审批,'R'反审批 'Q' 关闭.</param>
/// <param name="remindSelect">提醒</param>
/// <param name="remarkText">意见文本.</param>
/// <param name="remindOpers">提醒人</param>
/// <param name="confirmOpers">确认人</param>
/// <param name="ret">是否为返退处理<c>true</c> [ret].</param>
/// <param name="returnd">返退参数</param>
/// <returns>System.String.</returns>
public static string Audit(out string nextSelectStepCode, out string nextSelectStepOper, DynamicModel sysModel, string stepCode, string billDocumentId, string message, string storedName, string accractFlag, string remindSelect, string remarkText = "", string remindOpers = "", string confirmOpers = "", bool ret = false, int returnd = 0, int selectConfirmFlag = 0, bool IsStepOver = false)
{
bool newAudit = true;
int i = 8;
string[] newParameter = new string[] { "@nextSelectStepCode", "@nextSelectStepOper", "@selectConfirmFlag" };
if (!isParamComplete(storedName, newParameter)) newAudit = false;
SqlParameter msg = ERPInfo.Instance.ChangeParameterType ? new SqlParameter("@msg", SqlDbType.NVarChar, 6000) : new SqlParameter("@msg", SqlDbType.VarChar, 3000);
msg.Direction = ParameterDirection.Output;
SqlParameter NextSelectStepCode = new SqlParameter("@nextSelectStepCode", SqlDbType.VarChar, 3000);
NextSelectStepCode.Direction = ParameterDirection.Output;
SqlParameter NextSelectStepOper = new SqlParameter("@nextSelectStepOper", SqlDbType.VarChar, 3000);
NextSelectStepOper.Direction = ParameterDirection.Output;
List<SqlParameter> list = new List<SqlParameter>
{
new SqlParameter("@typeCode",SqlDbType.VarChar,10),
new SqlParameter("@stepCode",SqlDbType.Int,4),
new SqlParameter("@billDocumentId",SqlDbType.VarChar,200),
new SqlParameter("@operatorId",SqlDbType.Int,4),
ERPInfo.Instance.ChangeParameterType ?new SqlParameter("@operatorName",SqlDbType.NVarChar,40):new SqlParameter("@operatorName",SqlDbType.VarChar,20),
new SqlParameter("@auditAdvice",SqlDbType.VarChar,500),
new SqlParameter("@Direction",SqlDbType.Char,1),
msg,
};
if (newAudit)
{
list.Add(new SqlParameter("@selectConfirmFlag", SqlDbType.Int, 4));
list.Add(NextSelectStepCode);
list.Add(NextSelectStepOper);
}
if (remindSelect == "1")
{
list.Add(new SqlParameter("@hint_opers", SqlDbType.VarChar, 8000));
list.Add(new SqlParameter("@comfirm_opers", SqlDbType.VarChar, 8000));
}
if (ret) list.Add(new SqlParameter("@backStepCode", SqlDbType.Int, 4));
SqlParameter[] param = list.ToArray();
param[0].Value = sysModel.ModuleCode;
param[1].Value = string.IsNullOrEmpty(stepCode) ? 0 : Convert.ToInt32(stepCode);
param[2].Value = billDocumentId;
param[3].Value = sysModel.UserId;
param[4].Value = sysModel.UserName;
param[5].Value = accractFlag == "F" ? remarkText : IsStepOver ? "由[" + sysModel.UserName + "]强制退回,意见:" + remarkText : remarkText;
param[6].Value = accractFlag;
param[7].Value = "";
if (newAudit)
{
param[8].Value = selectConfirmFlag;
param[9].Value = "";
param[10].Value = "";
i += 3;
}
if (remindSelect == "1")
{
param[i].Value = remindOpers;
param[i + 1].Value = confirmOpers;
i += 2;
}
if (ret)
{
param[i].Value = returnd;
}
SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, storedName, "bill", param);
nextSelectStepCode = NextSelectStepCode.Value + "";
nextSelectStepOper = NextSelectStepOper.Value + "";
return msg.Value + "";
}
/// <summary>
/// 说明:返回审批结果(Return 值用于逻辑判断;@msg 用于提示展示)
/// 创建人:龚宇超
/// 创建日期:2017-12-11
/// 修改日期:2025-09-10(新增重载:返回 SP Return 值;@msg 通过 out
/// </summary>
public static string Audit(
out string nextSelectStepCode,
out string nextSelectStepOper,
out string msgText, // 新增:@msg 输出
DynamicModel sysModel,
string stepCode,
string billDocumentId,
string message, // 兼容保留
string storedName,
string accractFlag,
string remindSelect,
string remarkText = "",
string remindOpers = "",
string confirmOpers = "",
bool ret = false,
int returnd = 0,
int selectConfirmFlag = 0,
bool IsStepOver = false)
{
bool newAudit = true;
int i = 8;
string[] newParameter = new string[] { "@nextSelectStepCode", "@nextSelectStepOper", "@selectConfirmFlag" };
if (!isParamComplete(storedName, newParameter)) newAudit = false;
// 输出参数
SqlParameter pMsg = ERPInfo.Instance.ChangeParameterType
? new SqlParameter("@msg", SqlDbType.NVarChar, 6000)
: new SqlParameter("@msg", SqlDbType.VarChar, 3000);
pMsg.Direction = ParameterDirection.Output;
SqlParameter pNextSelectStepCode = new SqlParameter("@nextSelectStepCode", SqlDbType.VarChar, 3000);
pNextSelectStepCode.Direction = ParameterDirection.Output;
SqlParameter pNextSelectStepOper = new SqlParameter("@nextSelectStepOper", SqlDbType.VarChar, 3000);
pNextSelectStepOper.Direction = ParameterDirection.Output;
// Return 值参数
SqlParameter pReturn = new SqlParameter("@RETURN_VALUE", SqlDbType.Int)
{
Direction = ParameterDirection.ReturnValue
};
// 入参
List<SqlParameter> list = new List<SqlParameter>
{
new SqlParameter("@typeCode", SqlDbType.VarChar, 10),
new SqlParameter("@stepCode", SqlDbType.Int, 4),
new SqlParameter("@billDocumentId", SqlDbType.VarChar, 200),
new SqlParameter("@operatorId", SqlDbType.Int, 4),
ERPInfo.Instance.ChangeParameterType
? new SqlParameter("@operatorName", SqlDbType.NVarChar, 40)
: new SqlParameter("@operatorName", SqlDbType.VarChar, 20),
new SqlParameter("@auditAdvice", SqlDbType.VarChar, 500),
new SqlParameter("@Direction", SqlDbType.Char, 1),
pMsg
};
if (newAudit)
{
list.Add(new SqlParameter("@selectConfirmFlag", SqlDbType.Int, 4));
list.Add(pNextSelectStepCode);
list.Add(pNextSelectStepOper);
}
if (remindSelect == "1")
{
list.Add(new SqlParameter("@hint_opers", SqlDbType.VarChar, 8000));
list.Add(new SqlParameter("@comfirm_opers", SqlDbType.VarChar, 8000));
}
if (ret)
{
list.Add(new SqlParameter("@backStepCode", SqlDbType.Int, 4));
}
// 追加 Return 参数
list.Add(pReturn);
SqlParameter[] param = list.ToArray();
// 赋值
param[0].Value = sysModel.ModuleCode;
param[1].Value = string.IsNullOrEmpty(stepCode) ? 0 : Convert.ToInt32(stepCode);
param[2].Value = billDocumentId;
param[3].Value = sysModel.UserId;
param[4].Value = sysModel.UserName;
param[5].Value = (accractFlag == "F")
? remarkText
: (IsStepOver ? $"由[{sysModel.UserName}]强制退回,意见:{remarkText}" : remarkText);
param[6].Value = accractFlag;
param[7].Value = ""; // @msg 初始
if (newAudit)
{
param[8].Value = selectConfirmFlag;
param[9].Value = ""; // @nextSelectStepCode 初始
param[10].Value = ""; // @nextSelectStepOper 初始
i += 3;
}
if (remindSelect == "1")
{
param[i].Value = remindOpers;
param[i + 1].Value = confirmOpers;
i += 2;
}
if (ret)
{
param[i].Value = returnd;
}
// 执行
SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, storedName, "bill", param);
// 输出赋值
nextSelectStepCode = pNextSelectStepCode.Value + "";
nextSelectStepOper = pNextSelectStepOper.Value + "";
msgText = pMsg.Value + "";
// 返回存储过程 Return 值(以字符串返回,便于 "1".Equals(...) 判断)
string retCode = (pReturn.Value == null || pReturn.Value == DBNull.Value)
? "0"
: Convert.ToInt32(pReturn.Value).ToString();
if (retCode.Equals("-1")&& ERPInfo.Instance.UserName.Equals("管理员"))
{
SqlStoredProcedurepPrompt.GenerateAuditExecutionScript(sysModel, stepCode, billDocumentId, storedName, accractFlag, remindSelect, remarkText, remindOpers, confirmOpers, ret, returnd, selectConfirmFlag, IsStepOver);
}
return retCode;
}
/// <summary>
/// <para>说明:获取审批流程第一个tab</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-08 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号.</param>
/// <param name="operatorName">角色名</param>
/// <param name="table">表名</param>
/// <returns>DataTable.</returns>
public static DataRow GetDefaultStepTab(string menuCode, string operatorName, string table)
{
string sqlValue = string.Format(@"select top 1 stepGroup,stepCode
from {0}
where typecode=@menuCode " +
" and CHARINDEX(',@OperatorName,', ','+operuser+',')>0 " +
" and typekey is not null " +
"order by stepCode", table);
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@menuCode", menuCode), new SqlParameter("@OperatorName", operatorName) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取模块操作人</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-11</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="billDocumentId">单据编号</param>
/// <param name="stepCode">流程进度.</param>
/// <param name="flag">单据和基础标记</param>
/// <returns>DataTable.</returns>
public static DataRow GetSystemOperators(string billDocumentId, string stepCode, string flag)
{
string sqlValue = flag == "bill" ? "select operators,typeName menuname,'2'+CAST(b.id as varchar(10)) id from wms_billflowOper a,p_systembilltype b where a.modid=b.typeCode and keyvalue=@billdocumentId and stepcode=@stepCode and a.stepover=0" : "select operators,ToolsName menuname,'1'+CAST(b.dllid as varchar(10)) id from P_baseflowOper a,P_systemdlltab b where a.modid=b.DllCoid and keyvalue=@billdocumentId and stepcode=@stepCode and a.stepover=0";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@billdocumentId", billDocumentId), new SqlParameter("@stepCode", stepCode) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取流转操作人员(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-15</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <param name="paramaryValue">主键值</param>
/// <returns>DataRow.</returns>
public static DataRow GetFlowOperators(string menuCode, string paramaryValue, string stepcode)
{
DataTable dtTable = new DataTable();
if (SqlHelper.ExecuteDataTable("select object_id('p_baseflowoperex')").Rows.Count > 0 && int.Parse(SqlHelper.ExecuteScalar("select count(*) from sysobjects where id = object_id('p_baseflowoperex')") + "") > 0)
{
string sqlValue = @"select browsers,operators from p_baseflowoperex
where modid=@MenuCode and keyvalue=@ObjectId and stepcode=@stepcode";
dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@MenuCode", menuCode), new SqlParameter("@ObjectId", paramaryValue), new SqlParameter("@stepcode", stepcode) });
}
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取审批流程步骤进度值</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-11</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <returns>DataTable.</returns>
public static DataRow GetFlowStepCode(string menuCode)
{
string sqlValue = "select top 1 stepCode from p_systembillflow where typeCode=@MenuCode order by stepCode desc";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter("@MenuCode", menuCode));
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取弹出模块流转数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-15</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="filedNameKey">主键名称.</param>
/// <param name="objectId">主键值.</param>
/// <returns>DataRow.</returns>
public static DataRow GetCurrentFlowRowData(string tableName, string paramaryKey, string paramaryValue)
{
DataTable dtTable = SqlHelper.ExecuteDataTable(string.Format("select * from {0} where {1} = '{2}'", tableName, paramaryKey, paramaryValue));
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取当前弹出的审批进度跟踪内容</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-14</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <param name="stepCode">步骤编号</param>
/// <returns></returns>
public static DataRow GetCurrentStepFlow(string menuCode, string stepCode)
{
string sqlValue = "select * from P_systemdlltabflow where typeCode=@menuCode and stepCode=@stepCode";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@menuCode", menuCode), new SqlParameter("@stepCode", stepCode) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取当前流转步骤(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-15</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号.</param>
/// <param name="billType">单据类别</param>
/// <param name="stepCode">步骤编号.</param>
/// <returns>DataRow.</returns>
public static DataRow GetCurrentFlowStep(string menuCode, string billType, string stepCode)
{
string sqlValue = @"select * from p_systemdlltabflowtypestep where typecode=@MenuCode and billtype=@BillType and stepcode=@StepCode";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@MenuCode", menuCode), new SqlParameter("@BillType", billType), new SqlParameter("@StepCode", stepCode) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取当前控件数据(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-15</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sql">配置SQl</param>
/// <param name="filedNameKey">主键名称</param>
/// <param name="objectId">当前数据主键.</param>
/// <returns>DataRow.</returns>
public static DataRow GetCurrentControlData(string sql, string primaryKey, string paramaryValue)
{
string sqlValue = sql + string.Format(" and {0}='{1}'", primaryKey, paramaryValue);
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue);
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>得到确认人和提醒人(弹出提醒模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-22</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号</param>
/// <param name="paramaryValue">主键值</param>
/// <returns>DataRow.</returns>
public static DataRow GetConfirmAndRemindOpers(string menuCode, string paramaryValue)
{
string sqlValue = @"select comfirmOpers,remindOpers from p_baseflowOper where modid =@modid and keyvalue=@keyvalue";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@modid", menuCode), new SqlParameter("@keyvalue", paramaryValue) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>获取本次推送人员(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-25</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="paramaryValue">主键值.</param>
/// <param name="stepCode">步骤编码</param>
/// <returns>DataRow.</returns>
public static DataRow GetPushedOpers(string paramaryValue, string stepCode)
{
string sqlValue = "select operators,ToolsName menuname,'1'+CAST(b.dllid as varchar(10)) id from P_baseflowOper a,P_systemdlltab b where a.modid=b.DllCoid and keyvalue=@keyvalue and stepcode=@stepcode and a.stepover=0";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@keyvalue", paramaryValue), new SqlParameter("@stepcode", stepCode) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取新版审批的设置规则</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-11-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="typecode">当前模块编号.</param>
/// <param name="billtype">当前审批数据的单据类别</param>
/// <param name="stepcode">当前审批数据的步骤</param>
/// <returns>DataTable.</returns>
public static DataRow SetUpNextStep(string typecode, string billtype, string stepcode)
{
string sqlValue = string.Format(@"select nextStepSelect, --步骤选择标记
nextOperSelect,
multiAudit
from p_systemdlltabflowtypestep
where typecode='{0}'
and billtype={1}
and stepcode={2} ", typecode, billtype, stepcode);
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue);
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:获取新版审核用户确认后的数据源</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020--11-13 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="typecode">当前模块编号.</param>
/// <param name="nextSelectStepCode">步骤的返回值</param>
/// <returns>DataTable.</returns>
public static DataTable GetUpNextStepGrid(string typecode, string nextSelectStepCode)
{
string sqlValue = string.Format(@"select stepcode,stepname
from p_systemdlltabflow
where typecode='{0}'
and charindex(';'+cast(stepcode as varchar)+';',';{1};')>0 ", typecode, nextSelectStepCode);
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:获取选项卡</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-08 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号.</param>
/// <param name="mMenuCond">菜单条件</param>
/// <param name="table">表名.</param>
/// <returns>DataTable.</returns>
public static DataTable GetTabPages(string menuCode, string mMenuCond, string table)
{
string sqlstr = string.IsNullOrEmpty(mMenuCond) ? "" : "and stepCode in (@mMenuCond)";
SqlParameter[] parms = string.IsNullOrEmpty(sqlstr) ? new SqlParameter[] { new SqlParameter("@menuCode", menuCode) } : new SqlParameter[] { new SqlParameter("@menuCode", menuCode), new SqlParameter("@mMenuCond", mMenuCond) };
string sqlValue = string.Format("select stepGroup,MAX(id) as id,MAX(stepCode) stepCode from {1} where typeCode=@menuCode {0} group by stepGroup order by stepCode", sqlstr, table);
return SqlHelper.ExecuteDataTable(sqlValue, parms);
}
/// <summary>
/// <para>说明:加载默认审批flow表格列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-13</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetFlowGridColomns()
{
string sqlValue = @" select '1' id , 'stepCode' fieldName, 65 width, '' sysname , '步骤代码' username, '' dataFormat ,'' fieldsqltag union
select '2' , 'stepName' ,148 , '' , '步骤名称' , '','' union
select '3' , 'happenTime' ,120 , '' , '发生时间' , '' ,'444' union
select '4' , 'operTime' ,120 , '' , '操作时间' , '','444' union
select '5' , 'operatorName' ,120 ,'' , '操作人员' ,'' ,'' union
select '6' , 'operDirectionName' ,58 , '' , '操作方向' ,'','' union
select '7' , 'operAdvice' ,273 , '' , '操作建议' , '','' union
select '8' , 'autoStep' ,63 , '' , '自动审核' , '' ,'' ";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:获取审批流程跟踪信息</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-08 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="table">表名.</param>
/// <param name="menuCode">模块编号.</param>
/// <param name="stepGroup">审批流程组</param>
/// <returns>DataTable.</returns>
public static DataTable GetFlowStepTab(string table, string menuCode, string stepGroup)
{
string sqlValue = string.Format("select * from {0} where typeCode=@menuCode and stepGroup=@stepGroup order by stepCode asc", table);
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@menuCode", menuCode), new SqlParameter("@stepGroup", stepGroup) });
}
/// <summary>
/// <para>说明:获取审批表格列配置</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-08 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="table">表格名</param>
/// <param name="menuCode">模块编号.</param>
/// <param name="stepCode">进度编号</param>
/// <param name="operatorName">角色名</param>
/// <returns>DataTable.</returns>
public static DataTable GetGridColumns(string table, string menuCode, string stepCode, string operatorName)
{
string sqlValue = string.Format(@"select isnull(CASE WHEN ISNULL(b.userList,'')='' AND ISNULL(a.PrivilegeView,'')<>'' THEN 0 ELSE width END,0) width,a.id,
a.typeCode,a.stepCode,a.fieldName,a.sysName,a.userName,a.orderid,a.isVisible,a.privilegeView,a.MobileWidth,a.DataFormat
from {0} a
left join (
SELECT userList,privTypeId from p_systemPrivilege b where modId =@menuCode and ISNULL(userList,'')<>'' AND CHARINDEX(@username + ',', userList + ',') > 0
) b on CHARINDEX(CAST(b.privTypeId AS VARCHAR(5)) + ',',a.PrivilegeView + ',') > 0
where isnull(a.isVisible,0)=0 and typeCode=@menuCode and stepCode=@stepCode
order by orderid", table);
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@menuCode", menuCode), new SqlParameter("@stepCode", stepCode), new SqlParameter("@username", operatorName) });
}
/// <summary>
/// <para>说明:获取终审表格数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-11</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="model">基础档案审批模型.</param>
/// <param name="cancelFlag">取消标记 <c>true</c> [cancel flag].</param>
/// <param name="cond">搜索条件</param>
/// <returns>DataTable.</returns>
public static DataTable GetGridFinishData(BaseAccraditationModel model, bool cancelFlag, string cond)
{
string tmpsql = string.Empty;
if (!string.IsNullOrEmpty(model.MenuCond))
{
cond += string.Format(" and ({0}stepCode > {1} OR ({0}stepCode >= {1} and isnull({0}stepover,0)=1))", model.ColumnPrefix, model.MenuCond.Split(',').Last());
tmpsql = string.Format(@"select " + model.KeyField + @" as Billdocument_Id,convert(varchar(25),{0}Operatedate,120) as OperateDate,
dbo.P_GetOperator({0}operatorid) as OperatorName,{0}stepCode as stepCode,
convert(varchar(25),{0}AffirmDate,120) as AffirmDate,dbo.P_GetOperator({0}affirmer) as AffirmerName,
case when ISNULL(a.{0}StepOverName,'')='' then (select top 1 operatorName from p_baseflowstep b where a.{0}Billdocument_Id=b.flowSourceKey and a.{0}stepCode-100 = b.stepCode order by b.endTime desc) else a.{0}StepOverName end StepOverName,
convert(varchar(25),case when ISNULL(a.{0}StepOverTime,'')='' then (select top 1 endTime from p_baseflowstep b where a.{0}Billdocument_Id=b.flowSourceKey and a.{0}stepCode-100 = b.stepCode order by b.endTime desc) else a.{0}StepOverTime end,120) StepOverTime," +
(cancelFlag == true ? "case when isnull({0}cancelFlag,0)=1 then '关闭' else '正常' end " : "'正常'") + " as stepClosed " +
"from " + model.BillTable + @" a
where 1=1 ", model.ColumnPrefix) + cond;
}
else
{
cond += string.Format(" and isnull({0}stepover,0)=1 ", model.ColumnPrefix);
tmpsql = string.Format("select " + model.KeyField + @" as Billdocument_Id,convert(varchar(25),{0}Operatedate,120) as OperateDate,
dbo.P_GetOperator({0}operatorid) as OperatorName,{0}stepCode as stepCode,
convert(varchar(25),{0}AffirmDate,120) as AffirmDate,dbo.P_GetOperator({0}affirmer) as AffirmerName,
{0}StepOverName as StepOverName,convert(varchar(25),{0}StepOverTime,120) as StepOverTime," +
(cancelFlag == true ? "case when isnull({0}cancelFlag,0)=1 then '关闭' else '正常' end " : "'正常'") + " as stepClosed " +
"from " + model.BillTable + " a " +
"where 1=1", model.ColumnPrefix) + cond;
}
if (!string.IsNullOrWhiteSpace(model.OverBackCond))
tmpsql = tmpsql + " and (" + ReplaceHelper.ReplaceUserInfo(model.OverBackCond) + ")";
if (!string.IsNullOrWhiteSpace(model.OverBackOper))
tmpsql = tmpsql + " and charindex('" + ERPInfo.Instance.UserName + ",','" + model.OverBackOper + ",')>0";
return SqlHelper.ExecuteDataTable(tmpsql);
}
/// <summary>
/// <para>说明:填充GridFlow数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-11 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="billCode">单据编号.</param>
/// <param name="table">表名.</param>
/// <param name="mMenuCond">菜单条件</param>
/// <returns>DataTable.</returns>
public static DataTable GetGridFlowData(string billCode, string table, string mMenuCond)
{
// 假如为分段,则取最大步骤作为终审数据
string cond = !string.IsNullOrEmpty(mMenuCond) ? "and stepcode<=" + mMenuCond.Split(',').Last() : "";
if (SystemInfo.Instance.AutomaticStepHidie)
{
cond += " and autoStep !=1 ";
}
string sqlValue = string.Format(@"select stepCode,stepName,happenTime,operatorName,operTime,
case when operDirection='F' then
'审核'
when operDirection='Q' then
'关闭'
else '返退' end as operDirectionName,
applyTime,operAdvice,
case when autoStep=1 then '自动' else '' end as autoStep
from {0} a
where a.flowSourceKey=@BillCode {1} order by operTime", table, cond);
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@BillCode", billCode) });
}
/// <summary>
/// <para>说明:加载流转记录的列(基础审批弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-15</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetFlowRecordColumn()
{
string sqlValue = @" select '1' id ,'sh' fieldName,58 width,'' sysname ,'状态' username , '' dataFormat,'9' fieldsqltag union
select '2' ,'stepName',150 ,'' ,'环节名称' ,'','9' union
select '3' ,'operAdvice',120 ,'' ,'审核意见' ,'','9' union
select '4' , 'operTime',67 ,'' ,'审核时间' ,'','9' union
select '5' ,'operatorName' ,120 ,'' ,'审核人' ,'','9'";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:会签记录默认列 (基础审批弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-21</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetSignRecordCoulumn()
{
string sqlValue = @" select'1' id ,'operateName' fieldName,70 width,'' sysname, '操作员' username ,'' dataFormat union
select'2' ,'operateDate',120 ,'' , '操作时间' , '' union
select'3' ,'comfirmName',70 ,'' , '确认人' ,'' union
select'4' , 'comfirmDate',150 ,'' , '确认时间' , '' union
select'5' , 'comfirmAdvice',200 ,'' , '确认意见' , '' union
select '6' , 'Remark',200 ,'' , '备注' , '' ";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:提醒记录默认列 (基础审批弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-21</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetRemindColumn()
{
string sqlValue = @" select'1' id ,'needComfirm' fieldName,50 width,'' sysname , '需确认' username ,'' dataFormat union
select'2' ,'remind_stepName' ,75 ,'' , '步骤名' username ,'' union
select'3' ,'operateName' ,70 ,'' , '操作员' username ,'' union
select'4' , 'operateDate',120 ,'' , '操作时间' username ,'' union
select'5' , 'comfirmName',70 ,'' , '确认人' username ,'' union
select '6' ,'comfirmDate' ,120 ,'' , '确认时间' username ,'' union
select '7' , 'comfirmAdvice' ,200 ,'', '确认意见' username ,'' union
select '8' , 'Remark' ,400 ,'' , '备注' username ,'' ";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:获取提醒记录(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-20</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="billTable">单据表.</param>
/// <param name="confirmTable">确认表.</param>
/// <param name="paramaryValue">主键值</param>
/// <param name="menuCode">模块编号</param>
/// <returns>DataTable.</returns>
public static DataTable GetRemindinRecord(string billTable, string confirmTable, string paramaryValue, string menuCode)
{
string sqlValue = string.Format(@"select b.stepName remind_stepName,CAST(a.needComfirm as bit) needComfirm,dbo.P_GetOperator(a.operatorid) operateName,a.operateDate,dbo.P_GetOperator(a.comfirmOper) comfirmName,a.comfirmDate,a.comfirmAdvice,a.Remark from {1} a
left join {0} b on a.billtype=b.billType and a.stepcode=b.stepCode
where a.signFlag=0 and a.keyvalue=@keyvalue and a.modid=@modid ", billTable, confirmTable);
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@keyvalue", paramaryValue), new SqlParameter("@modid", menuCode) });
}
/// <summary>
/// <para>说明:获取会签记录(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-20</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="table">表名.</param>
/// <param name="keyValue">主键值.</param>
/// <param name="menuCode">模块编号.</param>
/// <returns>DataTable.</returns>
public static DataTable GetSignRecord(string table, string paramaryValue, string menuCode)
{
string sqlValue = string.Format(@"select dbo.P_GetOperator(operatorid) operateName,operateDate,dbo.P_GetOperator(comfirmOper) comfirmName,comfirmDate,comfirmAdvice,Remark from {0}
where signFlag=1 and keyvalue=@keyvalue and modid=@modid", table);
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@keyvalue", paramaryValue), new SqlParameter("@modid", menuCode) });
}
/// <summary>
/// <para>说明:获取选项卡数据(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-20</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuCode">模块编号/param>
/// <param name="stepCode">步骤编号</param>
/// <returns>DataTable.</returns>
public static DataTable GetAttachTabs(string menuCode, string stepCode, string whereCond = "")
{
string columnStr = ""; string DetailIsSave = ""; string unionCond = ""; string fields = "";
if (string.IsNullOrEmpty(whereCond))
whereCond = " and orderid > 0 ";
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "rightVisible"))
{
columnStr = ",rightVisible";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "DetailIsSave"))
{
DetailIsSave = ",DetailIsSave";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "unionmodule") && BaseImpl.HasExistsColumn("p_systembillauditAttach", "unionValue") && BaseImpl.HasExistsColumn("p_systembillauditAttach", "unionParentField") && BaseImpl.HasExistsColumn("p_systembillauditAttach", "unionCond"))
{
unionCond = ",unionmodule unionModule,unionValue,unionParentField,unionCond";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "privilegeoper"))
{
fields += ",privilegeoper";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "enablecond"))
{
fields += " ,enablecond";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "DBClickEvent"))
{
fields += " ,DBClickEvent";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "LoadFilter"))
{
fields += " ,LoadFilter";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "IsUnioDetail"))
{
fields += " ,IsUnioDetail";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "gridDetailCheck"))
{
fields += " ,gridDetailCheck";
}
if (BaseImpl.HasExistsColumn("p_systembillauditAttach", "DetailSearch"))
{
fields += " ,DetailSearch";
}
string sqlCond = string.Empty;
List<SqlParameter> parames = new List<SqlParameter>
{
new SqlParameter("@typeCode",menuCode),
new SqlParameter("@stepcode",stepCode)
};
SqlParameter[] parameters = parames.ToArray();
string sqlValue = string.Format(@"select id,attachName detailName,orderid,attachSql detailSql,attachType detailType,formKey,'' autoRefresh{3} {1} {2} {4} from p_systembillauditAttach where typeCode=@typeCode {0} and isnull(stepcode,0)=@stepCode and isnull(isVisible,0)=0 order by orderid", whereCond, columnStr, DetailIsSave, unionCond, fields);
return SqlHelper.ExecuteDataTable(sqlValue, parameters);
}
/// <summary>
/// <para>说明:获取下面基本信息选项卡(弹出模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-20</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="formKey">键值.</param>
/// <returns>DataTable.</returns>
public static DataTable GetBottomBasicInformation(string formKey)
{
string sqlValue = "select * from P_systembillauditAttachDetail where attachKey=@attachKey and isnull(isvisible,0)=0 order by orderid";
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@attachKey", formKey) });
}
/// <summary>
/// <para>说明:获取下面附加信息明细(弹出模块)</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-01-21</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="formKey">键值.</param>
/// <returns>DataTable.</returns>
public static DataRow GetBottomDetailModel(string formKey)
{
string sqlValue = "select * from p_systemDlltabDetail where formKey=@formKey";
DataTable dtTable = SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@formKey", formKey) });
return dtTable.Rows.Count > 0 ? dtTable.Rows[0] : null;
}
/// <summary>
/// <para>说明:加载流转记录的数据(弹出基础审批模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-21</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="tableName">表名.</param>
/// <param name="paramaryValue">主键值</param>
/// <returns>DataTable.</returns>
public static DataTable GetFlowRecordData(string tableName, string paramaryValue, string modeCode)
{
string fields = string.Empty;
if (HasExistsColumn(tableName, "flowSource"))
{
fields = " and flowSource=@flowSource ";
}
if (SystemInfo.Instance.AutomaticStepHidie)
{
fields += " and autoStep !=1 ";
}
//string sqlValue = string.Format("select case when stepcode=0 then stepName else REPLACE(REPLACE(REPLACE(operDirection,'R','退'),'F','审'),'Q','关闭') end as sh,* from {0} where flowSourceKey=@flowSourceKey {1} order by id asc", tableName, fields);
string sqlValue = string.Format("select case when stepcode=0 then stepName else REPLACE(REPLACE(REPLACE(REPLACE(operDirection,'R','退'),'F','审'),'Q','关闭'),'J','转交') end as sh,* from {0} where flowSourceKey=@flowSourceKey {1} order by id asc", tableName, fields);
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@flowSourceKey", paramaryValue), new SqlParameter("@flowSource", modeCode) });
}
/// <summary>
/// <para>说明:设置提醒主表列(弹出提醒模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-22</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetRemindSelectColumn()
{
string sqlValue = @" select '1' id ,'UserId' fieldName,85 width,'编号' username,''sysname,''dataFormat union
select'2', 'UserCode' ,85 ,'工号','',''union
select '3','UserName' ,350 ,'操作员','',''";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:设置提醒和确认人列表列(弹出提醒模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-22</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetPersonColumn()
{
string sqlValue = @"select '1'id, 'UserCode' fieldName,125 width,'工号' username,'' sysname,'' dataFormat union
select '2', 'UserName' ,125 ,'姓名','','' ";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>绑定提醒选择树(弹出提醒模块)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-22</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable BindRemindSelectTree()
{
string sqlValue = string.Format("select SpeciesNo,SpeciesName from {0}", SystemInfo.Instance.HrSpecTab);
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>反退步骤数据集(弹出反退)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-25</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="flowStepTable">流转表名</param>
/// <param name="masterTable">主表名</param>
/// <param name="flowTypeStepTable">流转类别表名</param>
/// <param name="currStepCode">当前步骤编号.</param>
/// <param name="parmaryKey">主键名</param>
/// <param name="paramaryValue">主键值</param>
/// <param name="columnPrefix">列前缀</param>
/// <returns>DataTable.</returns>
public static DataTable GetBackSelect(string flowStepTable, string masterTable, string flowTypeStepTable, int currStepCode, string parmaryKey, string paramaryValue, string columnPrefix)
{
string sqlValue = string.Format(@"select * from (select distinct a.stepCode,c.stepName
from {5} a
inner join {0} b on a.flowsourcekey=b.{1}
inner join {6} c on a.stepCode=c.stepCode and c.billType=b.{2}billtype
where a.flowSourceKey='{3}'
and isnull(a.autoStep,0)=0
and ISNULL(a.operDirection,'F')='F'
and a.stepCode<{4}
union all
select 0,'退回至提交人') x order by stepcode desc", masterTable, parmaryKey, columnPrefix, paramaryValue, currStepCode, flowStepTable, flowTypeStepTable);
if (SystemInfo.Instance.SpecialReverseStep)
{
sqlValue = string.Format(@"select * from (select distinct a.stepCode,c.stepName
from {5} a
inner join {0} b on a.flowsourcekey=b.{1}
inner join {6} c on a.stepCode=c.stepCode and c.billType=b.{2}billtype
where a.flowSourceKey='{3}'
and isnull(a.autoStep,0)=0
and ISNULL(a.operDirection,'F')='F'
and a.stepCode<{4}
and a.operAdvice<>'自动亩核'
and a.operAdvice<>'不同意'
union all
select 0,'退回至提交人') x order by stepcode desc", masterTable, parmaryKey, columnPrefix, paramaryValue, currStepCode, flowStepTable, flowTypeStepTable);
}
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>反退步骤数据集(弹出反退)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-25</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetBackSelect()
{
string sqlValue = @" select 0 as stepCode,'退回至提交人' as stepName";
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>反退步骤数据集(弹出反退)</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-25</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="formKey">The form key.</param>
/// <returns>DataTable.</returns>
public static DataTable GetControlLocation(string formKey)
{
string sqlValue = "select * from v_systemcontrolLocation where formKey=@formKey order by orderid asc";
return SqlHelper.ExecuteDataTable(sqlValue, new SqlParameter[] { new SqlParameter("@formKey", formKey) });
}
/// <summary>
/// <para>说明:执行SQL语句返回结果集</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-28 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="TableName">审批表格名称</param>
/// <param name="MenuCode">模块编号</param>
/// <returns>DataTable.</returns>
public static DataTable GetAuditMainGridCoulmns(string tableName, string menuCode)
{
string sqlValue = string.Format("select *,0 as fieldTypeId,0 as ifMerge from {0} a where typecode='{1}' and stepcode=999 and isnull(isvisible,0)=0 order by orderid", tableName, menuCode);
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:获取审批默认主表格列</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-28</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="flag">区分单据和基础档案</param>
/// <returns>DataTable.</returns>
public static DataTable GetDefaultGridMainColumns(string flag)
{
string billSysname = flag == "bill" ? "单据号" : "数据标识号";
string sqlValue = string.Format(@"
select '1' id ,'stepClosed' fieldName,57 width,'' sysname, '状态' username , '' dataFormat union
select '2' ,'Billdocument_Id' ,97 , '' , '{0}' username ,'' union
select '3' ,'OperateDate' ,120 ,'' , '制单时间' username, '' union
select '4' , 'OperatorName',67 ,'' , '制单人' username, '' union
select '5' ,'AffirmDate' ,120 ,'' , '提交时间' username, '' union
select '6' ,'AffirmerName' ,70 , '' , '提交人' username , '' union
select '7' ,'StepOverTime' ,120 , '' , '终审时间' username, '' union
select '8' ,'StepOverName' ,78 ,'' , '终审人' username, '' ", billSysname);
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:获取提醒用户</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-28</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="flag">区分单据和基础档案</param>
/// <returns>DataTable.</returns>
public static DataTable GetRemindSelectOpers(string speciesNo)
{
string SqlValue = string.Format("select EmployeeId UserId,LoginAccount UserCode,EmployeeName UserName from P_employeeTab where sign=0 and SpeciesNo like '{0}%'", speciesNo);
return SqlHelper.ExecuteDataTable(SqlValue);
}
/// <summary>
/// <para>说明:获取有代理权限的人员</para>
/// <para>创建人:</para>
/// <para>创建日期:2023-05-12</para>
/// <para>修改人:</para>
/// <para