2025-02-12 09:27:47 +08:00
using System ;
using System.Collections.Generic ;
2025-03-30 17:13:19 +08:00
using System.Data ;
using System.Data.SqlClient ;
2025-02-12 09:27:47 +08:00
using System.Linq ;
using System.Net ;
using System.Net.Http ;
using System.Web.Http ;
using BLL ;
namespace WebAPI.Controllers
{
/// <summary>
/// 会议接口
/// </summary>
public class MeetingController : ApiController
{
#region 根 据 MeetingId获取会议详细信息
/// <summary>
/// 根据MeetingId获取会议详细信息
/// </summary>
/// <param name="meetingId">会议ID</param>
/// <param name="meetingType">会议类型(C-班前会; W-周例会; M-例会; S-专题例会; A-其他会议)</param>
/// <returns>会议详细</returns>
public Model . ResponeData getMeetingByMeetingId ( string meetingId , string meetingType )
{
var responeData = new Model . ResponeData ( ) ;
try
{
responeData . data = APIMeetingService . getMeetingByMeetingId ( meetingId , meetingType ) ;
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
#region 根 据 projectId \ meetingType \ states获取会议列表
/// <summary>
/// 根据projectId、meetingType获取会议列表
/// </summary>
/// <param name="projectId"></param>
/// <param name="meetingType">会议类型(C-班前会; W-周例会; M-例会; S-专题例会; A-其他会议)</param>
/// <param name="states">状态( 0-待提交; 1-已提交)</param>
/// <param name="pageIndex">页码</param>
/// <returns></returns>
public Model . ResponeData getMeetingByProjectIdStates ( string projectId , string meetingType , string states , int pageIndex )
{
var responeData = new Model . ResponeData ( ) ;
try
{
List < Model . MeetingItem > getDataList = new List < Model . MeetingItem > ( ) ;
int pageCount = 0 ;
if ( meetingType = = "C" )
{
pageCount = Funs . DB . Meeting_ClassMeeting . Count ( x = > x . ProjectId = = projectId
& & ( states = = null | | ( states = = "0" & & ( x . States = = "0" | | x . States = = null ) ) | | ( states = = "1" & & ( x . States = = "1" | | x . States = = "2" ) ) ) ) ;
}
else if ( meetingType = = "W" )
{
pageCount = Funs . DB . Meeting_WeekMeeting . Count ( x = > x . ProjectId = = projectId
& & ( states = = null | | ( states = = "0" & & ( x . States = = "0" | | x . States = = null ) ) | | ( states = = "1" & & ( x . States = = "1" | | x . States = = "2" ) ) ) ) ;
}
else if ( meetingType = = "M" )
{
pageCount = Funs . DB . Meeting_MonthMeeting . Count ( x = > x . ProjectId = = projectId
& & ( states = = null | | ( states = = "0" & & ( x . States = = "0" | | x . States = = null ) ) | | ( states = = "1" & & ( x . States = = "1" | | x . States = = "2" ) ) ) ) ;
}
else if ( meetingType = = "S" )
{
pageCount = Funs . DB . Meeting_SpecialMeeting . Count ( x = > x . ProjectId = = projectId
& & ( states = = null | | ( states = = "0" & & ( x . States = = "0" | | x . States = = null ) ) | | ( states = = "1" & & ( x . States = = "1" | | x . States = = "2" ) ) ) ) ;
}
else
{
pageCount = Funs . DB . Meeting_AttendMeeting . Count ( x = > x . ProjectId = = projectId
& & ( states = = null | | ( states = = "0" & & ( x . States = = "0" | | x . States = = null ) ) | | ( states = = "1" & & ( x . States = = "1" | | x . States = = "2" ) ) ) ) ;
}
if ( pageCount > 0 & & pageIndex > 0 )
{
getDataList = APIMeetingService . getMeetingByProjectIdStates ( projectId , meetingType , states , pageIndex ) ;
}
responeData . data = new { pageCount , getDataList } ;
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
2025-03-30 17:13:19 +08:00
#region 根 据 ID删除会议
[HttpDelete]
public Model . ResponeData DeleteMeeting ( string meetingId )
{
var responeData = new Model . ResponeData ( ) ;
try
{
BLL . ClassMeetingService . DeleteClassMeetingById ( meetingId ) ;
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
2025-02-12 09:27:47 +08:00
#region 保 存 Meeting
/// <summary>
/// 保存Meeting
/// </summary>
/// <param name="meeting">会议信息</param>
/// <returns></returns>
[HttpPost]
public Model . ResponeData SaveMeeting ( [ FromBody ] Model . MeetingItem meeting )
{
var responeData = new Model . ResponeData ( ) ;
try
{
APIMeetingService . SaveMeeting ( meeting ) ;
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
2025-03-30 17:13:19 +08:00
#region 班 前 会 参 加 人 数 统 计
public Model . ResponeData getClassMeetingPersonCount ( string projectId , string meetingDate )
{
var responeData = new Model . ResponeData ( ) ;
try
{
// 1、获取项目用户(管理人员数量)
string projectUserSQL = "SELECT * FROM [dbo].[Project_ProjectUser] as pu LEFT JOIN [dbo].[Sys_User] as u on u.UserId = pu.UserId WHERE pu.ProjectId = @ProjectId;" ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@ProjectId" , projectId ) ) ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable userTb = SQLHelper . GetDataTableRunText ( projectUserSQL , parameter ) ;
// 2、 获取班前会列表(日期过滤)
List < Model . MeetingItem > classMettingList = APIMeetingService . getClassMeetingList ( projectId , meetingDate ) ;
int personCount = 0 ;
classMettingList . ForEach ( item = >
{
personCount + = item . AttentPersonNum ;
} ) ;
responeData . data = new
{
manager = userTb . Rows . Count ,
personCount = personCount ,
classMettingList = classMettingList
} ;
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
#region 公 司 级 班 前 会 人 员 统 计
public Model . ResponeData getCompanyMeetingPersonCounts ( string meetingDate )
{
var responeData = new Model . ResponeData ( ) ;
try
{
using ( Model . SGGLDB db = new Model . SGGLDB ( Funs . ConnString ) )
{
string sql = "SELECT p.ProjectId as projectId, p.ProjectName as projectName,(SELECT count(*) FROM [dbo].[Project_ProjectUser] as pu LEFT JOIN [dbo].[Sys_User] as u on u.UserId = pu.UserId WHERE pu.ProjectId = p.ProjectId) as manager,(SELECT SUM(AttentPersonNum) as cpunt FROM [dbo].[Meeting_ClassMeeting] as mc WHERE mc.ProjectId = p.ProjectId AND Year(ClassMeetingDate) = @year AND Month(ClassMeetingDate) = @month AND Day(ClassMeetingDate) = @day) as personCount FROM [dbo].[Base_Project] as p;" ;
DateTime mdate = Funs . GetNewDateTimeOrNow ( meetingDate ) ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@year" , mdate . Year ) ) ;
listStr . Add ( new SqlParameter ( "@month" , mdate . Month ) ) ;
listStr . Add ( new SqlParameter ( "@day" , mdate . Day ) ) ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( sql , parameter ) ;
responeData . data = tb ;
}
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
2025-02-12 09:27:47 +08:00
#region 根 据 时 间 获 取 各 单 位 班 会 情 况
/// <summary>
/// 根据时间获取各单位班会情况
/// </summary>
/// <param name="projectId"></param>
/// <param name="unitId">单位ID</param>
/// <param name="meetingDate">日期</param>
/// <param name="pageIndex">页码</param>
/// <returns></returns>
public Model . ResponeData getClassMeetingInfo ( string projectId , string unitId , string meetingDate , int pageIndex )
{
var responeData = new Model . ResponeData ( ) ;
try
{
var getDataList = APIMeetingService . getClassMeetingInfo ( projectId , unitId , meetingDate ) ;
int pageCount = getDataList . Count ( ) ;
if ( pageCount > 0 & & pageIndex > 0 )
{
getDataList = getDataList . Skip ( Funs . PageSize * ( pageIndex - 1 ) ) . Take ( Funs . PageSize ) . ToList ( ) ;
}
responeData . data = new { pageCount , getDataList } ;
}
catch ( Exception ex )
{
responeData . code = 0 ;
responeData . message = ex . Message ;
}
return responeData ;
}
#endregion
}
}