using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Text; 
 | 
using System.Web; 
 | 
using WebAPI.Dapper; 
 | 
  
 | 
namespace WebAPI.Service 
 | 
{ 
 | 
    public class ProcessDal 
 | 
    { 
 | 
        public static List<Models.M_Process> GetProcessList(string hName, int hLevel, string hNumber, string hBillSubType, int page, int limit,ref int pageCount) 
 | 
        { 
 | 
           
 | 
            var whereBuilder = new StringBuilder(); 
 | 
            if (!string.IsNullOrEmpty(hName)) 
 | 
                whereBuilder.Append($" and a.HName like '%{hName}%'"); 
 | 
            if(!string.IsNullOrEmpty(hNumber)) 
 | 
                whereBuilder.Append($" and a.HNumber like '%{hNumber}%'"); 
 | 
            if (!string.IsNullOrEmpty(hBillSubType)) 
 | 
                whereBuilder.Append($" and a.HBillSubType like '%{hBillSubType}%'"); 
 | 
            if(hLevel!=0) 
 | 
                whereBuilder.Append($" and a.HLevel={hLevel}"); 
 | 
            var sqlBuilder = new StringBuilder(); 
 | 
            sqlBuilder.Append($"select top {limit} a.HItemID,a.HNumber,a.HName ,a.HLevel,a.HTypeFlow ,a.HTypeCount ,a.HBillSubType "); 
 | 
            sqlBuilder.Append(",a.HEndFlag,a.HStopFlag,b.hname,a.HSNo,a.HProcessID_K3,a.HFixPrice,a.HOverFixPrice "); 
 | 
            sqlBuilder.Append(",a.HEndFlag,a.HStopFlag,b.hname,a.HSNo,a.HProcessID_K3,a.HFixPrice,a.HOverFixPrice "); 
 | 
            sqlBuilder.Append($",a.HAutoTrunFlag,a.HRemark ,a.HProcessID_K3 from gy_Process a left join h_v_IF_Department b on a.HDeptID=b.hitemid where a.HItemID not in (select top {(page-1)*limit} a.HItemID from gy_Process a left join h_v_IF_Department b on a.HDeptID=b.hitemid where 1=1 { whereBuilder }) {whereBuilder}"); 
 | 
            var countSql = $"select count(*) from gy_Process a where 1=1 {whereBuilder}"; 
 | 
            pageCount = SqlPools.GetInstance("YqnConn").GetExecuteScalar(countSql); 
 | 
            var list = SqlPools.GetInstance("YqnConn").GetModelList<Models.M_Process>(sqlBuilder.ToString()); 
 | 
            return list; 
 | 
        } 
 | 
        public static Models.M_Process GetProcessDetail(int hItemID) 
 | 
        { 
 | 
            var sql = "select HNumber,HHelpCode,HName,HNumber,HDeptID,HProcMulID,HRemark,HSNo,HFixPrice,HOverFixPrice,HBillSubType,HStopflag, HTypeFlow, HTypeCount, HAutoTrunFlag, HItemID from Gy_Process where HItemID=@hItemID"; 
 | 
            var model = SqlPools.GetInstance("YqnConn").GetModel<Models.M_Process>(sql, new { hItemID }); 
 | 
            return model; 
 | 
        } 
 | 
        public static int DeleteProcess(int hItemID) 
 | 
        { 
 | 
            var sql = "delete Gy_Process where HItemID=@hItemID"; 
 | 
            var result = SqlPools.GetInstance("YqnConn").ExecuteCommand(sql, new { hItemID }); 
 | 
            return result; 
 | 
        } 
 | 
        public static Models.M_Department GetDepartmentModel(int hItemID) 
 | 
        { 
 | 
            var sql = "select HName,HNumber,HItemID from  h_v_IF_Department where HItemID=@hItemID"; 
 | 
            var model = SqlPools.GetInstance("YqnConn").GetModel<Models.M_Department>(sql, new { hItemID }); 
 | 
            return model; 
 | 
        } 
 | 
        public static Models.M_ProcMul GetProcMulModel(int hItemID) 
 | 
        { 
 | 
            var sql = "Select HItemID,HNumber,HName from Gy_ProcMul where HItemID=@hItemID"; 
 | 
            var model = SqlPools.GetInstance("YqnConn").GetModel<Models.M_ProcMul>(sql, new { hItemID }); 
 | 
            return model; 
 | 
        } 
 | 
    } 
 | 
} 
 |