feat: pms-#3220 [관리자] 청소년찾아가는 저작권 교육 > 강의조사 요청 목록 수정 사항 :: 완료

This commit is contained in:
hylee 2023-06-29 13:59:22 +09:00
parent bf04903d9e
commit 711591e6f8
8 changed files with 153 additions and 4 deletions

View File

@ -212,4 +212,14 @@ public final class DateUtil {
return strWeek;
}
public static int getNowyyyyMMddReturnInt() {
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd");
return Integer.parseInt(LocalDateTime.now().format(formatter2));
}
public static LocalDate getStringToLocalDate(String p_date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate date = LocalDate.parse(p_date, formatter);
return date;
}
}

View File

@ -22,6 +22,10 @@ public class VELctrDetailVO extends ComDefaultVO implements Serializable {
private String userNm; //사용자 이름
private String lctrStngOrd; //강의설정순번
private String lctrStngOrdTtl; // 참여현황 - 총계
private String lctrStngOrdSbmt; // 참여현황 - 참여
private String sunLctrYn; //일요일 강의 여부
private String monLctrYn; //월요일 강의 여부
private String tueLctrYn; //화요일 강의 여부
@ -120,6 +124,13 @@ public class VELctrDetailVO extends ComDefaultVO implements Serializable {
//ve_lctr_rsrch_mng
private String rsrchInstrDiv;
private String rsrchStrtDt;
// 조사 상태
private String rsrchState;
;
private String rsrchEndDt;
private String stngYrMnt; //설정년월
@ -355,6 +366,18 @@ public class VELctrDetailVO extends ComDefaultVO implements Serializable {
public String getLctrStngOrd() {
return lctrStngOrd;
}
public String getLctrStngOrdTtl() {
return lctrStngOrdTtl;
}
public void setLctrStngOrdTtl(String lctrStngOrdTtl) {
this.lctrStngOrdTtl = lctrStngOrdTtl;
}
public String getLctrStngOrdSbmt() {
return lctrStngOrdSbmt;
}
public void setLctrStngOrdSbmt(String lctrStngOrdSbmt) {
this.lctrStngOrdSbmt = lctrStngOrdSbmt;
}
public void setLctrStngOrd(String lctrStngOrd) {
this.lctrStngOrd = lctrStngOrd;
}
@ -571,6 +594,12 @@ public class VELctrDetailVO extends ComDefaultVO implements Serializable {
public String getRsrchStrtDt() {
return rsrchStrtDt;
}
public String getRsrchState() {
return rsrchState;
}
public void setRsrchState(String rsrchState) {
this.rsrchState = rsrchState;
}
public void setRsrchStrtDt(String rsrchStrtDt) {
this.rsrchStrtDt = rsrchStrtDt;
}

View File

@ -28,4 +28,8 @@ public interface VELctrRsrchMngService {
//조사진행목록
List<VELctrDetailVO> selectPagingListLctr(VELctrDetailVO paramVO) throws Exception;
// lctrStngOrd 가져오기
// 강의조사 요청목록에 참여현황 데이터 정제를 위함
List<String> findByLctrStngOrd(String stngYrMnt) throws Exception;
}

View File

@ -74,4 +74,9 @@ public class VELctrRsrchMngDAO extends EgovAbstractDAO {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VELctrRsrchMngDAO.selectPagingListLctr", paramVO);
return tlist;
}
public List<String> findByLctrStngOrd(String stngYrMnt) throws Exception {
List<String> tlist = (List<String>) list("VELctrRsrchMngDAO.findByLctrStngOrd", stngYrMnt);
return tlist;
}
}

View File

@ -57,4 +57,8 @@ public class VELctrRsrchMngServiceImpl implements VELctrRsrchMngService {
public List<VELctrDetailVO> selectPagingListLctr(VELctrDetailVO paramVO) throws Exception{
return vELctrRsrchMngDAO.selectPagingListLctr(paramVO);
}
public List<String> findByLctrStngOrd(String stngYrMnt) throws Exception{
return vELctrRsrchMngDAO.findByLctrStngOrd(stngYrMnt);
}
}

View File

@ -1,11 +1,13 @@
package kcc.ve.oprtn.instr.tngrVisitEdu.lctrRsrch.web;
import java.time.LocalDate;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@ -15,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.ctc.wstx.util.DataUtil;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
@ -22,6 +26,7 @@ import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.util.DateUtil;
import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
@ -205,6 +210,34 @@ public class OprtnLctrRsrchTngrContoller {
vELctrDetailVO = vEPagingUtil.setPagingStep2_VELctrDetailVO(vELctrDetailVO, paginationInfo);
List<VELctrDetailVO> selectVELctrDetailVOList = vELctrRsrchMngService.selectPagingList(vELctrDetailVO);
LocalDate nowDate = LocalDate.now();
selectVELctrDetailVOList.stream().forEach(t->{
try {
List<String> lctrStngOrdList = vELctrRsrchMngService.findByLctrStngOrd(t.getStngYrMnt());
// 참여현황 토탈 카운트
t.setLctrStngOrdTtl(Integer.toString(lctrStngOrdList.size()));
// 참여현황 참여 카운트
t.setLctrStngOrdSbmt(Long.toString(lctrStngOrdList.stream().filter(s -> StringUtils.isNotEmpty(s)).count()));
LocalDate startDate = DateUtil.getStringToLocalDate(t.getRsrchStrtDt());
LocalDate endDate = DateUtil.getStringToLocalDate(t.getRsrchEndDt());
// 진행중 체크
// 공통 코드 추가 VE0034 01 : 진행전, 02 : 진행중, 03 : 마감
if(nowDate.isEqual(startDate) || nowDate.isEqual(endDate)) {t.setRsrchState("02");}
else if(nowDate.isBefore(startDate)) {t.setRsrchState("01");}
else if(nowDate.isAfter(endDate)) {t.setRsrchState("03");}
t.getRsrchEndDt();
t.getRsrchState();
DateUtil.getNowyyyyMMddReturnInt();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
});
//3.pageing step3
paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectVELctrDetailVOList, paginationInfo);

View File

@ -357,4 +357,65 @@
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<select id="VELctrRsrchMngDAO.findByLctrStngOrd" parameterClass="String" resultClass="String">
select
ccc.lctr_stng_ord as lctrStngOrd
from
(
select
aa.rsrch_instr_div ,
aa.stng_yr_mnt ,
aa.rsrch_strt_dt ,
aa.rsrch_end_dt ,
bb.*
from
ve_lctr_rsrch_mng aa,
(
select
b.instr_div ,
b.user_id
from
ve_instr a ,
ve_instr_detail b
where
a.tngr_instr_yn = 'Y'
and b.instr_div = '10'
and b.user_id = a.user_id
and b.use_yn = 'Y'
)bb
where
aa.rsrch_instr_div = '10'
and aa.stng_yr_mnt = #stngYrMnt#
)aaa
left outer join (
select
c.*
from
ve_lctr_rsrch_mng a ,
ve_lctr_rsrch_sbmt b ,
ve_lctr_stng c
where
a.rsrch_instr_div = '10'
and a.stng_yr_mnt = #stngYrMnt#
and a.rsrch_instr_div = b.rsrch_instr_div
and a.stng_yr_mnt = b.stng_yr_mnt
and b.instr_div = c.instr_div
and b.user_id = c.user_id
and b.lctr_stng_ord = c.lctr_stng_ord /* 제출인것만 제출로 인정 2023-03-14 사용은 하나뿐이므로 use_yn='Y' only one, but sbmt_yn='Y'는 모든 제출에 적용 */
and c.sbmt_yn = 'Y'
) ccc
on ccc.instr_div = aaa.instr_div
and ccc.user_id = aaa.user_id
</select>
</sqlMap>

View File

@ -232,6 +232,7 @@
<th>강의조사월</th>
<th>조사시작일</th>
<th>조사마감일</th>
<th>참여현황</th>
<th>마감여부</th>
</tr>
</thead>
@ -253,9 +254,11 @@
</td>
<td>
<fmt:parseDate value="${list.rsrchEndDt}" var="rsrchEndDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${rsrchEndDt}" pattern="yyyy.MM.dd"/>
${list.lctrStngOrdSbmt } / ${list.lctrStngOrdTtl }
</td>
<td>
<ve:code codeId="VE0034" code="${list.rsrchState }"/>
</td>
</tr>
</c:forEach>