SGGL_HBAZ/SGGL/WebAPI/Controllers/HSSE/MeetingController.cs

243 lines
9.8 KiB
C#
Raw Normal View History

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
}
}