DS7/DSWeb/WMS/VwWmsStocktakeList2GridSour...

588 lines
25 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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.WMS
{
public partial class VwWmsStocktakeList2GridSource : System.Web.UI.Page
{
private int iCurrentPage;
private int iShowPage;
private string strHandle;//值为"page"获取分页状态值数组 值为"list"获取日志显示JSON数据 值为"columns"获取日志显示记录 值为"rename"更新列标题
public string strUserID = "";//"04eaeac5-f271-45d1-b17b-ad4ccbab63d0";//用户GID
private string strType = "51";//Grid模块号
private string strOldHeader;
private string strNewHeader;
public string strgids = "";
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 = "";
}
//
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());
}
//
ViewState["hid_sel"] = "";
if (Request.QueryString["sel"] != null && Request.QueryString["sel"].ToString().Trim() != "")
{
UnicodeEncoding unicode = new UnicodeEncoding();
ViewState["hid_sel"] = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["sel"].ToString().Trim())));
}
//
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)
{
UnicodeEncoding unicode = new UnicodeEncoding();
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("getsum"))
{
Response.Write(getsum());//GET 参数错误
}
//导出Excel
if (strHandle.Trim().ToLower().Equals("setexcel"))
{
Response.Write(ReturnExcelSQL());
}
}
else
{
strJSON = "-1";//GET 参数错误
}
}
protected string getsum()
{
string ls = "";
string sSQL;
if (ViewState["hid_sel"].ToString().Trim() == "")
{
sSQL = "SELECT sum(hj_GOODSRKSL) as hj_GOODSRKSL,sum(hj_GOODSPFSL_OUT) as hj_GOODSPFSL_OUT,sum(hj_GOODSSTOCK) as hj_GOODSSTOCK,sum(hj_GOODSPACK) as hj_GOODSPACK,sum(hj_GOODSPACKPFSL) as hj_GOODSPACKPFSL,sum(hj_GOODSPACKSTOCK) as hj_GOODSPACKSTOCK FROM VW_WMS_STOCKTAKE_2 WHERE 1>1";
}
else
{
sSQL = "SELECT sum(hj_GOODSRKSL) as hj_GOODSRKSL,sum(hj_GOODSPFSL_OUT) as hj_GOODSPFSL_OUT,sum(hj_GOODSSTOCK) as hj_GOODSSTOCK,sum(hj_GOODSPACK) as hj_GOODSPACK,sum(hj_GOODSPACKPFSL) as hj_GOODSPACKPFSL,sum(hj_GOODSPACKSTOCK) as hj_GOODSPACKSTOCK FROM VW_WMS_STOCKTAKE_2 WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim();
}
//
LogDA logDA = new LogDA();
DataTable logTable = GetSqlDataIndex(logDA.GetExcuteSql(sSQL).Tables[0]);
ls = logTable.Rows[0]["hj_GOODSRKSL"].ToString().Trim();
ls += "" + logTable.Rows[0]["hj_GOODSPFSL_OUT"].ToString().Trim();
ls += "" + logTable.Rows[0]["hj_GOODSSTOCK"].ToString().Trim();
ls += "" + logTable.Rows[0]["hj_GOODSPACK"].ToString().Trim();
ls += "" + logTable.Rows[0]["hj_GOODSPACKPFSL"].ToString().Trim();
ls += "" + logTable.Rows[0]["hj_GOODSPACKSTOCK"].ToString().Trim();
return ls;
}
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;
if (ViewState["hid_sel"].ToString().Trim() == "")
{
strSql = String.Format("SELECT COUNT(*) FROM VW_WMS_STOCKTAKE_2 WHERE 1>1");
}
else
{
strSql = String.Format("SELECT COUNT(*) FROM VW_WMS_STOCKTAKE_2 WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim());
}
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 && ViewState["hid_sel"].ToString().Trim()!="")
{
if (tempCurPage == 1)
{
strSql = String.Format("SELECT {0} NID,REMARK,GOODSNAME,GOODSSTANDARD,GOODSSLICE"
+ ",hj_GOODSPACK,hj_GOODSPACKACTUAL,hj_GOODSPACKPFSL,hj_GOODSPACKSTOCK"
+ ",hj_GOODSRKSL,hj_GOODSRKSLACTUAL,hj_GOODSPFSL_OUT,hj_GOODSSTOCK"
+ ",CHARGEUNIT FROM VW_WMS_STOCKTAKE_2 WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim() + " ORDER BY REMARK,GOODSNAME,GOODSSTANDARD ", "top " + tempShowPage);
}
else
{
strTopNotInclude = "top " + (tempShowPage * (tempCurPage - 1));//RowCount*PageNum
strTopInclude = "top " + tempShowPage;//RowCount*PageNum
strSql = String.Format("SELECT NID,REMARK,GOODSNAME,GOODSSTANDARD,GOODSSLICE"
+ ",hj_GOODSPACK,hj_GOODSPACKACTUAL,hj_GOODSPACKPFSL,hj_GOODSPACKSTOCK"
+ ",hj_GOODSRKSL,hj_GOODSRKSLACTUAL,hj_GOODSPFSL_OUT,hj_GOODSSTOCK"
+ ",CHARGEUNIT FROM (SELECT {1} * FROM VW_WMS_STOCKTAKE_2 WHERE NID NOT IN (SELECT {0} NID FROM VW_WMS_STOCKTAKE_2 where 1=1 " + ViewState["hid_sel"].ToString().Trim() + " ORDER BY REMARK,GOODSNAME,GOODSSTANDARD) " + ViewState["hid_sel"].ToString().Trim() + " ORDER BY REMARK,GOODSNAME,GOODSSTANDARD) AS A", strTopNotInclude, strTopInclude);
}
}
else
{
strSql = " SELECT NID,REMARK,GOODSNAME,GOODSSTANDARD,GOODSSLICE,hj_GOODSPACK,hj_GOODSPACKACTUAL,hj_GOODSPACKPFSL,hj_GOODSPACKSTOCK,hj_GOODSRKSL,hj_GOODSRKSLACTUAL,hj_GOODSPFSL_OUT,hj_GOODSSTOCK,CHARGEUNIT FROM VW_WMS_STOCKTAKE_2 WHERE 1>1 " + ViewState["hid_sel"].ToString().Trim() + " ORDER BY REMARK,GOODSNAME,GOODSSTANDARD";
}
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 GetSeaExPKGSInfoBusinessListGridSource()
{
//GetLogGridSource
LogDA logDA = new LogDA();
StringBuilder logBuilder = new StringBuilder();
StringBuilder userdateBuilder = new StringBuilder();
StringBuilder dataBuilder = new StringBuilder();
string strSql = String.Format("SELECT COUNT(*) FROM VW_WMS_STOCKTAKE_2 WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim());
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;
}
/// <summary>
/// 导出EXCEL
/// </summary>
/// <returns></returns>
private string ReturnExcelSQL()
{
string SQLExcel = "SELECT REMARK,GOODSNAME,GOODSSTANDARD,GOODSSLICE"
+ ",hj_GOODSPACK,hj_GOODSPACKACTUAL,hj_GOODSPACKPFSL,hj_GOODSPACKSTOCK"
+ ",hj_GOODSRKSL,hj_GOODSRKSLACTUAL,hj_GOODSPFSL_OUT,hj_GOODSSTOCK"
+ ",CHARGEUNIT FROM VW_WMS_STOCKTAKE_2 WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim()
+ " union "
+ "SELECT '总计','','',0"
+ ",sum(hj_GOODSPACK) as hj_GOODSPACK,sum(hj_GOODSPACKACTUAL) as hj_GOODSPACKACTUAL,sum(hj_GOODSPACKPFSL) as hj_GOODSPACKPFSL,sum(hj_GOODSPACKSTOCK) as hj_GOODSPACKSTOCK"
+ ",sum(hj_GOODSRKSL) as hj_GOODSRKSL,sum(hj_GOODSRKSLACTUAL) as hj_GOODSRKSLACTUAL,sum(hj_GOODSPFSL_OUT) as hj_GOODSPFSL_OUT,sum(hj_GOODSSTOCK) as hj_GOODSSTOCK"
+ ",'' FROM VW_WMS_STOCKTAKE_2 WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim()
+ " ORDER BY REMARK,GOODSNAME,GOODSSTANDARD ";
return SQLExcel;
}
}
}