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.
HENGCHENG/DSWeb/Shipping/ExchangesUnitGridSource.asp...

582 lines
27 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text;
using DSWeb.EntityDA;
using DSWeb.Models;
using System.Xml;
using System.Text.RegularExpressions;
namespace DSWeb.Shipping
{
public partial class ExchangesUnitGridSource : System.Web.UI.Page
{
public int iCurrentPage;
public int iShowPage;
public string strHandle;//值为"page"获取分页状态值数组 值为"list"获取日志显示JSON数据 值为"columns"获取日志显示记录 值为"rename"更新列标题
public string strUserID = "";//"04eaeac5-f271-45d1-b17b-ad4ccbab63d0";//用户GID
public string strType = "11";//Grid模块号
public string strOldHeader;
public string strNewHeader;
public string strRange = String.Empty;//权限可视范围
public string strSearch = "";//权限可视范围
RangeDA RangeDA = new RangeDA();
protected void Page_Load(object sender, EventArgs e)
{
if (Session["USERID"] != null)
{
strUserID = Session["USERID"].ToString().Trim();
}
else
{
Server.Transfer("~/Error/FriendError.aspx");
return;
//strUserID = "";
}
//
//权限可视范围
strRange = RangeDA.GetVISIBLERANGE(strUserID.Trim(), "modExchangesUnit");//往来单位列表
if (strRange.Trim().Equals("0"))//全部
{
strRange = "";
}
else if (strRange.Trim().Equals("1"))//分公司
{
strRange = " and A.GID in("+RangeDA.GetUnitCompany(strUserID.Trim())+")";
}
else if (strRange.Trim().Equals("2"))//部门
{
strRange = " and 1<0";
}
else if (strRange.Trim().Equals("3"))//个人
{
strRange = " and A.GID in("+RangeDA.GetUnitPerson(strUserID.Trim())+")";
}
else if (strRange.Trim().Equals("4"))//无
{
strRange = " and 1<0";
}
else//空
{
strRange = " and 1<0";
}
//
if (Request.QueryString["handle"] != null)
{
strHandle = Request.QueryString["handle"].ToString().Trim().ToLower();
}
if (Request.QueryString["cur_page"] != null)
{
iCurrentPage = int.Parse(Request.QueryString["cur_page"].ToString().Trim());
}
if (Request.QueryString["show_page"] != null)
{
iShowPage = int.Parse(Request.QueryString["show_page"].ToString().Trim());
}
//
strSearch = "";
UnicodeEncoding unicode = new UnicodeEncoding();
if (Request.QueryString["codename"] != null && Request.QueryString["codename"]!="")
{
string strcodename = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["codename"].ToString())));
strSearch += " and (A.CODENAME like '%" + strcodename.Trim() + "%' or SHORTNAME like '%" + strcodename.Trim() + "%' or DESCRIPTION like '%" + strcodename.Trim() + "%')";
}
if (Request.QueryString["optime"] != null && Request.QueryString["optime"].ToString().Trim() != "")
{
string stroptime = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["optime"].ToString().Trim())));
strSearch += " and convert(char(10),optime,20)>='" + stroptime + "'";
}
if (Request.QueryString["optime2"] != null && Request.QueryString["optime2"].ToString().Trim() != "")
{
string stroptime2 = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["optime2"].ToString().Trim())));
strSearch += " and convert(char(10),optime,20)<='" + stroptime2 + "'";
}
if (Request.QueryString["attns"] != null && Request.QueryString["attns"]!="")
{
string attn = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["attns"].ToString())));
strSearch += " and SHOWNAME LIKE '%"+attn.Trim()+"%' ";
}
if (Request.QueryString["attribute"] != null && Request.QueryString["attribute"] != "")
{
string attribute = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["attribute"].ToString())));
strSearch += " and " + attribute + "=1 ";
}
//
string strJSON = "";
if (strHandle != null)
{
if (strHandle.Equals("list"))
{
if (iCurrentPage <= 0 && iShowPage < 0)
{
strJSON = "-2";//提交页数参数错误
}
}
if (strHandle.Trim().ToLower().Equals("setting"))
{
Response.Write(GetUserSettingJson());
}
if (strHandle.Trim().ToLower().Equals("page"))
{
Response.Write(GetPageInfo().ToString());
}
if (strHandle.Trim().ToLower().Equals("list"))
{
Response.Write(GetLogContent(iShowPage, iCurrentPage));
}
if (strHandle.Trim().ToLower().Equals("rename"))
{
if (Request.QueryString["old_header"] != null && Request.QueryString["new_header"] != null)
{
strOldHeader = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["old_header"].ToString())));
strNewHeader = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["new_header"].ToString())));
Response.Write(UpdateColumnHeader(strOldHeader, strNewHeader));
}
else
{
Response.Write("-1");//GET 参数错误
}
}
if (strHandle.Trim().ToLower().Equals("excel"))
{
string sSQL = "";
sSQL = "SELECT A.CODENAME,A.SHORTNAME,A.DESCRIPTION,(case A.TEL when '86-0-0' then '' when '86--' then '' when '86' then '' else A.TEL end) as TEL,(case A.FAX when '86-0-0' then '' when '86--' then '' when '86' then '' else A.FAX end) as FAX,A.STLNAME,A.SALE,A.OPNAME,A.OPTIME,(case A.ISSTOP when 'True' then '是' else '' end) as ISSTOP"
+ ",(case A.ISCONTROLLER when 'True' then '是' else '' end) as ISCONTROLLER,(case A.ISCARRIER when 'True' then '是' else '' end) as ISCARRIER,(case A.ISBOOKING when 'True' then '是' else '' end) as ISBOOKING,(case A.ISYARD when 'True' then '是' else '' end) as ISYARD,(case A.ISTRUCK when 'True' then '是' else '' end) as ISTRUCK,(case A.ISCUSTOM when 'True' then '是' else '' end) as ISCUSTOM,(case A.ISAGENT when 'True' then '是' else '' end) as ISAGENT,(case A.ISAGENTCN when 'True' then '是' else '' end) as ISAGENTCN,(case A.ISEXPRESS when 'True' then '是' else '' end) as ISEXPRESS,(case A.ISAIRLINES when 'True' then '是' else '' end) as ISAIRLINES,(case A.ISSHIPPER when 'True' then '是' else '' end) as ISSHIPPER,(case A.ISCONSIGNEE when 'True' then '是' else '' end) as ISCONSIGNEE,(case A.ISWAREHOUSE when 'True' then '是' else '' end) as ISWAREHOUSE,(case A.ISINSURE when 'True' then '是' else '' end) as ISINSURE,(case A.ISLEASING when 'True' then '是' else '' end) as ISLEASING,(case A.ISTRADINGAGENCY when 'True' then '是' else '' end) as ISTRADINGAGENCY,(case A.ISWHARF when 'True' then '是' else '' end) as ISWHARF,(case A.ISSHIPPINGAGENT when 'True' then '是' else '' end) as ISSHIPPINGAGENT,(case A.ISENTERP when 'True' then '是' else '' end) as ISENTERP,(case A.ISOTHER when 'True' then '是' else '' end) as ISOTHER FROM info_client A LEFT JOIN info_client_contact B ON A.GID=B.LINKID where 1=1 " + strRange + strSearch;
Response.Write(sSQL);//GET 参数错误
}
}
else
{
strJSON = "-1";//GET 参数错误
}
}
private int UpdateColumnHeader(string tempOldHeader, string tempNewHeader)
{
int iResult = 0;
UserSettingDA userSettingDA = new UserSettingDA();
UserSettingEntity userSettingEntity = userSettingDA.GetUserSettingByUserIDType(strUserID, strType);
GridEntity gridEntity = null;
if (userSettingEntity != null)
{
if (userSettingEntity.GID != null)
{
gridEntity = GetSettingXml(userSettingEntity.Xml);
foreach (GridColumnEntity column in gridEntity.Columns)
{
if (column.Description.Equals(tempOldHeader))
{
column.Description = tempNewHeader;
break;
}
}
userSettingEntity.Xml = GetUserSettingXml(gridEntity).OuterXml;
iResult = userSettingDA.UpdateUserSetting(userSettingEntity);
}
else
{
iResult = -3;//没有相关用户Grid设置记录
}
}
else
{
iResult = -3;//没有相关用户Grid设置记录
}
return iResult;
}
private string GetUserSettingJson()
{
UserSettingDA userSettingDA = new UserSettingDA();
UserSettingEntity userSettingEntity = userSettingDA.GetUserSettingByUserIDType(strUserID, strType);
GridEntity gridEntity = null;
StringBuilder settingBuilder = new StringBuilder();
if (userSettingEntity != null)
{
if (userSettingEntity.GID != null)
{
gridEntity = GetSettingXml(userSettingEntity.Xml);
settingBuilder.Append("{");
settingBuilder.Append("\"show\":" + gridEntity.PagePreCount + ",");
settingBuilder.Append("\"columns\":");
int i = 0;
StringBuilder columnGroupBuilder = new StringBuilder();
while (gridEntity.Columns.Count > i)
{
foreach (GridColumnEntity column in gridEntity.Columns)
{
if (column.Index == i)
{
StringBuilder columnBuilder = new StringBuilder();
columnBuilder.Append("{\"name\":\"" + column.Name + "\",");
columnBuilder.Append("\"description\":\"" + column.Description + "\",");
columnBuilder.Append("\"index\":" + column.Index.ToString() + ",");
columnBuilder.Append("\"width\":" + column.Width.ToString() + ",");
columnBuilder.Append("\"visible\":" + column.VisibleState.ToString());
columnGroupBuilder.Append(columnBuilder.ToString() + "},");
break;
}
}
i++;
}
string strGroup = columnGroupBuilder.ToString().Trim();
if (strGroup.EndsWith(","))
{
strGroup = strGroup.Substring(0, strGroup.Length - 1);
}
strGroup = "[" + strGroup + "]";
settingBuilder.Append(strGroup);
settingBuilder.Append("}");
}
else
{
settingBuilder.Append("-3");//没有相关用户Grid设置记录
}
}
else
{
settingBuilder.Append("-3");//没有相关用户Grid设置记录
}
return settingBuilder.ToString();
}
private GridEntity GetSettingXml(string strXml)
{
XmlDocument xmlSettingDoc = new XmlDocument();
GridEntity gridEntity = new GridEntity();
try
{
xmlSettingDoc.LoadXml(strXml);
gridEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[0].InnerText.Trim();
gridEntity.UserID = xmlSettingDoc.ChildNodes[0].ChildNodes[1].InnerText.Trim();
gridEntity.CreateTime = DateTime.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[2].InnerText.Trim());
IList<GridColumnEntity> columnsEntities = new List<GridColumnEntity>();
int iColCount = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes.Count;
for (int i = 0; i < iColCount; i++)
{
GridColumnEntity columnEntity = new GridColumnEntity();
//columnEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[0].ToString();
columnEntity.Name = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[0].InnerText.Trim();
columnEntity.Description = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[1].InnerText.Trim();
columnEntity.Index = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[2].InnerText.Trim());
columnEntity.Width = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[3].InnerText.Trim());
columnsEntities.Add(columnEntity);
}
gridEntity.Columns = columnsEntities;
gridEntity.GroupBy = xmlSettingDoc.ChildNodes[0].ChildNodes[4].InnerText.Trim();
gridEntity.DefaultPrePageCount = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[5].ChildNodes[0].InnerText.Trim());
gridEntity.PagePreCount = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[5].ChildNodes[1].InnerText.Trim());
}
catch (Exception error)
{
throw (error);
}
return gridEntity;
}
private int GetPageInfo()
{
LogDA logDA = new LogDA();
StringBuilder logBuilder = new StringBuilder();
string strSql = String.Format("SELECT COUNT(*) FROM info_client A LEFT JOIN info_client_contact B ON A.GID=B.LINKID where 1=1 " + strRange + strSearch);
int iTotal = logDA.GetPageTotal(strSql);
return iTotal;
}
private string GetLogContent(int tempShowPage, int tempCurPage)
{
LogDA logDA = new LogDA();
StringBuilder logBuilder = new StringBuilder();
string strSql = "";
string strTopInclude = "";
string strTopNotInclude = "";
if (tempShowPage > 0 && tempCurPage > 0)
{
if (tempCurPage == 1)
{
//strSql = String.Format("SELECT {0} GID,CODENAME,SHORTNAME,DESCRIPTION,(case TEL when '86-0-0' then '' else TEL end) as TEL,(case FAX when '86-0-0' then '' else FAX end) as FAX,STLNAME,SALE,OPNAME,OPTIME,ISSTOP FROM info_client where 1=1 " + strRange + strSearch + " ORDER BY OPTIME DESC", "top " + tempShowPage);
strSql = String.Format("SELECT {0} A.GID,A.ORDERNO,A.CODENAME,A.SHORTNAME,A.DESCRIPTION,(case A.TEL when '86-0-0' then '' when '86--' then '' when '86' then '' else A.TEL end) as TEL,(case A.FAX when '86-0-0' then '' when '86--' then '' when '86' then '' else A.FAX end) as FAX,A.STLNAME,A.SALE,A.OPNAME,A.OPTIME,(case A.ISSTOP when 'False' then '' else '是' end) as ISSTOP FROM info_client A LEFT JOIN info_client_contact B ON A.GID=B.LINKID where 1=1 " + strRange + strSearch + "ORDER BY A.OPTIME DESC", "top " + tempShowPage);
}
else
{
strTopNotInclude = "top " + (tempShowPage * (tempCurPage - 1));//RowCount*PageNum
strTopInclude = "top " + tempShowPage;//RowCount*PageNum
//strSql = String.Format("SELECT GID,CODENAME,SHORTNAME,DESCRIPTION,(case TEL when '86-0-0' then '' else TEL end) as TEL,(case FAX when '86-0-0' then '' else FAX end) as FAX,STLNAME,SALE,OPNAME,OPTIME,ISSTOP FROM (SELECT {1} * FROM info_client WHERE GID NOT IN (SELECT {0} GID FROM info_client where 1=1 " + strRange + strSearch + " ORDER BY OPTIME DESC ) " + strRange + strSearch + " ORDER BY OPTIME DESC) AS A ", strTopNotInclude, strTopInclude);
strSql = String.Format("SELECT {0} A.GID,A.ORDERNO,A.CODENAME,A.SHORTNAME,A.DESCRIPTION,(case A.TEL when '86-0-0' then '' when '86--' then '' when '86' then '' else A.TEL end) as TEL,(case A.FAX when '86-0-0' then '' when '86--' then '' when '86' then '' else A.FAX end) as FAX,A.STLNAME,A.SALE,A.OPNAME,A.OPTIME,(case A.ISSTOP when 'False' then '' else '是' end) as ISSTOP FROM info_client A LEFT JOIN info_client_contact B ON A.GID=B.LINKID where 1=1 " + strRange + strSearch + " and A.GID NOT IN(SELECT {1} A.GID FROM info_client A LEFT JOIN info_client_contact B ON A.GID=B.LINKID WHERE 1=1 " + strRange + strSearch + ")", strTopInclude, strTopNotInclude);
}
}
else
{
return "SELECT GID,ORDERNO,CODENAME,SHORTNAME,DESCRIPTION,(case TEL when '86-0-0' then '' when '86--' then '' when '86' then '' else TEL end) as TEL,(case FAX when '86-0-0' then '' when '86--' then '' when '86' then '' else FAX end) as FAX,STLNAME,SALE,OPNAME,OPTIME,(case A.ISSTOP when 'False' then '' else '是' end) as ISSTOP FROM info_client where 1<0";//如果页数为空或者页数为0不返回数据
}
DataTable logTable = GetSqlDataIndex(logDA.GetExcuteSql(strSql).Tables[0]);
logBuilder.Append("{");
logBuilder.Append("rows:[");
for (int i = 0; i < logTable.Rows.Count; i++)
{
logBuilder.Append("{id:\"" + logTable.Rows[i][0].ToString() + "\",");
logBuilder.Append("data:[");
//logBuilder.Append("\"0\",");
for (int j = 1; j < logTable.Columns.Count; j++)
{
if (j == logTable.Columns.Count - 1)
{
logBuilder.Append("\"" + logTable.Rows[i][j].ToString() + "\"");
}
else
{
logBuilder.Append("\"" + logTable.Rows[i][j].ToString() + "\",");
}
}
if (i == logTable.Rows.Count - 1)
{
logBuilder.Append("]}");
}
else
{
logBuilder.Append("]},");
}
}
logBuilder.Append("]");
logBuilder.Append("}");
return logBuilder.ToString();
}
private string GetSeaExportInfoBusinessListGridSource()
{
//GetLogGridSource
LogDA logDA = new LogDA();
StringBuilder logBuilder = new StringBuilder();
StringBuilder userdateBuilder = new StringBuilder();
StringBuilder dataBuilder = new StringBuilder();
string strSql = String.Format("SELECT COUNT(*) FROM info_client where 1=1 " + strRange + strSearch);
DataTable logTable = logDA.GetExcuteSql(strSql).Tables[0];
logBuilder.Append("{");
logBuilder.Append("rows:[");
for (int i = 0; i < logTable.Rows.Count; i++)
{
logBuilder.Append("{id:\"" + logTable.Rows[i][0].ToString() + "\",");
userdateBuilder.Append("userdata:{");
dataBuilder.Append("data:[");
for (int j = 1; j < logTable.Columns.Count; j++)
{
if (j == logTable.Columns.Count - 1)
{
userdateBuilder.Append("\"" + logTable.Columns[j].ColumnName + "\":\"" + logTable.Rows[i][j].ToString() + "\"");
dataBuilder.Append("\"" + logTable.Rows[i][j].ToString() + "\"");
}
else
{
userdateBuilder.Append("\"" + logTable.Columns[j].ColumnName + "\":\"" + logTable.Rows[i][j].ToString() + "\",");
dataBuilder.Append("\"" + logTable.Rows[i][j].ToString() + "\",");
}
}
userdateBuilder.Append("}");
dataBuilder.Append("]");
logBuilder.Append(userdateBuilder.ToString() + ",");
logBuilder.Append(dataBuilder);
if (i == logTable.Rows.Count - 1)
{
logBuilder.Append("}");
}
else
{
logBuilder.Append("},");
}
}
logBuilder.Append("]");
logBuilder.Append("}");
return logBuilder.ToString();
//return logBuilder.ToString();
}
private DataTable GetSqlDataIndex(DataTable tempTable)
{
UserSettingDA userSettingDA = new UserSettingDA();
UserSettingEntity userSettingEntity = userSettingDA.GetUserSettingByUserIDType(strUserID, strType);
GridEntity gridEntity = null;
StringBuilder settingBuilder = new StringBuilder();
DataTable dataTable = new DataTable();
if (userSettingEntity != null)
{
if (userSettingEntity.GID != null)
{
gridEntity = GetSettingXml(userSettingEntity.Xml);
int i = 0;
StringBuilder columnGroupBuilder = new StringBuilder();
dataTable.Columns.Add(tempTable.Columns[0].ColumnName, tempTable.Columns[0].DataType);
for (int k = 0; k < tempTable.Rows.Count; k++)
{
DataRow newRow = dataTable.NewRow();
newRow[tempTable.Columns[0].ColumnName] = tempTable.Rows[k][tempTable.Columns[0].ColumnName].ToString();
dataTable.Rows.Add(newRow);
}
while (gridEntity.Columns.Count > i)
{
foreach (GridColumnEntity column in gridEntity.Columns)
{
if (column.Index == i)
{
for (int j = 1; j < tempTable.Columns.Count; j++)
{
if (tempTable.Columns[j].ColumnName.Equals(column.Name))
{
dataTable.Columns.Add(tempTable.Columns[j].ColumnName, tempTable.Columns[j].DataType);
for (int k = 0; k < tempTable.Rows.Count; k++)
{
dataTable.Rows[k][tempTable.Columns[j].ColumnName] = tempTable.Rows[k][tempTable.Columns[j].ColumnName].ToString();
}
break;
}
}
break;
}
}
i++;
}
}
else
{
return tempTable;
}
}
else
{
return tempTable;
}
return dataTable;
}
private XmlDocument GetUserSettingXml(GridEntity gridEntity)
{
XmlDocument xmlDoc = new XmlDocument();
XmlElement root = xmlDoc.CreateElement("user-settings");
//xmlDoc.AppendChild(root);
XmlElement xGid = xmlDoc.CreateElement("gid");
xGid.InnerText = gridEntity.GID;
root.AppendChild(xGid);
XmlElement xUserID = xmlDoc.CreateElement("userid");
xUserID.InnerText = gridEntity.UserID;
root.AppendChild(xUserID);
XmlElement xCreateTime = xmlDoc.CreateElement("create-time");
xCreateTime.InnerText = gridEntity.CreateTime.ToString();
root.AppendChild(xCreateTime);
XmlElement xColumns = xmlDoc.CreateElement("columns");
foreach (GridColumnEntity column in gridEntity.Columns)
{
XmlElement xColumn = xmlDoc.CreateElement("column");
XmlElement nName = xmlDoc.CreateElement("name");
nName.InnerText = column.Name;
xColumn.AppendChild(nName);
XmlElement nDescription = xmlDoc.CreateElement("description");
nDescription.InnerText = column.Description;
xColumn.AppendChild(nDescription);
XmlElement nIndex = xmlDoc.CreateElement("index");
nIndex.InnerText = column.Index.ToString();
xColumn.AppendChild(nIndex);
XmlElement nWidth = xmlDoc.CreateElement("width");
nWidth.InnerText = column.Width.ToString();
xColumn.AppendChild(nWidth);
XmlElement nVisible = xmlDoc.CreateElement("visible");
nVisible.InnerText = column.VisibleState.ToString();
xColumn.AppendChild(nVisible);
xColumns.AppendChild(xColumn);
}
root.AppendChild(xColumns);
XmlElement xGroupBy = xmlDoc.CreateElement("group-by");
xGroupBy.InnerText = gridEntity.GroupBy;
root.AppendChild(xGroupBy);
XmlElement xPage = xmlDoc.CreateElement("page");
XmlElement nPageDefault = xmlDoc.CreateElement("page-default");
nPageDefault.InnerText = gridEntity.DefaultPrePageCount.ToString();
xPage.AppendChild(nPageDefault);
XmlElement nPagePre = xmlDoc.CreateElement("page-pre");
nPagePre.InnerText = gridEntity.PagePreCount.ToString();
xPage.AppendChild(nPagePre);
root.AppendChild(xPage);
xmlDoc.AppendChild(root);
return xmlDoc;
}
}
}