|
- 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
- {
- /// <summary>
- /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
- /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
- /// 创 建:超级管理员
- /// 日 期:2022-07-11 14:34
- /// 描 述:数据中心一卡通对接
- /// </summary>
- public class YKTStateMentService : RepositoryFactory
- {
- #region 获取数据
-
- /// <summary>
- /// 获取页面显示列表数据
- /// </summary>
- /// <param name="pagination">分页参数</param>
- /// <param name="queryJson">查询参数</param>
- /// <returns></returns>
- public IEnumerable<YKTStateMentEntity> 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<YKTStateMentEntity>(strSql.ToString(), pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- /// <summary>
- /// 一卡通学生月统计
- /// </summary>
- /// <param name="pagination"></param>
- /// <param name="queryJson"></param>
- /// <returns></returns>
- public IEnumerable<YKTStateMentEntity> 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<YKTStateMentEntity>(strSql.ToString(), pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- public IEnumerable<YKTStateMentEntity> 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<YKTStateMentEntity>(strSql.ToString(), pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 一卡通教师月统计
- /// </summary>
- /// <param name="pagination"></param>
- /// <param name="queryJson"></param>
- /// <returns></returns>
- public IEnumerable<YKTStateMentEntity> 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<YKTStateMentEntity>(strSql.ToString(), pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- #endregion
-
-
- public IEnumerable<DoorEntity> 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<DoorEntity>(strSql.ToString(), paginationobj);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- }
- }
|