506 lines
19 KiB
C#
506 lines
19 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
|
||
namespace BLL
|
||
{
|
||
/// <summary>
|
||
/// 点口主表
|
||
/// </summary>
|
||
public static class Batch_PointBatchService
|
||
{
|
||
/// <summary>
|
||
/// 根据主键获取点口主表
|
||
/// </summary>
|
||
/// <param name="pointBatchId"></param>
|
||
/// <returns></returns>
|
||
public static Model.Batch_PointBatch GetPointBatchById(string pointBatchId)
|
||
{
|
||
return Funs.DB.Batch_PointBatch.FirstOrDefault(e => e.PointBatchId == pointBatchId);
|
||
}
|
||
|
||
#region 点口单维护
|
||
/// <summary>
|
||
/// 添加点口
|
||
/// </summary>
|
||
/// <param name="pointBatch"></param>
|
||
public static void AddPointBatch(Model.Batch_PointBatch pointBatch)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
Model.Batch_PointBatch newPointBatch = new Model.Batch_PointBatch
|
||
{
|
||
PointBatchId = pointBatch.PointBatchId,
|
||
PointBatchCode = pointBatch.PointBatchCode,
|
||
ProjectId = pointBatch.ProjectId,
|
||
UnitId = pointBatch.UnitId,
|
||
InstallationId = pointBatch.InstallationId,
|
||
DetectionTypeId = pointBatch.DetectionTypeId,
|
||
DetectionRateId = pointBatch.DetectionRateId,
|
||
WelderId = pointBatch.WelderId,
|
||
MediumId = pointBatch.MediumId,
|
||
MaterialId = pointBatch.MaterialId,
|
||
WeldTypeId = pointBatch.WeldTypeId,
|
||
JointArea= pointBatch.JointArea,
|
||
StartDate = pointBatch.StartDate,
|
||
EndDate = pointBatch.EndDate,
|
||
ClearDate = pointBatch.ClearDate,
|
||
IsTrust = pointBatch.IsTrust,
|
||
IsCheck = pointBatch.IsCheck
|
||
};
|
||
db.Batch_PointBatch.InsertOnSubmit(newPointBatch);
|
||
db.SubmitChanges();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 修改点口主表
|
||
/// </summary>
|
||
/// <param name="pointBatch"></param>
|
||
public static void UpdatePointBatch(Model.Batch_PointBatch pointBatch)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
Model.Batch_PointBatch newPointBatch = db.Batch_PointBatch.FirstOrDefault(e => e.PointBatchId == pointBatch.PointBatchId);
|
||
if (newPointBatch != null)
|
||
{
|
||
newPointBatch.PointBatchCode = pointBatch.PointBatchCode;
|
||
newPointBatch.ProjectId = pointBatch.ProjectId;
|
||
newPointBatch.UnitId = pointBatch.UnitId;
|
||
newPointBatch.InstallationId = pointBatch.InstallationId;
|
||
newPointBatch.DetectionTypeId = pointBatch.DetectionTypeId;
|
||
newPointBatch.DetectionRateId = pointBatch.DetectionRateId;
|
||
newPointBatch.WelderId = pointBatch.WelderId;
|
||
newPointBatch.MediumId = pointBatch.MediumId;
|
||
newPointBatch.MaterialId = pointBatch.MaterialId;
|
||
newPointBatch.WeldTypeId = pointBatch.WeldTypeId;
|
||
newPointBatch.JointArea= pointBatch.JointArea;
|
||
newPointBatch.StartDate = pointBatch.StartDate;
|
||
newPointBatch.EndDate = pointBatch.EndDate;
|
||
newPointBatch.ClearDate = pointBatch.ClearDate;
|
||
newPointBatch.IsTrust = pointBatch.IsTrust;
|
||
newPointBatch.IsCheck = pointBatch.IsCheck;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据主键删除点口主表
|
||
/// </summary>
|
||
/// <param name="pointBatchId"></param>
|
||
public static void DeletePointBatchById(string pointBatchId)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
Model.Batch_PointBatch pointBatch = db.Batch_PointBatch.FirstOrDefault(e => e.PointBatchId == pointBatchId);
|
||
if (pointBatch!=null)
|
||
{
|
||
db.Batch_PointBatch.DeleteOnSubmit(pointBatch);
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 更新批主表信息-委托状态
|
||
/// <summary>
|
||
/// 更新批主表委托状态
|
||
/// </summary>
|
||
/// <param name="pointBatchId"></param>
|
||
/// <param name="isTrust"></param>
|
||
public static void UpdatePointTrustState(string pointBatchId, bool? isTrust)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
Model.Batch_PointBatch update = db.Batch_PointBatch.FirstOrDefault(e => e.PointBatchId == pointBatchId);
|
||
if (update != null)
|
||
{
|
||
update.IsTrust = isTrust;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 生成批号
|
||
/// <summary>
|
||
/// 生成批号
|
||
/// </summary>
|
||
/// <param name="wed_ID"></param>
|
||
/// <param name="weldJointId"></param>
|
||
/// <returns></returns>
|
||
public static string GetNewPointBatchCode(string projectId, string welderId, string weldJointId, string detectionTypeId, string detectionRateId)
|
||
{
|
||
string prefix = null;
|
||
var welder = Funs.DB.Welder_Welder.FirstOrDefault(x => x.WelderId == welderId);
|
||
if (welder != null)
|
||
{
|
||
prefix = welder.WelderCode; ///焊工号
|
||
}
|
||
|
||
var jot = Funs.DB.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == weldJointId); ////焊口表
|
||
if (jot != null && !string.IsNullOrEmpty(welderId))
|
||
{
|
||
var isoInfo = Funs.DB.Pipeline_Pipeline.FirstOrDefault(x => x.PipelineId == jot.PipelineId); ////管线表
|
||
if (isoInfo != null)
|
||
{
|
||
var ndttype = Funs.DB.Base_DetectionType.FirstOrDefault(x => x.DetectionTypeId == detectionTypeId);
|
||
if (ndttype != null)
|
||
{
|
||
prefix = prefix + "-" + ndttype.DetectionTypeCode; ////检测方式
|
||
}
|
||
|
||
var ndtRate = Funs.DB.Base_DetectionRate.FirstOrDefault(x => x.DetectionRateId == detectionRateId);
|
||
if (ndtRate != null)
|
||
{
|
||
prefix = prefix + "-" + ndtRate.DetectionRateCode.ToString(); ////检测比例
|
||
}
|
||
|
||
var weldType = Funs.DB.Base_WeldType.FirstOrDefault(x => x.WeldTypeId == jot.WeldTypeId);
|
||
if (weldType != null)
|
||
{
|
||
prefix = prefix + "-" + weldType.WeldTypeCode; ////焊缝类型
|
||
}
|
||
|
||
var isoClass = Funs.DB.Base_PipingClass.FirstOrDefault(x => x.PipingClassId == isoInfo.PipingClassId);
|
||
if (isoClass != null)
|
||
{
|
||
prefix = prefix + "-" + isoClass.PipingClassCode + "-"; //// 管道等级
|
||
}
|
||
}
|
||
}
|
||
|
||
return BLL.SQLHelper.RunProcNewId("SpGetNewCode", "Batch_PointBatch", "PointBatchCode", projectId, prefix);
|
||
}
|
||
#endregion
|
||
|
||
#region 更新批主表信息-开\关闭
|
||
/// <summary>
|
||
/// 更新批主表信息
|
||
/// </summary>
|
||
/// <param name="pointBatch">批主表实体</param>
|
||
public static void UpdatePointBatch(string pointBatchId, DateTime? endDate)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
Model.Batch_PointBatch newPointBatch = db.Batch_PointBatch.FirstOrDefault(e => e.PointBatchId == pointBatchId);
|
||
if (newPointBatch != null)
|
||
{
|
||
newPointBatch.EndDate = endDate;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 更新批主表信息-批结束日期
|
||
/// <summary>
|
||
/// 更新批主表信息-批结束日期
|
||
/// </summary>
|
||
/// <param name="pointBatch">批主表实体</param>
|
||
public static void UpdatePointBatchClearDate(string pointBatchId, DateTime? clearDate)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
Model.Batch_PointBatch newPointBatch = db.Batch_PointBatch.FirstOrDefault(e => e.PointBatchId == pointBatchId);
|
||
if (newPointBatch != null)
|
||
{
|
||
newPointBatch.ClearDate = clearDate;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 是否显示返修\切除页面通过批id
|
||
/// <summary>
|
||
/// 是否显示返修\切除页面
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public static bool GetIsShowPointRepairByPointBatchId(string pointBatchId)
|
||
{
|
||
////判断该焊口是否点口\扩透 是显示链接
|
||
var pointBatchItem = Funs.DB.Batch_PointBatchItem.FirstOrDefault(x => x.PointBatchId == pointBatchId
|
||
&& !x.CutDate.HasValue && x.PointDate.HasValue && x.IsCheckRepair.HasValue && x.IsCheckRepair.Value);
|
||
if (pointBatchItem != null)
|
||
{
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 点的焊口是否割口(焊口信息中IsCancel=true)
|
||
/// <summary>
|
||
/// 是否显示返修\切除页面
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public static bool GetCutByPointBatchId(string pointBatchId)
|
||
{
|
||
// 判断批次中点的焊口是否有割口
|
||
var pointBatchItem = from x in Funs.DB.Batch_PointBatchItem
|
||
join y in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals y.WeldJointId
|
||
where x.PointBatchId == pointBatchId
|
||
&& x.PointState == "1" && y.IsCancel == true
|
||
select x;
|
||
if (pointBatchItem.Count() > 0)
|
||
{
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 是否 取消扩透
|
||
/// <summary>
|
||
/// 是否显示取消扩透
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public static bool GetIsShowCancellation(string pointBatchItemId)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
bool isShow = false;
|
||
////判断该焊口是否点口\扩透 是显示链接
|
||
var pointBatchItem = Funs.DB.Batch_PointBatchItem.FirstOrDefault(x => x.PointBatchItemId == pointBatchItemId
|
||
&& (x.IsCheckRepair == null || x.IsCheckRepair == false) && (x.PointState == "2" || x.CutDate.HasValue));
|
||
if (pointBatchItem != null)
|
||
{
|
||
var trust = db.Batch_BatchTrustItem.Where(p => p.PointBatchItemId == pointBatchItemId);
|
||
if (trust.Count() == 1)
|
||
{
|
||
var checkItem = db.Batch_NDEItem.FirstOrDefault(x => x.NDEItemID == trust.First().TrustBatchItemId);
|
||
if (checkItem != null)
|
||
{
|
||
if (checkItem.SubmitDate == null)
|
||
{
|
||
isShow = true;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
isShow = true;
|
||
}
|
||
}
|
||
if (trust.Count() == 0)
|
||
{
|
||
isShow = true;
|
||
}
|
||
}
|
||
|
||
return isShow;
|
||
}
|
||
#endregion
|
||
|
||
#region 是否满足生成委托条件
|
||
/// <summary>
|
||
/// 是否满足生成委托条件
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public static bool GetIsGenerateTrust(string pointBatchItemId)
|
||
{
|
||
bool isShow = true;
|
||
var trustBatchItem = Funs.DB.Batch_BatchTrustItem.FirstOrDefault(x => x.PointBatchItemId == pointBatchItemId);
|
||
if (trustBatchItem != null)
|
||
{
|
||
var checkItem = Funs.DB.Batch_NDEItem.FirstOrDefault(x => x.TrustBatchItemId == trustBatchItem.TrustBatchItemId && x.CheckResult == "1");
|
||
if (checkItem != null)
|
||
{
|
||
isShow = false;
|
||
}
|
||
}
|
||
|
||
return isShow;
|
||
}
|
||
#endregion
|
||
|
||
#region 判断批次主键判断批是否关闭
|
||
/// <summary>
|
||
/// 判断批次主键判断批是否关闭
|
||
/// </summary>
|
||
/// <param name="pointBatchId">批次主键</param>
|
||
/// <returns></returns>
|
||
public static bool IsPointBatchClose(string pointBatchId)
|
||
{
|
||
bool isColse = false;
|
||
var pointBatch = Funs.DB.Batch_PointBatch.FirstOrDefault(x => x.PointBatchId == pointBatchId);
|
||
if (pointBatch.EndDate.HasValue)
|
||
{
|
||
isColse = true;
|
||
}
|
||
else
|
||
{
|
||
isColse = false;
|
||
}
|
||
return isColse;
|
||
}
|
||
#endregion
|
||
|
||
#region 更新返修焊口号
|
||
/// <summary>
|
||
/// 返修\切除更新焊口号
|
||
/// </summary>
|
||
/// <param name="WeldJointId"></param>
|
||
/// <param name="value"></param>
|
||
public static void UpdateNewRepairJointNo(string WeldJointId)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
var jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == WeldJointId);
|
||
if (jointInfo != null)
|
||
{
|
||
string jointNo = jointInfo.WeldJointCode;
|
||
string lastNo = jointNo;
|
||
string startNo = jointNo;
|
||
string newjointNo = string.Empty;
|
||
////焊口字符串长度
|
||
int noLength = jointNo.Length;
|
||
if (noLength > 2)
|
||
{
|
||
lastNo = jointNo.Substring(noLength - 2); ////截取最后两位
|
||
startNo = jointNo.Substring(0, noLength - 2);
|
||
////焊口包含R的索引
|
||
int indexR = lastNo.LastIndexOf("R");
|
||
if (indexR >= 0)
|
||
{
|
||
string rString = string.Empty;
|
||
////截取R 前的字符串
|
||
rString = lastNo.Substring(0, indexR + 1);
|
||
////截取R 后的字符
|
||
string subNo = lastNo.Substring(indexR + 1);
|
||
if (!string.IsNullOrEmpty(subNo))
|
||
{
|
||
subNo = (Convert.ToInt32(subNo) + 1).ToString();
|
||
}
|
||
else
|
||
{
|
||
subNo = "1";
|
||
}
|
||
|
||
newjointNo = startNo + rString + subNo;
|
||
}
|
||
else
|
||
{
|
||
newjointNo = jointNo + "R1";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
newjointNo = jointNo + "R1";
|
||
}
|
||
|
||
jointInfo.WeldJointCode = newjointNo;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 撤消返修焊口号
|
||
/// <summary>
|
||
/// 撤消返修焊口号
|
||
/// </summary>
|
||
/// <param name="WeldJointId"></param>
|
||
/// <param name="value"></param>
|
||
public static void CancelRepairJointNo(string WeldJointId)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
var jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == WeldJointId);
|
||
if (jointInfo != null)
|
||
{
|
||
string jointNo = jointInfo.WeldJointCode;
|
||
string lastNo = jointNo;
|
||
string startNo = jointNo;
|
||
string newjointNo = string.Empty;
|
||
|
||
//焊口字符串长度
|
||
int noLength = jointNo.Length;
|
||
if (noLength > 2)
|
||
{
|
||
lastNo = jointNo.Substring(noLength - 2); ////截取最后两位
|
||
startNo = jointNo.Substring(0, noLength - 2);
|
||
// 焊口包含R的索引
|
||
int indexR = lastNo.LastIndexOf("R");
|
||
if (indexR >= 0)
|
||
{
|
||
string rString = string.Empty;
|
||
// 截取R 前的字符串
|
||
rString = lastNo.Substring(0, indexR + 1);
|
||
// 截取R 后的字符
|
||
string subNo = lastNo.Substring(indexR + 1);
|
||
|
||
if (!string.IsNullOrEmpty(subNo) && Convert.ToInt32(subNo) > 1)
|
||
{
|
||
subNo = (Convert.ToInt32(subNo) - 1).ToString();
|
||
newjointNo = startNo + rString + subNo;
|
||
}
|
||
else
|
||
{
|
||
newjointNo = startNo;
|
||
}
|
||
}
|
||
}
|
||
|
||
jointInfo.WeldJointCode = newjointNo;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 更新扩透或切除焊口号
|
||
/// <summary>
|
||
/// 更新扩透或切除焊口号
|
||
/// </summary>
|
||
/// <param name="WeldJointId"></param>
|
||
/// <param name="value"></param>
|
||
public static void UpdateNewKuoOrCutJointNo(string pointBatchItemId, string value)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
var pointBatchItem = db.Batch_PointBatchItem.FirstOrDefault(x => x.PointBatchItemId == pointBatchItemId);
|
||
var jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == pointBatchItem.WeldJointId);
|
||
if (jointInfo != null)
|
||
{
|
||
jointInfo.OldWeldJointCode = jointInfo.WeldJointCode;
|
||
string jointNo = jointInfo.WeldJointCode;
|
||
//// 焊口字符串长度
|
||
//int noLength = jointNo.Length;
|
||
//if (noLength > 2 && value == "C")
|
||
//{
|
||
// // 焊口包含K的索引
|
||
// int indexK = jointNo.LastIndexOf("K");
|
||
// if (indexK >= 0)
|
||
// {
|
||
// // 截取K 前的字符串
|
||
// jointNo = jointNo.Substring(0, indexK);
|
||
// }
|
||
// else
|
||
// {
|
||
// // 焊口包含R的索引
|
||
// int indexR = jointNo.LastIndexOf("R");
|
||
// if (indexR >= 0)
|
||
// {
|
||
// jointNo = jointNo.Substring(0, indexR);
|
||
// }
|
||
// }
|
||
//}
|
||
|
||
jointInfo.WeldJointCode = jointNo + value;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 撤销扩透或切除焊口号
|
||
/// <summary>
|
||
/// 撤销扩透或切除焊口号
|
||
/// </summary>
|
||
/// <param name="WeldJointId"></param>
|
||
/// <param name="value"></param>
|
||
public static void CancellationJointNo(string WeldJointId)
|
||
{
|
||
Model.HJGLDB db = Funs.DB;
|
||
var jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == WeldJointId);
|
||
if (jointInfo != null && !string.IsNullOrEmpty(jointInfo.OldWeldJointCode))
|
||
{
|
||
jointInfo.WeldJointCode = jointInfo.OldWeldJointCode;
|
||
jointInfo.OldWeldJointCode = null;
|
||
db.SubmitChanges();
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|