using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using Business.FileFlow.Entity;
using Common;
namespace Business.FileFlow.Vo
{
public class FlowListVo
{
///
/// 参数赋值
///
/// 实体类FlowListEty
/// 参数数组
private SqlParameter[] SetPara(FlowListEty flowList)
{
return new[]
{
new SqlParameter("@id", flowList.Id),
new SqlParameter("@name", flowList.Name),
new SqlParameter("@remark", flowList.Remark),
new SqlParameter("@flowid", flowList.FlowId),
new SqlParameter("@actionid", flowList.ActionId),
new SqlParameter("@delflag", flowList.DelFlag),
new SqlParameter("@addUserID", flowList.AddUserId),
new SqlParameter("@addtime", flowList.AddTime),
new SqlParameter("@updateUserID", flowList.UpdateUserId),
new SqlParameter("@lastTime", flowList.LastTime),
new SqlParameter("@fcontent", flowList.Fcontent),
new SqlParameter("@sAddr", flowList.SAddr),
new SqlParameter("@isEnd", flowList.IsEnd),
new SqlParameter("@isPass", flowList.IsPass)
};
}
///
/// 新增flowList记录
///
/// 实体类FlowListEty
/// 成功返回空字符串,失败返回错误信息
public string InsertFlowList(FlowListEty flowList)
{
var sql =
"insert into flowList(id,name,remark,flowid,actionid,delflag,addUserID,addtime,updateUserID,lastTime,fcontent,sAddr,isEnd,isPass) values(@id,@name,@remark,@flowid,@actionid,@delflag,@addUserID,@addtime,@updateUserID,@lastTime,@fcontent,@sAddr,@isEnd,@isPass)";
return SqlHelper.ExecSql(sql, SetPara(flowList));
}
///
/// 根据用户ID 获取我的公文列表信息
///
/// 查询字段
/// 用户ID
/// 数据表
public DataTable AllFlowList(string searchText,string userid)
{
var sql =
"select p.id,p.name,f.name as flowname,f.actionIDs,p.actionid, p.lastTime,s.username as addusername,p.isPass,p.isEnd,p.sAddr from flowList p left join SysUser s on s.userid=p.addUserID left join flow f on f.id=p.flowid where p.addUserID=@addUserID and p.delflag ='false' ";
if (!string.IsNullOrEmpty(searchText))
{
//根据查询字段 进行查询
sql +=
string.Format(
"and( p.name like '%{0}%' or s.username like '%{0}%' or a.name like '%{0}%' or f.name like '%{0}%')",
searchText);
}
sql += " order by p.isEnd, p.lastTime DESC";
return SqlHelper.ExecSqlDateTable(sql, new SqlParameter("@addUserID",userid));
}
///
/// 更新公文列表信息
///
/// 实体类FlowListEty
/// 成功返回空字符串,失败返回错误信息
public string UpdateFlowList(FlowListEty flowList)
{
var sq1 =
"update flowList set actionid=@actionid,lastTime=@lastTime,remark=@remark,updateUserID=@updateUserID,isEnd=@isEnd,isPass=@isPass where id=@id";
return SqlHelper.ExecSql(sq1, SetPara(flowList));
}
///
/// 根据id删除公文列表信息
///
/// 公文列表id
/// 成功返回空字符串,失败返回错误信息
public string DelFlowList(string id)
{
var sql = "update flowList set delflag='true' where id in (" + id + ")";
return SqlHelper.ExecSql(sql);
}
///
/// 根据id返回FlowListEty实体类
///
/// flowid
public FlowListEty GetFlowContById(string id)
{
var con = new SqlConnection(SqlHelper.ConStr);
var cmd = new SqlCommand { Connection = con, CommandType = CommandType.Text, CommandText = "select * from flowList where id=@id and delflag='false'" };
cmd.Parameters.AddWithValue("@id", id);
var flow = new FlowListEty();
try
{
con.Open();
}
catch
{
return flow;
}
using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if (!reader.HasRows)
return flow;
while (reader.Read())
{
flow.Id = SqlHelper.ReaderString("id", reader);
flow.Num = SqlHelper.ReaderInt("num", reader);
flow.Name = SqlHelper.ReaderString("name", reader);
flow.Remark = SqlHelper.ReaderString("remark", reader);
flow.FlowId = SqlHelper.ReaderString("flowid", reader);
flow.ActionId = SqlHelper.ReaderInt("actionid", reader);
flow.DelFlag = SqlHelper.ReaderBool("delflag", reader);
flow.AddUserId = SqlHelper.ReaderString("addUserID", reader);
flow.AddTime = SqlHelper.ReaderDateTime("addtime", reader);
flow.UpdateUserId = SqlHelper.ReaderString("updateUserID", reader);
flow.LastTime = SqlHelper.ReaderDateTime("lastTime", reader);
flow.IsEnd = SqlHelper.ReaderBool("isEnd", reader);
flow.IsPass = SqlHelper.ReaderBool("isPass", reader);
flow.Fcontent = SqlHelper.ReaderString("fcontent", reader);
flow.SAddr = SqlHelper.ReaderString("sAddr", reader);
}
}
return flow;
}
///
/// 根据用户id返回FlowListEty实体类链表(我的审批列表)
///
/// userid
/// 查询字段
public Hashtable GetFlowListByUserid(string userid,string sT)
{
var con = new SqlConnection(SqlHelper.ConStr);
var cmd = new SqlCommand { Connection = con, CommandType = CommandType.StoredProcedure, CommandText = "myflowList" };
SqlParameter para = cmd.Parameters.Add("@user", SqlDbType.VarChar,32);
para.Direction = ParameterDirection.Input;
para.Value = userid;
SqlParameter para2 = cmd.Parameters.Add("@sT", SqlDbType.VarChar, 100);
para2.Direction = ParameterDirection.Input;
para2.Value = sT;
var list = new Hashtable();
var adp=new SqlDataAdapter(cmd);
var ds = new DataSet();
adp.Fill(ds);
foreach (DataTable table in ds.Tables)
{
foreach (DataRow row in table.Rows)
{
if(list.ContainsKey(row["id"].ToString()))continue;
var flow = new FlowListEty
{
Id =row["id"].ToString(),
Num = Convert.ToInt32(row["num"]),
Name =row["name"].ToString() ,
Remark =row["remark"].ToString() ,
FlowId =row["flowid"].ToString() ,
ActionId = Convert.ToInt32(row["actionid"]),
DelFlag =(bool)row["delflag"] ,
AddUserId = row["addUserID"].ToString(),
AddTime = Convert.ToDateTime(row["addtime"]),
UpdateUserId =row["updateUserID"].ToString() ,
LastTime = Convert.ToDateTime(row["lastTime"]),
IsEnd =(bool)row["isEnd"] ,
IsPass =(bool) row["isPass"],
Fcontent = row["fcontent"].ToString(),
SAddr =row["sAddr"].ToString(),
};
list[flow.Id] = flow;
}
}
return list;
}
///
/// 获取我的审批 集合
///
/// 用户ID
/// 查询字段
/// 我的审批 集合
public Hashtable MyList(string userid,string sT)
{
var flowVo = new FlowVo();
string myActions = new ActionVo().MyActions(userid); //获取由我审批的操作集合
if (myActions.Equals(string.Empty))
{
return new Hashtable();
}
DataTable actions = new ActionVo().AllAction(""); //读取所有流程操作
Hashtable list = GetFlowListByUserid(userid,sT); //获取所有有关我的公文列表
string ids = string.Empty;
//过滤 到我审批的公文
foreach (FlowListEty flowList in list.Values)
{
string actionIDs = flowVo.GetAction(flowList.FlowId);
ActionEty actionEty = flowVo.NowActionId(actionIDs, actions, flowList.ActionId.ToString());
if (!myActions.Contains(actionEty.Id))
{
ids += flowList.Id + ",";
}
}
foreach (string key in ids.TrimEnd(',').Split(','))
{
list.Remove(key);
}
return list; //我的审批公文
}
}
}