193 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Collections.Generic;
 | ||
| using System.Linq;
 | ||
| using System.Net.NetworkInformation;
 | ||
| using FineUIPro;
 | ||
| using Model;
 | ||
| 
 | ||
| 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);
 | ||
|         }
 | ||
| 
 | ||
|         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();
 | ||
|         }
 | ||
|         /// <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;
 | ||
|             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();
 | ||
|         }
 | ||
| 
 | ||
|         /// <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;
 | ||
|                 newDriverSubContact.DriverSubPlanId = DriverSubContact.DriverSubPlanId;
 | ||
|                 newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId;
 | ||
|                 newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType;
 | ||
|                 newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional;
 | ||
|                 newDriverSubContact.State = DriverSubContact.State;
 | ||
|                 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();
 | ||
|             }
 | ||
|         }
 | ||
|         /// <summary>
 | ||
|         /// 根据开车分包计划主键删除开车分包联络
 | ||
|         /// </summary>
 | ||
|         /// <param name="DriverSubPlanId"></param>
 | ||
|         public static void DeleteDriverSubContactByDriverSubPlanId(string DriverSubPlanId)
 | ||
|         {
 | ||
|             List<Model.DriverSub_DriverSubContact> 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();
 | ||
|         }
 | ||
| 
 | ||
|         /// <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
 | ||
|                 {
 | ||
|                     item.IsBidirectional = false;
 | ||
|                 }
 | ||
|             }
 | ||
|             Funs.DB.SubmitChanges();
 | ||
|         }
 | ||
|         /// <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(); ;
 | ||
|         }
 | ||
| 
 | ||
|     }
 | ||
| }
 |