You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Areas/TruckMng/DAL/BasicDataRef/BasicDataRefDAL.cs

121 lines
4.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using HcUtility.Comm;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.OA.Models.WorkFlow;
using DSWeb.Areas.CommMng.Models;
using DSWeb.MvcShipping.Models.MsOpApply;
using DSWeb.MvcShipping.Models.MsOpApplyService;
using DSWeb.MvcShipping.Models.MsInfoClient;
using DSWeb.MvcShipping.Models.MsCtExplan;
using DSWeb.MvcShipping.Helper;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using DSWeb.TruckMng.Helper.Repository;
using DSWeb.SoftMng.Models.MsInfoClass;
using DSWeb.SoftMng.Models.MsInfoClientItem;
namespace DSWeb.Areas.CommMng.DAL
{
public class TruckBasicDataRefDAL
{
#region 良通捷运 目的地列表
static public List<DICModel> GetDetiNation_LTJY(string strCondition, string strUserID)
{
var strSql = new StringBuilder();
strSql.Append("select DISTINCT NAME,DISTANCE from PC_LTJY_Distance where 1=1 ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
return SetDetiNation_LTJY(strSql);
}
private static List<DICModel> SetDetiNation_LTJY(StringBuilder strSql)
{
var headList = new List<DICModel>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
DICModel data = new DICModel();
#region Set DB data to Object
data.KEYFIELD = (reader["NAME"] == null ? "" : Convert.ToString(reader["NAME"]));//惟一值
data.VALUEFIELD = (reader["DISTANCE"] == null ? "" : Convert.ToString(reader["DISTANCE"]));//惟一值
#endregion
headList.Add(data);
}
#region 空白项
DICModel data2 = new DICModel();
data2.KEYFIELD = "";//惟一值
data2.VALUEFIELD = "0";//惟一值
#endregion
headList.Add(data2);
reader.Close();
}
return headList;
}
#endregion
#region 将带逗号的内容拆成单个,并将出现频率最高的放置在最前。参数为(表名 列名 查询条件)
static public List<DICModel> GetCommaWord(string tablename, string columnname, string condition, string strUserID)
{
var strSql = new StringBuilder();
var column = " case isnull(" + columnname + ",'') when '' then '' else " + columnname + "+',' end ";
strSql.Append(" WITH TB_2 AS ( ");
strSql.Append(" SELECT " + column + " as " + columnname + " ,CHARINDEX(','," + column + ") STA,CHARINDEX(','," + column + ")-1 LENS FROM " + tablename + " where 1=1 ");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" and " + condition);
}
strSql.Append(" UNION ALL ");
strSql.Append(" SELECT " + columnname + " ,CHARINDEX(','," + columnname + ",STA+1) STA,CHARINDEX(','," + columnname + ",STA+1)-STA-1 LENS FROM TB_2 WHERE STA<>0) ");
strSql.Append(" SELECT distinct SUBSTRING(" + columnname + ",STA-LENS,LENS) VALUE,count(SUBSTRING(" + columnname + ",STA-LENS,LENS)) count FROM TB_2 ");
strSql.Append(" WHERE STA<>0 ");
strSql.Append(" group by SUBSTRING(" + columnname + ",STA-LENS,LENS) ");
strSql.Append(" order by count(SUBSTRING(" + columnname + ",STA-LENS,LENS)) DESC ");
return SetCommaWord(strSql);
}
private static List<DICModel> SetCommaWord(StringBuilder strSql)
{
var headList = new List<DICModel>();
#region 空白项
DICModel data2 = new DICModel();
data2.KEYFIELD = "";//惟一值
data2.VALUEFIELD = "0";//惟一值
headList.Add(data2);
#endregion
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
DICModel data = new DICModel();
#region Set DB data to Object
data.KEYFIELD = (reader["VALUE"] == null ? "" : Convert.ToString(reader["VALUE"]));//惟一值
data.VALUEFIELD = (reader["count"] == null ? "" : Convert.ToString(reader["count"]));//惟一值
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
}
}