261 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			261 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Collections;
 | |
| 
 | |
| namespace BLL
 | |
| {
 | |
|     public class PointBatchDetailService
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// 根据批明细ID获取批明细信息
 | |
|         /// </summary>
 | |
|         /// <param name="batchId"></param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.HJGL_Batch_PointBatchItem GetBatchDetailById(string batchDetailId)
 | |
|         {
 | |
|             return Funs.DB.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == batchDetailId);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据批焊口ID获取批明细信息
 | |
|         /// </summary>
 | |
|         /// <param name="jotId"></param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.HJGL_Batch_PointBatchItem GetBatchDetailByJotId(string jotId)
 | |
|         {
 | |
|             return Funs.DB.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.WeldJointId == jotId);
 | |
|         }
 | |
| 
 | |
|         public static List<Model.HJGL_Batch_PointBatchItem> GetBatchDetailByBatchId(string batchId)
 | |
|         {
 | |
|             return Funs.DB.HJGL_Batch_PointBatchItem.Where(e => e.PointBatchId == batchId).ToList();
 | |
|         }
 | |
| 
 | |
|         public static List<Model.HJGL_Batch_PointBatchItem> GetGBatchDetailByBatchId(string batchId)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 return (from x in db.HJGL_Batch_PointBatchItem
 | |
|                         join y in db.HJGL_WeldJoint
 | |
|                         on x.WeldJointId equals y.WeldJointId
 | |
|                         where y.WeldJointCode.Contains("G") && x.PointBatchId == batchId
 | |
|                         select x).ToList();
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 修改
 | |
|         /// </summary>
 | |
|         /// <param name="batchDetail"></param>
 | |
|         public static void UpdatePointBatchDetail(Model.HJGL_Batch_PointBatchItem batchDetail)
 | |
|         {
 | |
|             Model.HJGL_Batch_PointBatchItem newBatchDetail = Funs.DB.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == batchDetail.PointBatchItemId);
 | |
|             if (newBatchDetail != null)
 | |
|             {
 | |
|                 newBatchDetail.PointBatchId = batchDetail.PointBatchId;
 | |
|                 newBatchDetail.WeldJointId = batchDetail.WeldJointId;
 | |
|                 newBatchDetail.PointState = batchDetail.PointState;
 | |
|                 newBatchDetail.PointDate = batchDetail.PointDate;
 | |
|                 newBatchDetail.PointDate = batchDetail.PointDate;
 | |
|                 newBatchDetail.RepairDate = batchDetail.RepairDate;
 | |
|                 newBatchDetail.CutDate = batchDetail.CutDate;
 | |
|                 newBatchDetail.CreatDate = batchDetail.CreatDate;
 | |
|                 newBatchDetail.IsBuildTrust = batchDetail.IsBuildTrust;
 | |
|                 newBatchDetail.IsWelderFirst = batchDetail.IsWelderFirst;
 | |
|                 newBatchDetail.IsPipelineFirst = batchDetail.IsPipelineFirst;
 | |
|                 newBatchDetail.Remark = batchDetail.Remark;
 | |
| 
 | |
|                 Funs.DB.SubmitChanges();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public static void UpdatePointBatchDetail(string pointBatchItemId, string pointState, DateTime? pointDate)
 | |
|         {
 | |
|             Model.HJGL_Batch_PointBatchItem newBatchDetail = Funs.DB.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == pointBatchItemId);
 | |
|             if (newBatchDetail != null)
 | |
|             {
 | |
|                 newBatchDetail.PointState = pointState;
 | |
|                 newBatchDetail.PointDate = pointDate;
 | |
|                 Funs.DB.SubmitChanges();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #region 点口审核
 | |
|         /// <summary>
 | |
|         /// 点口审核
 | |
|         /// </summary>
 | |
|         /// <param name="pointBatchItemId"></param>
 | |
|         /// <param name="isAudit"></param>
 | |
|         public static void PointAudit(string pointBatchItemId, bool isAudit)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.HJGL_Batch_PointBatchItem newPointBatchItem = db.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == pointBatchItemId);
 | |
|             if (newPointBatchItem != null)
 | |
|             {
 | |
|                 newPointBatchItem.IsAudit = isAudit;
 | |
|                 db.SubmitChanges();
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
| 
 | |
|         #region 首件制
 | |
|         /// <summary>
 | |
|         /// 焊工首两件
 | |
|         /// </summary>
 | |
|         /// <param name="pointBatchItemId"></param>
 | |
|         /// <param name="welderFirst"></param>
 | |
|         public static void UpdateWelderFirst(string pointBatchItemId, bool? welderFirst)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.HJGL_Batch_PointBatchItem newPointBatchItem = db.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == pointBatchItemId);
 | |
|             newPointBatchItem.IsWelderFirst = welderFirst;
 | |
| 
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 管线首件
 | |
|         /// </summary>
 | |
|         /// <param name="pointBatchItemId"></param>
 | |
|         /// <param name="pipelineFirst"></param>
 | |
|         public static void UpdatePipelineFirst(string pointBatchItemId, bool? pipelineFirst)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.HJGL_Batch_PointBatchItem newPointBatchItem = db.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == pointBatchItemId);
 | |
|             newPointBatchItem.IsPipelineFirst = pipelineFirst;
 | |
| 
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据批焊口ID删除批明细信息
 | |
|         /// </summary>
 | |
|         /// <param name="checkId"></param>
 | |
|         public static void DeleteBatchDetail(string jotId)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.HJGL_Batch_PointBatchItem batch = db.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.WeldJointId == jotId);
 | |
