243 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			243 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Data;
 | ||
| using System.Data.SqlClient;
 | ||
| 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
 | ||
| 
 | ||
|         #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
 | ||
| 
 | ||
|         #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
 | ||
| 
 | ||
|         #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
 | ||
| 
 | ||
|         #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
 | ||
|     }
 | ||
| }
 |