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 { /// /// 流程节点定义操作 /// public class SysFlowNodeDao : IDisposable { public void Dispose() { } private static SysFlowNodeDao _instance; public static SysFlowNodeDao Instance { get { if (_instance == null) { _instance = new SysFlowNodeDao(); } return _instance; } } /// /// 获取信息列表 /// /// public List List(SysFlowNode sysFlowNode) { List list = new List(); 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; } /// /// 根据用户及流程节点获取判断是有权限 /// /// public List IsAuth(SysFlowNode sysFlowNode) { List list = new List(); 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"); } 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; } } }