<기능개선>
1. PMS NO : 6816 2. (주요)작업내용 (1) BO/Controllers/croomController.cs - 임의 파라메터를 기준하여 검색시 쿼리를 실행하게 수정 (2) BO/Views/croom/gradeall.cshtml - 임의 파라메터 지정 (3) Dao/MyBatis/Maps/Grade.xml - 성적처리 쿼리 수정
This commit is contained in:
parent
3b29f526fb
commit
fb4f8e6ebb
|
|
@ -683,8 +683,9 @@ namespace NP.BO.Controllers
|
|||
return View(vm);
|
||||
}
|
||||
|
||||
public ActionResult gradeall(VMLect vm)
|
||||
public ActionResult gradeall(VMLect vm, string searchGo)
|
||||
{
|
||||
searchGo = string.IsNullOrWhiteSpace(searchGo) ? "" : (searchGo == "1" ? "T" : "F");
|
||||
vm.IsAdmin = SUserInfo.IsAdmin;
|
||||
vm.ComCodes = GetComCodes("studyplace");
|
||||
ViewBag.fronturl = GetConfig("fronturl");
|
||||
|
|
@ -743,71 +744,77 @@ namespace NP.BO.Controllers
|
|||
vm.excellog.userno = SUserInfo.UserNo;
|
||||
vm.excellog.userip = GetUserIP();
|
||||
}
|
||||
|
||||
switch (vm.tabidx)
|
||||
if(searchGo == "T")
|
||||
{
|
||||
case 0:
|
||||
switch (vm.tabidx)
|
||||
{
|
||||
case 0:
|
||||
|
||||
//ht.Add("ustatus", 1);
|
||||
ht.Add("orderby", "ua.asname,ua.asno,u.username");
|
||||
vm.Lects = Dao.Get<Lect>("grade.lectgrades", ht);
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "순번","결제번호", "사용자ID", "이름","주민번호","교육생연락처","교육유형","교육구분"
|
||||
//ht.Add("ustatus", 1);
|
||||
ht.Add("orderby", "ua.asname,ua.asno,u.username");
|
||||
vm.Lects = Dao.Get<Lect>("grade.lectgrades", ht);
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "순번","결제번호", "사용자ID", "이름","주민번호","교육생연락처","교육유형","교육구분"
|
||||
, "기술인분류", "직무분야","교육목적","등급", "교육시작일", "교육종료일", "과정명","수료번호","교육이수시간"
|
||||
, "진도율", "평가점수", "과제점수", "총점", "온라인집체교육출석여부", "강의평가"
|
||||
,"업체명","업체주소","사업자등록번호","고용보험관리번호","업태","종목","대표자","학력","직위","업체담당자","업체담당자 연락처"
|
||||
,"교육비","환급여부","환급액","환급은행명","환급계좌","환급계좌예금주","계산서이메일","소속협회"
|
||||
,"교육상위분류","교육하위분류","교육장소","교육연도", "수료여부"},
|
||||
new String[] { "rno","payno", "userid", "username","userpno", "mobile","cshapename","edukind"
|
||||
new String[] { "rno","payno", "userid", "username","userpno", "mobile","cshapename","edukind"
|
||||
, "typemanname","typejobname","typeeduname","typegradename", "sdatestr", "edatestr", "cname","completeno","studytime"
|
||||
, "attrate", "ex1point", "sd0point", "tpointstr", "isoffabsstr", "rs0point"
|
||||
,"asname","addr","brno","eino","btype","bkind","ceoname","slevelName","uduty","mname","mphone"
|
||||
,"payamt","isrebatename","rbankamt","rbank","rbankaccnum","rbankuser","taxemail","association"
|
||||
,"pcgname","cgname","studyplacename","tyear", "iscompletename" },
|
||||
vm.Lects,
|
||||
"성적처리전체" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day,null,",2,4", vm.excellog);
|
||||
}
|
||||
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
{
|
||||
ht.Add("extype", vm.tabidx == 2 ? 0 : 1);
|
||||
ht.Add("estate", vm.addstringval2);
|
||||
vm.LectEXes = Dao.Get<LectEX>("lect.lectexes.all", ht);
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "No", "운영기수", "구분", "고객사", "교육장", "과정명", "시험명", "교육생", "ID", "핸드폰", "교육시작일", "교육종료일", "응시일자(제출일자)","경과시간", "IP", "응시상태", "총점", "수료여부" },
|
||||
new String[] { "rno", "sseq", "isrebatename", "asname", "studyplacename", "cname", "exname", "username", "userid", "mobile", "leststr", "leestrExcel", "estarteend", "eseterm", "eip", "estatename", "tpoint", "iscompletename" },
|
||||
vm.LectEXes,
|
||||
"성적처리평가" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, null, vm.excellog);
|
||||
vm.Lects,
|
||||
"성적처리전체" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, ",2,4", vm.excellog);
|
||||
}
|
||||
vm.pagetotalcount = GetCount(vm.LectEXes.FirstOrDefault());
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
ht.Add("sdtype", 0);
|
||||
vm.LectSDs = new List<LectSD>() { };
|
||||
ht.Add("sdstate", vm.addstringval2);
|
||||
ht.Add("isproduct" + (GetConfig("isstaging") == "1" ? "x" : ""), 1);
|
||||
vm.LectSDs = Dao.Get<LectSD>("lect.lectsds.all", ht);
|
||||
/*to-do*/
|
||||
if (vm.isexceldown == 1)
|
||||
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "No", "운영기수", "교육장", "과정명", "교육생", "ID", "핸드폰", "교육시작일", "교육종료일", "상태", "점수", "첨삭", "모사", "최근제출일(IP)", "최근평가일(IP)","수료여부" },
|
||||
new String[] { "rno", "sseq", "studyplacename", "cname", "username", "userid", "mobile", "leststr", "leestrExcel", "sdstatename", "cpoint2", "feedbox", "copyratename", "submittimeip_format", "checktimeip_format", "iscompletename" },
|
||||
vm.LectSDs,
|
||||
"성적처리과제" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, null, vm.excellog);
|
||||
ht.Add("extype", vm.tabidx == 2 ? 0 : 1);
|
||||
ht.Add("estate", vm.addstringval2);
|
||||
vm.LectEXes = Dao.Get<LectEX>("lect.lectexes.all", ht);
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "No", "운영기수", "구분", "고객사", "교육장", "과정명", "시험명", "교육생", "ID", "핸드폰", "교육시작일", "교육종료일", "응시일자(제출일자)", "경과시간", "IP", "응시상태", "총점", "수료여부" },
|
||||
new String[] { "rno", "sseq", "isrebatename", "asname", "studyplacename", "cname", "exname", "username", "userid", "mobile", "leststr", "leestrExcel", "estarteend", "eseterm", "eip", "estatename", "tpoint", "iscompletename" },
|
||||
vm.LectEXes,
|
||||
"성적처리평가" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, null, vm.excellog);
|
||||
}
|
||||
vm.pagetotalcount = GetCount(vm.LectEXes.FirstOrDefault());
|
||||
}
|
||||
vm.pagetotalcount = GetCount(vm.LectSDs.FirstOrDefault());
|
||||
}
|
||||
break;
|
||||
default:break;
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
ht.Add("sdtype", 0);
|
||||
vm.LectSDs = new List<LectSD>() { };
|
||||
ht.Add("sdstate", vm.addstringval2);
|
||||
ht.Add("isproduct" + (GetConfig("isstaging") == "1" ? "x" : ""), 1);
|
||||
vm.LectSDs = Dao.Get<LectSD>("lect.lectsds.all", ht);
|
||||
/*to-do*/
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "No", "운영기수", "교육장", "과정명", "교육생", "ID", "핸드폰", "교육시작일", "교육종료일", "상태", "점수", "첨삭", "모사", "최근제출일(IP)", "최근평가일(IP)", "수료여부" },
|
||||
new String[] { "rno", "sseq", "studyplacename", "cname", "username", "userid", "mobile", "leststr", "leestrExcel", "sdstatename", "cpoint2", "feedbox", "copyratename", "submittimeip_format", "checktimeip_format", "iscompletename" },
|
||||
vm.LectSDs,
|
||||
"성적처리과제" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, null, vm.excellog);
|
||||
}
|
||||
vm.pagetotalcount = GetCount(vm.LectSDs.FirstOrDefault());
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
vm.Lects = new List<Lect>();
|
||||
}
|
||||
return View(vm);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<div class="col-md-6">
|
||||
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval) ? (DateTime?)null : Convert.ToDateTime(Model.stringval), new ViewDataDictionary { { "name", "stringval" } })
|
||||
</div>
|
||||
<input type="hidden" name="searchGo" value="1" />
|
||||
</td>
|
||||
<th>교육유형</th>
|
||||
<td>
|
||||
|
|
@ -82,7 +83,7 @@
|
|||
</div>
|
||||
</section>
|
||||
<div style="text-align: right; border-bottom: 1px solid #ddd; padding-bottom: 5px;">
|
||||
<button class="btn btn-default btn-s-xs" type="button" onclick="javascript:submit();"><i class="fa fa-search"></i></button>
|
||||
<button class="btn btn-default btn-s-xs" type="button" onclick="listgo();"><i class="fa fa-search"></i></button>
|
||||
</div><br />
|
||||
<ul class="pagination pagination-md">
|
||||
@if (ViewBag.IsSubAdmin96)
|
||||
|
|
@ -128,6 +129,19 @@
|
|||
}
|
||||
@section scripts{
|
||||
<script>
|
||||
function listgo() {
|
||||
let chkVal = $("#stringval").val()
|
||||
let chkVal2 = $("#stringval3").val()
|
||||
let chkVal3 = $("#stringval7").val()
|
||||
|
||||
if (chkVal != "" || chkVal2 != "" || chkVal3 != "") {
|
||||
submit();
|
||||
}
|
||||
else {
|
||||
msg("교육종료일, 교육생, 과정명 중 한가지이상 필수로 입력해 주세요 ")
|
||||
}
|
||||
}
|
||||
|
||||
function gotab(idx) {
|
||||
if (idx != @Model.tabidx) {
|
||||
setv("mform_tabidx", idx);
|
||||
|
|
|
|||
|
|
@ -55,8 +55,8 @@
|
|||
<!--<add key="talk" value="https://alimtalk-api.bizmsg.kr/v2/sender/send,?,?,?,?,?,023103312" />-->
|
||||
|
||||
<!--<add key="configpath" value="Product" />-->
|
||||
<!--<add key="configpath" value="ProductDev" />-->
|
||||
<add key="configpath" value="staging" />
|
||||
<add key="configpath" value="ProductDev" />
|
||||
<!--<add key="configpath" value="staging" />-->
|
||||
|
||||
|
||||
<add key="lgdacomConfigPath" value="D:\3rdparti\lgdacomyicte" />
|
||||
|
|
@ -267,7 +267,7 @@
|
|||
</iBATIS>
|
||||
<log4net>
|
||||
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<file value="D:\log\ynicte\log.txt" />
|
||||
<file value="Logs\log.txt" />
|
||||
<param name="MaxSizeRollBackups" value="2" />
|
||||
<param name="MaximumFileSize" value="1024KB" />
|
||||
<param name="RollingStyle" value="Size" />
|
||||
|
|
@ -283,7 +283,7 @@
|
|||
</layout>
|
||||
</appender>
|
||||
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender,log4net">
|
||||
<param name="File" value="D:\log\ynicte\debug.txt" />
|
||||
<param name="File" value="Logs\debug.txt" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="10" />
|
||||
<param name="MaximumFileSize" value="5MB" />
|
||||
|
|
@ -294,7 +294,7 @@
|
|||
</layout>
|
||||
</appender>
|
||||
<appender name="DeleteAppender" type="log4net.Appender.RollingFileAppender,log4net">
|
||||
<param name="File" value="D:\log\ynicte\delete.txt" />
|
||||
<param name="File" value="Logs\delete.txt" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="10" />
|
||||
<param name="MaximumFileSize" value="5MB" />
|
||||
|
|
@ -305,7 +305,7 @@
|
|||
</layout>
|
||||
</appender>
|
||||
<appender name="WarnAppender" type="log4net.Appender.RollingFileAppender,log4net">
|
||||
<param name="File" value="D:\log\ynicte\warn.txt" />
|
||||
<param name="File" value="Logs\warn.txt" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="10" />
|
||||
<param name="MaximumFileSize" value="5MB" />
|
||||
|
|
@ -327,7 +327,7 @@
|
|||
</layout>
|
||||
</appender>
|
||||
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">
|
||||
<param name="File" value="D:\log\ynicte\error.txt" />
|
||||
<param name="File" value="Logs\error.txt" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="10" />
|
||||
<param name="MaximumFileSize" value="5MB" />
|
||||
|
|
@ -338,7 +338,7 @@
|
|||
</layout>
|
||||
</appender>
|
||||
<appender name="TryErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">
|
||||
<param name="File" value="D:\log\ynicte\tryerror.txt" />
|
||||
<param name="File" value="Logs\tryerror.txt" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxSizeRollBackups" value="10" />
|
||||
<param name="MaximumFileSize" value="5MB" />
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@
|
|||
inner join lect b on b.lectno=a.lectno
|
||||
inner join cmev d on d.cmno=b.cmno
|
||||
</sql>
|
||||
<select id="grade.lectgrades" parameterClass="hashtable" resultClass="lect">
|
||||
<select id="grade.lectgrades_old" parameterClass="hashtable" resultClass="lect">
|
||||
select a.*
|
||||
from (
|
||||
select a.lectno,b.userno,b.payno
|
||||
|
|
@ -328,6 +328,292 @@
|
|||
<include refid="sql.pagedynamic"></include>
|
||||
order by a.rno
|
||||
</select>
|
||||
<select id="grade.lectgrades" parameterClass="hashtable" resultClass="lect">
|
||||
select a.*
|
||||
from (
|
||||
select a.lectno,b.userno,b.payno
|
||||
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">c.cname,c.cmno,u.username</isNull> ) rno
|
||||
,count(a.lectno) over() pagetotalcount
|
||||
,b.isrebate
|
||||
,case when ppl.asname is not null then ppl.asname else ua.asname end asname
|
||||
,ppl.brno,ppl.ceoname,ppl.post,ppl.address1,ppl.address2,ppl.btype,ppl.bkind,ppl.eino,ppl.mname,ppl.association
|
||||
,CAST(AES_DECRYPT(UNHEX(ppl.mphone), <include refid="sql.digest"></include>) AS char) mphone
|
||||
,CAST(AES_DECRYPT(UNHEX(ppl.taxemail), <include refid="sql.digest"></include>) AS char) taxemail
|
||||
,u.username,u.userid,u.slevel,u.uduty
|
||||
,b.iscomplete,b.completetime,b.completeno,b.sdate,b.edate
|
||||
,concat(substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),1,6),'-',substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),7,7)) userpno
|
||||
,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile
|
||||
,b.cmisno
|
||||
,p.payoktime,p.payamt
|
||||
,c.cshape,c.sstime,c.cmno,c.cname,c.classno,c.studytime
|
||||
,t.tyear
|
||||
,cg.cgname,cg.pcgno,pcg.cgname as pcgname
|
||||
,d.isoffabs
|
||||
,b.attrate
|
||||
,a.apoint
|
||||
,a.ex0cnt,a.ex0lectcnt,a.ex0lectpoint,a.mpoint
|
||||
,a.ex1cnt,a.ex1lectcnt,a.ex1lectpoint,a.fpoint
|
||||
,a.sd0cnt,a.sd0lectcnt,a.sd0lectpoint,a.spoint
|
||||
,a.sd1cnt,a.sd1lectcnt,a.sd1lectpoint,a.dpoint
|
||||
,a.rs0cnt,a.rs0lectcnt,a.rs0lectpoint
|
||||
,a.ispassat
|
||||
,e.sseq,e.estart,e.eend,e.studyplace
|
||||
,f.istatus
|
||||
,cc.cname studyplacename
|
||||
,tm.cname typemanname, te.cname typeeduname
|
||||
,tg.cname typegradename, tj.cname typejobname
|
||||
,date_format((case when c.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') edatestring
|
||||
,pi.tbankuser rbankuser,pi.rbank,pi.pino,pi.rbankamt
|
||||
,CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), <include refid="sql.digest"></include>) AS char) as rbankaccnum
|
||||
from (
|
||||
select a.lectno
|
||||
,(b.attrate / 100) * (case when b.isrebate=1 then d.attendrfd else d.attend end / 100) * 100 apoint
|
||||
,a.ex0cnt,a.ex0lectcnt,a.ex0lectpoint,(a.ex0lectpoint / 100) * (case when b.isrebate=1 then d.midrfd else d.mid end / 100) * 100 mpoint
|
||||
,a.ex1cnt,a.ex1lectcnt,a.ex1lectpoint,(a.ex1lectpoint / 100) * (case when b.isrebate=1 then d.finalrfd else d.final end / 100) * 100 fpoint
|
||||
,a.sd0cnt,a.sd0lectcnt,a.sd0lectpoint,(a.sd0lectpoint / 100) * (case when b.isrebate=1 then d.subjectrfd else d.subject end / 100) * 100 spoint
|
||||
,a.sd1cnt,a.sd1lectcnt,a.sd1lectpoint,(a.sd1lectpoint / 100) * (case when b.isrebate=1 then d.discussrfd else d.discuss end / 100) * 100 dpoint
|
||||
,a.rs0cnt,a.rs0lectcnt,a.rs0lectpoint
|
||||
,case when case when b.isrebate=1 then d.attendcutrfd else d.attendcut end <= b.attrate then 1 else 0 end ispassa
|
||||
,case when case when b.isrebate=1 then d.midcutrfd else d.midcut end <= a.ex0lectpoint then 1 else 0 end ispassm
|
||||
,case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end <= a.ex1lectpoint then 1 else 0 end ispassf
|
||||
,case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end <= a.sd0lectpoint then 1 else 0 end ispasss
|
||||
,case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end <= a.sd1lectpoint then 1 else 0 end ispassd
|
||||
,case when case when ifnull(d.isoffabs,0)=1 then ifnull(a.at0cnt,0) else 0 end <= ifnull(a.at0lectcnt,0) then 1 else 0 end ispassat
|
||||
,case when
|
||||
case when case when ifnull(d.isoffabs,0)=1 then ifnull(a.at0cnt,0) else 0 end <= ifnull(a.at0lectcnt,0) then 1 else 0 end = 1 and
|
||||
case when case when b.isrebate=1 then d.attendcutrfd else d.attendcut end <= b.attrate then 1 else 0 end =1 and
|
||||
case when case when b.isrebate=1 then d.midcutrfd else d.midcut end <= a.ex0lectpoint then 1 else 0 end =1 and
|
||||
case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end <= a.ex1lectpoint then 1 else 0 end =1 and
|
||||
case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end <= a.sd0lectpoint then 1 else 0 end =1 and
|
||||
case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end <= a.sd1lectpoint then 1 else 0 end =1 and
|
||||
case when case when b.isrebate=1 then d.cutrfd else d.cut end <=
|
||||
((b.attrate / 100) * (case when b.isrebate=1 then d.attendrfd else d.attend end / 100 * 100))
|
||||
+((a.ex0lectpoint / 100) * (case when b.isrebate=1 then d.midrfd else d.mid end / 100)* 100)
|
||||
+((a.ex1lectpoint / 100) * (case when b.isrebate=1 then d.finalrfd else d.final end / 100)* 100)
|
||||
+((a.sd0lectpoint / 100) * (case when b.isrebate=1 then d.subjectrfd else d.subject end / 100)* 100)
|
||||
+((a.sd1lectpoint / 100) * (case when b.isrebate=1 then d.discussrfd else d.discuss end / 100)* 100) then 1 else 0 end = 1 then 1 else 0 end ispass
|
||||
from (
|
||||
select a.lectno
|
||||
,sum(ex0cnt) ex0cnt,sum(ex0lectcnt) ex0lectcnt,sum(ex0lectpoint) ex0lectpoint
|
||||
,sum(ex1cnt) ex1cnt,sum(ex1lectcnt) ex1lectcnt,sum(ex1lectpoint) ex1lectpoint
|
||||
,sum(sd0cnt) sd0cnt,sum(sd0lectcnt) sd0lectcnt,sum(sd0lectpoint) sd0lectpoint
|
||||
,sum(sd1cnt) sd1cnt,sum(sd1lectcnt) sd1lectcnt,sum(sd1lectpoint) sd1lectpoint
|
||||
,sum(rs0cnt) rs0cnt,sum(rs0lectcnt) rs0lectcnt,sum(rs0lectpoint) rs0lectpoint
|
||||
,sum(at0cnt) at0cnt,sum(at0lectcnt) at0lectcnt
|
||||
from (
|
||||
select a.lectno
|
||||
,count(b.exno) ex0cnt,count(c.lectno) ex0lectcnt,avg(ifnull(c.tpoint,0) / b.tpoint * 100) ex0lectpoint
|
||||
,0 ex1cnt,0 ex1lectcnt,0 ex1lectpoint
|
||||
,0 sd0cnt,0 sd0lectcnt,0 sd0lectpoint
|
||||
,0 sd1cnt,0 sd1lectcnt,0 sd1lectpoint
|
||||
,0 rs0cnt,0 rs0lectcnt,0 rs0lectpoint
|
||||
,0 at0cnt,0 at0lectcnt
|
||||
from (
|
||||
select b.lectno,a.cmno
|
||||
from cm a
|
||||
inner join cm a2 on a.pcmno = a2.cmno
|
||||
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
|
||||
inner join users c on c.userno=b.userno and c.status=1
|
||||
inner join pay p on p.payno=b.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
where a.ismaster=0 and a.isdel=0
|
||||
<isNotNull property="usernamestr">and c.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
left outer join cmex b on b.cmno=a.cmno and b.extype=0 and b.isdel=0
|
||||
left outer join lectex c on c.lectno=a.lectno and c.exno=b.exno
|
||||
group by a.lectno
|
||||
|
||||
union all
|
||||
|
||||
select a.lectno
|
||||
,0,0,0
|
||||
,count(b.exno),count(c.lectno),avg(ifnull(c.tpoint,0) / b.tpoint * 100)
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0
|
||||
from (
|
||||
select b.lectno,a.cmno
|
||||
from cm a
|
||||
inner join cm a2 on a.pcmno = a2.cmno
|
||||
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
|
||||
inner join users c on c.userno=b.userno and c.status=1
|
||||
inner join pay p on p.payno=b.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
where a.ismaster=0 and a.isdel=0
|
||||
<isNotNull property="usernamestr">and c.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
left outer join cmex b on b.cmno=a.cmno and b.extype=1 and b.isdel=0
|
||||
left outer join lectex c on c.lectno=a.lectno and c.exno=b.exno
|
||||
group by a.lectno
|
||||
|
||||
union all
|
||||
|
||||
select a.lectno
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,count(b.sdno),count(c.lectno),avg(ifnull(c.cpoint,0) / b.tpoint * 100)
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0
|
||||
from (
|
||||
select b.lectno,a.cmno
|
||||
from cm a
|
||||
inner join cm a2 on a.pcmno = a2.cmno
|
||||
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
|
||||
inner join users c on c.userno=b.userno and c.status=1
|
||||
inner join pay p on p.payno=b.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
where a.ismaster=0 and a.isdel=0
|
||||
<isNotNull property="usernamestr">and c.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
left outer join cmsd b on b.cmno=a.cmno and b.sdtype=0 and b.isdel=0
|
||||
left outer join lectsd c on c.lectno=a.lectno and c.sdno=b.sdno
|
||||
group by a.lectno
|
||||
|
||||
union all
|
||||
|
||||
select a.lectno
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,count(b.sdno),count(c.lectno),avg(ifnull(c.cpoint,0) / b.tpoint * 100)
|
||||
,0,0,0
|
||||
,0,0
|
||||
from (
|
||||
select b.lectno,a.cmno
|
||||
from cm a
|
||||
inner join cm a2 on a.pcmno = a2.cmno
|
||||
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
|
||||
inner join users c on c.userno=b.userno and c.status=1
|
||||
inner join pay p on p.payno=b.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
where a.ismaster=0 and a.isdel=0
|
||||
<isNotNull property="usernamestr">and c.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
left outer join cmsd b on b.cmno=a.cmno and b.sdtype=1 and b.isdel=0
|
||||
left outer join lectsd c on c.lectno=a.lectno and c.sdno=b.sdno
|
||||
group by a.lectno
|
||||
|
||||
union all
|
||||
|
||||
select a.lectno
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,count(b.rsno),count(c.lectno),0
|
||||
,0,0
|
||||
from (
|
||||
select b.lectno,a.cmno
|
||||
from cm a
|
||||
inner join cm a2 on a.pcmno = a2.cmno
|
||||
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
|
||||
inner join users c on c.userno=b.userno and c.status=1
|
||||
inner join pay p on p.payno=b.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
where a.ismaster=0 and a.isdel=0
|
||||
<isNotNull property="usernamestr">and c.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
left outer join cmrs b on b.cmno=a.cmno and b.rstype=0 and b.isdel=0
|
||||
left outer join lectrs c on c.lectno=a.lectno and c.rsno=b.rsno
|
||||
group by a.lectno
|
||||
|
||||
union all
|
||||
|
||||
select a.lectno
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,0,0,0
|
||||
,count(b.cmino),count(c.lectno)
|
||||
from (
|
||||
select b.lectno,a.cmno
|
||||
from cm a
|
||||
inner join cm a2 on a.pcmno = a2.cmno
|
||||
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
|
||||
inner join users c on c.userno=b.userno and c.status=1
|
||||
inner join pay p on p.payno=b.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
where a.ismaster=0 and a.isdel=0
|
||||
<isNotNull property="usernamestr">and c.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
left outer join cminning b on b.cmno=a.cmno and b.isonline =0 and b.isscd = 1
|
||||
left outer join lectinning c on c.cmino=b.cmino and c.lectno = a.lectno and c.istatus = 2
|
||||
group by a.lectno
|
||||
) a
|
||||
group by a.lectno
|
||||
) a
|
||||
inner join lect b on b.lectno=a.lectno
|
||||
inner join cmev d on d.cmno=b.cmno
|
||||
) a
|
||||
inner join lect b on b.lectno=a.lectno
|
||||
inner join pay p on p.payno=b.payno
|
||||
inner join users u on u.userno=b.userno
|
||||
left outer join assign ua on ua.asno=u.asno
|
||||
inner join cm c on c.cmno=b.cmno
|
||||
inner join cm c2 on c2.cmno=c.pcmno
|
||||
inner join cmev d on d.cmno=c.cmno
|
||||
left outer join term t on t.tmno = c.tmno
|
||||
left outer join cg cg on cg.cgno = c.cgno
|
||||
left outer join cg pcg on pcg.cgno = cg.pcgno
|
||||
left outer join payitem pi on pi.payno = p.payno
|
||||
left outer join cminningscd e on e.cmisno = b.cmisno
|
||||
left outer join lectinning f on f.lectno = b.lectno and f.cmino = e.cmino
|
||||
left outer join comcode cc on cc.ccode = e.studyplace and cc.isuse=1
|
||||
left outer join pplog ppl on ppl.pplno = p.pplno
|
||||
left outer join comcode tm on tm.ccode = ppl.typeman
|
||||
left outer join comcode te on te.ccode = ppl.typeedu
|
||||
left outer join comcode tg on tg.ccode = ppl.typegrade
|
||||
left outer join comcode tj on tj.ccode = ppl.typejob
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cshape" prepend="and">c.cshape = #cshape#</isNotNull>
|
||||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
<isNotNull property="est1not" prepend="and">a.ex0lectcnt < a.ex0cnt</isNotNull>
|
||||
<isNotNull property="est2not" prepend="and">a.ex1lectcnt < a.ex1cnt</isNotNull>
|
||||
<isNotNull property="est11not" prepend="and">a.sd0lectcnt < a.sd0cnt</isNotNull>
|
||||
<isNotNull property="est12not" prepend="and">a.sd1lectcnt < a.sd1cnt</isNotNull>
|
||||
<isNotNull property="est21not" prepend="and">a.rs0lectcnt < a.rs0cnt</isNotNull>
|
||||
<isNotNull property="cname" prepend="and">c2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cnamestr" prepend="and">c.cname like concat('%',#cnamestr#,'%')</isNotNull>
|
||||
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
|
||||
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull>
|
||||
<isNotNull property="ispasss" prepend="and">((a.sd0cnt > 0 and a.sd0lectcnt > 0))</isNotNull>
|
||||
<isNotNull property="ispassa" prepend="and">a.ispassa = #ispassa#</isNotNull>
|
||||
<isNotNull property="ispassex" prepend="and">(a.ispassm = #ispassex# and a.ispassf = #ispassex#) </isNotNull>
|
||||
<isNotNull property="usernamestr" prepend="and">u.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="useridstr" prepend="and">u.userid like concat('%',#useridstr#,'%')</isNotNull>
|
||||
<isNotEmpty property="usernameid" prepend="and">(u.userid like concat('%',#usernameid#,'%') or u.username like concat('%',#usernameid#,'%') or u.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when c.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when c.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
<isNotNull property="asname" prepend="and">ua.asname like concat('%',#asname#,'%')</isNotNull>
|
||||
<isNotNull property="edate" prepend="and">date_format((case when c.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
|
||||
<isNotNull property="mobile" prepend="and">cast(AES_DECRYPT(UNHEX(u.mobile), 'np123@!' ) as char) like concat('%',#mobile#,'%')</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
order by a.rno
|
||||
|
||||
</select>
|
||||
<update id="grade.lectcomplete.abs" parameterClass="hashtable">
|
||||
update lect set <include refid="sql.up"></include>
|
||||
,iscomplete=1
|
||||
|
|
|
|||
Loading…
Reference in New Issue