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

315 lines
15 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.Proinst
{
public partial class EquipmentOut : 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);
}
#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);
if (EQUIPMENT_TYPE.SelectedValue != "")
{
e.AddAndParams("EQUIPMENT_TYPE", EQUIPMENT_TYPE.SelectedValue);
}
//全部
if (OutState.SelectedValue == "1=1")
{
string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值
MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction);
DataTable dt = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT
p.SERIAL_NUMBER,EQUIPMENT_TYPE
FROM
MAINTENANCE_STORAGE.T_PROINSTDETAIL p,
MAINTENANCE_STORAGE.T_PROINST r
WHERE
p.PROINST_ID=r.PROINST_ID AND r.PROINST_TYPE='1000'");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() != "")
{
DataTable dts = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT PROINSTDETAIL_ID
FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL
WHERE SERIAL_NUMBER='" + dt.Rows[i][0].ToString() +
"' AND EQUIPMENT_TYPE=" + "'" + dt.Rows[i][1].ToString() + "'");
PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ",";
}
}
PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1);
e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")";
}
//未出库
else if (OutState.SelectedValue == "0")
{
string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值
MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction);
DataTable dt = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT
p.SERIAL_NUMBER,COUNT(p.SERIAL_NUMBER),EQUIPMENT_TYPE
FROM
MAINTENANCE_STORAGE.T_PROINSTDETAIL p,
MAINTENANCE_STORAGE.T_PROINST r
WHERE
p.PROINST_ID=r.PROINST_ID
AND r.PROINST_STATE='9000'
GROUP BY SERIAL_NUMBER,EQUIPMENT_TYPE
HAVING COUNT(*)<2");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() != "")
{
DataTable dts = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT PROINSTDETAIL_ID
FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL
WHERE SERIAL_NUMBER='" + dt.Rows[i][0].ToString() +
"' AND EQUIPMENT_TYPE='" + dt.Rows[i][2].ToString() + "'");
PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ",";
}
}
PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1);
e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")";
}
//已出库
else if (OutState.SelectedValue == "1")
{
string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值
MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction);
DataTable dt = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT
p.SERIAL_NUMBER,EQUIPMENT_TYPE
FROM
MAINTENANCE_STORAGE.T_PROINSTDETAIL p,
MAINTENANCE_STORAGE.T_PROINST r
WHERE
p.PROINST_ID=r.PROINST_ID AND r.PROINST_TYPE='2000' " +
"AND r.PROINST_STATE='9000'");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() != "")
{
DataTable dts = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT
PROINSTDETAIL_ID
FROM
MAINTENANCE_STORAGE.T_PROINSTDETAIL
WHERE
SERIAL_NUMBER='" + dt.Rows[i][0].ToString()
+ "' AND EQUIPMENT_TYPE='" +
"" + dt.Rows[i][1].ToString() + "'");
PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ",";
}
}
PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1);
e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")";
}
//出库中
else if (OutState.SelectedValue == "2")
{
string PROINSTDETAIL_ID = "";//变量用来存放查询到的ID的值
MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction);
DataTable dt = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT
p.SERIAL_NUMBER,EQUIPMENT_TYPE
FROM
MAINTENANCE_STORAGE.T_PROINSTDETAIL p,
MAINTENANCE_STORAGE.T_PROINST r
WHERE
p.PROINST_ID=r.PROINST_ID AND r.PROINST_TYPE='2000' "
+ "AND r.PROINST_STATE='1000'");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() != "")
{
DataTable dts = _PROINSTDETAIL.ExecuteDataTable(
"SELECT PROINSTDETAIL_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL WHERE SERIAL_NUMBER='"
+ dt.Rows[i][0].ToString()+ "' AND EQUIPMENT_TYPE='" + dt.Rows[i][1].ToString() + "'");
PROINSTDETAIL_ID += "'" + dts.Rows[0][0].ToString() + "'" + ",";
}
}
PROINSTDETAIL_ID = PROINSTDETAIL_ID.Substring(0, PROINSTDETAIL_ID.Length - 1);
e.SetOtherUserCustomWhereSqlString = "PROINSTDETAIL_ID IN (" + PROINSTDETAIL_ID + ")";
}
//且搜索条件
//e.AddAndParams(字段名, 值);
//或搜索条件
//e.AddOrParams(字段名, 值);
//设备来源/去由
//排序
e.AddOrderByParams(GridViewOrderBy1);
}
#endregion
#region
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//绑定设备编号及名称
string PROINSTDETAIL_ID = GridViewEx1.DataKeys[e.Row.RowIndex].
Values["PROINSTDETAIL_ID"].ToString();
MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction);
DataTable dts = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT EQUIPMENT_ID,SERIAL_NUMBER,ORIGIN_TYPE,PROINST_DATE,
PROINSTDETAIL_DESC,EQUIPMENT_TYPE
FROM
MAINTENANCE_STORAGE.T_PROINSTDETAIL
WHERE PROINSTDETAIL_ID=" + PROINSTDETAIL_ID + "");
string EQUIPMENT_ID = dts.Rows[0][0].ToString();
MSB.EQUIPMENT _EQUIPMENT = new MSB.EQUIPMENT(Transaction);
DataTable table = _EQUIPMENT.ExecuteDataTable(
"SELECT EQUIPMENT_CODE,EQUIPMENT_NAME FROM " +
"MAINTENANCE_STORAGE.T_EQUIPMENT WHERE EQUIPMENT_ID=" + EQUIPMENT_ID + "");
if (table.Rows.Count > 0)
{
e.Row.Cells[3].Text = table.Rows[0][0].ToString();
e.Row.Cells[4].Text = table.Rows[0][1].ToString();
}
//绑定出库状态
DataTable dt = _PROINSTDETAIL.ExecuteDataTable(
@"SELECT SERIAL_NUMBER,p.EQUIPMENT_TYPE,r.PROINST_STATE
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 PROINST_TYPE='2000'");
bool outstate = false;//局部变量用来判断是否为未出库
bool _outstate = false;//局部变量用来判断是否为出库中
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][0].ToString() == e.Row.Cells[5].Text &&
dt.Rows[i][1].ToString() == e.Row.Cells[2].Text)
{
((CheckBoxEx)e.Row.Cells[1].FindControl("Checked")).Visible = false;
outstate = true;
if (dt.Rows[i][2].ToString() == "9000")
{
_outstate = true;
}
}
}
//绑定出库状态
if (outstate == false)
{
e.Row.Cells[7].Text = "未出库";
}
else
{
if (_outstate == false)
{
e.Row.Cells[7].Text = "出库中";
}
else
{
e.Row.Cells[7].Text = "已出库";
}
}
//设备类型
switch (e.Row.Cells[2].Text)
{
case "0": e.Row.Cells[2].Text = "收银机"; break;
case "1": e.Row.Cells[2].Text = "服务器"; break;
case "2": e.Row.Cells[2].Text = "打印机"; break;
case "3": e.Row.Cells[2].Text = "盘点枪"; break;
case "4": e.Row.Cells[2].Text = "扫码器"; break;
}
}
}
#endregion
#region
protected void ButtonSeave_Click(object sender, EventArgs e)
{
bool check = false;//变量判断是否有被选中的项
//循环获取被选中的行
for (int i = 0; i < this.GridViewEx1.Rows.Count; i++)
{
string PROINSTDETAIL_ID = GridViewEx1.DataKeys[i].Value.ToString();
bool b = ((CheckBoxEx)GridViewEx1.Rows[i].FindControl("Checked")).Checked;
if (b)
{
//当被选中时获取输入的数量并保存
MSB.PROINSTDETAIL _PROINSTDETAIL = new MSB.PROINSTDETAIL(Transaction);
DataTable dt = _PROINSTDETAIL.ExecuteDataTable(
"SELECT EQUIPMENT_TYPE,EQUIPMENT_ID FROM MAINTENANCE_STORAGE.T_PROINSTDETAIL " +
"WHERE PROINSTDETAIL_ID=" + PROINSTDETAIL_ID + "");
string EQUIPMENT_ID = dt.Rows[0][1].ToString();
string EQUIPMENT_TYPE = dt.Rows[0][0].ToString();
string PROINST_ID = Request.QueryString["ID"].ToString().ToDecrypt();
string SERIAL_NUMBER = GridViewEx1.Rows[i].Cells[5].Text;
string sql = string.Format("INSERT INTO MAINTENANCE_STORAGE.T_PROINSTDETAIL VALUES" +
" (MAINTENANCE_STORAGE.SEQ_PROINSTDETAIL.nextval,'{0}','{1}','{2}'," +
"'{3}',null,null,sysdate,null)", PROINST_ID, EQUIPMENT_ID, EQUIPMENT_TYPE, SERIAL_NUMBER);
_PROINSTDETAIL.ExecuteNonQuery(sql, null);
check = true;
}
}
if (check == false)
{
Alert("请选择设备!");
}
else
{
Alert("选择成功!");
string PROINST_ID = Request.QueryString["ID"].ToString();
//三级页面刷新二级页面
ExecClientScript("$('#pop-dialog-frame-GridViewEx1Page',parent.parent.document).attr('src', " +
"'/MainTenance/Modules/Proinst/ProinstDetailList.aspx?ID=" + PROINST_ID + "" +
"&PopDialogPageName=F_R_GridPageEx1&PopDialogName=GridViewEx1Page&r=0.5539873951065308')");
ClosePopDialog();
}
}
#endregion
}
}