using Dapper; using Estsh.Core.Dapper; using Estsh.Core.Model.Result; using Estsh.Core.Models; using Estsh.Core.Repository.IRepositories; using System.Collections; using System.Data; using System.Text; /*************************************************************************************************** * * 更新人:sitong.dong * 描述:流程管理模块数据库访问类 * 修改时间:2022.06.22 * 修改日志:系统迭代升级 * **************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// 处理流程管理模块的业务数据 /// public class RouteDefineRepository : BaseRepository, IRouteDefineRepository { public RouteDefineRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 /// /// 获取流程信息 /// /// public List getRoute(String factoryId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("select route_id as [value], route_name as [key],route_desc from sys_route where enabled='Y' and factory_id=@factoryId"); DynamicParameters Params = new DynamicParameters(); Params.Add("@factoryId", factoryId); List result = dbConn.Query(SqlStringBuilder.ToString(), Params).ToList(); return result; } } /// /// 获取区段信息 /// /// public List getStageInfo() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT a.stage_id "); SqlStringBuilder.Append(" , a.stage_name "); SqlStringBuilder.Append(" , a.stage_code "); SqlStringBuilder.Append(" , a.stage_desc "); SqlStringBuilder.Append("FROM sys_stage a "); SqlStringBuilder.Append("WHERE a.enabled = 'Y' "); SqlStringBuilder.Append("ORDER BY a.stage_code "); List result = dbConn.Query(SqlStringBuilder.ToString()).ToList(); return result; } } /// /// 获取制程信息 /// /// public List getProcessInfo(string factoryId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT a.process_id "); SqlStringBuilder.Append(" , a.factory_id "); SqlStringBuilder.Append(" , a.stage_id "); SqlStringBuilder.Append(" , a.process_code "); SqlStringBuilder.Append(" , a.process_name "); SqlStringBuilder.Append(" , a.process_desc "); SqlStringBuilder.Append("FROM sys_process a "); SqlStringBuilder.Append("WHERE a.enabled = 'Y' "); SqlStringBuilder.Append(" AND a.factory_id = @factoryId "); SqlStringBuilder.Append("ORDER BY a.process_code "); DynamicParameters Params = new DynamicParameters(); Params.Add("@factoryId", factoryId); List result = dbConn.Query(SqlStringBuilder.ToString(), Params).ToList(); return result; } } /// /// 获取流程信息 /// /// public List getRouteById(String routeId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("select top 1 * from sys_route where enabled='Y' and route_id='" + routeId + "'"); List result = dbConn.Query(SqlStringBuilder.ToString()).ToList(); return result; } } /// /// 获得流程明细数据 /// /// /// /// public List getRouteDetail(string factoryId, string routeId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT a.process_id "); SqlStringBuilder.Append(" , b.process_name "); SqlStringBuilder.Append(" , a.next_process_id "); SqlStringBuilder.Append(" , c.process_name AS next_process_name "); SqlStringBuilder.Append(" , a.result "); SqlStringBuilder.Append(" , a.seq "); SqlStringBuilder.Append(" , a.pd_code "); SqlStringBuilder.Append(" , a.necessary "); SqlStringBuilder.Append(" , a.step "); SqlStringBuilder.Append("FROM sys_route_detail a "); SqlStringBuilder.Append(" LEFT JOIN sys_process b ON a.process_id = b.process_id, sys_process c, sys_route d "); SqlStringBuilder.Append("WHERE a.Enabled='Y' and a.next_process_id = c.process_id "); SqlStringBuilder.Append(" AND a.route_id = d.route_id "); SqlStringBuilder.Append(" AND d.factory_id = @factoryId "); SqlStringBuilder.Append(" AND a.route_id = @routeId "); SqlStringBuilder.Append("ORDER BY seq "); DynamicParameters Params = new DynamicParameters(); Params.Add("@factoryId", factoryId); Params.Add("@routeId", routeId); List result = dbConn.Query(SqlStringBuilder.ToString(), Params).ToList(); return result; } } /// /// 插入流程明细数据 /// /// /// public bool saveRouteDetail(List htParams) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO sys_route_detail "); SqlStringBuilder.Append(" (route_id "); SqlStringBuilder.Append(" ,process_id "); SqlStringBuilder.Append(" ,next_process_id "); SqlStringBuilder.Append(" ,result "); SqlStringBuilder.Append(" ,seq "); SqlStringBuilder.Append(" ,necessary "); SqlStringBuilder.Append(" ,step "); SqlStringBuilder.Append(" ,enabled "); SqlStringBuilder.Append(" ,create_userid "); SqlStringBuilder.Append(" ,create_time "); SqlStringBuilder.Append(" ) "); SqlStringBuilder.Append(" VALUES "); SqlStringBuilder.Append(" (@routeId "); SqlStringBuilder.Append(" ,@processId "); SqlStringBuilder.Append(" ,@nextProcessId "); SqlStringBuilder.Append(" ,@result "); SqlStringBuilder.Append(" ,@seq "); SqlStringBuilder.Append(" ,'Y' "); SqlStringBuilder.Append(" ,@necessary "); SqlStringBuilder.Append(" ,@step "); SqlStringBuilder.Append(" ,@createUserid "); SqlStringBuilder.Append(" ,CONVERT(varchar(50), GETDATE(), 21)"); SqlStringBuilder.Append(" ) "); List listData = new List(); for (int i = 0; i < htParams.Count; i++) { DynamicParameters dataPar = new DynamicParameters(); for (int j = 0; j < htParams[i].Count; j++) { dataPar.Add(htParams[i].Keys.ToString(), htParams[i].Values); } listData.Add(dataPar); } IDbTransaction transaction = dbConn.BeginTransaction(); try { for (int i = 0; i < listData.Count; i++) { dbConn.Execute(SqlStringBuilder.ToString(), listData[i], transaction); } transaction.Commit(); return true; } catch (Exception ex) { transaction.Rollback(); return false; } return true; } } /// /// 删除流程明细 /// /// /// public bool deleteRouteDetail(int id) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string SqlString = "update sys_route_detail set Enabled='N' where route_id=@route_id"; DynamicParameters Params = new DynamicParameters(); Params.Add("@route_id", id); int result = dbConn.Execute(SqlString, Params); return result > 0 ? true : false; } } /// /// 插入流程信息 /// /// /// public int saveRouteDefine(SysRoute modelparams) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO sys_route "); SqlStringBuilder.Append(" (factory_id "); SqlStringBuilder.Append(" ,route_name "); SqlStringBuilder.Append(" ,route_desc "); SqlStringBuilder.Append(" ,enabled "); SqlStringBuilder.Append(" ,create_userid "); SqlStringBuilder.Append(" ,create_time "); SqlStringBuilder.Append(" ) "); SqlStringBuilder.Append(" VALUES "); SqlStringBuilder.Append(" (@factoryId "); SqlStringBuilder.Append(" ,@routeName "); SqlStringBuilder.Append(" ,@routeDesc "); SqlStringBuilder.Append(" ,'Y' "); SqlStringBuilder.Append(" ,@createUserid "); SqlStringBuilder.Append(" ,CONVERT(varchar(50), GETDATE(), 21)"); SqlStringBuilder.Append(" ) "); int result = dbConn.Execute(SqlStringBuilder.ToString(), modelparams); return result; } } /// /// 更新流程信息 /// /// /// public int updateRouteDefine(SysRoute modelparams) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("UPDATE sys_route "); SqlStringBuilder.Append(" SET factory_id = @factoryId "); SqlStringBuilder.Append(" ,route_name = @routeName "); SqlStringBuilder.Append(" ,route_desc = @routeDesc "); SqlStringBuilder.Append(" ,update_userid = @updateUserid "); SqlStringBuilder.Append(" ,update_time = CONVERT(varchar(50), GETDATE(), 21)"); SqlStringBuilder.Append(" WHERE route_id = @routeId "); int result = dbConn.Execute(SqlStringBuilder.ToString(), modelparams); return result; } } /// /// 删除流程信息 /// /// /// public int deleteRouteDefine(string routeId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append(" update sys_route_detail set Enabled='N' where route_id=@route_id "); SqlStringBuilder.Append(" update sys_route set Enabled='N' where route_id=@route_id1 "); DynamicParameters Params = new DynamicParameters(2); Params.Add("@route_id", routeId); Params.Add("@route_id1", routeId); int result = dbConn.Execute(SqlStringBuilder.ToString(), Params); return result; } } //启用 public int EnableData(String routeId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append(" update sys_route_detail set Enabled='Y' where route_id=@route_id "); SqlStringBuilder.Append(" update sys_route set Enabled='Y' where route_id=@route_id1 "); DynamicParameters Params = new DynamicParameters(2); Params.Add("@route_id", routeId); Params.Add("@route_id1", routeId); int result = dbConn.Execute(SqlStringBuilder.ToString(), Params); return result; } } //禁用 public int DisableData(String routeId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append(" update sys_route_detail set Enabled='N' where route_id=@route_id "); SqlStringBuilder.Append(" update sys_route set Enabled='N' where route_id=@route_id1 "); DynamicParameters Params = new DynamicParameters(2); Params.Add("@route_id", routeId); Params.Add("@route_id1", routeId); int result = dbConn.Execute(SqlStringBuilder.ToString(), Params); return result; } } #endregion 成员方法 } }