CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/TestRun/DriverSub/DriverSubContactService.cs

193 lines
8.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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(); ;
}
}
}