265 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			265 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Data; | |||
|  | using System.Data.SqlClient; | |||
|  | using System.Linq; | |||
|  | using BLL; | |||
|  | 
 | |||
|  | namespace FineUIPro.Web.HJGL.PointTrust | |||
|  | { | |||
|  |     public partial class PointAudit : PageBase | |||
|  |     { | |||
|  |         #region 加载页面 | |||
|  |         /// <summary> | |||
|  |         /// 加载页面 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 this.BindGrid();           | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  |          | |||
|  |         #region 数据绑定 | |||
|  |         /// <summary> | |||
|  |         /// 数据绑定 | |||
|  |         /// </summary> | |||
|  |         private void BindGrid() | |||
|  |         { | |||
|  |             string strSql = @"SELECT PointBatchItem.PointBatchItemId,PointBatch.PointBatchCode, WeldJoint.WeldJointCode,UnitWork.UnitWorkCode,unit.UnitCode,
 | |||
|  |                                     (CASE PointBatchItem.IsAudit WHEN 1 THEN '是' ELSE '否' END) AS PointIsAudit, | |||
|  |                                      WeldJoint.JointArea,WeldingDaily.WeldingDate,PipingClass.PipingClassName, | |||
|  |                                      trustItem.TrustBatchItemId | |||
|  |                                FROM dbo.HJGL_Batch_PointBatchItem AS PointBatchItem | |||
|  |                                LEFT JOIN dbo.HJGL_Batch_PointBatch AS PointBatch ON PointBatch.PointBatchId=PointBatchItem.PointBatchId | |||
|  |                                LEFT JOIN dbo.HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=PointBatchItem.WeldJointId | |||
|  |                                LEFT JOIN dbo.HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId | |||
|  |                                LEFT JOIN WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Pipeline.UnitWorkId | |||
|  |                                LEFT JOIN dbo.HJGL_WeldingDaily AS WeldingDaily ON WeldingDaily.WeldingDailyId=WeldJoint.WeldingDailyId | |||
|  |                                LEFT JOIN Base_PipingClass AS PipingClass ON PipingClass.PipingClassId=Pipeline.PipingClassId | |||
|  |                                LEFT JOIN dbo.Base_Unit unit ON unit.UnitId = PointBatch.UnitId | |||
|  |                                LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId = PointBatchItem.PointBatchItemId | |||
|  |                                WHERE PointBatchItem.PointState IS NOT NULL AND trustItem.TrustBatchItemId IS NULL | |||
|  |                                      AND PointBatch.ProjectId=@ProjectId";
 | |||
|  |             List<SqlParameter> listStr = new List<SqlParameter>(); | |||
|  |             listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); | |||
|  |             SqlParameter[] parameter = listStr.ToArray(); | |||
|  |             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); | |||
|  | 
 | |||
|  |             Grid1.RecordCount = tb.Rows.Count; | |||
|  |             // tb = GetFilteredTable(Grid1.FilteredData, tb); | |||
|  |             var table = this.GetPagedDataTable(Grid1, tb); | |||
|  |             Grid1.DataSource = table; | |||
|  |             Grid1.DataBind(); | |||
|  | 
 | |||
|  |             DataRow[] rds=tb.Select("PointIsAudit='是'"); | |||
|  |             if (null != rds) | |||
|  |             { | |||
|  |                 string[] ids = rds.Select(t => t.Field<string>("PointBatchItemId")).ToArray(); | |||
|  |                 this.Grid1.SelectedRowIDArray = ids; | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 排序 | |||
|  |         /// <summary> | |||
|  |         /// 排序 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Grid1_Sort(object sender, GridSortEventArgs e) | |||
|  |         { | |||
|  |             this.BindGrid(); | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 确定按钮 | |||
|  |         /// <summary> | |||
|  |         /// 确定按钮 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnAccept_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             string[] selectRowId = Grid1.SelectedRowIDArray; | |||
|  |             if (selectRowId.Count() > 0) | |||
|  |             { | |||
|  |                 foreach (var item in selectRowId) | |||
|  |                 { | |||
|  |                     BLL.PointBatchDetailService.PointAudit(item, true); | |||
|  |                     //BLL.Sys_LogService.AddLog(BLL.Const.System_6, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PointBatchMenuId, Const.BtnPointAudit, item); | |||
|  |                 } | |||
|  |                 this.BindGrid(); | |||
|  |                 Alert.ShowInTop("勾选的焊口已审核!"); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 Alert.ShowInTop("请勾选要审核的焊口!", MessageBoxIcon.Warning); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         protected void btnCancelAccept_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             string[] selectRowId = Grid1.SelectedRowIDArray; | |||
|  |             if (selectRowId.Count() > 0) | |||
|  |             { | |||
|  |                 foreach (var item in selectRowId) | |||
|  |                 { | |||
|  |                     BLL.PointBatchDetailService.PointAudit(item, false); | |||
|  |                     //BLL.Sys_LogService.AddLog(BLL.Const.System_6, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PointBatchMenuId, Const.BtnPointAudit, item); | |||
|  |                 } | |||
|  |                 this.BindGrid(); | |||
|  |                 Alert.ShowInTop("勾选的焊口已取消审核!"); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 Alert.ShowInTop("请勾选要取消审核的焊口!", MessageBoxIcon.Warning); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 生成委托单 | |||
|  |         /// <summary> | |||
|  |         /// 生成委托单 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnGenerate_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PointBatchMenuId, Const.BtnGenerate)) | |||
|  |             { | |||
|  |                 /////取当前项目所有未委托批 | |||
|  |                 //var getViewPointBatchLists = (from x in Funs.DB.View_Batch_PointBatch | |||
|  |                 //                              where x.EndDate.HasValue && (!x.IsTrust.HasValue || !x.IsTrust.Value) && x.ProjectId == this.CurrUser.LoginProjectId | |||
|  |                 //                              select x).ToList(); | |||
|  | 
 | |||
|  |                 var getViewGenerateTrustLists = (from x in Funs.DB.View_GenerateTrust where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); | |||
|  |                 if (getViewGenerateTrustLists.Count() > 0) | |||
|  |                 { | |||
|  |                     var getUnit = BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId); | |||
|  |                     if (getUnit != null && getUnit.UnitTypeId == Const.ProjectUnitType_2) | |||
|  |                     { | |||
|  |                         var getUnitViewGenerateTrustLists = getViewGenerateTrustLists.Where(x => x.UnitId == this.CurrUser.UnitId); | |||
|  |                         if (getUnitViewGenerateTrustLists.Count() > 0) | |||
|  |                         { | |||
|  |                             // 当前单位未委托批 | |||
|  |                             GenerateTrust(getUnitViewGenerateTrustLists.ToList()); | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             Alert.ShowInTop("所属单位审核的点口已全部生成委托单!", MessageBoxIcon.Warning); | |||
|  |                         } | |||
|  | 
 | |||
|  |                     } | |||
|  |                     else | |||
|  |                     { | |||
|  |                         GenerateTrust(getViewGenerateTrustLists); | |||
|  |                     } | |||
|  |                     //BLL.Sys_LogService.AddLog(BLL.Const.System_6, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PointBatchMenuId, Const.BtnGenerate, null); | |||
|  |                     this.BindGrid(); | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     Alert.ShowInTop("已全部生成委托单!", MessageBoxIcon.Warning); | |||
|  |                 } | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 生成委托单 | |||
|  |         /// </summary> | |||
|  |         /// <param name="unitId"></param> | |||
|  |         private void GenerateTrust(List<Model.View_GenerateTrust> GenerateTrustLists) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             foreach (var trust in GenerateTrustLists) | |||
|  |             { | |||
|  |                 Model.HJGL_Batch_BatchTrust newBatchTrust = new Model.HJGL_Batch_BatchTrust(); | |||
|  |                 var project = BLL.ProjectService.GetProjectByProjectId(trust.ProjectId); | |||
|  |                 var unit = BLL.UnitService.GetUnitByUnitId(trust.UnitId); | |||
|  |                 var area = BLL.UnitWorkService.getUnitWorkByUnitWorkId(trust.UnitWorkId); | |||
|  |                 var ndt = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(trust.DetectionTypeId); | |||
|  |                 var rate = BLL.Base_DetectionRateService.GetDetectionRateByDetectionRateId(trust.DetectionRateId); | |||
|  | 
 | |||
|  |                 string perfix = string.Empty; | |||
|  |                 perfix = unit.UnitCode + "-" + ndt.DetectionTypeCode + "-" + rate.DetectionRateValue.ToString() + "%-" ; | |||
|  |                 newBatchTrust.TrustBatchCode = BLL.SQLHelper.RunProcNewId("SpGetNewCode5ByProjectId", "dbo.HJGL_Batch_BatchTrust", "TrustBatchCode", project.ProjectId, perfix); | |||
|  | 
 | |||
|  |                 string trustBatchId = SQLHelper.GetNewID(typeof(Model.HJGL_Batch_BatchTrust)); | |||
|  |                 newBatchTrust.TrustBatchId = trustBatchId; | |||
|  | 
 | |||
|  |                 newBatchTrust.TrustDate = DateTime.Now; | |||
|  |                 newBatchTrust.ProjectId = trust.ProjectId; | |||
|  |                 newBatchTrust.UnitId = trust.UnitId; | |||
|  |                 newBatchTrust.UnitWorkId = trust.UnitWorkId; | |||
|  |                 newBatchTrust.DetectionTypeId = trust.DetectionTypeId; | |||
|  |                 newBatchTrust.NDEUuit = area.NDEUnit; | |||
|  | 
 | |||
|  |                 BLL.Batch_BatchTrustService.AddBatchTrust(newBatchTrust);  // 新增委托单 | |||
|  | 
 | |||
|  |                 // 生成委托条件对比 | |||
|  |                 var generateTrustItem = from x in db.View_GenerateTrustItem | |||
|  |                                         where x.ProjectId == trust.ProjectId  | |||
|  |                                         && x.UnitWorkId == trust.UnitWorkId && x.UnitId == trust.UnitId | |||
|  |                                         && x.DetectionTypeId == trust.DetectionTypeId | |||
|  |                                         && x.DetectionRateId==trust.DetectionRateId | |||
|  |                                         select x; | |||
|  | 
 | |||
|  |                 List<string> toPointBatchList = generateTrustItem.Select(x => x.PointBatchId).Distinct().ToList(); | |||
|  | 
 | |||
|  |                 // 生成委托明细,并回写点口明细信息 | |||
|  |                 foreach (var item in generateTrustItem) | |||
|  |                 { | |||
|  |                     if (BLL.Batch_BatchTrustItemService.GetIsGenerateTrust(item.PointBatchItemId)) ////生成委托单的条件判断 | |||
|  |                     { | |||
|  |                         Model.HJGL_Batch_BatchTrustItem trustItem = new Model.HJGL_Batch_BatchTrustItem | |||
|  |                         { | |||
|  |                             TrustBatchItemId = SQLHelper.GetNewID(typeof(Model.HJGL_Batch_BatchTrustItem)), | |||
|  |                             TrustBatchId = trustBatchId, | |||
|  |                             PointBatchItemId = item.PointBatchItemId, | |||
|  |                             WeldJointId = item.WeldJointId, | |||
|  |                             CreateDate = DateTime.Now | |||
|  |                         }; | |||
|  |                         Batch_BatchTrustItemService.AddBatchTrustItem(trustItem); | |||
|  |                     } | |||
|  | 
 | |||
|  |                     Model.HJGL_Batch_PointBatchItem pointBatchItem = db.HJGL_Batch_PointBatchItem.First(e => e.PointBatchItemId == item.PointBatchItemId); | |||
|  |                     | |||
|  |                     pointBatchItem.IsBuildTrust = true; | |||
|  |                     db.SubmitChanges(); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 | |||
|  |                 // 回写委托批对应点口信息 | |||
|  |                 if (toPointBatchList.Count()>0) | |||
|  |                 { | |||
|  |                     string toPointBatch = String.Join(",", toPointBatchList); | |||
|  |                      | |||
|  |                     var updateTrut = BLL.Batch_BatchTrustService.GetBatchTrustById(trustBatchId); | |||
|  |                     if (updateTrut != null) | |||
|  |                     { | |||
|  |                         updateTrut.TopointBatch = toPointBatch; | |||
|  |                         BLL.Batch_BatchTrustService.UpdateBatchTrust(updateTrut); | |||
|  |                     } | |||
|  |                 } | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |             Alert.ShowInTop("已成功生成委托单!", MessageBoxIcon.Success); | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion | |||
|  |     } | |||
|  | } |