From f044c66bde5bdd6ec8b051a7cd21543a206b2625 Mon Sep 17 00:00:00 2001 From: iyak Date: Tue, 8 Apr 2025 09:21:06 +0000 Subject: [PATCH] =?UTF-8?q?6714.=20=EC=A7=91=ED=95=A9=EA=B5=90=EC=9C=A1=20?= =?UTF-8?q?=EC=B6=9C=EC=84=9D=20=EB=A9=94=EB=89=B4=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BO/Controllers/croomController.cs | 43 ++-- BO/Views/croom/attscds.cshtml | 161 ++++++++++---- Dao/MyBatis/Maps/Lect.xml | 339 +++++++++++++++++------------- 3 files changed, 342 insertions(+), 201 deletions(-) diff --git a/BO/Controllers/croomController.cs b/BO/Controllers/croomController.cs index 35638cf..76276e1 100644 --- a/BO/Controllers/croomController.cs +++ b/BO/Controllers/croomController.cs @@ -517,23 +517,39 @@ namespace NP.BO.Controllers vm.pagetotalcount = GetCount(vm.LectInnings.FirstOrDefault()); return View(vm); } + + /// + /// 교육운영 > 집합교육 출석 + /// + /// + /// public ActionResult attscds(VMLect vm) { vm.ComCodes = GetComCodes("studyplace"); ViewBag.reporturl = GetConfig("reporturl"); + var ht = SetHash(vm); - ht.Add("edate", vm.stringval); - ht.Add("cname", vm.stringval2); - ht.Add("studyplace", vm.stringval3); - ht.Add("stringval17", vm.stringval17); + ht.Add("edate", vm.stringval); // 교육종료일 + ht.Add("cname", vm.stringval2); // 과정명 + ht.Add("studyplace", vm.stringval3); // 교육장 + ht.Add("stringval17", vm.stringval17); // 출석여부 + ht.Add("stringval4", vm.stringval4); // 출석일 + ht.Add("stringval5", vm.stringval5); // 교육유형 + ht.Add("stringval6", vm.stringval6); // 수료여부 + if (vm.isexceldown == 1) { vm.Lects = Dao.Get("lect.lectinnings.forattscd2", ht); - //return ExportExcel( - // new String[] { "No", "운영기수", "교육장", "과정명", "교육생(ID)", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, - // new String[] { "rnorvt", "sseqstr", "studyplacename", "cname", "usernameid", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" }, - // vm.Lects, - // "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); + + if (vm.Lects.Any()) + { + // cshapename가 이미 설정되어 있다. cshapename2에 cshapename의 앞 3글자만 저장 + vm.Lects.ToList().ForEach(i => + { + i.cshapename2 = (!string.IsNullOrEmpty(i.cshapename) && i.cshapename.Length > 3) ? i.cshapename.Substring(0, 3) : i.cshapename; + }); + } + if (vm.excellog != null) { vm.excellog.userno = SUserInfo.UserNo; @@ -541,11 +557,12 @@ namespace NP.BO.Controllers Dao.Save("excellog.in", vm.excellog); } + return ExportExcel( - new String[] { "No", "교육장", "아이디", "교육생이름", "교육생 전화번호", "이메일", "과정명", "기술인분류", "교육목적", "등급", "직무분야", "전문분야", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, - new String[] { "rnorvt", "studyplacename", "userid", "username", "mobile", "email", "cname", "zstring0", "zstring1", "zstring2", "zstring4", "zstring5", "sdatestr", "edatestr", "zstring3", "istatusname", "iscompletename" }, + new string[] { "No", "교육장", "아이디", "교육생이름", "교육생 전화번호", "이메일", "교육유형", "과정명", "기술인분류", "교육목적", "등급", "직무분야", "전문분야", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, + new string[] { "rnorvt", "studyplacename", "userid", "username", "mobile", "email", "cshapename2", "cname", "zstring0", "zstring1", "zstring2", "zstring4", "zstring5", "sdatestr", "edatestr", "zstring3", "istatusname", "iscompletename" }, vm.Lects, - "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); + $"attscds_{DateTime.Now.Year}{DateTime.Now.Month}{DateTime.Now.Day}"); } else { @@ -553,8 +570,10 @@ namespace NP.BO.Controllers vm.Lects = Dao.Get("lect.lectinnings.forattscd", ht); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); } + return View(vm); } + public ActionResult grades(NP.Model.VMCM vm) { vm.IsAdmin = SUserInfo.IsAdmin; diff --git a/BO/Views/croom/attscds.cshtml b/BO/Views/croom/attscds.cshtml index 7c43525..2f2da32 100644 --- a/BO/Views/croom/attscds.cshtml +++ b/BO/Views/croom/attscds.cshtml @@ -1,16 +1,28 @@ @model NP.Model.VMLect +@{ + /* + // stringval : 교육종료일 + // stringval4 : 출석일 + // stringval3 : 교육장 + // stringval2 : 과정명 + // stringval17 : 출석여부 + // stringval5 : 교육유형 + // stringval6 : 수료여부 + */ +} +
+ +
- @*@Html.Partial("./Partial/SearchCaption")*@
- - - - - + + + + @@ -29,10 +41,10 @@ - + @@ -42,11 +54,39 @@ -
과정명출석일
- @Html.Partial("./Partial/Text", Model.stringval2, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval2", Value = Model.stringval2 })) + @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval4) ? (DateTime?)null : Convert.ToDateTime(Model.stringval4), new ViewDataDictionary { { "name", "stringval4" } })
교육장
+ + 과정명 + +
+ @Html.Partial("./Partial/Text", Model.stringval2, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval2", Value = Model.stringval2 })) +
+ + 수료여부 + +
+ @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "valuetext", ":전체;1:수료;0:미수료" } }) +
+ + + + 교육유형 + +
+ @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "valuetext", ":전체;1:교육장;2:온라인" } }) +
+ +   + +
+   +
+ + +
-
- * 온라인 교육만 해당되며, 교육장교육은 검색되지 않습니다. 교육장교육은 성적처리 기능을 이용해주세요. + +
@@ -54,15 +94,17 @@
@Html.HiddenFor(m => m.intval2) - +
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "onchange", "submit()" }, { "name", "stringval17" }, { "selected", Model.stringval17 }, { "valuetext", ":출석여부;0:미입력;2:출석" }, { "style", "vertical-align: middle" } }) @Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } }) - 출석처리 - 결석처리 - 미입력처리 - 엑셀 다운로드 + 출석처리 + 결석처리 + 미입력처리 + 엑셀 다운로드
+ +
@@ -71,6 +113,7 @@ + @@ -88,6 +131,7 @@ + @@ -95,7 +139,7 @@ { if (d.iscomplete != 1) { - + } else { @@ -122,36 +166,47 @@
No 운영기수 교육장교육유형 과정명 교육생(ID) 교육시작일@d.rnorvt @d.sseqstr @d.studyplacename@((!string.IsNullOrEmpty(d.cshapename) && d.cshapename.Length > 3) ? d.cshapename.Substring(0,3) : d.cshapename) @d.cname @d.usernameid @d.sdatestr
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount) +
@Html.Partial("./Partial/ExcelCommentBox")
-

교육일정변경닫기

+

교육일정변경닫기

    + @section styles{ - + } + @section scriptsHeader{ @Html.Partial("./Partial/FileScript") @Html.Partial("./Partial/ScriptDate") @Html.Partial("./Partial/ScdScript") } + @section scripts{ -} +} \ No newline at end of file diff --git a/Dao/MyBatis/Maps/Lect.xml b/Dao/MyBatis/Maps/Lect.xml index b1dd22c..3d1161b 100644 --- a/Dao/MyBatis/Maps/Lect.xml +++ b/Dao/MyBatis/Maps/Lect.xml @@ -779,151 +779,197 @@ order by a.rno - - - - + SELECT + a.* + FROM ( + SELECT + a.lectno + ,a.isrebate,p.payoktime,a.iscomplete, a.stime + ,c.cmino,c.cmno,c.cshape,c.cname + ,b2.isoffabs + ,a.sdate,a.edate + ,DATE_FORMAT(g.stime, '%Y-%m-%d') zstring3 + ,a.cmisno + ,c.sseq,f.cname studyplacename + ,c.estart,c.eend + ,e.userno,e.userid, e.username + ,g.istatus + ,ROW_NUMBER() OVER(ORDER BY e.username) rno + ,COUNT(a.cdt) OVER() pagetotalcount + FROM lect a + INNER JOIN pay p ON p.payno = a.payno + INNER JOIN ( + SELECT + c.cmno, c.cshape, c.cname + ,ci.cmino + ,d.cmisno,d.sseq,d.estart,d.eend,d.studyplace + FROM cm c + INNER JOIN cminning ci ON c.cmno = ci.cmno + INNER JOIN cminningscd d ON d.cmino = ci.cmino + WHERE + ci.isscd = 1 + AND IFNULL(ci.scdtype, 0) = 0 + ) c ON c.cmno = a.cmno and c.cmisno = a.cmisno + INNER JOIN cmev b2 ON b2.cmno = c.cmno + INNER JOIN users e ON e.userno = a.userno + LEFT OUTER JOIN comcode f ON f.ccode = c.studyplace AND f.isuse =1 + LEFT OUTER JOIN lectinning g ON g.cmino = c.cmino AND g.lectno = a.lectno + WHERE + a.status=1 + AND a.ischanged=0 + AND DATE_FORMAT(a.edate,'%Y%m%d') = DATE_FORMAT(#edate#,'%Y%m%d') + AND c.cname LIKE CONCAT('%',#cname#,'%') + AND c.studyplace = #studyplace# + + AND g.istatus IS NULL + AND g.istatus = 2 + + + AND e.username LIKE CONCAT('%',#searchtext#,'%') + AND e.userid LIKE CONCAT('%',#searchtext#,'%') + + + AND (g.stime BETWEEN CONCAT(#stringval4#, ' 00:00:00') AND CONCAT(#stringval4#, ' 23:59:59') ) + + AND c.cshape = #stringval5# + + AND a.iscomplete = 1 + AND (a.iscomplete != 1 OR a.iscomplete IS NULL) + + ) a + + ORDER BY a.rno + + + + + + + + + + +