2025-03-27 15:05:14 +08:00

490 lines
24 KiB
C#

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<Business.PROINSTDETAIL>(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<Business.PROINSTDETAIL>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
#endregion
#region
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<Business.PROINSTDETAIL>(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
}
}