using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMFrameWork.Data; using QMAPP.MESReport.Entity.LineQTY; using QMAPP.DAL; using System.Data; using QMAPP.MESReport.Entity.Tables; namespace QMAPP.MESReport.DAL.LineQTY { /// /// 设备用电分析 数据访问层 /// 于子清 /// 2017-11-6 /// public class EquConsumeCountDAL : BaseDAL { public List GetAllList(EquConsumeCountDModel condition) { List list = new List(); string sql = null; List parameters = new List(); try { sql = this.GetQuerySql(condition, ref parameters); //sql ="select tsa.EQPT_CODE as MACHINENAME,day(tsa.STATIS_DATE) tday,sum(tsa.CONSUME) CONSUME from T_SA_EQPTCONSUME tsa group by tsa.EQPT_CODE,day(tsa.STATIS_DATE)"; using (IDataSession session = AppDataFactory.CreateMainSession()) { list = session.GetList(sql, parameters.ToArray()).ToList(); } return list; } catch (Exception ex) { throw ex; } } #region 获取查询语句 /// /// 获取查询语句 /// /// 查询条件 /// 参数 /// 查询语句 private string GetQuerySql(EquConsumeCountDModel condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { #region 注销 //sqlBuilder.AppendLine(" select m.EQPT_CODE ,b.MACHINENAME , MAX(t.READING)-ISNULL(MIN(t.reading),0) as CONSUME from T_EM_METER_READINGS t LEFT JOIN T_EM_METER m ON m.PID=t.METER_PID LEFT JOIN T_BD_MACHINEINFO b ON b.MACHINECODDE=m.EQPT_CODE WHERE 1=1 "); //if (string.IsNullOrEmpty(condition.START_DATE) == false) //{ // whereBuilder.Append(" AND t.READ_TIME >= @START_DATE "); // parameters.Add(new DataParameter { ParameterName = "START_DATE", DataType = DbType.DateTime, Value = condition.START_DATE }); //} //if (string.IsNullOrEmpty(condition.END_DATE) == false) //{ // whereBuilder.Append(" AND t.READ_TIME <= @END_DATE "); // parameters.Add(new DataParameter { ParameterName = "END_DATE", DataType = DbType.DateTime, Value = condition.END_DATE }); //} //whereBuilder.Append(" and t.READING>0 and t.READ_RESULT='1' and m.STATE='1' "); //if (whereBuilder.Length > 0) //{ // sqlBuilder.Append(" and " + whereBuilder.ToString().Substring(4)); //} //sqlBuilder.Append(" group by b.MACHINENAME, m.EQPT_CODE "); //sqlBuilder.Append(" order by m.EQPT_CODE "); #endregion sqlBuilder.AppendFormat(@" SELECT m.EQPT_CODE ,b.MACHINENAME ,TEMP1.MAXREADING-TEMP1.MINREADING as consume FROM ( SELECT T.METER_PID ,MAX(T.READING) MAXREADING,MIN(T.READING) AS MINREADING FROM T_EM_METER_READINGS T WHERE t.READ_TIME >= '{0}' AND t.READ_TIME <= '{1}' AND t.READ_RESULT='1' and t.READING>0 GROUP BY T.METER_PID )TEMP1 INNER JOIN T_EM_METER M ON m.PID=TEMP1.METER_PID INNER JOIN T_BD_MACHINEINFO b ON b.MACHINECODDE=M.EQPT_CODE", condition.START_DATE,condition.END_DATE); return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } private string GetQuerySqlOld(EquConsumeCountDModel condition, ref List parameters) { StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlBuilder2 = new StringBuilder(); StringBuilder whereBuilder = new StringBuilder(); try { string group = ""; //构成查询语句 if (condition.TYPE_COUNT == "YEAR") { //周统计 sqlBuilder.AppendLine("select tbd.MACHINENAME,year(tsa.STATIS_DATE) tday,sum(tsa.CONSUME) CONSUME from T_SA_EQPTCONSUME tsa inner join T_BD_MACHINEINFO tbd on tbd.MACHINECODDE=tsa.EQPT_CODE "); group = " group by tbd.MACHINENAME,year(tsa.STATIS_DATE) "; } else if (condition.TYPE_COUNT == "MONTH") { //月统计 sqlBuilder.AppendLine("select tbd.MACHINENAME,month(tsa.STATIS_DATE) tday,sum(tsa.CONSUME) CONSUME from T_SA_EQPTCONSUME tsa inner join T_BD_MACHINEINFO tbd on tbd.MACHINECODDE=tsa.EQPT_CODE "); group = " group by tbd.MACHINENAME,month(tsa.STATIS_DATE) "; } else { //日统计 sqlBuilder.AppendLine("select tbd.MACHINENAME,day(tsa.STATIS_DATE) tday,sum(tsa.CONSUME) CONSUME from T_SA_EQPTCONSUME tsa inner join T_BD_MACHINEINFO tbd on tbd.MACHINECODDE=tsa.EQPT_CODE "); group = " group by tbd.MACHINENAME,day(tsa.STATIS_DATE) "; } if (string.IsNullOrEmpty(condition.START_DATE) == false) { whereBuilder.Append(" AND tsa.STATIS_DATE >= @START_DATE "); parameters.Add(new DataParameter { ParameterName = "START_DATE", DataType = DbType.DateTime, Value = condition.START_DATE }); } if (string.IsNullOrEmpty(condition.END_DATE) == false) { whereBuilder.Append(" AND tsa.STATIS_DATE <= @END_DATE "); parameters.Add(new DataParameter { ParameterName = "END_DATE", DataType = DbType.DateTime, Value = condition.END_DATE }); } if (string.IsNullOrEmpty(condition.EQPT_CODE) == false) { whereBuilder.Append(" AND tsa.EQPT_CODE = @EQPT_CODE "); parameters.Add(new DataParameter { ParameterName = "EQPT_CODE", DataType = DbType.String, Value = condition.EQPT_CODE }); } if (whereBuilder.Length > 0) { sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); } sqlBuilder.Append(group); return sqlBuilder.ToString(); } catch (Exception ex) { throw ex; } } #endregion } }