|             if (batch != null)
 | |
|             {
 | |
|                 db.HJGL_Batch_PointBatchItem.DeleteOnSubmit(batch);
 | |
|                 db.SubmitChanges();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 增加
 | |
|         /// </summary>
 | |
|         /// <param name="batchDetail"></param>
 | |
|         public static void AddBatchDetail(Model.HJGL_Batch_PointBatchItem batchDetail)
 | |
|         {
 | |
|             Model.HJGL_Batch_PointBatchItem newBatchDetail = new Model.HJGL_Batch_PointBatchItem();
 | |
|             newBatchDetail.PointBatchItemId = batchDetail.PointBatchItemId;
 | |
|             newBatchDetail.PointBatchId = batchDetail.PointBatchId;
 | |
|             newBatchDetail.WeldJointId = batchDetail.WeldJointId;
 | |
|             newBatchDetail.PointState = batchDetail.PointState;
 | |
|             newBatchDetail.PointDate = batchDetail.PointDate;
 | |
|             newBatchDetail.PointDate = batchDetail.PointDate;
 | |
|             newBatchDetail.RepairDate = batchDetail.RepairDate;
 | |
|             newBatchDetail.CutDate = batchDetail.CutDate;
 | |
|             newBatchDetail.CreatDate = batchDetail.CreatDate;
 | |
|             newBatchDetail.IsBuildTrust = batchDetail.IsBuildTrust;
 | |
|             newBatchDetail.IsWelderFirst = batchDetail.IsWelderFirst;
 | |
|             newBatchDetail.IsPipelineFirst = batchDetail.IsPipelineFirst;
 | |
|             newBatchDetail.Remark = batchDetail.Remark;
 | |
|             Funs.DB.HJGL_Batch_PointBatchItem.InsertOnSubmit(newBatchDetail);
 | |
|             Funs.DB.SubmitChanges();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据主键删除明细
 | |
|         /// </summary>
 | |
|         /// <param name="batchDetailId"></param>
 | |
|         public static void DeleteBatchDetailById(string batchDetailId)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.HJGL_Batch_PointBatchItem batch = db.HJGL_Batch_PointBatchItem.FirstOrDefault(e => e.PointBatchItemId == batchDetailId);
 | |
|             if (batch != null)
 | |
|             {
 | |
|                 db.HJGL_Batch_PointBatchItem.DeleteOnSubmit(batch);
 | |
|                 db.SubmitChanges();
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 检验批自动点口算法
 | |
|         /// </summary>
 | |
|         /// <param name="pointBatchId"></param>
 | |
|         public static void AutoPoint(string pointBatchId)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 int pointNum = 0;
 | |
|                 int pointNumG = 0;
 | |
|                 int pointNumA = 0;
 | |
| 
 | |
|                 var batch = PointBatchService.GetPointBatchById(pointBatchId);
 | |
|                 var batchItemNum = PointBatchDetailService.GetBatchDetailByBatchId(pointBatchId);
 | |
| 
 | |
|                 if (batch.DetectionRateId != null && batchItemNum.Count() > 0)
 | |
|                 {
 | |
|                     var rate = Base_DetectionRateService.GetDetectionRateByDetectionRateId(batch.DetectionRateId);
 | |
|                     // 批里要检测的数量
 | |
|                     pointNum = Convert.ToInt32(Math.Ceiling((batchItemNum.Count() * rate.DetectionRateValue.Value) * 0.01));
 | |
|                 }
 | |
| 
 | |
|                 var weldG = from x in db.HJGL_Batch_PointBatchItem
 | |
|                             join y in db.HJGL_WeldJoint on x.WeldJointId equals y.WeldJointId
 | |
|                             where y.JointAttribute == "固定口" && x.PointBatchId==pointBatchId
 | |
|                             select x;
 | |
|                 var weldA = from x in db.HJGL_Batch_PointBatchItem
 | |
|                             join y in db.HJGL_WeldJoint on x.WeldJointId equals y.WeldJointId
 | |
|                             where y.JointAttribute == "活动口" && x.PointBatchId == pointBatchId
 | |
|                             select x;
 | |
|                 if (weldG.Count() > 0)
 | |
|                 {
 | |
|                     // 固定口检测数量
 | |
|                     pointNumG = Convert.ToInt32(Math.Ceiling(weldG.Count() * 0.4));
 | |
|                 }
 | |
| 
 | |
|                 // 活动口要检测的数量
 | |
|                 pointNumA = pointNum - pointNumG;
 | |
| 
 | |
|                 if (pointNumG > 0)
 | |
|                 {
 | |
|                     int[] r = Funs.GetRandomNum(pointNumG, 1, weldG.Count());
 | |
|                     int i = 0;
 | |
|                     foreach (var p in weldG)
 | |
|                     {
 | |
|                         i++;
 | |
|                         if (r.Contains(i))
 | |
|                         {
 | |
|                             PointBatchDetailService.UpdatePointBatchDetail(p.PointBatchItemId, "1", System.DateTime.Now);
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 if (pointNumA > 0)
 | |
|                 {
 | |
|                     int[] r = Funs.GetRandomNum(pointNumA, 1, weldA.Count());
 | |
|                     int j = 0;
 | |
|                     foreach (var p in weldA)
 | |
|                     {
 | |
|                         j++;
 | |
|                         if (r.Contains(j))
 | |
|                         {
 | |
|                             PointBatchDetailService.UpdatePointBatchDetail(p.PointBatchItemId, "1", System.DateTime.Now);
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 PointBatchService.UpdateBatchIsClosed(pointBatchId, DateTime.Now);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |