ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/HJGL/WeldingManage/PreWeldReportMain.aspx.cs

479 lines
23 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
/// <summary>
/// 管线Id
/// </summary>
public string IsoId
{
get
{
return (string)ViewState["IsoId"];
}
set
{
ViewState["IsoId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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 --
/// <summary>
/// 加载树
/// </summary>
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
/// <summary>
/// 绑定树节点
/// </summary>
/// <param name="node"></param>
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<SqlParameter> listStr = new List<SqlParameter>();
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<dt.Rows.Count;i++)
{
TreeNode newNode = new TreeNode();
newNode.Text = dt.Rows[i]["ISO_IsoNo"].ToString();
newNode.NodeID = dt.Rows[i]["ISO_ID"].ToString();
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
}
#endregion
#region TreeView
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 数据绑定
/// </summary>
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<SqlParameter> listStr = new List<SqlParameter>();
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
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
#endregion
#region
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 分页选择下拉改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
#endregion
#endregion
#region DropDownList下拉选择事件
/// <summary>
/// 施工号下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpProject_SelectedIndexChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
}
#endregion
#region
/// <summary>
/// 审核按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
}
}