using Dapper;
using Learun.DataBase.Repository;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
///
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2022-07-11 14:34
/// 描 述:数据中心一卡通对接
///
public class YKTStateMentService : RepositoryFactory
{
#region 获取数据
///
/// 获取页面显示列表数据
///
/// 分页参数
/// 查询参数
///
public IEnumerable GetPageList(Pagination pagination, string queryJson)
{
try
{
var queryParam = queryJson.ToJObject();
var strSql = new StringBuilder();
strSql.Append(@"select * from (
SELECT A.OUTID AS STUPHONE,A.CUSTOMERID AS YKTNO,round(A.OPFARE/100,2) AS MONEY,round(A.ODDFARE/100,2) AS BALANCE,A.OPDT AS HAPPENTIME,A.DSCRP AS SUBJECT,B.TERMNAME,C.StuNo,C.StuName,d.DeptNo,d.DeptName,e.ClassNo,e.ClassName,c.identityno as IdentityCardNo, f.MajorName,c.GenderNo
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_stuinfo C on A.OUTID = C.mobile
left join ds_dept d on c.deptno = d.deptno
left join ds_classinfo e on c.classno = e.classno
left join ds_major f on c.majorno=f.majorno
where stuno is not null
union all
SELECT A.OUTID AS STUPHONE,A.CUSTOMERID AS YKTNO,round(A.OPFARE/100,2) AS MONEY,round(A.ODDFARE/100,2) AS BALANCE,A.OPDT AS HAPPENTIME,A.DSCRP AS SUBJECT,B.TERMNAME,C.StuNo,C.StuName,d.DeptNo,d.DeptName,e.ClassNo,e.ClassName,c.identityno as IdentityCardNo, f.MajorName,c.GenderNo
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_stuinfo C on A.OUTID = C.stuno
left join ds_dept d on c.deptno = d.deptno
left join ds_classinfo e on c.classno = e.classno
left join ds_major f on c.majorno=f.majorno
where stuno is not null ) aa where 1=1");
if (!queryParam["StuNo"].IsEmpty())
{
strSql.Append($" AND StuNo like '%{queryParam["StuNo"].ToString()}%' ");
}
if (!queryParam["StuName"].IsEmpty())
{
strSql.Append($" AND StuName like '%{queryParam["StuName"].ToString()}%' ");
}
if (!queryParam["DeptNo"].IsEmpty())
{
strSql.Append($" AND DeptNo='{queryParam["DeptNo"].ToString()}' ");
}
if (!queryParam["ClassNo"].IsEmpty())
{
strSql.Append($" AND ClassNo ='{queryParam["ClassNo"].ToString()}' ");
}
if (!queryParam["YKTNO"].IsEmpty())
{
strSql.Append($" AND YKTNO like '%{queryParam["YKTNO"].ToString()}%' ");
}
if (!queryParam["StartDate"].IsEmpty() && !queryParam["EndDate"].IsEmpty())
{
strSql.Append(" and (HAPPENTIME>=to_date('" + queryParam["StartDate"] + "','yyyy-mm-dd hh24:mi:ss') and HAPPENTIME<=to_date('" + queryParam["EndDate"] + "','yyyy-mm-dd hh24:mi:ss'))");
}
return BaseRepository("TLMZYMIDDLEString").FindList(strSql.ToString(), pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 一卡通学生月统计
///
///
///
///
public IEnumerable GetAnalysisByMonthForStudentPageList(Pagination pagination, string queryJson)
{
try
{
var queryParam = queryJson.ToJObject();
var strSql = new StringBuilder();
strSql.Append(
@"select StuNo,StuName,GenderNo,DeptName,MajorName,ClassName,identityno as IdentityCardNo, sum(round(OPFARE/100,2)) AS MONEY,count(stuno) as PayTimes,round(sum(round(OPFARE/100,2))/count(stuno),2) as PerMoney
from
(SELECT C.StuNo,C.StuName,c.GenderNo,d.DeptName,d.DeptNo,f.MajorName,f.MajorNo,e.ClassName,c.ClassNo,c.identityno, A.OPFARE,a.OPDT
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_stuinfo C on A.OUTID = C.mobile
left join ds_dept d on c.deptno = d.deptno
left join ds_classinfo e on c.classno = e.classno
left join ds_major f on c.majorno=f.majorno
where stuno is not null
union all
SELECT C.StuNo,C.StuName,c.GenderNo,d.DeptName,d.DeptNo,f.MajorName,f.MajorNo,e.ClassName,c.ClassNo,c.identityno, A.OPFARE,a.OPDT
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_stuinfo C on A.OUTID = C.stuno
left join ds_dept d on c.deptno = d.deptno
left join ds_classinfo e on c.classno = e.classno
left join ds_major f on c.majorno=f.majorno
where stuno is not null) aa where 1=1 ");
if (!queryParam["DeptNo"].IsEmpty())
{
strSql.Append($" AND DeptNo='{queryParam["DeptNo"].ToString()}' ");
}
if (!queryParam["MajorNo"].IsEmpty())
{
strSql.Append($" AND MajorNo='{queryParam["MajorNo"].ToString()}' ");
}
if (!queryParam["ClassNo"].IsEmpty())
{
strSql.Append($" AND ClassNo ='{queryParam["ClassNo"].ToString()}' ");
}
if (!queryParam["Months"].IsEmpty())
{
strSql.Append(" and extract(month from OPDT) in("+ queryParam["Months"].ToString() + ")");
}
if (!queryParam["Year"].IsEmpty())
{
strSql.Append(" and extract(year from OPDT) in(" + queryParam["Year"].ToString() + ")");
}
strSql.Append("group by StuNo,GenderNo, StuName,DeptNo, DeptName, MajorName,MajorNo, ClassNo,ClassName, identityno");
return BaseRepository("TLMZYMIDDLEString").FindList(strSql.ToString(), pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
public IEnumerable GetTeacherPageList(Pagination pagination, string queryJson)
{
try
{
var queryParam = queryJson.ToJObject();
var strSql = new StringBuilder();
strSql.Append(@"select * from (SELECT A.OUTID AS STUPHONE,A.CUSTOMERID AS YKTNO,round(A.OPFARE/100,2) AS MONEY,round(A.ODDFARE/100,2) AS BALANCE,A.OPDT AS HAPPENTIME,A.DSCRP AS SUBJECT,
B.TERMNAME,c.EmpNo,c.EmpName,c.DepartmentId,d.Name as DepartmentName,c.identityno as IdentityCardNo,c.GenderNo
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_empinfo C on A.OUTID = C.mobile
left join ds_department d on c.departmentid=d.id
where EmpNo is not null
union all
SELECT A.OUTID AS STUPHONE,A.CUSTOMERID AS YKTNO,round(A.OPFARE/100,2) AS MONEY,round(A.ODDFARE/100,2) AS BALANCE,A.OPDT AS HAPPENTIME,A.DSCRP AS SUBJECT,
B.TERMNAME,c.EmpNo,c.EmpName,c.DepartmentId,d.Name as DepartmentName,c.identityno as IdentityCardNo,c.GenderNo
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_empinfo C on A.OUTID = C.empno
left join ds_department d on c.departmentid=d.id
where EmpNo is not null ) aa where 1=1");
if (!queryParam["EmpNo"].IsEmpty())
{
strSql.Append($" AND EmpNo like '%{queryParam["EmpNo"].ToString()}%' ");
}
if (!queryParam["EmpName"].IsEmpty())
{
strSql.Append($" AND EmpName like '%{queryParam["EmpName"].ToString()}%' ");
}
if (!queryParam["DepartmentId"].IsEmpty())
{
strSql.Append($" AND DepartmentId='{queryParam["DepartmentId"].ToString()}' ");
}
if (!queryParam["YKTNO"].IsEmpty())
{
strSql.Append($" AND YKTNO like '%{queryParam["YKTNO"].ToString()}%' ");
}
if (!queryParam["StartDate"].IsEmpty() && !queryParam["EndDate"].IsEmpty())
{
strSql.Append(" and (HAPPENTIME>=to_date('" + queryParam["StartDate"] + "','yyyy-mm-dd hh24:mi:ss') and HAPPENTIME<=to_date('" + queryParam["EndDate"] + "','yyyy-mm-dd hh24:mi:ss'))");
}
return BaseRepository("TLMZYMIDDLEString").FindList(strSql.ToString(), pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
///
/// 一卡通教师月统计
///
///
///
///
public IEnumerable GetAnalysisByMonthForTeacherPageList(Pagination pagination, string queryJson)
{
try
{
var queryParam = queryJson.ToJObject();
var strSql = new StringBuilder();
strSql.Append(
@"SELECT c.EmpNo,c.EmpName,d.Name as DepartmentName,c.identityno as IdentityCardNo, sum(round(A.OPFARE/100,2)) AS MONEY,count(EmpNo) as PayTimes,round(sum(round(A.OPFARE/100,2))/count(EmpNo),2) as PerMoney
FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
left join ds_empinfo C on A.OUTID = C.mobile
left join ds_department d on c.departmentid=d.id
where 1=1 and EmpNo is not null ");
if (!queryParam["EmpNo"].IsEmpty())
{
strSql.Append($" AND C.EmpNo like '%{queryParam["EmpNo"].ToString()}%' ");
}
if (!queryParam["EmpName"].IsEmpty())
{
strSql.Append($" AND C.EmpName like '%{queryParam["EmpName"].ToString()}%' ");
}
if (!queryParam["DepartmentId"].IsEmpty())
{
strSql.Append($" AND C.DepartmentId='{queryParam["DepartmentId"].ToString()}' ");
}
if (!queryParam["Months"].IsEmpty())
{
strSql.Append(" and extract(month from A.OPDT) in(" + queryParam["Months"].ToString() + ")");
}
strSql.Append("group by c.EmpNo,c.EmpName,d.DepartmentId,d.Name,c.identityno");
return BaseRepository("TLMZYMIDDLEString").FindList(strSql.ToString(), pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
public IEnumerable GetDoorPageList(Pagination paginationobj, string queryJson)
{
try
{
var queryParam = queryJson.ToJObject();
var strSql = new StringBuilder();
strSql.Append(@"select a.StuNo,a.StuName,c.DeptName,d.MajorName,e.ClassName,b.devicename,b.opttype,b.opttime from ds_stuinfo a
left join door.doorrecord b on a.stuno=b.personno
left join ds_dept c on a.deptno=c.deptno
left join ds_major d on a.majorno=d.majorno
left join ds_classinfo e on a.classno=e.classno where 1=1 ");
if (!queryParam["StuNo"].IsEmpty())
{
strSql.Append($" AND a.StuNo like '%{queryParam["StuNo"].ToString()}%' ");
}
if (!queryParam["StuName"].IsEmpty())
{
strSql.Append($" AND a.StuName like '%{queryParam["StuName"].ToString()}%' ");
}
if (!queryParam["DeptNo"].IsEmpty())
{
strSql.Append($" AND a.DeptNo='{queryParam["DeptNo"].ToString()}' ");
}
if (!queryParam["MajorNo"].IsEmpty())
{
strSql.Append($" AND a.MajorNo='{queryParam["MajorNo"].ToString()}' ");
}
if (!queryParam["ClassNo"].IsEmpty())
{
strSql.Append($" AND a.ClassNo ='{queryParam["ClassNo"].ToString()}' ");
}
if (!queryParam["opttype"].IsEmpty())
{
strSql.Append($" AND b.opttype='{queryParam["opttype"].ToString()}' ");
}
if (!queryParam["StartDate"].IsEmpty() && !queryParam["EndDate"].IsEmpty())
{
strSql.Append(" and (opttime>='"+ queryParam["StartDate"] + "' and opttime<='"+ queryParam["EndDate"] + "')");
}
return BaseRepository("TLMZYMIDDLEString").FindList(strSql.ToString(), paginationobj);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
}
}