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

479 lines
23 KiB
C#
Raw Normal View History

2024-05-08 17:17:11 +08:00
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
}
}