YZ_BSF/HJGL/BLL/WeldingProcess/TrustManage/Batch_PointBatchService.cs

506 lines
19 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 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
}
}