<기능개선>

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:
jity7777 2022-10-04 03:29:10 +00:00
parent 3b29f526fb
commit fb4f8e6ebb
4 changed files with 368 additions and 61 deletions

View File

@ -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,7 +744,8 @@ namespace NP.BO.Controllers
vm.excellog.userno = SUserInfo.UserNo;
vm.excellog.userip = GetUserIP();
}
if(searchGo == "T")
{
switch (vm.tabidx)
{
case 0:
@ -809,6 +811,11 @@ namespace NP.BO.Controllers
break;
default: break;
}
}
else
{
vm.Lects = new List<Lect>();
}
return View(vm);
}

View File

@ -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);

View File

@ -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" />

View File

@ -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
@ -327,6 +327,292 @@
) a
<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 &lt;= b.attrate then 1 else 0 end ispassa
,case when case when b.isrebate=1 then d.midcutrfd else d.midcut end &lt;= a.ex0lectpoint then 1 else 0 end ispassm
,case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end ispassf
,case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end &lt;= a.sd0lectpoint then 1 else 0 end ispasss
,case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end &lt;= 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 &lt;= 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 &lt;= 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 &lt;= b.attrate then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.midcutrfd else d.midcut end &lt;= a.ex0lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end &lt;= a.sd0lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end &lt;= a.sd1lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.cutrfd else d.cut end &lt;=
((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) &gt;= 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) &lt;= 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) &gt;= 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) &lt;= 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) &gt;= 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) &lt;= 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) &gt;= 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) &lt;= 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) &gt;= 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) &lt;= 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) &gt;= 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) &lt;= 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 &lt; a.ex0cnt</isNotNull>
<isNotNull property="est2not" prepend="and">a.ex1lectcnt &lt; a.ex1cnt</isNotNull>
<isNotNull property="est11not" prepend="and">a.sd0lectcnt &lt; a.sd0cnt</isNotNull>
<isNotNull property="est12not" prepend="and">a.sd1lectcnt &lt; a.sd1cnt</isNotNull>
<isNotNull property="est21not" prepend="and">a.rs0lectcnt &lt; 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 &gt; 0 and a.sd0lectcnt &gt; 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) &gt;= 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) &lt;= 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>