using System; using System.Collections.Generic; using System.Linq; using BLL; using System.Data.SqlClient; using System.Data; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace FineUIPro.Web.HJGL.WeldingManage { public partial class PreWeldReportMain : PageBase { #region 定义项 /// /// 管线Id /// public string IsoId { get { return (string)ViewState["IsoId"]; } set { ViewState["IsoId"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); this.drpProject.DataTextField = "ProjectCode"; this.drpProject.DataValueField = "ProjectId"; this.drpProject.DataSource = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1"); this.drpProject.DataBind(); this.drpProject.SelectedValue = this.CurrUser.LoginProjectId; this.InitTreeMenu();//加载树 } } #endregion #region 加载树装置-单位-工作区 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Text = "施工号-日期-管线号"; rootNode.NodeID = "0"; rootNode.ToolTip = "月份"; rootNode.Expanded = true; this.tvControlItem.Nodes.Add(rootNode); this.BindNodes(rootNode, this.drpProject.SelectedValue); } #endregion #region 绑定树节点 /// /// 绑定树节点 /// /// private void BindNodes(TreeNode node,string projectId) { if (node.ToolTip == "月份") { var days = (from x in Funs.DB.HJGL_BO_PreWeldReportMain where x.ProjectId == projectId && x.AuditDate==null orderby x.JOT_WeldDate descending select x.JOT_WeldDate).Distinct(); foreach (var item in days) { TreeNode newNode = new TreeNode(); newNode.Text = string.Format("{0:yyyy-MM-dd}", item); newNode.NodeID = item.ToString() + "|" + node.NodeID; newNode.ToolTip = "日期"; node.Nodes.Add(newNode); this.BindNodes(newNode, projectId); } } else if (node.ToolTip == "日期") { //string strDate = node.NodeID.Split('|')[0]; //var dReports = (from x in Funs.DB.HJGL_BO_PreWeldReportMain // join y in Funs.DB.HJGL_PW_JointInfo on x.JOT_ID equals y.JOT_ID // join z in Funs.DB.HJGL_PW_IsoInfo on y.ISO_ID equals z.ISO_ID // where x.ProjectId == projectId && // x.JOT_WeldDate == Funs.GetNewDateTime(strDate) // && x.AuditDate == null // orderby z.ISO_IsoNo descending // select new // { // y.ISO_ID, // z.ISO_IsoNo // }).Distinct(); string strSql = @"SELECT iso.ISO_ID,iso.ISO_IsoNo FROM dbo.HJGL_BO_PreWeldReportMain weld LEFT JOIN dbo.HJGL_PW_JointInfo joint ON joint.JOT_ID = weld.JOT_ID LEFT JOIN dbo.HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID WHERE weld.ProjectId=@ProjectId AND CONVERT(varchar(100), weld.JOT_WeldDate , 23)=@JOT_WeldDate AND weld.AuditDate IS null GROUP BY iso.ISO_ID,iso.ISO_IsoNo"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", projectId)); listStr.Add(new SqlParameter("@JOT_WeldDate", node.Text)); SqlParameter[] parameter = listStr.ToArray(); DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); for(int i=0;i /// 点击TreeView /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.IsoId = tvControlItem.SelectedNodeID; if (IsoId != null) { var report = BLL.HJGL_BO_PreWeldReportMainService.GetPreWeldReportMainByIsoId(this.drpProject.SelectedValue, IsoId); if (report != null) { this.BindGrid(); } } } #endregion #region 数据绑定 /// /// 数据绑定 /// private void BindGrid() { string strSql = @"SELECT PreWeld.PreWeldReportId, PreWeld.ProjectId, PreWeld.JOT_ID, PreWeld.JOT_WeldDate, PreWeld.JOT_CellWelderID, PreWeld.JOT_FloorWelderID, (CASE PreWeld.WLO_CodeID WHEN 'F' THEN '现场安装' WHEN 'S' THEN '预制' ELSE '' END) AS WLO_Code, PreWeld.JOT_JointAttribute, PreWeld.JOT_Location, PreWeld.JOT_Size, PreWeld.JOT_Dia, PreWeld.JOT_Sch, PreWeld.WME_ID, PreWeld.JOT_WeldMat, PreWeld.JOT_WeldSilk, PreWeld.JOT_Remark, PreWeld.AttachUrl, PreWeld.WelderHardMan, PreWeld.AuditMan, PreWeld.AuditDate, Project.ProjectCode, JointInfo.JOT_JointNo, CellWelder.WED_Code AS CellWelderCode, FloorWelder.WED_Code AS FloorWelderCode, WeldMethod.WME_Name AS WeldMethod, WeldMaterial.WMT_MatName AS WeldMat, WeldMaterial2.WMT_MatName AS WeldSilk, User1.UserName AS WelderHardManName, User2.UserName AS AuditManName FROM dbo.HJGL_BO_PreWeldReportMain AS PreWeld LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId=PreWeld.ProjectId LEFT JOIN dbo.HJGL_PW_JointInfo AS JointInfo ON JointInfo.JOT_ID=PreWeld.JOT_ID LEFT JOIN dbo.HJGL_PW_IsoInfo AS iso ON iso.ISO_ID=JointInfo.ISO_ID LEFT JOIN dbo.HJGL_BS_Welder AS CellWelder ON CellWelder.WED_ID=PreWeld.JOT_CellWelderID LEFT JOIN dbo.HJGL_BS_Welder AS FloorWelder ON FloorWelder.WED_ID=PreWeld.JOT_FloorWelderID LEFT JOIN dbo.HJGL_BS_WeldMethod AS WeldMethod ON WeldMethod.WME_ID=PreWeld.WME_ID LEFT JOIN dbo.HJGL_BS_WeldMaterial AS WeldMaterial ON WeldMaterial.WMT_ID=PreWeld.JOT_WeldMat LEFT JOIN dbo.HJGL_BS_WeldMaterial AS WeldMaterial2 ON WeldMaterial2.WMT_ID=PreWeld.JOT_WeldSilk LEFT JOIN dbo.Sys_User AS User1 ON User1.UserId=PreWeld.WelderHardMan LEFT JOIN dbo.Sys_User AS User2 ON User2.UserId = PreWeld.AuditMan WHERE iso.ISO_ID=@ISO_ID"; List listStr = new List(); listStr.Add(new SqlParameter("@ISO_ID", this.IsoId)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region 分页排序 #region 页索引改变事件 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } #endregion #region 排序 /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } #endregion #region 分页选择下拉改变事件 /// /// 分页选择下拉改变事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } #endregion #endregion #region DropDownList下拉选择事件 /// /// 施工号下拉选择事件 /// /// /// protected void drpProject_SelectedIndexChanged(object sender, EventArgs e) { this.InitTreeMenu(); } #endregion #region 审核 /// /// 审核按钮 /// /// /// protected void btnAudit_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PreWeldReportMenuId, Const.BtnAuditing)) { string[] selectRowId = Grid1.SelectedRowIDArray; var preReport = BLL.HJGL_BO_PreWeldReportMainService.GetPreWeldReportMainById(selectRowId[0]); string welderId = preReport.JOT_CellWelderID; string projectId = tvControlItem.SelectedNode.ParentNode.ParentNode.NodeID; string welderDate = tvControlItem.SelectedNode.ParentNode.NodeID; var iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(this.IsoId); var welder = BLL.HJGL_PersonManageService.GetWelderByWenId(welderId); var projectCode = BLL.Base_ProjectService.GetProjectCode(projectId); string weldReportId = string.Empty; string dReportId = BLL.HJGL_WeldReportService.GetDailyReportByWelder(welderId, Convert.ToDateTime(welderDate)); if (string.IsNullOrEmpty(dReportId)) { Model.HJGL_BO_WeldReportMain newWeldReportMain = new Model.HJGL_BO_WeldReportMain(); newWeldReportMain.ProjectId = projectId; string perfix = projectCode + "-" + welder.WED_Code + "-"; string dailyReportNo = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetNewCodeByProjectId", "dbo.HJGL_BO_WeldReportMain", "JOT_DailyReportNo", projectId, perfix); newWeldReportMain.JOT_DailyReportNo = dailyReportNo; if (!string.IsNullOrEmpty(iso.BSU_ID)) { newWeldReportMain.BSU_ID = iso.BSU_ID; } DateTime? weldDate = Funs.GetNewDateTime(welderDate); if (weldDate.HasValue) { newWeldReportMain.JOT_WeldDate = weldDate.Value; } else { newWeldReportMain.JOT_WeldDate = System.DateTime.Now; } newWeldReportMain.CHT_Tabler = this.CurrUser.UserId; newWeldReportMain.CHT_TableDate = DateTime.Now; weldReportId = SQLHelper.GetNewID(typeof(Model.HJGL_BO_WeldReportMain)); newWeldReportMain.DReportID = weldReportId; BLL.HJGL_WeldReportService.AddWeldReport(newWeldReportMain); } else { weldReportId = dReportId; } for (int i = 0; i < this.Grid1.Rows.Count; i++) { string rowId = this.Grid1.Rows[i].DataKeys[0].ToString(); if (selectRowId.Contains(rowId)) { var preWeldReport = BLL.HJGL_BO_PreWeldReportMainService.GetPreWeldReportMainById(rowId); var newJointInfo = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(preWeldReport.JOT_ID); newJointInfo.DReportID = weldReportId; newJointInfo.JOT_JointStatus = "100"; newJointInfo.JOT_CellWelder = preWeldReport.JOT_CellWelderID; newJointInfo.JOT_FloorWelder = preWeldReport.JOT_FloorWelderID; newJointInfo.WLO_Code = preWeldReport.WLO_CodeID; newJointInfo.JOT_DoneDin = preWeldReport.JOT_Dia; newJointInfo.JOT_JointAttribute = preWeldReport.JOT_JointAttribute; newJointInfo.JOT_Location = preWeldReport.JOT_Location; if (preWeldReport.JOT_Sch != null) { newJointInfo.JOT_Sch = preWeldReport.JOT_Sch.Value.ToString(); } newJointInfo.WME_ID = preWeldReport.WME_ID; if (!string.IsNullOrEmpty(preWeldReport.JOT_WeldMat)) { newJointInfo.JOT_WeldMat = preWeldReport.JOT_WeldMat; } if (!string.IsNullOrEmpty(preWeldReport.JOT_WeldSilk)) { newJointInfo.JOT_WeldSilk = preWeldReport.JOT_WeldSilk; } if (newJointInfo.JOT_Dia.HasValue) { var inch = BLL.HJGL_ControlService.GetSizeByDia(newJointInfo.JOT_Dia.Value);//焊口寸经根据外径改变 if (inch != null) { newJointInfo.JOT_Size = inch; newJointInfo.JOT_DoneDin = inch; } } //焊口规格:Φ外径*壁厚 if (newJointInfo.JOT_Dia.HasValue && !string.IsNullOrEmpty(newJointInfo.JOT_Sch)) { newJointInfo.JOT_JointDesc = "Φ" + newJointInfo.JOT_Dia.Value.ToString() + "×" + newJointInfo.JOT_Sch; } // 再更新焊口 BLL.HJGL_PW_JointInfoService.UpdateJointInfoByDReport(newJointInfo); //更新焊口号 修改固定焊口号后 +G BLL.HJGL_PW_JointInfoService.UpdateJointNoAddG(newJointInfo.JOT_ID, newJointInfo.JOT_JointAttribute, "增加"); // 组批条件 if (newJointInfo != null && !string.IsNullOrEmpty(newJointInfo.InstallationId) && !string.IsNullOrEmpty(preWeldReport.JOT_CellWelderID) && !string.IsNullOrEmpty(preWeldReport.JOT_FloorWelderID) && !string.IsNullOrEmpty(iso.ISC_ID) && !string.IsNullOrEmpty(newJointInfo.NDTR_ID) && !string.IsNullOrEmpty(iso.ISO_Executive) && !string.IsNullOrEmpty(newJointInfo.JOTY_ID) && !string.IsNullOrEmpty(iso.STE_ID)) { var batchInfo = from x in Funs.DB.HJGL_BO_Batch where x.ProjectId == iso.ProjectId && x.InstallationId == newJointInfo.InstallationId && x.ISC_ID == iso.ISC_ID && x.STE_ID == iso.STE_ID && x.ExecStandardId == iso.ISO_Executive && x.JOTY_ID == newJointInfo.JOTY_ID && x.NDTR_ID == newJointInfo.NDTR_ID && x.IsSpecial == newJointInfo.IsSpecial && (x.BatchIsClosed == null || x.BatchIsClosed == false) select x; string batchId = string.Empty; if (batchInfo.Count() == 0) { Model.HJGL_BO_Batch batch = new Model.HJGL_BO_Batch(); batch.BatchId = SQLHelper.GetNewID(typeof(Model.HJGL_BO_Batch)); batchId = batch.BatchId; //string perfix = ins.InstallationCode + "-" + isoC.ISC_IsoCode + "-" + ser.SER_Abbreviate + "-" + execS.ExecStandardName + "-"; batch.BatchCode = BLL.SQLHelper.RunProcFlowCode("SpGetFlowCode", "dbo.HJGL_BO_Batch", "BatchCode", iso.ProjectId); batch.ProjectId = iso.ProjectId; batch.InstallationId = newJointInfo.InstallationId; batch.ISC_ID = iso.ISC_ID; batch.STE_ID = iso.STE_ID; //batch.SER_ID = isoInfo.SER_ID; batch.ExecStandardId = iso.ISO_Executive; batch.JOTY_ID = newJointInfo.JOTY_ID; batch.NDTR_ID = newJointInfo.NDTR_ID; batch.IsSpecial = newJointInfo.IsSpecial; batch.BatchStartDate = DateTime.Now.Date; BLL.HJGL_BO_BatchService.AddBatch(batch); } else { batchId = batchInfo.First().BatchId; } var b = BLL.HJGL_BO_BatchDetailService.GetBatchDetailByJotId(preWeldReport.JOT_ID); if (b == null) { Model.HJGL_BO_BatchDetail batchDetail = new Model.HJGL_BO_BatchDetail(); batchDetail.BatchDetailId = SQLHelper.GetNewID(typeof(Model.HJGL_BO_BatchDetail)); batchDetail.BatchId = batchId; batchDetail.ISO_ID = newJointInfo.ISO_ID; batchDetail.JOT_ID = preWeldReport.JOT_ID; BLL.Funs.DB.HJGL_BO_BatchDetail.InsertOnSubmit(batchDetail); BLL.Funs.DB.SubmitChanges(); } } } } preReport.AuditDate = DateTime.Now; preReport.AuditMan = this.CurrUser.UserId; BLL.HJGL_BO_PreWeldReportMainService.UpdatePreWeldReport(preReport); ShowNotify("审核成功,已生成日报!", MessageBoxIcon.Warning); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } //var str = "{\"name\" : \"json\", \"age\" : 15}"; //JObject obj = JObject.Parse(str); //string s1 = obj["name"].ToString(); //string s2 = obj["age"].ToString(); //string strJson = "{\"jotId\":\"a953e776-74a4-4320-b22a-804d16cb5ef9\",\"jot_CellWelderID\":\"4579baec-aa22-47bf-86b0-96a621b4dc7c\",\"jot_FloorWelderID\":\"4579baec-aa22-47bf-86b0-96a621b4dc7c\",\"jot_WeldDate\":\"2018-07-08\",\"wlo_CodeID\":\"S\",\"jot_DoneDin\":711,\"jot_JointAttribute\":\"活动\",\"jot_Location\":\"1G\",\"jot_Sch\":10,\"wme_ID\":\"46520d5d-6104-48d0-900f-c4e56c90142e\",\"jot_WeldMat\":\"3f68e11e-069f-4768-b79a-6a354508bdbf\",\"jot_WeldSilk\":\"ccec366d-72b3-4c22-aa0d-927ffb86b298\"}"; //string message=WeldReportSubmit(strJson); //Alert.ShowInTop(message, MessageBoxIcon.Information); } private string WeldReportSubmit(string strJson) { string str = " {\"strJson\":[{\"repairItemRecordId\":\"11453947-0da6-4af9-bc55-c68de0fbc4b3\",\"currUser\":\"650fd834-5035-4a3f-babc-c5ba7c3586ad\",\"weldDate\":\"2018-07-12\",\"optWelder\":\"af71028d-aac5-4ecb-8a68-c4d2be0e4564\",\"isHotHandle\":\"false\",\"finishWelding\":\"true\"}]}"; string message = string.Empty; JObject obj = JObject.Parse(str); JArray arr = JArray.Parse(obj["strJson"].ToString()); foreach (var item in arr) { string s1 = item["repairItemRecordId"].ToString(); string s2 = item["currUser"].ToString(); DateTime s3 = Convert.ToDateTime(item["weldDate"].ToString()); string s4 = item["optWelder"].ToString(); bool s5 = Convert.ToBoolean(item["isHotHandle"].ToString()); } return null; } #endregion } }