using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using MSB = SuperMap.RealEstate.MainTenance.Storage.Business; using System.Data; namespace SuperMap.RealEstate.MainTenance.Storage.Modules.Equipment { public partial class Order : SuperMap.RealEstate.Web.UI.Page { #region 加载事件 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; //设置ToolBar的控制控件 //初始化并加载列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); //设置回车焦点按钮 SetControlClientAction(ButtonSearch); //判断页面是出库还是入库,并调节样式 //state传入的用于判断样式的参数 string state = Request.QueryString["state"].ToString(); if (state == "1") { InState.Visible = false; InState.SelectedItem.Selected = false; } if (state == "2") { OutState.Visible = false; } } #endregion #region 查询事件 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } #endregion #region 翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); } #endregion #region 筛选条件 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); #region 入库状态 string PROINSTDETAIL_ID = ""; DataTable dt; string EQUIPMENT_ID = Request.QueryString["ID"].ToString().ToDecrypt(); string state = Request.QueryString["state"].ToString(); MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); if (state == "2") { if (InState.SelectedValue != "1=1") { if (InState.SelectedValue == "0") { if (state == "2") { dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,p.ORIGIN_TYPE,p.PROINST_DATE, p.PROINSTDETAIL_DESC,p.PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_STATE='9000' AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND r.PROINST_TYPE='1000'"); } else { dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,p.ORIGIN_TYPE,p.PROINST_DATE, p.PROINSTDETAIL_DESC,p.PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_STATE='9000' AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND r.PROINST_TYPE='2000'"); } //查询出相应的PROINSTDETAIL_ID并拼接成所要的格式 if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { PROINSTDETAIL_ID += "'" + dt.Rows[i][4].ToString() + "'" + ","; } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID in (" + PROINSTDETAIL_ID + ")"; } else { e.AddAndParams("PROINSTDETAIL_ID", 9999999); } } else if (InState.SelectedValue == "1") { if (state == "2") { dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,p.ORIGIN_TYPE,p.PROINST_DATE, p.PROINSTDETAIL_DESC,p.PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_STATE='1000' AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND r.PROINST_TYPE='1000'"); } else { dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT p.SERIAL_NUMBER,p.ORIGIN_TYPE,p.PROINST_DATE,p.PROINSTDETAIL_DESC, p.PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE p.PROINST_ID=r.PROINST_ID AND e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_STATE='1000' AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND r.PROINST_TYPE='2000'"); } //查询出相应的PROINSTDETAIL_ID并拼接成所要的格式 if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { PROINSTDETAIL_ID += "'" + dt.Rows[i][4].ToString() + "'" + ","; } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")"; } else { e.AddAndParams("PROINSTDETAIL_ID", 9999999); } } } else { dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p,MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND PROINST_TYPE='1000'"); //查询出相应的PROINSTDETAIL_ID并拼接成所要的格式 if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { PROINSTDETAIL_ID += "'" + dt.Rows[i][0].ToString() + "'" + ","; } PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")"; } else { e.AddAndParams("PROINSTDETAIL_ID", 9999999); } } } #endregion #region 出库状态 if (state == "1") { if (OutState.SelectedValue != "1=1") { DataTable dts; string _PROINSTDETAIL_ID = ""; //string _css = Request.QueryString["css"].ToString(); //已出库 if (OutState.SelectedValue == "0") { if (state == "2") { dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER,COUNT(*),p.EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p,MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID " + "AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND PROINST_STATE='9000' GROUP BY SERIAL_NUMBER," + "p.EQUIPMENT_TYPE HAVING COUNT(*)=2"); } else { dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER,COUNT(*),p.EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p,MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "'AND PROINST_STATE='9000' AND PROINST_TYPE = '2000' " + "GROUP BY SERIAL_NUMBER,p.EQUIPMENT_TYPE"); } if (dts.Rows.Count > 0) { for (int i = 0; i < dts.Rows.Count; i++) { DataTable dtf = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE " + "SERIAL_NUMBER='" + dts.Rows[i][0].ToString() + "' AND EQUIPMENT_TYPE='" + dts.Rows[i][2].ToString() + "'"); _PROINSTDETAIL_ID += "'" + dtf.Rows[0][0].ToString() + "'" + ","; } _PROINSTDETAIL_ID = _PROINSTDETAIL_ID.Substring(0, _PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + _PROINSTDETAIL_ID + ")"; } else { e.AddAndParams("PROINSTDETAIL_ID", 9999999); } } //未出库 else if (OutState.SelectedValue == "1") { if (state == "2") { dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER,COUNT(*),p.EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' and PROINST_STATE='9000' " + "GROUP BY SERIAL_NUMBER,p.EQUIPMENT_TYPE HAVING COUNT(*)<2"); } else { dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER,COUNT(*),p.EQUIPMENT_TYPE FROM MAINTENANCE_STORAGE.T_EQUIPMENT e,MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' AND PROINST_STATE='1000' AND PROINST_TYPE = '2000' " + "GROUP BY SERIAL_NUMBER,p.EQUIPMENT_TYPE"); } if (dts.Rows.Count > 0) { for (int i = 0; i < dts.Rows.Count; i++) { DataTable dtf = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE " + "SERIAL_NUMBER='" + dts.Rows[i][0].ToString() + "' AND EQUIPMENT_TYPE='" + dts.Rows[i][2].ToString() + "'"); _PROINSTDETAIL_ID += "'" + dtf.Rows[0][0].ToString() + "'" + ","; } _PROINSTDETAIL_ID = _PROINSTDETAIL_ID.Substring(0, _PROINSTDETAIL_ID.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID in (" + _PROINSTDETAIL_ID + ")"; } else { e.AddAndParams("PROINSTDETAIL_ID", 9999999); } } } //全部 else { string b = ""; dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p,MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' and PROINST_TYPE='2000'"); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { b += "'" + dt.Rows[i][0].ToString() + "'" + ","; } b = b.Substring(0, b.Length - 1); e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID in (" + b + ")"; } else { e.AddAndParams("PROINSTDETAIL_ID", 9999999); } } } #endregion //根据日期进行筛选 if (StartDATE.Text != "" && EndDATE.Text != "") { e.SetOtherUserCustomWhereSqlString = " TRUNC(PROINST_DATE)>=TO_DATE('" +DateTime.Parse(StartDATE.Text).ToString(). Split(" ")[0] + "', 'yyyy-mm-dd') AND " +"TRUNC(PROINST_DATE) <=TO_DATE" + "('" + DateTime.Parse(EndDATE.Text).ToString(). Split(" ")[0] + "', 'yyyy-mm-dd')"; } else if (StartDATE.Text != "" && EndDATE.Text == "") { e.SetOtherUserCustomWhereSqlString = " TRUNC(PROINST_DATE)>=TO_DATE('" +DateTime.Parse(StartDATE.Text).ToString(). Split(" ")[0] + "', 'yyyy-mm-dd')"; } else if (StartDATE.Text == "" && EndDATE.Text != "") { e.SetOtherUserCustomWhereSqlString = " TRUNC(PROINST_DATE)<=TO_DATE('" +DateTime.Parse(EndDATE.Text).ToString(). Split(" ")[0] + "', 'yyyy-mm-dd')"; } //且搜索条件 //e.AddAndParams(字段名, 值); //或搜索条件 //e.AddOrParams(字段名, 值); //设备来源/去由 //排序 e.AddOrderByParams(GridViewOrderBy1); } #endregion #region 数据绑定事件 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { //标题字段解析 if (e.Row.RowType == DataControlRowType.Header) { //state判断出入库的参数 string state = Request.QueryString["state"].ToString(); if (state == "2") { e.Row.Cells[2].Text = "设备来源"; e.Row.Cells[3].Text = "入库日期"; e.Row.Cells[5].Text = "入库状态"; e.Row.Cells[6].Visible = true; } else { e.Row.Cells[6].Visible = false; } } //行字段 else if (e.Row.RowType == DataControlRowType.DataRow) { //设备来源/去由 switch (e.Row.Cells[2].Text) { case "1000": e.Row.Cells[2].Text = "购买"; break; case "2000": e.Row.Cells[2].Text = "租赁"; break; case "3000": e.Row.Cells[2].Text = "网购"; break; case "4000": e.Row.Cells[2].Text = "维修返件"; break; case "5000": e.Row.Cells[2].Text = "备件消耗"; break; } //判断是出库还是入库 //state判断出入库的参数 string state = Request.QueryString["state"].ToString(); string PROINSTDETAIL_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["PROINSTDETAIL_ID"].ToString(); string EQUIPMENT_ID = Request.QueryString["ID"].ToString().ToDecrypt(); #region 出库时 if (state == "1") { //绑定出库状态 bool _outstate = false; e.Row.Cells[6].Visible = false; MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID" + " ='" + EQUIPMENT_ID + "' AND PROINST_STATE='9000' " + "AND PROINST_TYPE='2000'"); for (int i = 0; i < dt.Rows.Count; i++) { if (e.Row.Cells[1].Text == dt.Rows[i][0].ToString()) { _outstate = true; } } if (_outstate == false) { e.Row.Cells[5].Text = "出库中"; } else { e.Row.Cells[5].Text = "已出库"; } } #endregion #region 入库时 else if (state == "2") { //绑定出库状态 bool outstate = false; bool intstate = false; MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction); DataTable dt = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' " + " AND PROINST_STATE='9000' AND PROINST_TYPE='2000'"); for (int i = 0; i < dt.Rows.Count; i++) { if (e.Row.Cells[1].Text == dt.Rows[i][0].ToString()) { outstate = true; } } if (outstate == false) { e.Row.Cells[6].Text = "未出库"; } else { e.Row.Cells[6].Text = "已出库"; } //绑定入库状态 DataTable dts = _PROINSTDETAIL.ExecuteDataTable( @"SELECT SERIAL_NUMBER FROM MAINTENANCE_STORAGE.T_EQUIPMENT e, MAINTENANCE_STORAGE.T_PROINSTDETAIL p, MAINTENANCE_STORAGE.T_PROINST r WHERE e.EQUIPMENT_ID=p.EQUIPMENT_ID AND r.PROINST_ID=p.PROINST_ID AND e.EQUIPMENT_ID='" + EQUIPMENT_ID + "' " + " AND PROINST_STATE='9000' AND PROINST_TYPE='1000'"); for (int j = 0; j < dts.Rows.Count; j++) { if (e.Row.Cells[1].Text == dts.Rows[j][0].ToString()) { intstate = true; } } if (intstate == false) { e.Row.Cells[5].Text = "未入库"; } else { e.Row.Cells[5].Text = "已入库"; } } #endregion } } #endregion } }