| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							| 
									
										
										
										
											2024-02-21 15:13:54 +08:00
										 |  |  |  | using System.Net.NetworkInformation; | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  | using FineUIPro; | 
					
						
							|  |  |  |  | using Model; | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     /// <summary> | 
					
						
							|  |  |  |  |     /// 开车分包联络 | 
					
						
							|  |  |  |  |     /// </summary> | 
					
						
							|  |  |  |  |     public static class DriverSubContactService | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据主键获取开车分包联络信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="DriverSubContactId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.DriverSub_DriverSubContact GetDriverSubContactById(string DriverSubContactId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.DriverSub_DriverSubContact.FirstOrDefault(e => e.DriverSubContactId == DriverSubContactId); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |         public static List<Model.DriverSub_DriverSubContact> GetDriverSubContactByProjectid(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.DriverSub_DriverSubContact.Where(e => e.ProjectId == projectId).ToList(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static List<Model.DriverSub_DriverSubContact> GetDriverSubContactByDriverSubPlanId( | 
					
						
							|  |  |  |  |             string DriverSubPlanId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == DriverSubPlanId).ToList(); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 添加开车分包联络信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="DriverSubContact"></param> | 
					
						
							|  |  |  |  |         public static void AddDriverSubContact(Model.DriverSub_DriverSubContact DriverSubContact) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.DriverSub_DriverSubContact newDriverSubContact = new Model.DriverSub_DriverSubContact(); | 
					
						
							|  |  |  |  |             newDriverSubContact.DriverSubContactId = DriverSubContact.DriverSubContactId; | 
					
						
							|  |  |  |  |             newDriverSubContact.ProjectId = DriverSubContact.ProjectId; | 
					
						
							|  |  |  |  |             newDriverSubContact.Code = DriverSubContact.Code; | 
					
						
							|  |  |  |  |             newDriverSubContact.Remark = DriverSubContact.Remark; | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |             newDriverSubContact.DriverSubPlanId= DriverSubContact.DriverSubPlanId; | 
					
						
							|  |  |  |  |             newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId; | 
					
						
							|  |  |  |  |             newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType; | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |             newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional; | 
					
						
							| 
									
										
										
										
											2024-02-21 15:13:54 +08:00
										 |  |  |  |             newDriverSubContact.State= DriverSubContact.State; | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |             Funs.DB.DriverSub_DriverSubContact.InsertOnSubmit(newDriverSubContact); | 
					
						
							|  |  |  |  |             Funs.DB.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 修改开车分包联络 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="DriverSubContact"></param> | 
					
						
							|  |  |  |  |         public static void UpdateDriverSubContact(Model.DriverSub_DriverSubContact DriverSubContact) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.DriverSub_DriverSubContact newDriverSubContact = Funs.DB.DriverSub_DriverSubContact.FirstOrDefault(e => e.DriverSubContactId == DriverSubContact.DriverSubContactId); | 
					
						
							|  |  |  |  |             if (newDriverSubContact != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 newDriverSubContact.Code = DriverSubContact.Code; | 
					
						
							|  |  |  |  |                 newDriverSubContact.Remark = DriverSubContact.Remark; | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |                 newDriverSubContact.DriverSubPlanId = DriverSubContact.DriverSubPlanId; | 
					
						
							|  |  |  |  |                 newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId; | 
					
						
							|  |  |  |  |                 newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType; | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |                 newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional; | 
					
						
							| 
									
										
										
										
											2024-02-21 15:13:54 +08:00
										 |  |  |  |                 newDriverSubContact.State = DriverSubContact.State; | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                 Funs.DB.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据主键删除开车分包联络 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="DriverSubContactId"></param> | 
					
						
							|  |  |  |  |         public static void DeleteDriverSubContactById(string DriverSubContactId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.DriverSub_DriverSubContact DriverSubContact = Funs.DB.DriverSub_DriverSubContact.FirstOrDefault(e => e.DriverSubContactId == DriverSubContactId); | 
					
						
							|  |  |  |  |             if (DriverSubContact != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Funs.DB.DriverSub_DriverSubContact.DeleteOnSubmit(DriverSubContact); | 
					
						
							|  |  |  |  |                 Funs.DB.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据开车分包计划主键删除开车分包联络 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="DriverSubPlanId"></param> | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |         public static void DeleteDriverSubContactByDriverSubPlanId(string DriverSubPlanId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<Model.DriverSub_DriverSubContact> DriverSubContact = Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == DriverSubPlanId).ToList(); | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |             if (DriverSubContact.Count>0) | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |                 Funs.DB.DriverSub_DriverSubContact.DeleteAllOnSubmit(DriverSubContact); | 
					
						
							|  |  |  |  |                 Funs.DB.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  |         public static void InitDropListByDriverSubPlanId(string driverSubPlanId, string type, DropDownList dropDownList) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             dropDownList.DataSource = from x in Funs.DB.DriverSub_DriverSubContact | 
					
						
							|  |  |  |  |                 join y in Funs.DB.DriverSub_DriverSubContractors on x.DriverSubContractorsId equals y | 
					
						
							|  |  |  |  |                     .DriverSubContractorsId | 
					
						
							|  |  |  |  |                 where x.DriverSubPlanId== driverSubPlanId && x.SubcontractingType == type | 
					
						
							|  |  |  |  |                                       select new { x.DriverSubContractorsId, y.SubUnitName }; | 
					
						
							|  |  |  |  |             dropDownList.DataTextField = "SubUnitName"; | 
					
						
							|  |  |  |  |             dropDownList.DataValueField = "DriverSubContractorsId"; | 
					
						
							|  |  |  |  |             dropDownList.DataBind(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据driverSubPlanId判断是否选标完成 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="driverSubPlanId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static bool IsAllBidirectional(string driverSubPlanId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             //获取DriverSubPlanId对应的所有数据 | 
					
						
							|  |  |  |  |             var list = Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == driverSubPlanId).ToList(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             //按SubcontractingType分组,检查每组数据是否都存在一个中标单位 | 
					
						
							|  |  |  |  |             var allExist = list.GroupBy(item => item.SubcontractingType) | 
					
						
							|  |  |  |  |                 .All(g => g.Any(item => item.IsBidirectional == true)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return allExist; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static Model.DriverSub_DriverSubContact GetBidirectional(string driverSubPlanId ,string subcontractingType) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.DriverSub_DriverSubContact.FirstOrDefault(e => e.DriverSubPlanId == driverSubPlanId && e.IsBidirectional == true && e.SubcontractingType== subcontractingType); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         //根据driverSubPlanId 和DriverSubContractorsId 确定中标单位,使其IsBidirectional为true,且当前SubcontractingType下其他为false | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 确定中标单位 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="driverSubPlanId"></param> | 
					
						
							|  |  |  |  |         /// <param name="driverSubContractorsId"></param> | 
					
						
							|  |  |  |  |         public static void SetBidirectional(string driverSubPlanId, string driverSubContractorsId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             //根据driverSubPlanId 和DriverSubContractorsId 获取SubcontractingType | 
					
						
							|  |  |  |  |             var subcontractingType= Funs.DB.DriverSub_DriverSubContact.FirstOrDefault(e => e.DriverSubContractorsId == driverSubContractorsId &&e.DriverSubPlanId== driverSubPlanId | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |             )?.SubcontractingType; | 
					
						
							|  |  |  |  |             var list = Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == driverSubPlanId && e.SubcontractingType == subcontractingType).ToList(); | 
					
						
							|  |  |  |  |             foreach (var item in list) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (item.DriverSubContractorsId == driverSubContractorsId) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     item.IsBidirectional = true; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |                     item.IsBidirectional = false; | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  |             Funs.DB.SubmitChanges(); | 
					
						
							| 
									
										
										
										
											2024-01-26 17:12:01 +08:00
										 |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-02-21 15:13:54 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 确定分包商状态 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="driverSubPlanId"></param> | 
					
						
							|  |  |  |  |         /// <param name="driverSubContractorsId"></param> | 
					
						
							|  |  |  |  |         /// <param name="state"></param> | 
					
						
							|  |  |  |  |         public static void SetState(string driverSubPlanId, string driverSubContractorsId, string state) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (string.IsNullOrEmpty(state)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             var list = Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == driverSubPlanId && e.DriverSubContractorsId == driverSubContractorsId).ToList(); | 
					
						
							|  |  |  |  |             foreach (var item in list) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 item.State =int.Parse( state); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             Funs.DB.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 分包状态下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropDownList"></param> | 
					
						
							|  |  |  |  |         public static void InitDriverSubPlanState( DropDownList dropDownList) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |            dropDownList.DataSource = DropListService.drpDriverSubPlanStateList(); | 
					
						
							|  |  |  |  |            dropDownList.DataTextField = "Text"; | 
					
						
							|  |  |  |  |            dropDownList.DataValueField = "Value"; | 
					
						
							|  |  |  |  |            dropDownList.DataBind(); ; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-02-19 10:32:15 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |