327 lines
13 KiB
C#
327 lines
13 KiB
C#
using BLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
|
|
namespace FineUIPro.Web.HJGL.WeldingManage
|
|
{
|
|
public partial class PointShowSearch : PageBase
|
|
{
|
|
#region 定义变量
|
|
/// <summary>
|
|
/// 单位ID
|
|
/// </summary>
|
|
public string UnitId
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["UnitId"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["UnitId"] = value;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 装置ID
|
|
/// </summary>
|
|
public string InstallationId
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["InstallationId"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["InstallationId"] = value;
|
|
}
|
|
}
|
|
|
|
|
|
public string selectedList
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["selectedList"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["selectedList"] = value;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 已焊接未点口的焊工
|
|
/// </summary>
|
|
private static List<Model.View_NoPointWelder> personManageLists = new List<Model.View_NoPointWelder>();
|
|
#endregion
|
|
|
|
#region 加载
|
|
/// <summary>
|
|
/// 加载页面
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
UnitId = Request.Params["unitId"];
|
|
InstallationId = Request.Params["installationId"];
|
|
|
|
var unit = BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId);
|
|
if (BLL.WorkAreaService.IsSupervisor(this.CurrUser.UnitId, this.CurrUser.LoginProjectId))
|
|
{
|
|
BLL.WorkAreaService.GetWorkAreaListByInstallSupervisorUnit(this.drpWorkArea, this.CurrUser.LoginProjectId, InstallationId, UnitId, this.CurrUser.UnitId, true);
|
|
}
|
|
else
|
|
{
|
|
BLL.WorkAreaService.GetWorkAreaListByInstallUnit(this.drpWorkArea, this.CurrUser.LoginProjectId, InstallationId, UnitId, true);
|
|
}
|
|
BLL.Base_DetectionRateService.InitDetectionRateDropDownList(this.drpNDTR_Id, true);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 查询
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.drpWorkArea.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpWorkArea.SelectedValue))
|
|
{
|
|
this.InitTreeMenu(this.drpWorkArea.SelectedValue);//加载树
|
|
}
|
|
else
|
|
{
|
|
Alert.ShowInTop("请选择施工区域!", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 加载树
|
|
/// <summary>
|
|
/// 加载树节点
|
|
/// </summary>
|
|
/// <param name="selectedValue"></param>
|
|
private void InitTreeMenu(string workAreaId)
|
|
{
|
|
if (!string.IsNullOrEmpty(workAreaId))
|
|
{
|
|
this.tvControlItem.Nodes.Clear();
|
|
TreeNode rootNode = new TreeNode();
|
|
rootNode.Text = BLL.WorkAreaService.GetWorkAreaCodeByWorkAreaId(workAreaId);
|
|
rootNode.NodeID = workAreaId;
|
|
rootNode.Expanded = true;
|
|
this.tvControlItem.Nodes.Add(rootNode);
|
|
|
|
var isoInfos = from x in Funs.DB.PW_JointInfo
|
|
where x.PW_PointID == null && x.DReportID != null && x.JOT_CellWelder != null && x.JOT_FloorWelder != null
|
|
&& x.JOT_JointStatus == "100"
|
|
join y in Funs.DB.PW_IsoInfo on x.ISO_ID equals y.ISO_ID
|
|
where y.WorkAreaId == workAreaId
|
|
select new { x.ISO_ID, y.ISO_IsoNo, y.DetectionRateId };
|
|
if (!string.IsNullOrEmpty(this.txtISO_ID.Text.Trim()))
|
|
{
|
|
isoInfos = isoInfos.Where(x => x.ISO_IsoNo.Contains(this.txtISO_ID.Text.Trim()));
|
|
}
|
|
if (this.drpNDTR_Id.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpNDTR_Id.SelectedValue))
|
|
{
|
|
isoInfos = isoInfos.Where(x => x.DetectionRateId == this.drpNDTR_Id.SelectedValue);
|
|
}
|
|
if (isoInfos.Count() > 0)
|
|
{
|
|
isoInfos = isoInfos.Distinct();
|
|
foreach (var item in isoInfos)
|
|
{
|
|
string rate = string.Empty;
|
|
if (!string.IsNullOrEmpty(item.DetectionRateId))
|
|
{
|
|
var ndtr = BLL.Base_DetectionRateService.GetDetectionRateByDetectionRateId(item.DetectionRateId);
|
|
if (ndtr != null)
|
|
{
|
|
rate = ndtr.DetectionRateCode;
|
|
}
|
|
}
|
|
TreeNode newNode = new TreeNode();
|
|
newNode.Text = item.ISO_IsoNo + "【" + rate + "%】";
|
|
newNode.NodeID = item.ISO_ID;
|
|
newNode.Expanded = true;
|
|
newNode.EnableClickEvent = true;
|
|
rootNode.Nodes.Add(newNode);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 树点击事件
|
|
/// <summary>
|
|
/// Tree点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
|
{
|
|
HashSet<string> set = new HashSet<string>();
|
|
foreach (var id in Grid1.SelectedRowIDArray)
|
|
{
|
|
set.Add(id);
|
|
}
|
|
if (!string.IsNullOrEmpty(selectedList))
|
|
{
|
|
foreach (var id in selectedList.Split(','))
|
|
{
|
|
set.Add(id);
|
|
}
|
|
}
|
|
selectedList = string.Join(",", set.ToArray());
|
|
|
|
string isoId = this.tvControlItem.SelectedNodeID;
|
|
int num = BLL.PW_JointInfoService.GetJointCountByIsoIdPoint(isoId);
|
|
int gnum = BLL.PW_JointInfoService.GetJointCountByIsoIdJointAttribute(isoId, "固定");
|
|
int hnum = BLL.PW_JointInfoService.GetJointCountByIsoIdJointAttribute(isoId, "活动");
|
|
var total = from x in Funs.DB.PW_JointInfo where x.ISO_ID == isoId select x;
|
|
this.lblPointNum.Text = num.ToString();
|
|
if (total.Count() > 0)
|
|
{
|
|
this.lblPonitRate.Text = (((double)num / total.Count()) * 100).ToString("##.0") + "%";
|
|
}
|
|
else
|
|
{
|
|
this.lblPonitRate.Text = "0%";
|
|
}
|
|
this.lblGdk.Text = gnum.ToString();
|
|
this.lblGdkRate.Text = (((double)gnum / total.Count()) * 100).ToString("##.0") + "%";
|
|
|
|
this.lblHdk.Text = hnum.ToString();
|
|
this.lblHdkRate.Text = (((double)hnum / total.Count()) * 100).ToString("##.0") + "%";
|
|
|
|
BindGrid(isoId);
|
|
//未点口的焊工
|
|
personManageLists.Clear();
|
|
personManageLists = BLL.WelderService.GetWelderList(this.CurrUser.LoginProjectId, UnitId, isoId);
|
|
this.Grid2.DataSource = personManageLists;
|
|
this.Grid2.DataBind();
|
|
}
|
|
#endregion
|
|
|
|
#region 数据绑定
|
|
/// <summary>
|
|
/// 数据绑定
|
|
/// </summary>
|
|
private void BindGrid(string isoId)
|
|
{
|
|
string strSql = @"SELECT 0 [index], jointInfo.JOT_ID,
|
|
jointInfo.ProjectId,
|
|
jointInfo.ISO_ID,
|
|
jointInfo.JOT_JointNo,
|
|
jointInfo.DReportID,
|
|
jointInfo.JOT_Dia,
|
|
isoInfo.ISO_IsoNo,
|
|
reportMain.JOT_WeldDate,
|
|
cellWelder.WED_Code AS CellWelderCode,
|
|
weldType.WeldTypeName,
|
|
case when isoInfo.[Is_Standard] = 0 then
|
|
(detectionRate.DetectionRate+'%') else (detectionRate1.DetectionRate+'%') end AS DetectionRate"
|
|
+ @" FROM PW_JointInfo AS jointInfo "
|
|
+ @" LEFT JOIN PW_IsoInfo AS isoInfo ON isoInfo.ISO_ID = jointInfo.ISO_ID "
|
|
+ @" LEFT JOIN BO_WeldReportMain AS reportMain ON reportMain.DReportID = jointInfo.DReportID "
|
|
+ @" LEFT JOIN BS_Welder AS cellWelder ON cellWelder.WED_ID = jointInfo.JOT_CellWelder "
|
|
+ @" LEFT JOIN Base_WeldType AS weldType ON weldType.WeldTypeId = jointInfo.JOTY_ID"
|
|
+ @" LEFT JOIN Base_DetectionRate AS detectionRate ON detectionRate.DetectionRateId = isoInfo.DetectionRateId"
|
|
+ @" LEFT JOIN Base_DetectionRate AS detectionRate1 ON detectionRate1.DetectionRateId = jointInfo.DetectionRateId"
|
|
+ @" WHERE jointInfo.PW_PointID IS NULL AND jointInfo.DReportID IS NOT NULL AND jointInfo.JOT_JointStatus!='104'"
|
|
+ @" AND jointInfo.ProjectId= @projectId AND jointInfo.ISO_ID=@isoId";
|
|
List<SqlParameter> listStr = new List<SqlParameter>
|
|
{
|
|
new SqlParameter("@projectId", this.CurrUser.LoginProjectId),
|
|
new SqlParameter("@isoId", isoId),
|
|
};
|
|
|
|
if (!string.IsNullOrEmpty(txtJOTJointNo.Text))
|
|
{
|
|
strSql += " and jointInfo.JOT_JointNo like '%"+ txtJOTJointNo.Text + "%'";
|
|
}
|
|
strSql += " order by jointInfo.JOT_JointNo asc";
|
|
SqlParameter[] parameter = listStr.ToArray();
|
|
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|
if (tb != null)
|
|
{
|
|
foreach (DataRow row in tb.Rows)
|
|
{
|
|
try
|
|
{
|
|
row["index"] = int.Parse(System.Text.RegularExpressions.Regex.Replace(row["JOT_JointNo"].ToString(), @"[^0-9]+", ""));
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|
|
Grid1.RecordCount = tb.Rows.Count;
|
|
var table = this.GetPagedDataTable(Grid1, tb);
|
|
Grid1.DataSource = tb;
|
|
Grid1.DataBind();
|
|
if (!string.IsNullOrEmpty(selectedList))
|
|
{
|
|
string[] selectedIds = selectedList.Split(',');
|
|
List<string> selectId = new List<string>();
|
|
foreach(var id in selectedIds)
|
|
{
|
|
foreach(DataRow row in tb.Rows)
|
|
{
|
|
if(id == row["JOT_ID"].ToString())
|
|
{
|
|
selectId.Add(id);
|
|
}
|
|
}
|
|
}
|
|
Grid1.SelectedRowIDArray = selectId.ToArray();
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
protected void txtJOTJointNo_OnTextChanged(object sender, EventArgs e)
|
|
{
|
|
if (Grid1.SelectedRowIDArray.Length > 0)
|
|
{
|
|
selectedList += string.Join(",", Grid1.SelectedRowIDArray);
|
|
}
|
|
BindGrid(this.tvControlItem.SelectedNodeID);
|
|
}
|
|
#region 确定
|
|
/// <summary>
|
|
/// 确定按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSure_Click(object sender, EventArgs e)
|
|
{
|
|
HashSet<string> set = new HashSet<string>();
|
|
foreach (var id in Grid1.SelectedRowIDArray)
|
|
{
|
|
set.Add(id);
|
|
}
|
|
if (!string.IsNullOrEmpty(selectedList))
|
|
{
|
|
foreach (var id in selectedList.Split(','))
|
|
{
|
|
set.Add(id);
|
|
}
|
|
}
|
|
selectedList = string.Join(",", set.ToArray());
|
|
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(selectedList)
|
|
+ ActiveWindow.GetHidePostBackReference());
|
|
}
|
|
#endregion
|
|
}
|
|
} |