using System.Collections.Generic; using System.Linq; using System.Net.NetworkInformation; using FineUIPro; using Model; namespace BLL { /// /// 开车分包联络 /// public static class DriverSubContactService { /// /// 根据主键获取开车分包联络信息 /// /// /// public static Model.DriverSub_DriverSubContact GetDriverSubContactById(string DriverSubContactId) { return Funs.DB.DriverSub_DriverSubContact.FirstOrDefault(e => e.DriverSubContactId == DriverSubContactId); } public static List GetDriverSubContactByProjectid(string projectId) { return Funs.DB.DriverSub_DriverSubContact.Where(e => e.ProjectId == projectId).ToList(); } public static List GetDriverSubContactByDriverSubPlanId( string DriverSubPlanId) { return Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == DriverSubPlanId).ToList(); } /// /// 添加开车分包联络信息 /// /// 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; newDriverSubContact.DriverSubPlanId= DriverSubContact.DriverSubPlanId; newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId; newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType; newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional; newDriverSubContact.State= DriverSubContact.State; Funs.DB.DriverSub_DriverSubContact.InsertOnSubmit(newDriverSubContact); Funs.DB.SubmitChanges(); } /// /// 修改开车分包联络 /// /// 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; newDriverSubContact.DriverSubPlanId = DriverSubContact.DriverSubPlanId; newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId; newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType; newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional; newDriverSubContact.State = DriverSubContact.State; Funs.DB.SubmitChanges(); } } /// /// 根据主键删除开车分包联络 /// /// 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(); } } /// /// 根据开车分包计划主键删除开车分包联络 /// /// public static void DeleteDriverSubContactByDriverSubPlanId(string DriverSubPlanId) { List DriverSubContact = Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == DriverSubPlanId).ToList(); if (DriverSubContact.Count>0) { 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(); } /// /// 根据driverSubPlanId判断是否选标完成 /// /// /// 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 /// /// 确定中标单位 /// /// /// 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 { item.IsBidirectional = false; } } Funs.DB.SubmitChanges(); } /// /// 确定分包商状态 /// /// /// /// 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(); } /// /// 分包状态下拉框 /// /// public static void InitDriverSubPlanState( DropDownList dropDownList) { dropDownList.DataSource = DropListService.drpDriverSubPlanStateList(); dropDownList.DataTextField = "Text"; dropDownList.DataValueField = "Value"; dropDownList.DataBind(); ; } } }