ZHJA_HJGL/HJGL_ZH/BLL/API/APIJointInfoService.cs

204 lines
8.5 KiB
C#
Raw Normal View History

2024-05-08 17:17:11 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model;
namespace BLL
{
public static class APIJointInfoService
{
/// <summary>
/// 保存焊口信息
/// </summary>
/// <param name="addItem">焊口项</param>
public static void SaveJointInfo(JointInfoItem addItem)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var p = db.Base_Project.FirstOrDefault(z => z.ProjectCode == addItem.ProjectCode);
if (p != null)
{
var iso = db.HJGL_PW_IsoInfo.FirstOrDefault(z => z.ProjectId == p.ProjectId && z.ISO_IsoNo == addItem.ISO_IsoNo.Trim());
if (iso != null)
{
var jot = db.HJGL_PW_JointInfo.FirstOrDefault(z => z.ProjectId == p.ProjectId && z.ISO_ID == iso.ISO_ID && z.JOT_JointNo==addItem.JOT_JointNo.Trim());
var ins = db.Project_Installation.FirstOrDefault(x => x.InstallationName == addItem.InstallationName.Trim() && x.ProjectId == p.ProjectId);
var ste1 = db.HJGL_BS_Steel.FirstOrDefault(z => z.STE_Code == addItem.STE_Name1.Trim());
var ste2 = db.HJGL_BS_Steel.FirstOrDefault(z => z.STE_Code == addItem.STE_Name2);
var joty = db.HJGL_BS_JointType.FirstOrDefault(x => x.JOTY_Name == addItem.JOTY_Name.Trim() && x.ProjectSoft == "2");
var slope = db.HJGL_BS_SlopeType.FirstOrDefault(x => x.JST_Code == addItem.JST_Name.Trim());
var wme = db.HJGL_BS_WeldMethod.FirstOrDefault(x => x.WME_Code == addItem.WME_Name.Trim());
Model.HJGL_PW_JointInfo newJot = new Model.HJGL_PW_JointInfo();
newJot.ProjectId = p.ProjectId;
newJot.JOT_JointNo = addItem.JOT_JointNo;
newJot.ISO_ID = iso.ISO_ID;
newJot.IS_Proess = iso.IsHot;
newJot.ProessTypes = iso.IsHotType;
if (ins != null)
{
newJot.InstallationId = ins.InstallationId;
}
else
{
newJot.InstallationId = null;
}
if (joty != null)
{
newJot.JOTY_ID = joty.JOTY_ID;
if (joty.JOTY_Group == "1")
{
newJot.NDTR_ID = iso.Joty_B_Rate;
newJot.JOT_QualifiedLevel = iso.Joty_B_Level;
}
else if (joty.JOTY_Group == "2")
{
newJot.NDTR_ID = iso.Joty_C_Rate;
newJot.JOT_QualifiedLevel = iso.Joty_C_Level;
}
else if (joty.JOTY_Group == "3")
{
newJot.NDTR_ID = iso.Joty_D_Rate;
newJot.JOT_QualifiedLevel = iso.Joty_D_Level;
}
}
else
{
newJot.JOTY_ID = null;
}
if (ste1 != null)
{
newJot.STE_ID = ste1.STE_ID;
}
else
{
if (ste2 != null)
{
newJot.STE_ID = ste2.STE_ID;
}
else
{
newJot.STE_ID = null;
}
}
if (ste2 != null)
{
newJot.STE_ID2 = ste2.STE_ID;
}
else
{
if (ste1 != null)
{
newJot.STE_ID2 = ste1.STE_ID;
}
else
{
newJot.STE_ID2 = null;
}
}
if (slope != null)
{
newJot.JST_ID = slope.JST_ID;
}
else
{
newJot.JST_ID = null;
}
if (addItem.JOT_JointAttribute == "固定" || addItem.JOT_JointAttribute == "活动")
{
newJot.JOT_JointAttribute = addItem.JOT_JointAttribute;
}
else
{
newJot.JOT_JointAttribute = "活动";
}
if (wme != null)
{
newJot.WME_ID = wme.WME_ID;
}
else
{
newJot.WME_ID = null;
}
newJot.JOT_Dia = addItem.Dia;
newJot.JOT_Sch = addItem.Sch;
newJot.IsSpecial = false;
if (addItem.Dia != null)
{
if (addItem.Dia >= 500)
{
newJot.IsSpecial = true;
}
var inch = HJGL_ControlService.GetSizeByDia(addItem.Dia.Value);
if (inch != null)
{
newJot.JOT_Size = inch;
}
//焊口规格:Φ外径*壁厚
if (!string.IsNullOrEmpty(addItem.Sch))
{
newJot.JOT_JointDesc = "Φ" + addItem.Dia.Value + "×" + addItem.Sch;
}
}
if (jot != null)
{
List<Model.HJGL_CH_HotProessTrustItem> hotProessTrustItems = BLL.HJGL_CH_HotProessTrustService.GetCH_HotProessTrustItemByJOT_ID(jot.JOT_ID);
var batch = (from x in Funs.DB.HJGL_BO_Batch
join y in Funs.DB.HJGL_BO_BatchDetail
on x.BatchId equals y.BatchId
where y.JOT_ID == jot.JOT_ID
select x).FirstOrDefault();
bool batchIsClosed = false;
if (batch != null && batch.BatchIsClosed == true)
{
batchIsClosed = true;
}
//存在热处理委托或者批关闭则不能修改焊口信息
if (hotProessTrustItems.Count == 0 && batchIsClosed == false)
{
newJot.JOT_ID = jot.JOT_ID;
BLL.HJGL_PW_JointInfoService.UpdateJointInfo(newJot);
}
}
else
{
newJot.JOT_ID = SQLHelper.GetNewID();
db.HJGL_PW_JointInfo.InsertOnSubmit(newJot);
db.SubmitChanges();
}
}
}
}
}
#region
/// <summary>
/// 批量保存焊口信息
/// </summary>
/// <param name="addItems"></param>
public static void SaveBatchJointInfo(List<Model.JointInfoItem> addItems)
{
if (addItems.Count() > 0)
{
foreach (Model.JointInfoItem addItem in addItems)
{
SaveJointInfo(addItem);
}
}
}
#endregion
}
}