using Nancy;
using Learun.Util;
using System.Collections.Generic;
using Learun.Application.TwoDevelopment.EducationalAdministration;
using static Learun.Application.WebApi.Modules.StuInfoFreshApi;
using System;
using System.IO;
using System.Linq;
using Learun.Application.Base.SystemModule;
using Learun.Application.OA;
using Learun.Application.OA.File.FileInfo;
using Learun.Application.TwoDevelopment.LogisticsManagement;
using Learun.Application.TwoDevelopment.LR_Desktop;
using Learun.Application.WorkFlow;
using Microsoft.Ajax.Utilities;
namespace Learun.Application.WebApi
{
///2022.11.14
///
/// 学生请假
///
public class StuLeaveManagementApi : BaseApi
{
private StuLeaveManagementIBLL stuLeaveManagementIBLL = new StuLeaveManagementBLL();
private NWFProcessIBLL nWFProcessIBLL = new NWFProcessBLL();
///
/// 注册接口
///
public StuLeaveManagementApi()
: base("/Learun/adms/EducationalAdministration/StuLeaveManagement")
{
Get["/pagelist"] = GetPageList;
Get["/form"] = GetForm;
Post["/delete"] = DeleteForm;
Post["/save"] = SaveForm;
//判断是否可以审核
Get["/ischeck"] = IsCheck;
//学生请假--教师审核列表
Get["/checkpagelist"] = GetCheckPageList;
//审核学生请假
Post["/savecheck"] = SaveCheckForm;
Post["/submit"] = Submit;
Get["/shList"] = GetshList;
}
#region 获取数据
///
/// 获取页面显示列表分页数据
///
///
///
public Response GetPageList(dynamic _)
{
ReqPageParam parameter = this.GetReqData();
var data = stuLeaveManagementIBLL.GetPageList(parameter.pagination, parameter.queryJson);
var jsonData = new
{
rows = data,
total = parameter.pagination.total,
page = parameter.pagination.page,
records = parameter.pagination.records
};
return Success(jsonData);
}
///
/// 获取页面显示列表数据
///
///
///
public Response GetshList(dynamic _)
{
StuLeaveManagementEntity parameter = this.GetReqData();
var stuLeaveManagementData = stuLeaveManagementIBLL.GetEntityByProcessId(parameter.ProcessId);
var jsonData = new
{
stuLeaveManagement = stuLeaveManagementData,
};
return Success(jsonData);
}
///
/// 学生请假--教师审核列表
///
///
///
public Response GetCheckPageList(dynamic _)
{
ReqPageParam parameter = this.GetReqData();
var data = stuLeaveManagementIBLL.GetCheckPageList(parameter.pagination, parameter.queryJson);
var jsonData = new
{
rows = data,
total = parameter.pagination.total,
page = parameter.pagination.page,
records = parameter.pagination.records
};
return Success(jsonData);
}
///
/// 获取表单数据
///
///
///
public Response GetForm(dynamic _)
{
string keyValue = this.GetReqData();
var StuLeaveManagementData = stuLeaveManagementIBLL.GetStuLeaveManagementEntity(keyValue);
var jsonData = new
{
StuLeaveManagement = StuLeaveManagementData,
};
return Success(jsonData);
}
#endregion
#region 提交数据
///
/// 删除实体数据
///
///
///
public Response DeleteForm(dynamic _)
{
string keyValue = this.GetReqData();
stuLeaveManagementIBLL.DeleteEntity(keyValue);
return Success("删除成功!");
}
///
/// 保存实体数据(新增、修改)
///
///
///
public Response SaveForm(dynamic _)
{
var loginInfo = LoginUserInfo.Get();
ReqFormEntity parameter = this.GetReqData();
StuLeaveManagementEntity entity = parameter.strEntity.ToObject();
if (string.IsNullOrEmpty(parameter.keyValue))
{
entity.CreateUserId = loginInfo.userId;
entity.CreateUserNo = loginInfo.account;
entity.CreateTime = DateTime.Now;
}
stuLeaveManagementIBLL.SaveEntity(parameter.keyValue, entity);
return Success("保存成功!");
}
///
/// 判断是否可以审核
///
///
///
public Response IsCheck(dynamic _)
{
string keyValue = this.GetReqData();
var stuLeaveManagementData = stuLeaveManagementIBLL.GetStuLeaveManagementEntity(keyValue);
bool isDeptDirector = false; //登录用户是否是系主任标识
var deptDirectorRoleId = Config.GetValue("DeptDirectorRoleId");
var loginInfoRoleIds = LoginUserInfo.Get().roleIds;
if (loginInfoRoleIds.IndexOf(',') == -1)
{
if (loginInfoRoleIds == deptDirectorRoleId)
{
isDeptDirector = true;
}
}
else
{
if (loginInfoRoleIds.Split(',').Contains(deptDirectorRoleId))
{
isDeptDirector = true;
}
}
if (stuLeaveManagementData.LeaveDay > 2 && !isDeptDirector)
{
return Fail("该请假申请大于2天,需要由系主任审核!");
}
return Success("");
}
///
/// 审核学生请假
///
///
///
public Response SaveCheckForm(dynamic _)
{
var loginInfo = LoginUserInfo.Get();
ReqFormEntity parameter = this.GetReqData();
StuLeaveManagementEntity entity = parameter.strEntity.ToObject();
entity.CheckUserId = loginInfo.userId;
entity.CheckUserNo = loginInfo.account;
entity.CheckTime = DateTime.Now;
stuLeaveManagementIBLL.SaveEntity(parameter.keyValue, entity);
return Success("保存成功!");
}
///
/// 提交
///
///
///
public Response Submit(dynamic _)
{
string keyValue = this.GetReqData();
var processId = Guid.NewGuid().ToString();
stuLeaveManagementIBLL.ChangeStatusById(keyValue, 1, processId);
UserInfo userInfo = LoginUserInfo.Get();
nWFProcessIBLL.CreateFlow("StuLeaveManagement", processId, "", 1, "", userInfo);
return Success("提交成功!");
}
#endregion
#region 私有类
///
/// 表单实体类
///
private class ReqFormEntity
{
public string keyValue { get; set; }
public string strEntity { get; set; }
}
#endregion
}
}