453 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			453 lines
		
	
	
		
			17 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,
 | 
						|
                PipelineId=pointBatch.PipelineId,
 | 
						|
                DetectionTypeId = pointBatch.DetectionTypeId,
 | 
						|
                DetectionRateId = pointBatch.DetectionRateId,
 | 
						|
                WelderId = pointBatch.WelderId,
 | 
						|
                MediumId = pointBatch.MediumId,
 | 
						|
                MaterialId = pointBatch.MaterialId,
 | 
						|
                WeldTypeId = pointBatch.WeldTypeId,
 | 
						|
                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.PipelineId = pointBatch.PipelineId;
 | 
						|
                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.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="projectId"></param>
 | 
						|
        /// <param name="pipeCode"></param>
 | 
						|
        /// <param name="detectionTypeCode"></param>
 | 
						|
        /// <param name="detectionRateCode"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static string GetNewPointBatchCode(string projectId, string pipeCode, string detectionTypeCode, string detectionRateCode)
 | 
						|
        {
 | 
						|
            string prefix = null;
 | 
						|
            if (!string.IsNullOrEmpty(pipeCode))
 | 
						|
            {
 | 
						|
                prefix = pipeCode + "-";
 | 
						|
            }
 | 
						|
            if (!string.IsNullOrEmpty(detectionTypeCode))
 | 
						|
            {
 | 
						|
                prefix = prefix + detectionTypeCode + "-";
 | 
						|
            }
 | 
						|
            if (!string.IsNullOrEmpty(detectionRateCode))
 | 
						|
            {
 | 
						|
                prefix = prefix + detectionRateCode + "-";
 | 
						|
            }
 | 
						|
 | 
						|
            return BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "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 是否 取消扩透
 | 
						|
        /// <summary>
 | 
						|
        /// 是否显示取消扩透
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static bool GetIsShowCancellation(string pointBatchItemId, string pointState)
 | 
						|
        {
 | 
						|
            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 == pointState || 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.TrustBatchItemId == trust.First().TrustBatchItemId);
 | 
						|
                    if (checkItem == null)
 | 
						|
                    {
 | 
						|
                        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
 | 
						|
    }
 | 
						|
}
 |