using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using Model;
|
using Common;
|
using Oracle.DataAccess.Client;
|
using System.Data.Common;
|
|
namespace Dao
|
{
|
/// <summary>
|
/// 流程节点定义操作
|
/// </summary>
|
public class SysFlowNodeDao : IDisposable
|
{
|
public void Dispose()
|
{
|
}
|
|
private static SysFlowNodeDao _instance;
|
public static SysFlowNodeDao Instance
|
{
|
get {
|
if (_instance == null)
|
{
|
_instance = new SysFlowNodeDao();
|
}
|
return _instance;
|
}
|
}
|
|
/// <summary>
|
/// 获取信息列表
|
/// </summary>
|
/// <returns></returns>
|
public List<SysFlowNode> List(SysFlowNode sysFlowNode)
|
{
|
List<SysFlowNode> list = new List<SysFlowNode>();
|
try
|
{
|
StringBuilder stringBuilder = new StringBuilder();
|
stringBuilder.Append("SELECT SFN.* ");
|
stringBuilder.Append(" FROM SYS_FLOW_NODE SFN ");
|
stringBuilder.Append(" WHERE 1=1 ");
|
|
if (sysFlowNode.FlowNodeCode != null && sysFlowNode.FlowNodeCode != "")
|
{
|
stringBuilder.Append(" AND FLOW_NODE_CODE= '" + sysFlowNode.FlowNodeCode + "' ");
|
}
|
if (sysFlowNode.BusinessType != 0)
|
{
|
stringBuilder.Append(" AND BUSINESS_TYPE= " + sysFlowNode.BusinessType + " ");
|
}
|
stringBuilder.Append(" ORDER BY BUSINESS_TYPE ");
|
|
using (OracleDataReader reader = OracleHelper.ExecuteReader(stringBuilder.ToString() , OracleHelper.Connection))
|
{
|
while (((DbDataReader)reader).Read())
|
{
|
SysFlowNode o = new SysFlowNode();
|
if (this.ReadInfo(reader, o))
|
list.Add(o);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Error(ex);
|
return list;
|
}
|
return list;
|
}
|
|
|
//添加信息
|
public bool Add(SysFlowNode o)
|
{
|
StringBuilder stringBuilder = new StringBuilder();
|
stringBuilder.Append("INSERT INTO SYS_FLOW_NODE ( ");
|
stringBuilder.Append(" ID, FLOW_NODE_CODE, FLOW_NODE_NAME, ROLE_ID, USER_ID, BUSINESS_TYPE, REMARK ");
|
stringBuilder.Append(" ) ");
|
stringBuilder.Append(" VALUES (:ID, :FLOW_NODE_CODE, :FLOW_NODE_NAME, :ROLE_ID, :USER_ID, :BUSINESS_TYPE, :REMARK ");
|
stringBuilder.Append(" ) ");
|
|
string sql = stringBuilder.ToString();
|
|
return OracleHelper.ExecuteSql(sql,
|
OracleHelper.Connection,
|
new OracleParameter(":ID", (object)o.Id),
|
new OracleParameter(":FLOW_NODE_CODE", (object)o.FlowNodeCode),
|
new OracleParameter(":FLOW_NODE_NAME", (object)o.FlowNodeName),
|
new OracleParameter(":ROLE_ID", (object)o.RoleId),
|
new OracleParameter(":USER_ID", (object)o.UserId),
|
new OracleParameter(":BUSINESS_TYPE", (object)o.BusinessType),
|
new OracleParameter(":REMARK", (object)o.Remark)
|
) > 0;
|
}
|
|
//删除
|
public bool Delete(string id)
|
{
|
if (string.IsNullOrEmpty(id) )
|
return false;
|
return OracleHelper.ExecuteSql("delete from SYS_FLOW_NODE where ID=:ID", OracleHelper.Connection, new OracleParameter(":ID", (object)id)) > 0;
|
}
|
|
//更新产品或产品分类信息
|
public bool Update(SysFlowNode o)
|
{
|
OracleParameter[] cmdParms = new OracleParameter[] {
|
new OracleParameter(":ID", (object)o.Id),
|
new OracleParameter(":FLOW_NODE_CODE", (object)o.FlowNodeCode),
|
new OracleParameter(":FLOW_NODE_NAME", (object)o.FlowNodeName),
|
new OracleParameter(":ROLE_ID", (object)o.RoleId),
|
new OracleParameter(":USER_ID", (object)o.UserId),
|
new OracleParameter(":BUSINESS_TYPE", (object)o.BusinessType),
|
new OracleParameter(":REMARK", (object)o.Remark)
|
};
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
stringBuilder.Append("UPDATE SYS_FLOW_NODE SET ");
|
stringBuilder.Append(" , FLOW_NODE_CODE =:FLOW_NODE_CODE ");
|
stringBuilder.Append(" , FLOW_NODE_NAME =:FLOW_NODE_NAME ");
|
stringBuilder.Append(" , ROLE_ID =:ROLE_ID ");
|
stringBuilder.Append(" , USER_ID=:USER_ID, BUSINESS_TYPE=:BUSINESS_TYPE, REMARK=:REMARK ");
|
stringBuilder.Append(" WHERE ID=:ID ");
|
|
string sql = stringBuilder.ToString();
|
return (OracleHelper.ExecuteSql(sql, OracleHelper.Connection, cmdParms) > 0);
|
}
|
|
//获取信息
|
public SysFlowNode Get(string id)
|
{
|
SysFlowNode o = new SysFlowNode();
|
if (string.IsNullOrEmpty(id))
|
return o;
|
using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from SYS_FLOW_NODE where ID=:ID"), OracleHelper.Connection, new OracleParameter(":ID", (object)id)))
|
{
|
if (((DbDataReader)reader).Read())
|
{
|
this.ReadInfo(reader, o);
|
return o;
|
}
|
}
|
return o;
|
}
|
|
/// <summary>
|
/// 根据用户及流程节点获取判断是有权限
|
/// </summary>
|
/// <returns></returns>
|
public List<SysFlowNode> IsAuth(SysFlowNode sysFlowNode)
|
{
|
List<SysFlowNode> list = new List<SysFlowNode>();
|
try
|
{
|
StringBuilder stringBuilder = new StringBuilder();
|
stringBuilder.Append("SELECT SFN.* ");
|
stringBuilder.Append(" FROM SYS_FLOW_NODE SFN ");
|
stringBuilder.Append(" WHERE 1=1 ");
|
|
if (sysFlowNode.FlowNodeCode != null && sysFlowNode.FlowNodeCode != "")
|
{
|
stringBuilder.Append(" AND FLOW_NODE_CODE= '" + sysFlowNode.FlowNodeCode + "' ");
|
}
|
if (sysFlowNode.BusinessType != 0)
|
{
|
stringBuilder.Append(" AND BUSINESS_TYPE= " + sysFlowNode.BusinessType + " ");
|
}
|
if (sysFlowNode.UserId != null && sysFlowNode.UserId != "")
|
{
|
stringBuilder.Append(" AND INSTR(','||USER_ID||',', '" + sysFlowNode.UserId + "') > 0"); //对应MySql的FIND_IN_SET语法。
|
}
|
stringBuilder.Append(" ORDER BY BUSINESS_TYPE ");
|
|
using (OracleDataReader reader = OracleHelper.ExecuteReader(stringBuilder.ToString(), OracleHelper.Connection))
|
{
|
while (((DbDataReader)reader).Read())
|
{
|
SysFlowNode o = new SysFlowNode();
|
if (this.ReadInfo(reader, o))
|
list.Add(o);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Error(ex);
|
return list;
|
}
|
return list;
|
}
|
|
//统计记录数
|
private int ReadCount(OracleDataReader reader)
|
{
|
OracleReaderWrapper wrapper = new OracleReaderWrapper(reader);
|
return wrapper.GetInt("count", 0);
|
}
|
|
//数据封装
|
private bool ReadInfo(OracleDataReader reader, SysFlowNode o)
|
{
|
OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
|
o.Id = oracleReaderWrapper.GetString("ID", "");
|
o.FlowNodeCode = oracleReaderWrapper.GetString("FLOW_NODE_CODE", "");
|
o.FlowNodeName = oracleReaderWrapper.GetString("FLOW_NODE_NAME", "");
|
o.RoleId = oracleReaderWrapper.GetString("ROLE_ID", "");
|
o.UserId = oracleReaderWrapper.GetString("USER_ID", "");
|
o.BusinessType = oracleReaderWrapper.GetInt("BUSINESS_TYPE", 0);
|
o.Remark = oracleReaderWrapper.GetString("REMARK", "");
|
return true;
|
}
|
|
}
|
|
}
|