using Dapper;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.LogisticsManagement;
using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement;
using Learun.DataBase.Repository;
using Learun.Util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Learun.Application.Base.SystemModule;
namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
///
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创 建:超级管理员
/// 日 期:2019-07-17 11:20
/// 描 述:新生录取管理
///
public class StuEnrollService : RepositoryFactory
{
#region 获取数据
///
/// 获取页面显示列表数据
///
/// 查询参数
///
public IEnumerable GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.StuId,
t.RegistrationNo,
t.StuName,
t.Gender,
t.Nationals,
t.Birthday,
t.IDCard,
t.Political,
t.FreshType,
t.ResidenceType,
t.StuType,
t.ResidenceAddress,
t.NonNative,
t.FromSchool,
t.HomeAddress,
t.FirstGuardian,
t.FirstRelationship,
t.FirstUnits,
t.FirstMobile,
t.SecondGuardian,
t.SecondRelationship,
t.SecondUnits,
t.SecondMobile,
t.Acceptance,
t.Recipient,
t.ZipCode,
t.MedicalHistory,
t.AdditionalCare,
t.MajorNo,
t.MajorName,
t.Admissions,
t.IsAccommodation,
t.ExamRegistration,
t.ClassNo,
t.DormitoryNo,
t.DormitoryName,
t.IsPay,
t.IsCheckIn,
t.IsCheckIn2,
t.EnrollType,
t.IsSubsidize1,
t.IsSubsidize12,
t.IsMilitary,
t.IsMilitary2,
t.IsQuantity,
t.IsTakeCloths,
t.IsMug,
t.IsGetBeddingArticle,
t.IsReport,
t.EductionalSystme,
t.CheckInUrl,
t.SubsidizeUrl,
t.MilitaryUrl,
t.AddTime,
t.StuNo,
t.StuStatusNo,
t.PayAmount,
t.ActualPayAmount,
t.DeptNo,
t.Grade,
t.THROUGHPROJECT,
t.Status,t.StuMobile,t.Specialty,t.City,t.County,t.EmpNo,t.IsAdmission,t.EnrollStatus,t.MidTermExam,t.zusu
");
strSql.Append(" FROM StuEnroll t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["IDCard"].IsEmpty())
{
dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String);
strSql.Append(" AND t.IDCard Like @IDCard ");
}
if (!queryParam["Year"].IsEmpty())
{
dp.Add("Year", "%" + queryParam["Year"].ToString() + "%", DbType.String);
strSql.Append(" AND t.ClassNo Like @Year ");
}
//sql条件
if (!queryParam["SqlParameter"].IsEmpty())
{
strSql.Append(queryParam["SqlParameter"].ToString());
}
if (!queryParam["RegistrationNo"].IsEmpty())
{
dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String);
strSql.Append(" AND t.RegistrationNo Like @RegistrationNo ");
}
if (!queryParam["Admissions"].IsEmpty())
{
dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String);
strSql.Append(" AND t.Admissions = @Admissions ");
}
if (!queryParam["DeptNo"].IsEmpty())
{
dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
strSql.Append(" AND t.DeptNo = @DeptNo ");
}
if (!queryParam["MajorNo"].IsEmpty())
{
dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
strSql.Append(" AND t.MajorNo = @MajorNo ");
}
if (!queryParam["Grade"].IsEmpty())
{
dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
strSql.Append(" AND t.Grade = @Grade ");
}
if (!queryParam["ClassNo"].IsEmpty())
{
dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
strSql.Append(" AND t.ClassNo = @ClassNo ");
}
if (!queryParam["IsAllocation"].IsEmpty())
{
var IsAllocation = Convert.ToBoolean(queryParam["IsAllocation"].ToString());
if (IsAllocation)
{
strSql.Append(" AND (t.ClassNo IS NOT NULL AND t.ClassNo<>'')");
}
else
{
strSql.Append(" AND (t.ClassNo IS NULL OR t.ClassNo='')");
}
}
if (!queryParam["IsAllocationDormitory"].IsEmpty())
{
var IsAllocation = Convert.ToBoolean(queryParam["IsAllocationDormitory"].ToString());
if (IsAllocation)
{
strSql.Append(" AND (t.DormitoryNo IS NOT NULL AND t.DormitoryNo<>'')");
}
else
{
strSql.Append(" AND (t.DormitoryNo IS NULL OR t.DormitoryNo='')");
}
}
if (!queryParam["StuName"].IsEmpty())
{
dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.StuName Like @StuName ");
}
if (!queryParam["Status"].IsEmpty())
{
dp.Add("Status", queryParam["Status"].ToString(), DbType.String);
strSql.Append(" AND t.Status = @Status ");
}
if (!queryParam["Gender"].IsEmpty())
{
dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean);
strSql.Append(" AND t.Gender = @Gender ");
}
if (!queryParam["PayList"].IsEmpty())
{
strSql.Append(" AND t.Status>=3 AND t.Status<6 ");
}
if (!queryParam["IsCheckIn"].IsEmpty())
{
if (queryParam["IsCheckIn"].ToString() == "null")
{
strSql.Append(" AND t.IsCheckIn is null ");
}
else
{
dp.Add("IsCheckIn", queryParam["IsCheckIn"].ToString(), DbType.String);
strSql.Append(" AND t.IsCheckIn = @IsCheckIn ");
}
}
if (!queryParam["IsSubsidize1"].IsEmpty())
{
if (queryParam["IsSubsidize1"].ToString() == "null")
{
strSql.Append(" AND t.IsSubsidize1 is null ");
}
else
{
dp.Add("IsSubsidize1", queryParam["IsSubsidize1"].ToString(), DbType.String);
strSql.Append(" AND t.IsSubsidize1 = @IsSubsidize1 ");
}
}
if (!queryParam["IsMilitary"].IsEmpty())
{
if (queryParam["IsMilitary"].ToString() == "null")
{
strSql.Append(" AND t.IsMilitary is null ");
}
else
{
dp.Add("IsMilitary", queryParam["IsMilitary"].ToString(), DbType.String);
strSql.Append(" AND t.IsMilitary = @IsMilitary ");
}
}
if (!queryParam["IsPay"].IsEmpty())
{
if (queryParam["IsPay"].ToString() == "null")
{
strSql.Append(" AND t.IsPay is null ");
}
else
{
dp.Add("IsPay", queryParam["IsPay"].ToString(), DbType.String);
strSql.Append(" AND t.IsPay = @IsPay ");
}
}
if (!queryParam["IsMug"].IsEmpty())
{
if (queryParam["IsMug"].ToString() == "null")
{
strSql.Append(" AND t.IsMug is null ");
}
else
{
dp.Add("IsMug", queryParam["IsMug"].ToString(), DbType.String);
strSql.Append(" AND t.IsMug = @IsMug ");
}
}
if (!queryParam["IsTakeCloths"].IsEmpty())
{
if (queryParam["IsTakeCloths"].ToString() == "null")
{
strSql.Append(" AND t.IsTakeCloths is null ");
}
else
{
dp.Add("IsTakeCloths", queryParam["IsTakeCloths"].ToString(), DbType.String);
strSql.Append(" AND t.IsTakeCloths = @IsTakeCloths ");
}
}
if (!queryParam["IsQuantity"].IsEmpty())
{
if (queryParam["IsQuantity"].ToString() == "null")
{
strSql.Append(" AND t.IsQuantity is null ");
}
else
{
dp.Add("IsQuantity", queryParam["IsQuantity"].ToString(), DbType.String);
strSql.Append(" AND t.IsQuantity = @IsQuantity ");
}
}
if (!queryParam["IsGetBeddingArticle"].IsEmpty())
{
if (queryParam["IsGetBeddingArticle"].ToString() == "null")
{
strSql.Append(" AND t.IsGetBeddingArticle is null ");
}
else
{
dp.Add("IsGetBeddingArticle", queryParam["IsGetBeddingArticle"].ToString(), DbType.String);
strSql.Append(" AND t.IsGetBeddingArticle = @IsGetBeddingArticle ");
}
}
//获取班主任所带的班级
var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "班主任")?.F_RoleId;
var userInfo = LoginUserInfo.Get();
var sqlClasses = "";
if (!string.IsNullOrEmpty(roleid))
{
if (userInfo.roleIds.Contains(roleid))
{
var classes = this.BaseRepository("CollegeMIS").FindList(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList();
if (classes != null)
{
foreach (var item in classes)
{
sqlClasses += $"'{item}',";
}
sqlClasses = sqlClasses.TrimEnd(',');
}
}
if (!string.IsNullOrEmpty(sqlClasses))
{
strSql.Append($" AND t.ClassNo IN({sqlClasses})");
}
}
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetPageListForTJ(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@" isnull(s.physicsAndChemistry,0) physicsAndChemistry,isnull(s.english,0) english,isnull(s.chinese,0) chinese,
isnull(s.politicsAndHistory,0) politicsAndHistory,isnull(s.physicalEducation,0) physicalEducation,isnull(s.math,0) math,
t.StuName,t.Gender,t.Nationals,t.IDCard,t.HomeAddress,t.StuMobile,
t.MidTermExam,t.FromSchool,t.Specialty,t.City,t.County,t.MajorNo,t.EmpNo ");
strSql.Append(" FROM StuEnroll t ");
strSql.Append(@" left join (
select a.StuEnrollId, max( case when a.subjectname = '物理与化学' then a.score else 0 end) as physicsAndChemistry,
max(case when a.subjectname = '英语' then a.score else 0 end) as english,
max( case when a.subjectname = '语文' then a.score else 0 end) as chinese,
max(case when a.subjectname = '政治与历史' then a.score else 0 end) as politicsAndHistory,
max(case when a.subjectname = '体育' then a.score else 0 end) as physicalEducation,
max(case when a.subjectname = '数学' then a.score else 0 end) as math
from StuEnrollMidExamScore a
group by a.StuEnrollId
) s
on t.stuid = s.StuEnrollId ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
#region SqlWhere
if (!queryParam["City"].IsEmpty())
{
dp.Add("City", queryParam["City"].ToString(), DbType.String);
strSql.Append(" AND t.City = @City ");
}
if (!queryParam["County"].IsEmpty())
{
dp.Add("County", queryParam["County"].ToString(), DbType.String);
strSql.Append(" AND t.County = @County ");
}
if (!queryParam["IDCard"].IsEmpty())
{
dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String);
strSql.Append(" AND t.IDCard Like @IDCard ");
}
if (!queryParam["Year"].IsEmpty())
{
dp.Add("Year", queryParam["Year"].ToString(), DbType.String);
strSql.Append(" AND t.Year = @Year ");
}
//sql条件
if (!queryParam["SqlParameter"].IsEmpty())
{
strSql.Append(queryParam["SqlParameter"].ToString());
}
if (!queryParam["Admissions"].IsEmpty())
{
dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String);
strSql.Append(" AND t.Admissions = @Admissions ");
}
if (!queryParam["DeptNo"].IsEmpty())
{
dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
strSql.Append(" AND t.DeptNo = @DeptNo ");
}
if (!queryParam["MajorNo"].IsEmpty())
{
dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
strSql.Append(" AND t.MajorNo = @MajorNo ");
}
if (!queryParam["EmpNo"].IsEmpty())
{
dp.Add("EmpNo", queryParam["EmpNo"].ToString(), DbType.String);
strSql.Append(" AND t.EmpNo = @EmpNo ");
}
if (!queryParam["Grade"].IsEmpty())
{
dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
strSql.Append(" AND t.Grade = @Grade ");
}
if (!queryParam["ClassNo"].IsEmpty())
{
dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
strSql.Append(" AND t.ClassNo = @ClassNo ");
}
if (!queryParam["StuName"].IsEmpty())
{
dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.StuName Like @StuName ");
}
if (!queryParam["StuMobile"].IsEmpty())
{
dp.Add("StuMobile", "%" + queryParam["StuMobile"].ToString() + "%", DbType.String);
strSql.Append(" AND t.StuMobile Like @StuMobile ");
}
if (!queryParam["Gender"].IsEmpty())
{
dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean);
strSql.Append(" AND t.Gender = @Gender ");
}
//获取班主任所带的班级
var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "班主任")?.F_RoleId;
var userInfo = LoginUserInfo.Get();
var sqlClasses = "";
if (!string.IsNullOrEmpty(roleid))
{
if (userInfo.roleIds.Contains(roleid))
{
var classes = this.BaseRepository("CollegeMIS").FindList(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList();
if (classes != null)
{
foreach (var item in classes)
{
sqlClasses += $"'{item}',";
}
sqlClasses = sqlClasses.TrimEnd(',');
}
}
if (!string.IsNullOrEmpty(sqlClasses))
{
strSql.Append($" AND t.ClassNo IN({sqlClasses})");
}
}
#endregion
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable AllStudent()
{
try
{
return this.BaseRepository("CollegeMIS").FindList();
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetDormitorys(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.ID,
t.Name,
t.Address,
t.Campus,
t.Dept,
t.BuildType,
t.Major,
t.Class,
t.Sex,
t.Functionary,
t.Phone,
t.Price,
t.Leader,
t.StudentID,
t.PlanStudentID,
t.ParentID,
t.Remark,
t.Starred,
t.PlanClassNo,
t.HasToilet
");
strSql.Append(" FROM Acc_DormitoryBuild t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["ParentID"].IsEmpty())
{
dp.Add("ParentID", queryParam["ParentID"].ToString(), DbType.String);
strSql.Append(" AND t.ParentID =@ParentID ");
}
if (!queryParam["Sex"].IsEmpty())
{
dp.Add("Sex", queryParam["Sex"].ToString(), DbType.String);
strSql.Append(" AND t.Sex = @Sex ");
}
if (!queryParam["IsAllocationDormitory"].IsEmpty())
{
if (queryParam["IsAllocationDormitory"].ToString() == "false")
{
strSql.Append(" AND t.PlanClassNo is not null or t.PlanClassNo<>'' ");
}
else
{
strSql.Append(" AND t.PlanClassNo is null or t.PlanClassNo=''");
}
}
if (!queryParam["PlanClassNo"].IsEmpty())
{
dp.Add("PlanClassNo", queryParam["PlanClassNo"].ToString(), DbType.String);
strSql.Append(" AND t.PlanClassNo =@PlanClassNo ");
}
var data = this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination).OrderBy(a => a.Name).ToList();
foreach (var item in data)
{
item.ChildCount = this.BaseRepository("CollegeMIS").FindList(a => a.ParentID == item.ID).Count();
}
return data;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal List> GetTree()
{
try
{
var data = this.BaseRepository("CollegeMIS").FindList(a => !string.IsNullOrEmpty(a.ClassNo)).ToList();
var classInfos = this.BaseRepository("CollegeMIS").FindList().ToList();
var classes = data.GroupBy(a => a.ClassNo).Select(a => a.Key).ToList();
List> list = new List>();
foreach (var classNo in classes)
{
var boy = data.Count(a => a.ClassNo == classNo && a.Gender == true);
var girl = data.Count(a => a.ClassNo == classNo && a.Gender == false);
var className = classInfos.FirstOrDefault(a => a.ClassNo == classNo)?.ClassName;
Tuple tuple = new Tuple(boy, girl, classNo, className);
list.Add(tuple);
}
return list;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal List GetBedTree(string classNo, string gender)
{
try
{
var sex = "";
if (gender == "true")
{
sex = "1";
}
else
{
sex = "0";
}
List list = new List();
var data = this.BaseRepository("CollegeMIS").FindList(a => a.PlanClassNo == classNo && a.Sex == sex).ToList();
var bb = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in data)
{
list.Add(item);
var beds = this.BaseRepository("CollegeMIS").FindList(a => a.ParentID == item.ID).ToList();
foreach (var bed in beds)
{
var stuName = bb.FirstOrDefault(a => a.DormitoryNo == bed.ID)?.StuName;
if (!string.IsNullOrEmpty(stuName))
{
bed.Name = $"{bed.Name}({stuName})";
}
list.Add(bed);
}
}
return list;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal List GetStuIdCards()
{
try
{
return this.BaseRepository("CollegeMIS").FindList().Select(a => a.IDCard).ToList();
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal object GetStuInfo(string stuId)
{
try
{
var stuEnroll = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == stuId);
var majorInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.MajorNo == stuEnroll.MajorNo);
var deptNo = majorInfo?.DeptNo;
var majorName = majorInfo?.MajorName;
var deptName = this.BaseRepository("CollegeMIS").FindEntity(a => a.DeptNo == deptNo)?.DeptName;
var classInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.ClassNo == stuEnroll.ClassNo);
var teacherInfo = new EmpInfoEntity();
var yearAndSemester = Common.GetSemesterAndYear();
var result = new List();
if (classInfo != null)
{
teacherInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.EmpNo == classInfo.ClassDiredctorNo);
result = this.BaseRepository("CollegeMIS").FindList(a => a.Grade == classInfo.Grade && a.MajorNo == stuEnroll.MajorNo && a.AcademicYearNo == yearAndSemester.AcademicYearShort && a.Semester == yearAndSemester.Semester)
.Select(a => new StuPayInfo
{
standerid = a.ChargeItemID,
shouldPay = a.Standard,
standard = a.Standard,
standerdName = this.BaseRepository("CollegeMIS").FindEntity(b => b.ChargeItemID == a.ChargeItemID).ChargeItemName.Trim()
}).ToList();
}
foreach (var item in result)
{
//住宿费
if (item.standerid == 12 && stuEnroll.IsCheckIn == false)
{
item.shouldPay = 0;
}
//学费
if (item.standerid == 14 && stuEnroll.IsSubsidize1 == true)
{
item.shouldPay = 0;
}
switch (item.standerid)
{
case 12:
if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
break;
case 14:
if (stuEnroll.IsSubsidize1 == true) item.shouldPay = 0;
break;
case 15:
if (stuEnroll.IsMilitary == false) item.shouldPay = 0;
break;
case 32:
if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
break;
case 33:
if (stuEnroll.EnrollType == "0") item.shouldPay = 0;
break;
default:
break;
}
}
decimal money = 0;
decimal allMoney = 0;
//记录缴费金额
foreach (var item in result)
{
money += Convert.ToDecimal(item.shouldPay);
allMoney += Convert.ToDecimal(item.standard);
}
stuEnroll.PayAmount = money;
this.BaseRepository("CollegeMIS").Update(stuEnroll);
return new
{
deptName,
majorName,
className = classInfo?.ClassName,
teacherName = teacherInfo?.EmpName,
teacherMobile = teacherInfo?.mobile,
chagerItemList = result,
money,
allMoney
};
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public class StuPayInfo
{
public int standerid { get; set; }
public decimal? shouldPay { get; set; }
public decimal? standard { get; set; }
public string standerdName { get; set; }
}
internal object GetCheckInStatistics(string DeptNo, string MajorNo, string ClassNo)
{
try
{
var data = this.BaseRepository("CollegeMIS").FindList()
.Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo)
.Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo)
.Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo)
;
var aa = data.Count(a => a.IsCheckIn == true);
var bb = data.Count(a => a.IsCheckIn == false);
return new { aa, bb };
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal object GetHelpStatistics(string DeptNo, string MajorNo, string ClassNo)
{
try
{
var data = this.BaseRepository("CollegeMIS").FindList()
.Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo)
.Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo)
.Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo)
;
var aa = data.Count(a => a.IsSubsidize1 == true);
var bb = data.Count(a => a.IsSubsidize1 == false);
return new { aa, bb };
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal object GetMilitaryStatistics(string DeptNo, string MajorNo, string ClassNo)
{
try
{
var data = this.BaseRepository("CollegeMIS").FindList()
.Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo)
.Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo)
.Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo)
;
var aa = data.Count(a => a.IsMilitary == true);
var bb = data.Count(a => a.IsMilitary == false);
return new { aa, bb };
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取页面显示列表数据
///
/// 查询参数
///
public IEnumerable GetReportPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.StuId,
t.RegistrationNo,
t.StuName,
t.Gender,
t.Nationals,
t.Birthday,
t.IDCard,
t.Political,
t.FreshType,
t.ResidenceType,
t.StuType,
t.ResidenceAddress,
t.NonNative,
t.FromSchool,
t.HomeAddress,
t.FirstGuardian,
t.FirstRelationship,
t.FirstUnits,
t.FirstMobile,
t.SecondGuardian,
t.SecondRelationship,
t.SecondUnits,
t.SecondMobile,
t.Acceptance,
t.Recipient,
t.ZipCode,
t.MedicalHistory,
t.AdditionalCare,
t.MajorNo,
t.MajorName,
t.Admissions,
t.IsAccommodation,
t.ExamRegistration,
t.ClassNo,
t.DormitoryNo,
t.DormitoryName,
t.EnrollType,
t.IsCheckIn,
t.IsSubsidize1,
t.IsMilitary,
t.Grade,
t.IsQuantity,
t.IsTakeCloths,
t.IsMug,
t.IsGetBeddingArticle,
t.IsReport,
t.EductionalSystme,
t.AddTime,
t.StuNo,
t.StuStatusNo,
t.SecurityAgreement,
t.Status
");
strSql.Append(" FROM StuEnroll t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["IsReport"].IsEmpty())
{
if (queryParam["IsReport"].ToString() == "null")
{
strSql.Append(" AND t.IsReport is null ");
}
else
{
dp.Add("IsReport", queryParam["IsReport"].ToString(), DbType.String);
strSql.Append(" AND t.IsReport = @IsReport ");
}
}
if (!queryParam["IDCard"].IsEmpty())
{
dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String);
strSql.Append(" AND t.IDCard Like @IDCard ");
}
if (!queryParam["DeptNo"].IsEmpty())
{
dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
strSql.Append(" AND t.DeptNo = @DeptNo ");
}
if (!queryParam["Admissions"].IsEmpty())
{
dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String);
strSql.Append(" AND t.Admissions = @Admissions ");
}
if (!queryParam["Grade"].IsEmpty())
{
dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
strSql.Append(" AND t.Grade = @Grade ");
}
if (!queryParam["MajorNo"].IsEmpty())
{
dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
strSql.Append(" AND t.MajorNo = @MajorNo ");
}
if (!queryParam["ClassNo"].IsEmpty())
{
dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
strSql.Append(" AND t.ClassNo = @ClassNo ");
}
if (!queryParam["RegistrationNo"].IsEmpty())
{
dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String);
strSql.Append(" AND t.RegistrationNo Like @RegistrationNo ");
}
if (!queryParam["StuName"].IsEmpty())
{
dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.StuName Like @StuName ");
}
//获取班主任所带的班级
var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "班主任").F_RoleId;
var userInfo = LoginUserInfo.Get();
var sqlClasses = "";
if (userInfo.roleIds.Contains(roleid))
{
var classes = this.BaseRepository("CollegeMIS").FindList(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList();
if (classes != null)
{
foreach (var item in classes)
{
sqlClasses += $"'{item}',";
}
sqlClasses = sqlClasses.TrimEnd(',');
}
}
if (!string.IsNullOrEmpty(sqlClasses))
{
strSql.Append($" AND t.ClassNo IN({sqlClasses})");
}
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) Stay(string stuId, bool status, bool payAfter)
{
try
{
var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "学生科科长")?.F_RoleId;
var loginUser = LoginUserInfo.Get();
var resultbool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
if (payAfter)
{
//if (loginUser.roleIds.Contains(roleid))
//{
item.IsCheckIn2 = status;
this.BaseRepository("CollegeMIS").Update(item);
//}
}
else
{
item.IsCheckIn = status;
item.IsCheckIn2 = status;
item.Status = 2;
if (!status)
{
item.IsGetBeddingArticle = false;
}
this.BaseRepository("CollegeMIS").Update(item);
}
StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
amountRecordEntity.Create();
if (status)
{
amountRecordEntity.Content = "确认入住";
}
else
{
amountRecordEntity.Content = "取消入住";
}
amountRecordEntity.StuID = item.StuId;
this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
}
resultbool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultbool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllStay()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList(a => a.IsPay != true && a.IsReport == true).ToList();
foreach (var item in list)
{
item.IsCheckIn = true;
item.IsCheckIn2 = true;
item.Status = 2;
this.BaseRepository("CollegeMIS").Update(item);
StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
amountRecordEntity.Create();
amountRecordEntity.Content = "确认入住";
amountRecordEntity.StuID = item.StuId;
this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) Help(string stuId, bool status, bool payAfter)
{
try
{
var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "学生科科长")?.F_RoleId;
var loginUser = LoginUserInfo.Get();
var resultbool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
if (payAfter)
{
//if (loginUser.roleIds.Contains(roleid))
//{
item.IsSubsidize12 = status;
this.BaseRepository("CollegeMis").Update(item);
//}
}
else
{
item.IsSubsidize1 = status;
item.IsSubsidize12 = status;
item.Status = 3;
this.BaseRepository("CollegeMis").Update(item);
}
StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
amountRecordEntity.Create();
if (status)
{
amountRecordEntity.Content = "确认资助";
}
else
{
amountRecordEntity.Content = "取消资助";
}
amountRecordEntity.StuID = item.StuId;
this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
}
resultbool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultbool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllHelp()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList(a => a.IsPay != true && a.IsReport == true).ToList();
foreach (var item in list)
{
item.IsSubsidize1 = true;
item.Status = 3;
this.BaseRepository("CollegeMIS").Update(item);
StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
amountRecordEntity.Create();
amountRecordEntity.Content = "确认资助";
amountRecordEntity.StuID = item.StuId;
this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) Military(string stuId, bool status, bool payAfter)
{
try
{
var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "学生科科长")?.F_RoleId;
var loginUser = LoginUserInfo.Get();
var resultbool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
if (payAfter)
{
//if (loginUser.roleIds.Contains(roleid))
//{
item.IsMilitary2 = status;
this.BaseRepository("CollegeMis").Update(item);
//}
}
else
{
item.IsMilitary = status;
item.IsMilitary2 = status;
item.Status = 4;
if (!status)
{
item.IsTakeCloths = false;
}
this.BaseRepository("CollegeMis").Update(item);
}
StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
amountRecordEntity.Create();
if (status)
{
amountRecordEntity.Content = "确认军训";
}
else
{
amountRecordEntity.Content = "取消军训";
}
amountRecordEntity.StuID = item.StuId;
this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
}
resultbool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultbool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllReport()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in list)
{
item.IsReport = true;
item.SecurityAgreement = true;
item.Status = 1;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllPhoto()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in list)
{
item.IsMug = true;
item.Status = 6;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllGetCloth()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in list)
{
item.IsTakeCloths = true;
item.Status = 7;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllGetSize()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in list)
{
item.IsQuantity = true;
item.Status = 8;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllGetArticle()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in list)
{
item.IsGetBeddingArticle = true;
item.Status = 9;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllMilitary()
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList(a => a.IsPay != true && a.IsReport == true).ToList();
foreach (var item in list)
{
item.IsMilitary = true;
item.Status = 4;
this.BaseRepository("CollegeMIS").Update(item);
StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
amountRecordEntity.Create();
amountRecordEntity.Content = "确认军训";
amountRecordEntity.StuID = item.StuId;
this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) IsPay(string stuId, bool status)
{
try
{
var resultbool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
item.IsPay = status;
item.Status = 5;
this.BaseRepository("CollegeMis").Update(item);
}
resultbool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultbool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 缴费金额统计
///
///
internal object GetPaymentInfo()
{
try
{
var model = this.BaseRepository("CollegeMIS").FindList().ToList();
var listAllamount = model.Where(a => a.PayAmount != null && a.IsCheckIn != null && a.IsSubsidize1 != null).Select(a => a.PayAmount);
decimal allamount = 0;
foreach (var item in listAllamount)
{
if (item != null)
{
allamount += Convert.ToDecimal(item);
}
}
var listIsamount = model.Where(a => a.IsPay == true).Select(a => a.PayAmount);
decimal isamount = 0;
foreach (var item in listIsamount)
{
if (item != null)
{
isamount += Convert.ToDecimal(item);
}
}
return new
{
a = allamount,
b = isamount
};
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal object GetStuDefaultInfo(string StuId)
{
try
{
var model = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == StuId);
var imgUrl = "";
if (model?.Photo != null)
{
imgUrl = this.BaseRepository().FindEntity(a => a.F_Id == model.Photo)?.F_FilePath;
if (!string.IsNullOrEmpty(imgUrl))
{
imgUrl = "/" + imgUrl.Substring(imgUrl.IndexOf("Resource"));
}
}
return new
{
stuName = model.StuName + (model.IsCheckIn == false ? "(走)" : ""),
className = this.BaseRepository("CollegeMIS")
.FindEntity(a => a.ClassNo == model.ClassNo)?.ClassName,
imgUrl
};
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) IsPhoto(string stuId, bool status, string fileGuid)
{
try
{
string result = "";
bool resultBool = false;
var model = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == stuId);
if (model != null)
{
model.Photo = fileGuid;
model.IsMug = status;
model.Status = 6;//确认拍照
resultBool = true;
result = "操作成功!";
this.BaseRepository("CollegeMIS").Update(model);
}
else
{
result = "错误";
}
return (resultBool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) GetCloth(string stuId, bool status)
{
try
{
bool resultBool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
item.IsTakeCloths = status;
item.Status = 7;
this.BaseRepository("CollegeMis").Update(item);
}
resultBool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultBool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) GetClothSize(string stuId, bool status)
{
try
{
bool resultBool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
item.IsQuantity = status;
item.Status = 8;
this.BaseRepository("CollegeMis").Update(item);
}
resultBool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultBool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal (bool, string) GetArticles(string stuId, bool status)
{
try
{
bool resultBool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
item.IsGetBeddingArticle = status;
item.Status = 9;
this.BaseRepository("CollegeMis").Update(item);
}
resultBool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultBool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 生成缴费金额
///
internal void GetMoney()
{
try
{
var stuList = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var stuEnroll in stuList)
{
var classInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.ClassNo == stuEnroll.ClassNo);
var yearAndSemester = Common.GetSemesterAndYear();
var result = new List();
if (classInfo != null)
{
result = this.BaseRepository("CollegeMIS").FindList(a => a.Grade == classInfo.Grade && a.MajorNo == stuEnroll.MajorNo && a.AcademicYearNo == yearAndSemester.AcademicYearShort && a.Semester == yearAndSemester.Semester)
.Select(a => new StuPayInfo
{
standerid = a.ChargeItemID,
shouldPay = a.Standard,
standard = a.Standard,
standerdName = this.BaseRepository("CollegeMIS").FindEntity(b => b.ChargeItemID == a.ChargeItemID).ChargeItemName.Trim()
}).ToList();
}
foreach (var item in result)
{
//住宿费
if (item.standerid == 12 && stuEnroll.IsCheckIn == false)
{
item.shouldPay = 0;
}
//学费
if (item.standerid == 14 && stuEnroll.IsSubsidize1 == true)
{
item.shouldPay = 0;
}
switch (item.standerid)
{
case 12:
if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
break;
case 14:
if (stuEnroll.IsSubsidize1 == true) item.shouldPay = 0;
break;
case 15:
if (stuEnroll.IsMilitary == false) item.shouldPay = 0;
break;
case 32:
if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
break;
case 33:
if (stuEnroll.EnrollType == "0") item.shouldPay = 0;
break;
default:
break;
}
}
decimal money = 0;
//记录缴费金额
foreach (var item in result)
{
money += Convert.ToDecimal(item.shouldPay);
}
stuEnroll.PayAmount = money;
this.BaseRepository("CollegeMIS").Update(stuEnroll);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllocationDormitory(string dormitoryNo, string stuId, string dormitoryName)
{
try
{
var oldstuEnroll = this.BaseRepository("CollegeMIS").FindEntity(a => a.DormitoryNo == dormitoryNo);
if (oldstuEnroll != null)
{
oldstuEnroll.DormitoryNo = "";
oldstuEnroll.DormitoryName = "";
this.BaseRepository("CollegeMIS").Update(oldstuEnroll);
}
var olddormitory = this.BaseRepository("CollegeMIS").FindEntity(a => a.PlanStudentID == stuId);
if (olddormitory != null)
{
olddormitory.PlanStudentID = "";
this.BaseRepository("CollegeMIS").Update(olddormitory);
}
var dormitory = this.BaseRepository("CollegeMIS").FindEntity(a => a.ID == dormitoryNo);
dormitory.PlanStudentID = stuId;
this.BaseRepository("CollegeMIS").Update(dormitory);
var stuEroll = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == stuId);
stuEroll.DormitoryNo = dormitoryNo;
stuEroll.DormitoryName = dormitoryName;
this.BaseRepository("CollegeMIS").Update(stuEroll);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void AllocationClass(string classNo, string dataJson)
{
try
{
var data = JsonConvert.DeserializeObject>(dataJson);
if (data.Any())
{
foreach (var item in data)
{
item.ClassNo = classNo;
this.BaseRepository("CollegeMis").Update(item);
}
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 关联照片
///
internal void RelationPhoto()
{
try
{
var stuList = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var stuEnrollEntity in stuList)
{
if (string.IsNullOrEmpty(stuEnrollEntity.Photo))
{
stuEnrollEntity.Photo = Guid.NewGuid().ToString();
AnnexesFileEntity entity = new AnnexesFileEntity
{
F_Id = stuEnrollEntity.Photo,
F_FolderId = stuEnrollEntity.Photo,
F_FileName = stuEnrollEntity.Photo + ".jpg",
F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg",
F_FileExtensions = ".jpg",
F_FileType = "jpg",
};
entity.Create();
this.BaseRepository("CollegeMIS").Update(stuEnrollEntity);
this.BaseRepository().Insert(entity);
}
else
{
var annexes = this.BaseRepository().FindEntity(a => a.F_FolderId == stuEnrollEntity.Photo);
if (annexes != null)
{
if (!string.IsNullOrEmpty(stuEnrollEntity.IDCard))
{
annexes.F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg";
this.BaseRepository().Update(annexes);
}
}
else
{
AnnexesFileEntity entity = new AnnexesFileEntity
{
F_Id = stuEnrollEntity.Photo,
F_FolderId = stuEnrollEntity.Photo,
F_FileName = stuEnrollEntity.Photo + ".jpg",
F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg",
F_FileExtensions = ".jpg",
F_FileType = "jpg",
};
entity.Create();
this.BaseRepository().Insert(entity);
}
}
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void NewAllocationDormitory(string classNo, string dataJson)
{
try
{
var data = JsonConvert.DeserializeObject>(dataJson);
if (data.Any())
{
foreach (var item in data)
{
item.PlanClassNo = classNo;
this.BaseRepository("CollegeMIS").Update(item);
}
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
internal void Synchronization()
{
try
{
var ListNewStudent =
this.BaseRepository("CollegeMIS").FindList(a => a.IsReport == true);
foreach (var newStudent in ListNewStudent)
{
var stuEntity = new StuInfoBasicEntity
{
StuNo = newStudent.StuNo,
Birthday = newStudent.Birthday,
ClassNo = newStudent.ClassNo,
DeptNo = newStudent.DeptNo,
MajorNo = newStudent.MajorNo,
MajorDetailName = newStudent.MajorName,
IdentityCardNo = newStudent.IDCard,
Grade = newStudent.ClassNo.Substring(2, 2),
StuName = newStudent.StuName,
Photo = newStudent.Photo,
FatherUnit = newStudent.ResidenceAddress,
MailAddress = newStudent.HomeAddress,
PartyFaceNo = newStudent.Political,
NationalityNo = newStudent.Nationals,
GenderNo = newStudent.Gender
};
stuEntity.Create();
this.BaseRepository("CollegeMIS").Insert(stuEntity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取StuEnroll表实体数据
/// 主键
///
///
public StuEnrollEntity GetStuEnrollEntity(string keyValue)
{
try
{
var entity = this.BaseRepository("CollegeMIS").FindEntity(keyValue);
if (!string.IsNullOrEmpty(entity.Photo))
{
var path = this.BaseRepository().FindEntity(a => a.F_Id == entity.Photo)?.F_FilePath;
if (!string.IsNullOrEmpty(path))
{
path = "/" + path.Substring(path.IndexOf("Resource"));
entity.PhotoUrl = path;
}
}
return entity;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetMidExamScoreData(string keyValue)
{
try
{
var list = this.BaseRepository("CollegeMIS").FindList(x => x.StuEnrollId == keyValue).ToList();
if (list == null || list.Count() <= 0)
{
var db = this.BaseRepository("CollegeMIS");
db.BeginTrans();
var dataItem = this.BaseRepository().FindList("select b.* from [dbo].[LR_Base_DataItem] a join [dbo].[LR_Base_DataItemDetail] b on a.f_itemid=b.f_itemid where a.F_ItemCode='MidTermSubject' and b.f_deletemark=0 and b.f_enabledmark=1").OrderBy(x => x.F_SortCode);
foreach (var data in dataItem)
{
StuEnrollMidExamScoreEntity entity = new StuEnrollMidExamScoreEntity();
entity.Create();
entity.StuEnrollId = keyValue;
entity.subjectName = data.F_ItemName;
entity.subjectCode = data.F_ItemCode;
entity.sort = data.F_SortCode;
db.Insert(entity);
list.Add(entity);
}
db.Commit();
}
return list;
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取StuEnroll表实体数据
///
///
///
public StuEnrollEntity GetEntityByPersonalData(string IDCard, string StuName)
{
try
{
var year = DateTime.Now.Year;
return this.BaseRepository("CollegeMIS").FindEntity(x => (x.IDCard == IDCard && x.StuName == StuName.Trim()) && x.AddTime.Value.Year == year);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 学生查询考试地点或录取结果
///
///
///
public StuEnrollEntity SearchForm(int type, StuEnrollEntity entity)
{
try
{
return this.BaseRepository("CollegeMIS").FindEntity(x => x.StuName == entity.StuName.Trim() && x.IDCard == entity.IDCard);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取学生考试信息
///
///
///
public IEnumerable GetExamDataByStuId(string keyValue)
{
try
{
string subSql = $"select * from ExamSubject where SubjectNo in (select SubjectNo from StuEnroll where stuid='{keyValue}')";
return this.BaseRepository("CollegeMIS").FindList(subSql);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 获取页面显示列表数据
///
/// 查询参数
///
public IEnumerable GetList(string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.StuId,
t.StuName,
t.Gender,
t.Nationals,
t.HomeAddress,
t.IDCard,
t.StuMobile,
t.FromSchool,
t.MidTermExam,
t.Specialty,
t.City,
t.County,
t.MajorNo,
t.IdCardPto1,
t.IdCardPto2,
t.MidDiplomaPto,
t.MidAchievementPto,
t.Remark
");
strSql.Append(" FROM StuEnroll t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["StuName"].IsEmpty())
{
dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.StuName Like @StuName ");
}
return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion 获取数据
#region 提交数据
///
/// 删除实体数据
/// 主键
///
///
public void DeleteEntity(string keyValue)
{
try
{
var listId = keyValue.Split(',').ToList();
foreach (var stuId in listId)
{
this.BaseRepository("CollegeMIS").Delete(t => t.StuId == stuId);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 保存实体数据(新增、修改)
/// 主键
///
///
public void SaveEntity(string keyValue, StuEnrollEntity entity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
this.BaseRepository("CollegeMIS").Update(entity);
}
else
{
entity.Create();
entity.IsMilitary = true;
this.BaseRepository("CollegeMIS").Insert(entity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 新生报名
/// 主键
///
///
public void SaveEnroll(string keyValue, StuEnrollEntity entity, List scoreData)
{
var db = this.BaseRepository("CollegeMIS");
try
{
db.BeginTrans();
var sql = $" select top 1 [year] as year,Majorname from CdMajor where ID='{entity.MajorNo}'";
var majorData = db.FindTable(sql);
entity.MajorName = majorData.Rows[0]["Majorname"].ToString();
entity.Year = majorData.Rows[0]["year"].ToString();
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
db.Update(entity);
}
else
{
entity.Create();
entity.EnrollStatus = 0;
db.Insert(entity);
}
if (scoreData != null && scoreData.Count > 0)
{
for (int i = 0; i < scoreData.Count; i++)
{
if (!string.IsNullOrEmpty(scoreData[i].Id))
{
db.Update(scoreData[i]);
}
else
{
StuEnrollMidExamScoreEntity model = new StuEnrollMidExamScoreEntity();
model.Create();
model.StuEnrollId = entity.StuId;
model.subjectName = scoreData[i].subjectName;
model.subjectCode = scoreData[i].subjectCode;
model.score = scoreData[i].score;
model.sort = i + 1;
db.Insert(model);
}
}
}
db.Commit();
}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void EditEnrollType(string stuIds, string enrollType)
{
try
{
List list = stuIds.Split(',').ToList();
if (list.Count > 0)
{
foreach (var item in list)
{
if (!string.IsNullOrEmpty(item))
{
var model = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == item);
if (model != null)
{
model.EnrollType = enrollType;
this.BaseRepository("CollegeMIS").Update(model);
}
}
}
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 招生统计
///
///
///
public DataTable GetTJList(string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("select empno,count(1) as num from stuenroll t where IsAdmission=1");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["StuName"].IsEmpty())
{
strSql.Append($" AND t.StuName Like '%{queryParam["StuName"]}%' ");
}
if (!queryParam["IDCard"].IsEmpty())
{
strSql.Append($" AND t.IDCard Like '%{queryParam["IDCard"]}%' ");
}
if (!queryParam["StuMobile"].IsEmpty())
{
strSql.Append($" AND t.StuMobile Like '%{queryParam["StuMobile"]}%' ");
}
if (!queryParam["Year"].IsEmpty())
{
strSql.Append($" AND charindex(t.Year,('{queryParam["Year"]}'))>0 ");
}
if (!queryParam["City"].IsEmpty())
{
strSql.Append($" AND charindex(t.City,('{queryParam["City"]}'))>0 ");
}
if (!queryParam["County"].IsEmpty())
{
strSql.Append($" AND charindex(t.County,('{queryParam["County"]}'))>0 ");
}
if (!queryParam["MajorNo"].IsEmpty())
{
strSql.Append($" AND charindex(t.MajorNo,('{queryParam["MajorNo"]}'))>0 ");
}
if (!queryParam["EmpNo"].IsEmpty())
{
strSql.Append($" AND charindex(t.EmpNo,('{queryParam["EmpNo"]}'))>0 ");
}
//sql条件
if (!queryParam["SqlParameter"].IsEmpty())
{
strSql.Append(queryParam["SqlParameter"].ToString());
}
strSql.Append(" group by empno");
return this.BaseRepository("CollegeMIS").FindTable(strSql.ToString());
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void SyncDept()
{
try
{
var data = this.BaseRepository("CollegeMIS").FindList().ToList();
var majorList = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in data)
{
var deptNo = majorList.FirstOrDefault(a => a.MajorNo == item.MajorNo)?.DeptNo;
item.DeptNo = deptNo;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public void SyncMajor()
{
try
{
var data = this.BaseRepository("CollegeMIS").FindList().ToList();
var classList = this.BaseRepository("CollegeMIS").FindList().ToList();
foreach (var item in data)
{
var majorNo = classList.FirstOrDefault(a => a.ClassNo == item.ClassNo)?.MajorNo;
item.MajorNo = majorNo;
this.BaseRepository("CollegeMIS").Update(item);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 签订安全自律协议
///
///
///
///
public (bool, string) Sign(string stuId, bool status)
{
try
{
var resultbool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
item.SecurityAgreement = status;
this.BaseRepository("CollegeMis").Update(item);
}
resultbool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultbool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 报到
///
///
///
///
public (bool, string) Report(string stuId, bool status)
{
try
{
var resultbool = false;
var result = "";
if (!string.IsNullOrEmpty(stuId))
{
var data = JsonConvert.DeserializeObject>(stuId);
if (data.Any())
{
foreach (var item in data)
{
item.IsReport = status;
item.Status = 1;
item.SecurityAgreement = status;
this.BaseRepository("CollegeMis").Update(item);
}
resultbool = true;
result = "操作成功";
}
}
else
{
result = "错误";
}
return (resultbool, result);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 报名审核
/// 主键
///
///
public void UpdateEnrollStatus(string keyValue, int EnrollStatus)
{
var db = this.BaseRepository("CollegeMIS").BeginTrans();
try
{
var enrollList = db.FindList(x => x.StuId == keyValue).ToList();
string sql = $"update StuEnroll set EnrollStatus='{EnrollStatus}' where stuid in ('{keyValue}')";
db.ExecuteBySql(sql);
//审核通过 添加新生成绩表
if (EnrollStatus == 2)
{
//新生成绩表
var list = db.FindList();
foreach (var enrollData in enrollList)
{
if (list.Where(x => x.YearNo == enrollData.Year && x.StuId == enrollData.StuId).Count() <= 0)
{
//新生成绩表不存在当前新生 添加
var subNos = enrollData.SubjectNo.Split(',').ToList();
foreach (var subno in subNos)
{
StuEnrollScoreEntity model = new StuEnrollScoreEntity();
model.Create();
model.YearNo = enrollData.Year;
model.MajorId = enrollData.MajorNo;
model.StuId = enrollData.StuId;
model.SubjectId = subno;
model.Score = 0;
db.Insert(model);
}
}
}
}
else
{
//删除新生成绩表
foreach (var enrollData in enrollList)
{
var scoreList = db.FindList(x => x.StuId == enrollData.StuId);
foreach (var item in scoreList)
{
db.Delete(item);
}
}
}
db.Commit();
}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 录取
/// 主键
///
///
public void Admission(string keyValue, int IsAdmission)
{
try
{
string sql = $"update StuEnroll set IsAdmission='{IsAdmission}' where stuid='{keyValue}'";
this.BaseRepository("CollegeMIS").ExecuteBySql(sql);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion 提交数据
}
}