using BLL; using FineUIPro.Web.HJGL.HotProcessHard; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Web.UI.WebControls; namespace FineUIPro.Web.HJGL.WeldingManage { public partial class WeldTask : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetButtonPower(); txtTaskDate.MinDate = DateTime.Now; this.txtTaskDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now.AddDays(1)); this.txtTaskDateMonth.Text = string.Format("{0:yyyy-MM}", DateTime.Now); ///焊口属性 this.drpJointAttribute.DataTextField = "Text"; this.drpJointAttribute.DataValueField = "Value"; this.drpJointAttribute.DataSource = BLL.DropListService.HJGL_JointAttribute(); this.drpJointAttribute.DataBind(); ///机动化程度 this.drpWeldingMode.DataTextField = "Text"; this.drpWeldingMode.DataValueField = "Value"; this.drpWeldingMode.DataSource = BLL.DropListService.HJGL_WeldingMode(); this.drpWeldingMode.DataBind(); this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); this.InitTreeMenu();//加载树 } } #region 获取按钮权限 /// /// 获取按钮权限 /// /// /// private void GetButtonPower() { if (Request.Params["value"] == "0") { return; } var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.HJGL_WeldTaskMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnMenuAdd.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify) || buttonList.Contains(BLL.Const.BtnSave)) { this.btnMotify.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnDelete)) { this.btnMenuDelete.Hidden = false; } } } #endregion /// /// 树查询 /// /// /// protected void btnTreeFind_Click(object sender, EventArgs e) { this.InitTreeMenu(); } #region 加载树装置-单位 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode1 = new TreeNode(); rootNode1.NodeID = "1"; rootNode1.Text = "建筑工程"; rootNode1.CommandName = "建筑工程"; rootNode1.EnableClickEvent = true; rootNode1.Selectable = false; this.tvControlItem.Nodes.Add(rootNode1); TreeNode rootNode2 = new TreeNode(); rootNode2.NodeID = "2"; rootNode2.Text = "安装工程"; rootNode2.CommandName = "安装工程"; rootNode2.EnableClickEvent = true; rootNode2.Expanded = true; this.tvControlItem.Nodes.Add(rootNode2); var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); // 获取当前用户所在单位 var currUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId); var unitWorkList = (from x in Funs.DB.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId && x.SuperUnitWork == null && x.UnitId != null && x.ProjectType != null select x).ToList(); List unitWork1 = null; List unitWork2 = null; //// 当前为施工单位,只能操作本单位的数据 //if (currUnit != null && currUnit.UnitType == Const.ProjectUnitType_2) //{ // unitWork1 = (from x in unitWorkList // where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "1" // select x).ToList(); // unitWork2 = (from x in unitWorkList // where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "2" // select x).ToList(); //} //else //{ unitWork1 = (from x in unitWorkList where x.ProjectType == "1" select x).ToList(); unitWork2 = (from x in unitWorkList where x.ProjectType == "2" select x).ToList(); //} if (unitWork1.Count() > 0) { foreach (var q in unitWork1) { var a = (from x in Funs.DB.HJGL_WeldTask where x.UnitWorkId == q.UnitWorkId && x.TaskDate < Convert.ToDateTime(this.txtTaskDateMonth.Text.Trim() + "-01").AddMonths(1) && x.TaskDate >= Convert.ToDateTime(this.txtTaskDateMonth.Text.Trim() + "-01") select x.TaskDate.Value.Date).Distinct().Count(); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); TreeNode tn1 = new TreeNode(); tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName; tn1.CommandName = "单位工程"; tn1.ToolTip = "施工单位:" + unitNamesUnitIds; tn1.EnableClickEvent = true; tn1.EnableExpandEvent = true; rootNode1.Nodes.Add(tn1); if (a > 0) { // BindNodes(tn1); TreeNode newNode = new TreeNode(); newNode.Text = "加载管线..."; newNode.NodeID = "加载管线..."; tn1.Nodes.Add(newNode); } } } if (unitWork2.Count() > 0) { foreach (var q in unitWork2) { var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); if (string.IsNullOrEmpty(this.txtWeldJointCode.Text.Trim())) { var a = (from x in Funs.DB.HJGL_WeldTask where x.UnitWorkId == q.UnitWorkId && x.TaskDate < Convert.ToDateTime(this.txtTaskDateMonth.Text.Trim() + "-01").AddMonths(1) && x.TaskDate >= Convert.ToDateTime(this.txtTaskDateMonth.Text.Trim() + "-01") select x.TaskDate.Value.Date).Distinct().Count(); TreeNode tn2 = new TreeNode(); tn2.NodeID = q.UnitWorkId; tn2.Text = q.UnitWorkName; tn2.CommandName = "单位工程"; tn2.ToolTip = "施工单位:" + unitNamesUnitIds; tn2.EnableClickEvent = true; tn2.EnableExpandEvent = true; rootNode2.Nodes.Add(tn2); if (a > 0) { // BindNodes(tn1); TreeNode newNode = new TreeNode(); newNode.Text = "加载管线..."; newNode.NodeID = "加载管线..."; tn2.Nodes.Add(newNode); } } else { var a = (from x in Funs.DB.HJGL_WeldTask join y in Funs.DB.HJGL_WeldJoint on x.WeldJointId equals y.WeldJointId where x.UnitWorkId == q.UnitWorkId && y.WeldJointCode.Contains(this.txtWeldJointCode.Text.Trim()) select x.TaskDate.Value.Date).Distinct().Count(); TreeNode tn2 = new TreeNode(); tn2.NodeID = q.UnitWorkId; tn2.Text = q.UnitWorkName; tn2.CommandName = "单位工程"; tn2.ToolTip = "施工单位:" + unitNamesUnitIds; tn2.EnableClickEvent = true; tn2.EnableExpandEvent = true; rootNode2.Nodes.Add(tn2); if (a > 0) { var date = (from x in Funs.DB.HJGL_WeldTask join y in Funs.DB.HJGL_WeldJoint on x.WeldJointId equals y.WeldJointId where x.UnitWorkId == q.UnitWorkId && y.WeldJointCode.Contains(this.txtWeldJointCode.Text.Trim()) select x.TaskDate.Value.Date).First(); this.txtTaskDateMonth.Text = string.Format("{0:yyyy-MM}", date); // BindNodes(tn1); TreeNode newNode = new TreeNode(); newNode.Text = "加载管线..."; newNode.NodeID = "加载管线..."; tn2.Nodes.Add(newNode); } } } } } protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { if (e.Node.Nodes[0].NodeID == "加载管线...") { e.Node.Nodes.Clear(); BindNodes(e.Node); } } private void BindNodes(TreeNode node) { if (string.IsNullOrEmpty(this.txtWeldJointCode.Text.Trim())) { var p = (from x in Funs.DB.HJGL_WeldTask where x.UnitWorkId == node.NodeID && x.TaskDate < Convert.ToDateTime(this.txtTaskDateMonth.Text.Trim() + "-01").AddMonths(1) && x.TaskDate >= Convert.ToDateTime(this.txtTaskDateMonth.Text.Trim() + "-01") select new { x.TaskDate.Value.Date, x.UnitId,x.SerialNumber }).Distinct().ToList().OrderByDescending(x => x.Date); if (p.Count() > 0) { foreach (var item in p) { TreeNode newNode = new TreeNode(); newNode.CommandName = "Date"; newNode.Text = string.Format("{0:yyyy-MM-dd}", item.Date)+"-"+ item.SerialNumber + "(" + BLL.UnitService.getUnitNamesUnitIds(item.UnitId) + ")"; newNode.NodeID = node.NodeID + "|" + item.UnitId + "|" + string.Format("{0:yyyy-MM-dd}", item.Date) + "|" + item.SerialNumber; newNode.EnableClickEvent = true; node.Nodes.Add(newNode); } } } else { var p = (from x in Funs.DB.HJGL_WeldTask join y in Funs.DB.HJGL_WeldJoint on x.WeldJointId equals y.WeldJointId where x.UnitWorkId == node.NodeID && y.WeldJointCode.Contains(this.txtWeldJointCode.Text.Trim()) orderby x.TaskDate descending select new { x.TaskDate.Value.Date, x.UnitId, x.SerialNumber }).Distinct().ToList().OrderByDescending(x => x.Date); if (p.Count() > 0) { foreach (var item in p) { TreeNode newNode = new TreeNode(); newNode.CommandName = "Date"; // newNode.Text = string.Format("{0:yyyy-MM-dd}", item.Date) + "(" + BLL.UnitService.getUnitNamesUnitIds(item.UnitId) + ")"; newNode.Text = string.Format("{0:yyyy-MM-dd}", item.Date) + "-" + item.SerialNumber + "(" + BLL.UnitService.getUnitNamesUnitIds(item.UnitId) + ")"; newNode.NodeID = node.NodeID + "|" + item.UnitId + "|" + string.Format("{0:yyyy-MM-dd}", item.Date)+"|"+item.SerialNumber; newNode.EnableClickEvent = true; node.Nodes.Add(newNode); } } } } protected void Tree_TextChanged(object sender, EventArgs e) { this.InitTreeMenu(); } private void BindGrid(List weldingTask) { if (!string.IsNullOrEmpty(this.txtPipelineCode.Text.Trim())) { weldingTask = weldingTask.Where(e => e.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())).ToList(); } DataTable tb = this.LINQToDataTable(weldingTask); // 2.获取当前分页数据 //var table = this.GetPagedDataTable(GridNewDynamic, tb1); Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); bool hasAdd = false; for (int i = 0; i < this.Grid1.Rows.Count; i++) { Model.HJGL_WeldTask task = BLL.WeldTaskService.GetWeldTaskById(this.Grid1.Rows[i].RowID); if (task.IsSaved == true) { this.Grid1.Rows[i].RowCssClass = "f-grid-cell-uneditable"; foreach (GridColumn column in Grid1.AllColumns) { Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable"; } } else { hasAdd = true; } } if (this.tvControlItem.SelectedNodeID.Contains("|") && !hasAdd) { this.Grid1.Columns[12].Hidden = true; this.btnSave.Hidden = true; } else { //this.Grid1.Columns[12].Hidden = false; //this.btnSave.Hidden = false; } } #endregion #region 分页排序 #region 页索引改变事件 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { List GetWeldingTaskItem = this.CollectGridJointInfo(); this.BindGrid(GetWeldingTaskItem); } #endregion #region 排序 /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { List GetWeldingTaskItem = this.CollectGridJointInfo(); this.BindGrid(GetWeldingTaskItem); } #endregion #region 分页选择下拉改变事件 /// /// 分页选择下拉改变事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); List GetWeldingTaskItem = this.CollectGridJointInfo(); this.BindGrid(GetWeldingTaskItem); } #endregion #endregion //#region 查找 //protected void ckSelect_Click(object sender, EventArgs e) //{ // var w = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID); // if (w != null) // { // string UnitId = w.UnitId; // string UnitWorkId = w.UnitWorkId; // string strList = UnitWorkId + "|" + UnitId; // string weldJointIds = hdItemsString.Text.Trim(); // var task = from x in Funs.DB.HJGL_WeldTask where x.UnitWorkId == w.UnitWorkId && x.TaskDate.Value.Date.ToString() == Convert.ToDateTime(txtTaskDate.Text.Trim()).ToString("yyyy-MM-dd") select x; // this.hdTaskWeldJoint.Text = string.Empty; // if (task.Count() > 0) // { // foreach (var item in task) // { // this.hdTaskWeldJoint.Text += item.WeldJointId + "|"; // } // } // if (!string.IsNullOrEmpty(hdTaskWeldJoint.Text)) // { // hdTaskWeldJoint.Text = hdTaskWeldJoint.Text.Substring(0, hdTaskWeldJoint.Text.Length - 1); // } // string TaskWeldJoints = hdTaskWeldJoint.Text.Trim();//任务表已存在的焊口 // string window = String.Format("SelectTaskWeldJoint.aspx?strList={0}&weldJointIds={1}&TaskWeldJoints={2}", strList, Server.UrlEncode(weldJointIds), Server.UrlEncode(TaskWeldJoints), "编辑 - "); // PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID, hdTaskWeldJoint.ClientID) + Window1.GetShowReference(window)); // } // else // { // Alert.ShowInTop("请选择单位和单位工程", MessageBoxIcon.Warning); // } //} //protected void Window1_Close(object sender, WindowCloseEventArgs e) //{ // string str1 = hdItemsString.Text; // string str2 = hdTaskWeldJoint.Text; // this.InitTreeMenu(); // var unit = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID); // List GetWeldingTaskList = null; // if (unit == null) // { // GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNode.ParentNode.NodeID, Convert.ToDateTime(hdTaskWeldJoint.Text.Trim())); // } // else // { // GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID, Convert.ToDateTime(hdTaskWeldJoint.Text.Trim())); // } // this.BindGrid(GetWeldingTaskList); //} //#endregion #region 保存 protected void btnSave_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, this.CurrUser.PersonId, Const.HJGL_WeldTaskMenuId, Const.BtnSave)) { List getNewWeldTaskItem = CollectGridJointInfo(); var getUnit = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID); if (getUnit == null) { getUnit = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNode.ParentNode.NodeID); } if (getUnit != null) { var consumablesTypes = from x in Funs.DB.Base_Consumables select x; foreach (var item in getNewWeldTaskItem) { Model.HJGL_WeldTask NewTask = new Model.HJGL_WeldTask(); NewTask.ProjectId = this.CurrUser.LoginProjectId; NewTask.UnitWorkId = getUnit.UnitWorkId; NewTask.WeldTaskId = item.WeldTaskId; NewTask.WeldJointId = item.WeldJointId; NewTask.CoverWelderId = item.CoverWelderId; NewTask.BackingWelderId = item.BackingWelderId; NewTask.JointAttribute = item.JointAttribute; NewTask.WeldingMode = item.WeldingMode; var weldingRod = consumablesTypes.FirstOrDefault(x => x.ConsumablesName == item.WeldingRodCode); if (weldingRod != null) { NewTask.WeldingRod = weldingRod.ConsumablesId; } var weldingWire = consumablesTypes.FirstOrDefault(x => x.ConsumablesName == item.WeldingWireCode); if (weldingWire != null) { NewTask.WeldingWire = weldingWire.ConsumablesId; } var task = Funs.DB.HJGL_WeldTask.FirstOrDefault(x => x.WeldTaskId == item.WeldTaskId); if (task != null) { NewTask.TaskDate = task.TaskDate; NewTask.Tabler = task.Tabler; NewTask.TableDate = task.TaskDate; NewTask.IsSaved = true; BLL.WeldTaskService.UpdateWeldTask(NewTask); } Model.HJGL_WeldJoint jot = BLL.WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId); if (jot != null) { if (NewTask.WeldingRod != null) { jot.WeldingRod = NewTask.WeldingRod; } if (NewTask.WeldingWire != null) { jot.WeldingWire = NewTask.WeldingWire; } jot.WeldingMode = NewTask.WeldingMode; if (!string.IsNullOrEmpty(item.JointAttribute)) { jot.JointAttribute = item.JointAttribute; } BLL.WeldJointService.UpdateWeldJoint(jot); // 获取组批条件 var batchC = BLL.Project_SysSetService.GetSysSetBySetId("5", CurrUser.LoginProjectId); if (batchC != null) { string batchCondition = batchC.SetValue; //BLL.PointBatchService.AddBatchByWeldJointId(item.WeldJointId,null, batchCondition); } } } } ShowNotify("保存成功!", MessageBoxIcon.Success); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } } #endregion protected void CreatWeldableWeldJoint_Click(object sender, EventArgs e) { var weldingRods = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "2" select x; var weldingWires = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "1" select x; foreach (var i in Grid1.SelectedRowIndexArray) { string weldTaskId = Grid1.DataKeys[i][0].ToString(); var taskmodel = WeldTaskService.GetWeldTaskById(weldTaskId); string unitId = taskmodel.UnitId;//获取任务单的单位 string jotId = Grid1.DataKeys[i][1].ToString(); var jot = BLL.WeldJointService.GetWeldJointByWeldJointId(jotId); var iso = BLL.PipelineService.GetPipelineByPipelineId(jot.PipelineId); var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId); string weldType = string.Empty; if (joty != null && joty.WeldTypeCode.Contains("B")) { weldType = "对接焊缝"; } else { weldType = "角焊缝"; } decimal? dia = jot.Dia; decimal? sch = Funs.GetNewDecimal(jot.Thickness.HasValue ? jot.Thickness.Value.ToString() : ""); string wmeCode = string.Empty; var wm = BLL.Base_WeldingMethodService.GetWeldingMethodByWeldingMethodId(jot.WeldingMethodId); if (wm != null) { wmeCode = wm.WeldingMethodCode; } string[] wmeCodes = wmeCode.Split('+'); //string location = item.JOT_Location; string ste = jot.Material1Id; string jointAttribute = jot.JointAttribute; string canWelderId = string.Empty; string canWelderCode = string.Empty; string canWeldingRodName = string.Empty; string canWeldingWireName = string.Empty; var projectWelder = from x in Funs.DB.SitePerson_Person where x.ProjectId == jot.ProjectId && x.UnitId == unitId && x.WorkPostId == Const.WorkPost_Welder && x.WelderCode != null && x.WelderCode != "" select x; foreach (var welder in projectWelder) { bool canSave = false; List welderQualifys = (from x in Funs.DB.Welder_WelderQualify where x.WelderId == welder.PersonId && x.WeldingMethod != null && x.MaterialType != null && x.WeldType != null && x.ThicknessMax != null && x.SizesMin != null && x.LimitDate > DateTime.Now && x.IsAudit == true select x).ToList(); if (welderQualifys != null) { if (wmeCodes.Count() <= 1) // 一种焊接方法 { canSave = OneWmeIsOK(welderQualifys, wmeCode, jointAttribute, weldType, ste, dia, sch); } else // 大于一种焊接方法,如氩电联焊 { canSave = TwoWmeIsOK(welderQualifys, wmeCodes[0], wmeCodes[1], jointAttribute, weldType, ste, dia, sch); } if (canSave) { canWelderId = canWelderId + welder.PersonId + ","; canWelderCode = canWelderCode + welder.WelderCode + ","; } } } //获取可替代焊丝焊条 //var mat = BLL.Base_MaterialService.GetMaterialByMaterialId(jot.Material1Id); //string matClass = mat.MaterialClass; //var matRod = weldingRods.FirstOrDefault(x => x.ConsumablesId == jot.WeldingRod); //foreach (var item in weldingRods) //{ // if (matClass == "Fe-1" || matClass == "Fe-3") // { // if (IsCoverClass(matRod.SteelType, item.SteelType)) // { // canWeldingRodName = canWeldingRodName + item.ConsumablesName + ","; // } // } // else // { // canWeldingRodName = canWeldingRodName + item.ConsumablesName + ","; // } //} //var matWire = weldingWires.FirstOrDefault(x => x.ConsumablesId == jot.WeldingRod); //foreach (var item in weldingWires) //{ // if (matClass == "Fe-1" || matClass == "Fe-3") // { // if (IsCoverClass(matWire.SteelType, item.SteelType)) // { // canWeldingWireName = canWeldingWireName + item.ConsumablesName + ","; // } // } // else // { // canWeldingWireName = canWeldingWireName + item.ConsumablesName + ","; // } //} if (!string.IsNullOrEmpty(canWelderId)) { BLL.WeldTaskService.UpdateCanWelderTask(weldTaskId, canWelderId.Substring(0, canWelderId.Length - 1), canWelderCode.Substring(0, canWelderCode.Length - 1)); } //GetCanWelderDropDownList(GetWeldingTaskList); } string unitWorkId = string.Empty, unitId2 = string.Empty; string taskdate = string.Empty;string serialNumber=string.Empty; if (tvControlItem.SelectedNodeID.Contains("|")) { unitWorkId = tvControlItem.SelectedNodeID.Split('|')[0]; unitId2 = tvControlItem.SelectedNodeID.Split('|')[1]; taskdate = tvControlItem.SelectedNodeID.Split('|')[2]; serialNumber= tvControlItem.SelectedNodeID.Split('|')[3]; } else { unitWorkId = tvControlItem.SelectedNodeID; } List GetWeldingTaskList = null; GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, unitWorkId, unitId2, Convert.ToDateTime(taskdate), this.rbIsAudit.SelectedValue, serialNumber); this.BindGrid(GetWeldingTaskList); Alert.ShowInTop("已生成可焊焊工!", MessageBoxIcon.Success); } /// /// 判断耗材强度是否大于WPS耗材强度,如是为true,否则为false /// /// /// /// private bool IsCoverClass(string wpsClass, string matClass) { bool isCover = false; int wpsSn = 0; int matSn = 0; string wpsPre = wpsClass.Substring(0, wpsClass.Length - 2); string matPre = matClass.Substring(0, matClass.Length - 2); string wps = wpsClass.Substring(wpsClass.Length - 1, 1); wpsSn = Funs.GetNewInt(wps).HasValue ? Funs.GetNewInt(wps).Value : 0; string mat = matClass.Substring(matClass.Length - 1, 1); matSn = Funs.GetNewInt(mat).HasValue ? Funs.GetNewInt(mat).Value : 0; if (wpsPre == matPre && matSn >= wpsSn) { return true; } return isCover; } #region 焊工资质判断 /// /// 一种焊接方法资质判断 /// /// /// /// /// /// /// /// /// private bool OneWmeIsOK(List welderQualifys, string wmeCode, string jointAttribute, string weldType, string ste, decimal? dia, decimal? sch) { bool isok = false; var mat = BLL.Base_MaterialService.GetMaterialByMaterialId(ste); var welderQ = from x in welderQualifys where wmeCode.Contains(x.WeldingMethod) && (mat == null || x.MaterialType.Contains(mat.MetalType ?? "")) && x.WeldType.Contains(weldType) select x; if (welderQ.Count() > 0) { if (jointAttribute == "安装口") { welderQ = welderQ.Where(x => x.IsCanWeldG == true); } if (welderQ.Count() > 0) { if (weldType == "1") // 1-对接焊缝 2-表示角焊缝,当为角焊缝时,管径和壁厚不限制 { var welderDiaQ = welderQ.Where(x => x.SizesMin <= dia || x.SizesMax == 0); if (welderDiaQ.Count() > 0) { var welderThick = welderDiaQ.Where(x => x.ThicknessMax >= sch || x.ThicknessMax == 0); // 只要有一个不限(为0)就通过 if (welderThick.Count() > 0) { isok = true; } } } else { isok = true; } } } return isok; } /// /// 两种焊接方法资质判断 /// /// /// /// /// /// /// /// /// /// /// private bool TwoWmeIsOK(List welderQualifys, string wmeCode1, string wmeCode2, string jointAttribute, string weldType, string ste, decimal? dia, decimal? sch) { bool isok = false; decimal? fThicknessMax = 0; decimal? cThicknessMax = 0; var mat = BLL.Base_MaterialService.GetMaterialByMaterialId(ste); //var floorQ = from x in welderQualifys // where wmeCode1.Contains(x.WeldingMethod) // && (mat == null || x.MaterialType.Contains(mat.MetalType ?? "")) // && x.WeldType.Contains(weldType) // select x; //var cellQ = from x in welderQualifys // where wmeCode2.Contains(x.WeldingMethod) // && (mat == null || x.MaterialType.Contains(mat.MetalType ?? "")) // && x.WeldType.Contains(weldType) // select x; var floorQ = from x in welderQualifys where x.WeldingMethod.Contains(wmeCode1) && (mat == null || x.MaterialType.Contains(mat.MetalType ?? "")) && x.WeldType.Contains(weldType) select x; var cellQ = from x in welderQualifys where x.WeldingMethod.Contains(wmeCode2) && (mat == null || x.MaterialType.Contains(mat.MetalType ?? "")) && x.WeldType.Contains(weldType) select x; if (floorQ.Count() > 0 && cellQ.Count() > 0) { if (jointAttribute == "安装口") { floorQ = floorQ.Where(x => x.IsCanWeldG == true); cellQ = cellQ.Where(x => x.IsCanWeldG == true); } if (floorQ.Count() > 0 && cellQ.Count() > 0) { if (weldType == "1") // 1-对接焊缝 2-表示角焊缝,当为角焊缝时,管径和壁厚不限制 { var floorDiaQ = floorQ.Where(x => x.SizesMin <= dia || x.SizesMax == 0); var cellDiaQ = cellQ.Where(x => x.SizesMin <= dia || x.SizesMax == 0); if (floorDiaQ.Count() > 0 && cellDiaQ.Count() > 0) { var fThick = floorDiaQ.Where(x => x.ThicknessMax == 0); var cThick = cellDiaQ.Where(x => x.ThicknessMax == 0); // 只要有一个不限(为0)就通过 if (fThick.Count() > 0 || cThick.Count() > 0) { isok = true; } else { fThicknessMax = floorQ.Max(x => x.ThicknessMax); cThicknessMax = cellQ.Max(x => x.ThicknessMax); if ((fThicknessMax + cThicknessMax) >= sch) { isok = true; } } } } else { isok = true; } } } return isok; } #endregion #region 收集Grid页面信息 /// /// 收集Grid页面信息 /// /// private List CollectGridJointInfo() { List getNewWeldTaskItem = new List(); JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { Model.View_HJGL_WeldingTask NewItem = new Model.View_HJGL_WeldingTask(); string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); NewItem.WeldTaskId = values.Value("WeldTaskId").ToString(); NewItem.WeldJointId = values.Value("WeldJointId").ToString(); if (!string.IsNullOrEmpty(values.Value("PipelineCode"))) { NewItem.PipelineCode = values.Value("PipelineCode").ToString(); } if (!string.IsNullOrEmpty(values.Value("WeldJointCode"))) { NewItem.WeldJointCode = values.Value("WeldJointCode").ToString(); } if (!string.IsNullOrEmpty(values.Value("CanWelderCode"))) { NewItem.CanWelderCode = values.Value("CanWelderCode").ToString(); } if (!string.IsNullOrEmpty(values.Value("CanWelderId"))) { NewItem.CanWelderId = values.Value("CanWelderId").ToString(); } if (!string.IsNullOrEmpty(values.Value("IsWelding"))) { NewItem.IsWelding = values.Value("IsWelding").ToString(); } var coverWelderCode = (from x in Funs.DB.SitePerson_Person where x.ProjectId == CurrUser.LoginProjectId && x.WelderCode == values.Value("CoverWelderCode") select x).FirstOrDefault(); if (coverWelderCode != null) { NewItem.CoverWelderCode = coverWelderCode.WelderCode; NewItem.CoverWelderId = coverWelderCode.PersonId; } var backingWelderCode = (from x in Funs.DB.SitePerson_Person where x.ProjectId == CurrUser.LoginProjectId && x.WelderCode == values.Value("BackingWelderCode") select x).FirstOrDefault(); if (backingWelderCode != null) { NewItem.BackingWelderCode = backingWelderCode.WelderCode; NewItem.BackingWelderId = backingWelderCode.PersonId; } if (!string.IsNullOrEmpty(values.Value("JointAttribute").ToString())) { NewItem.JointAttribute = values.Value("JointAttribute").ToString(); } if (!string.IsNullOrEmpty(values.Value("WeldingMode"))) { NewItem.WeldingMode = values.Value("WeldingMode").ToString(); } if (!string.IsNullOrEmpty(values.Value("WeldTypeCode"))) { NewItem.WeldTypeCode = values.Value("WeldTypeCode").ToString(); } if (!string.IsNullOrEmpty(values.Value("WeldingRodCode"))) { NewItem.WeldingRodCode = values.Value("WeldingRodCode").ToString(); } if (!string.IsNullOrEmpty(values.Value("WeldingWireCode"))) { NewItem.WeldingWireCode = values.Value("WeldingWireCode").ToString(); } if (!string.IsNullOrEmpty(values.Value("Size")) && !string.IsNullOrEmpty(values.Value("Size").ToString())) { NewItem.Size = values.Value("Size"); } if (!string.IsNullOrEmpty(values.Value("Dia")) && !string.IsNullOrEmpty(values.Value("Dia").ToString())) { NewItem.Dia = values.Value("Dia"); } if (!string.IsNullOrEmpty(values.Value("Thickness").ToString())) { NewItem.Thickness = values.Value("Thickness"); } if (!string.IsNullOrEmpty(values.Value("WeldingMethodCode").ToString())) { NewItem.WeldingMethodCode = values.Value("WeldingMethodCode").ToString(); } getNewWeldTaskItem.Add(NewItem); } return getNewWeldTaskItem; } #endregion protected void btnMenuAdd_Click(object sender, EventArgs e) { var w = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID); if (w != null) { string UnitWorkId = w.UnitWorkId; string taskDate = ""; string strList = UnitWorkId + "|" + taskDate; string window = String.Format("SelectTaskWeldJoint.aspx?strList={0}", strList, "编辑 - "); PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdTaskWeldJoint.ClientID) + Window1.GetShowReference(window)); //PageContext.RegisterStartupScript(Window1.GetShowReference(window)); } else { Alert.ShowInTop("请选择单位工程", MessageBoxIcon.Warning); } } protected void btnMotify_Click(object sender, EventArgs e) { var w = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNode.ParentNode.NodeID); if (w != null) { //string UnitWorkId = w.UnitWorkId; //string taskDate = string.Empty; //if (tvControlItem.SelectedNodeID.Contains("|")) //{ // taskDate = tvControlItem.SelectedNodeID.Split('|')[2]; //} //else //{ // taskDate = tvControlItem.SelectedNodeID; //} //string strList = UnitWorkId + "|" + taskDate; string window = String.Format("SelectTaskWeldJoint.aspx?strList={0}", tvControlItem.SelectedNodeID, "编辑 - "); PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdTaskWeldJoint.ClientID) + Window1.GetShowReference(window)); //PageContext.RegisterStartupScript(Window1.GetShowReference(window)); } else { Alert.ShowInTop("请选择任务单", MessageBoxIcon.Warning); } } protected void Window1_Close(object sender, WindowCloseEventArgs e) { string str1 = hdItemsString.Text; string str2 = hdTaskWeldJoint.Text; this.InitTreeMenu(); if (tvControlItem.SelectedNode != null) { tvControlItem.SelectedNode.Expanded = true; if (tvControlItem.SelectedNode.CommandName == "单位工程") { tvControlItem.SelectedNode.Nodes.Clear(); BindNodes(tvControlItem.SelectedNode); foreach (var item in tvControlItem.SelectedNode.Nodes) { if (item.NodeID.Contains(hdTaskWeldJoint.Text.Trim())) { tvControlItem.SelectedNodeID = item.NodeID; } } } } else { foreach (var item in tvControlItem.Nodes[1].Nodes) { if (item.NodeID.Contains(tvControlItem.SelectedNodeID.Split('|')[0])) { item.Nodes.Clear(); item.Expanded = true; BindNodes(item); } } } string unitWorkId = string.Empty, unitId = string.Empty; string serialNumber = string.Empty; if (tvControlItem.SelectedNodeID.Contains("|")) { unitWorkId = tvControlItem.SelectedNodeID.Split('|')[0]; unitId = tvControlItem.SelectedNodeID.Split('|')[1]; serialNumber = tvControlItem.SelectedNodeID.Split('|')[3]; } else { unitWorkId = tvControlItem.SelectedNodeID; } List GetWeldingTaskList = null; GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, unitWorkId, unitId, Convert.ToDateTime(hdTaskWeldJoint.Text.Trim()), this.rbIsAudit.SelectedValue, serialNumber); this.BindGrid(GetWeldingTaskList); } #region 删除 protected void btnMenuDelete_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, this.CurrUser.PersonId, Const.HJGL_WeldTaskMenuId, Const.BtnDelete)) { if (Grid1.SelectedRowIndexArray.Length > 0) { List getNewWeldTaskItem = this.CollectGridJointInfo(); foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); var item = getNewWeldTaskItem.FirstOrDefault(x => x.WeldTaskId == rowID); var joint = Funs.DB.HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == item.WeldJointId); if (string.IsNullOrEmpty(joint.WeldingDailyId)) //焊口尚未焊接,任务单信息可以删除 { if (item != null) { getNewWeldTaskItem.Remove(item); // 删除明细信息 var task = Funs.DB.HJGL_WeldTask.FirstOrDefault(x => x.WeldTaskId == rowID); if (task != null) { BLL.WeldTaskService.DeleteWeldingTask(task.WeldTaskId); //PointBatchService.DeleteBatchByWeldJointId(task.WeldJointId); } } ShowNotify("删除成功!", MessageBoxIcon.Success); } else { ShowNotify("该焊口焊接日报已生成,无法删除任务单信息!", MessageBoxIcon.Warning); } } BindGrid(getNewWeldTaskItem); if (getNewWeldTaskItem.Count == 0) //明细记录删除完,任务单即不存在 { this.InitTreeMenu();//加载树 } } } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } } #endregion #region 点击TreeView protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.HJGL_WeldTaskMenuId); if (this.tvControlItem.SelectedNodeID.Length == 1) { this.btnMenuAdd.Hidden = true; this.btnMotify.Hidden = true; } else if (!this.tvControlItem.SelectedNodeID.Contains("|")) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnMenuAdd.Hidden = false; } this.btnMotify.Hidden = true; } else if (this.tvControlItem.SelectedNodeID.Contains("|")) { if (buttonList.Contains(BLL.Const.BtnModify) || buttonList.Contains(BLL.Const.BtnSave)) { this.btnMotify.Hidden = false; } this.btnMenuAdd.Hidden = true; } var w = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID); if (w == null) { DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { List GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue, tvControlItem.SelectedNodeID.Split('|')[3]); this.BindGrid(GetWeldingTaskList); } } //else //{ // //ckSelect.Hidden = false; // btnSave.Hidden = false; // CreatWeldableWeldJoint.Hidden = false; // btnSaveWelder.Hidden = false; // txtTaskDate.Hidden = false; // this.BindGrid(null); //} } #endregion #region 批量填充焊工 /// /// /// /// /// protected void btnSaveWelder_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(drpCanWelder.SelectedValue)) { string[] selectedRowId = Grid1.SelectedRowIDArray; for (int i = 0; i < selectedRowId.Count(); i++) { string weldTaskId = selectedRowId[i]; //string weldTaskId = Grid1.DataKeys[i][0].ToString(); BLL.WeldTaskService.UpdateWelderTask(weldTaskId, drpCanWelder.SelectedValue); } DateTime? taskTime = null; if (tvControlItem.SelectedNodeID.Contains("|")) { taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); } else { taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID); } string unitWorkId = string.Empty, unitId = string.Empty; if (tvControlItem.SelectedNodeID.Contains("|")) { unitWorkId = tvControlItem.SelectedNodeID.Split('|')[0]; unitId = tvControlItem.SelectedNodeID.Split('|')[1]; } else { unitWorkId = tvControlItem.SelectedNodeID; } List GetWeldingTaskList = null; GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, unitWorkId, unitId, Convert.ToDateTime(txtTaskDate.Text), this.rbIsAudit.SelectedValue, tvControlItem.SelectedNodeID.Split('|')[3]); this.BindGrid(GetWeldingTaskList); drpCanWelder.Items.Clear(); //GetCanWelderDropDownList(GetWeldingTaskList); } } protected void btnSelectWelder_Click(object sender, EventArgs e) { GetCanWelderDropDownList(); } /// /// 获取能焊焊工下拉列表 /// /// private void GetCanWelderDropDownList() { drpCanWelder.Items.Clear(); string[] selectedRowId = Grid1.SelectedRowIDArray; List canWelder = null; var taskList = from x in Funs.DB.HJGL_WeldTask where x.ProjectId == this.CurrUser.LoginProjectId select x; for (int i = 0; i < selectedRowId.Count(); i++) { Model.HJGL_WeldTask task = taskList.FirstOrDefault(x => x.WeldTaskId == selectedRowId[i]); if (!string.IsNullOrEmpty(task.CanWelderId)) { List jotCanWelder = task.CanWelderId.Split(',').ToList(); if (i == 0) { canWelder = jotCanWelder; } else { canWelder = canWelder.Intersect(jotCanWelder).ToList(); } } else { canWelder = null; break; } } if (canWelder != null) { var welder = from x in canWelder join y in Funs.DB.SitePerson_Person on x equals y.PersonId select new { WelderId = x, y.WelderCode }; drpCanWelder.DataValueField = "WelderId"; drpCanWelder.DataTextField = "WelderCode"; drpCanWelder.DataSource = welder; drpCanWelder.DataBind(); } } #endregion protected void btnSearch_Click(object sender, EventArgs e) { //List GetWeldingTaskItem = this.CollectGridJointInfo(); DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { List GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue, tvControlItem.SelectedNodeID.Split('|')[3]); this.BindGrid(GetWeldingTaskList); } } protected void btnPrint_Click(object sender, EventArgs e) { DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { var pipelines = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue, tvControlItem.SelectedNodeID.Split('|')[3]).Select(x => x.PipelineId).Distinct().ToList(); if (pipelines.Any()) { BLL.FastReportService.ResetData(); var result = HJGL_PipelineComponentService.GetPrintModelByPipelineComponentIds(null, pipelines.ToArray(), true); var PipelineComponentIds = result.Select(x => x.PipelineComponentId).ToArray(); var tb = LINQToDataTable(result); if (tb != null && tb.Rows.Count > 0) { tb.TableName = "Table1"; } else { ShowNotify("该管线已打印完成", MessageBoxIcon.Question); return; } BLL.FastReportService.AddFastreportTable(tb); string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\组件打印.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); HJGL_PipelineComponentService.UpdateIsPrint(PipelineComponentIds); } } else { ShowNotify("无关联管线", MessageBoxIcon.Question); } } else { ShowNotify("请选择任务单", MessageBoxIcon.Question); } } protected void rbIsAudit_SelectedIndexChanged(object sender, EventArgs e) { DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { List GetWeldingTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue, tvControlItem.SelectedNodeID.Split('|')[3]); this.BindGrid(GetWeldingTaskList); } } protected void btnGenOutPlanMaster_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID)) { string unitWorkId = string.Empty, unitId2 = string.Empty; string taskdate = string.Empty; string serialNumber = string.Empty; if (tvControlItem.SelectedNodeID.Contains("|")) { unitWorkId = tvControlItem.SelectedNodeID.Split('|')[0]; unitId2 = tvControlItem.SelectedNodeID.Split('|')[1]; taskdate = tvControlItem.SelectedNodeID.Split('|')[2]; serialNumber = tvControlItem.SelectedNodeID.Split('|')[3]; TwInOutplanmasterService.GenOutPlanmasterByWeldTaskId(unitWorkId, unitId2, Convert.ToDateTime(taskdate), serialNumber, this.CurrUser.PersonId); ShowNotify("生成出库申请单成功", MessageBoxIcon.Success); } else { ShowNotify("请选择任务单", MessageBoxIcon.Question); } } } protected void btnPrintJoint_Click(object sender, EventArgs e) { var rows = Grid1.SelectedRowIndexArray; List jointids = new List(); foreach (int rowIndex in rows) { string jointid = Grid1.DataKeys[rowIndex][1].ToString(); jointids.Add(jointid); } if (jointids.Any()) { BLL.FastReportService.ResetData(); var result = Funs.DB.View_HJGL_WeldJoint.Where(x => jointids.Contains(x.WeldJointId)).Select(x => new { pipelineCode = x.PipelineCode, Mat = x.MaterialCode, WeldJointId = x.WeldJointId, Spec = x.Specification, SortIndex = x.WeldJointCode.Replace(x.PipelineCode + "/", ""), }).OrderBy(x=> x.pipelineCode).ThenBy(x=> x.SortIndex).ToList(); var tb = LINQToDataTable(result); if (tb != null && tb.Rows.Count > 0) { tb.TableName = "Table1"; } BLL.FastReportService.AddFastreportTable(tb); string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\焊口打印.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } else { ShowNotify("请选择焊口", MessageBoxIcon.Question); } } protected void btnPrintTask_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID)) { if (tvControlItem.SelectedNodeID.Contains("|")) { DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { var weldTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue, tvControlItem.SelectedNodeID.Split('|')[3]); var pipelines = weldTaskList.Select(x => x.PipelineId).Distinct().ToList(); if (pipelines.Any()) { BLL.FastReportService.ResetData(); List tw_PrintMasters = new List(); var time = Convert.ToDateTime(taskTime); var weldTask_CreateName = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] && x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1] && x.TaskDate.Value.Date == time.Date && x.Tabler != null select x).FirstOrDefault(); var weldTask = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] && x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1] && x.TaskDate.Value.Date == time.Date && x.AuditMan != null && x.Tabler != null select x).FirstOrDefault(); Model.Tw_PrintMaster printMaster = new Model.Tw_PrintMaster { CreateManName = !string.IsNullOrEmpty(weldTask_CreateName?.Tabler) ? BLL.Person_PersonsService.getSignatureUrl(weldTask_CreateName.Tabler) : "", AuditManName = !string.IsNullOrEmpty(weldTask?.AuditMan) ? BLL.Person_PersonsService.getSignatureUrl(weldTask.AuditMan) : "", }; tw_PrintMasters.Add(printMaster); DataTable Table1 = LINQToDataTable(tw_PrintMasters); if (Table1 != null) { Table1.TableName = "Table1"; } Dictionary keyValuePairs = new Dictionary(); keyValuePairs.Add("Code", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkCode + string.Format("{0:yyyyMMdd}", taskTime.Value)); keyValuePairs.Add("TaskDate", string.Format("{0:yyyy-MM-dd}", taskTime.Value)); keyValuePairs.Add("UnitName", UnitService.GetUnitNameByUnitId(tvControlItem.SelectedNodeID.Split('|')[1])); keyValuePairs.Add("UnitWorkName]", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkName); // 创建一个新的DataTable DataTable dataTable = new DataTable(); dataTable.TableName = "Data"; // 添加列 dataTable.Columns.Add("PipelineCode", typeof(string)); dataTable.Columns.Add("FlowingSection", typeof(string)); dataTable.Columns.Add("MaterialCode", typeof(string)); dataTable.Columns.Add("MaterialSpec", typeof(string)); dataTable.Columns.Add("MatchRate", typeof(string)); dataTable.Columns.Add("Dia", typeof(string)); foreach (string pipeline in pipelines) { DataRow dr = dataTable.NewRow(); var pipelineModel = PipelineService.GetPipelineByPipelineId(pipeline); List list = new List { pipeline }; dr["PipelineCode"] = pipelineModel.PipelineCode; dr["FlowingSection"] = pipelineModel.FlowingSection; dr["MaterialCode"] = Base_MaterialService.GetMaterialByMaterialId(pipelineModel.MaterialId).MaterialCode; dr["MaterialSpec"] = string.Join(",", weldTaskList.Select(x => x.Specification).Distinct().ToList()); dr["MatchRate"] = Math.Round((decimal)TwArrivalStatisticsService.GetPipeMatch(pipeline) * 100, 2).ToString() + "%"; dr["Dia"] = weldTaskList.Where(x => x.PipelineId == pipeline).Sum(x => x.Size ?? 0) .ToString(); dataTable.Rows.Add(dr); } BLL.FastReportService.AddFastreportTable(Table1); BLL.FastReportService.AddFastreportTable(dataTable); BLL.FastReportService.AddFastreportParameter(keyValuePairs); string initTemplatePath = ""; string rootPath = Server.MapPath("~/"); initTemplatePath = "File\\Fastreport\\管道焊接任务单.frx"; if (File.Exists(rootPath + initTemplatePath)) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); } } else { ShowNotify("无关联管线", MessageBoxIcon.Question); } } } else { ShowNotify("请选择任务单", MessageBoxIcon.Question); } } } protected void btnPassMaster_OnClick(object sender, EventArgs e) { if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID)) { if (tvControlItem.SelectedNodeID.Contains("|")) { DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { var time = Convert.ToDateTime(taskTime); var weldTaskList = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] && x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1] && x.TaskDate.Value.Date == time.Date select x).ToList(); foreach (var weldTask in weldTaskList) { weldTask.AuditMan = this.CurrUser.PersonId; weldTask.AuditDate = DateTime.Now; Funs.DB.SubmitChanges(); } ShowNotify("审核通过!", MessageBoxIcon.Success); } } else { ShowNotify("请选择任务单", MessageBoxIcon.Question); } } } protected void btnPassMaster2_OnClick(object sender, EventArgs e) { if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID)) { if (tvControlItem.SelectedNodeID.Contains("|")) { DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]); if (taskTime != null) { var time = Convert.ToDateTime(taskTime); var weldTaskList = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] && x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1] && x.TaskDate.Value.Date == time.Date select x).ToList(); foreach (var weldTask in weldTaskList) { weldTask.AuditMan2 = this.CurrUser.PersonId; weldTask.AuditDate2 = DateTime.Now; Funs.DB.SubmitChanges(); } ShowNotify("审核通过!", MessageBoxIcon.Success); } } else { ShowNotify("请选择任务单", MessageBoxIcon.Question); } } } } }