2024-01-12 14:44 강사료 확정 관리 쿼리 수정, 자동 배정 수정 중

This commit is contained in:
myname 2024-01-12 14:45:20 +09:00
parent 44023bf5dd
commit bb821678ae
4 changed files with 45 additions and 101 deletions

View File

@ -643,95 +643,16 @@ public class CommonWebController {
//step2.배정 대상별 가능한 대상 강사 찾기 등록 //step2.배정 대상별 가능한 대상 강사 찾기 등록
int p=0; int p=0;
{ {
System.out.println("vEEduAplctVOList.size()");
System.out.println(vEEduAplctVOList.size());
System.out.println(vEEduAplctVOList.size());
for (int i=0;i<vEEduAplctVOList.size();i++) { for (int i=0;i<vEEduAplctVOList.size();i++) {
//chasiord, aplctord, hopedt & loginVO //chasiord, aplctord, hopedt & loginVO
p = p + this.setTngrInstrAsgnm20231115(vEEduAplctVOList.get(i), loginVO); //p = p + this.setTngrInstrAsgnm20231115(vEEduAplctVOList.get(i), loginVO);
/*
//eduChasiOrd, 희망일자가 필요
VEEduAplctVO tChasiInfo = vEEduAplctVOList.get(i);
String s_eduHopeDt = tChasiInfo.getEduHopeDt(); //교육희망일자
//String s_addr = tChasiInfo.getAddr(); //지역명
System.out.println(s_eduHopeDt);
//System.out.println(s_addr);
//파라미터
VEAutoAsgnmVO vEAutoAsgnmVO = null;
String s_user_id = "'aaa'";
//대상 강사 리스트
List<VEAutoAsgnmVO> vEInstrAssiEduAplctVOList = null;
//필수 조건(월별시수제한, 요일, 희망지역)
{
//step2-1.가능 강사중 월별 시수이상을 받지 않은자 & 해당 요일에 수업 가능한 강사 리스트()
vEAutoAsgnmVO = new VEAutoAsgnmVO();
vEAutoAsgnmVO.setEduHopeMnt(s_eduHopeDt.substring(5,7));
vEAutoAsgnmVO.setYr(s_eduHopeDt.substring(0,4));
vEAutoAsgnmVO.setInstrDiv("10"); //10-청소년, 20-성인
vEAutoAsgnmVO.setEduChasiOrd(tChasiInfo.getEduChasiOrd());
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrMntAsgnmtChasiList(vEAutoAsgnmVO);
//step2-2.희망 지역 강사 검색()
for (int j=0;j<vEInstrAssiEduAplctVOList.size();j++) {
s_user_id = s_user_id + ",'" + vEInstrAssiEduAplctVOList.get(j).getUserId()+"'";
}
if (!"'aaa'".equals(s_user_id)) { //대상 강사가 있을때만 다음을 실행한다.
vEAutoAsgnmVO.setUserIds(s_user_id);
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrHopeAreaList(vEAutoAsgnmVO);
}
}
//우선순위
{
//step3-1.거주지 강사 우선(월별배정 비율 적용)
//step3-2.연강가능여부(같은날 연강은 연강강사가 우선 배정)
//step3-3.패널티(패널티 없는 사람이 우선순위 높게)
//step3-4.월별시수대비할당이적은자 우선()
s_user_id = "'aaa'";
for (int j=0;j<vEInstrAssiEduAplctVOList.size();j++) {
s_user_id = s_user_id + ",'" + vEInstrAssiEduAplctVOList.get(j).getUserId()+"'";
}
if (!"'aaa'".equals(s_user_id)) { //대상 강사가 있을때만 다음을 실행한다.
vEAutoAsgnmVO.setUserIds(s_user_id);
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrPriorityList(vEAutoAsgnmVO);
}
}
//강사배정-대상 강사가 있어야 강사를 할당한다.
if (vEInstrAssiEduAplctVOList.size()>0) {
VEInstrAsgnmVO p_vEInstrAsgnmVO = new VEInstrAsgnmVO();
p_vEInstrAsgnmVO.setEduAplctOrd(tChasiInfo.getEduAplctOrd());
p_vEInstrAsgnmVO.setEduChasiOrd(tChasiInfo.getEduChasiOrd());
p_vEInstrAsgnmVO.setUserId(vEInstrAssiEduAplctVOList.get(0).getUserId());
p_vEInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId());
p_vEInstrAsgnmVO.setAsgnmAprvlCd("10");
p_vEInstrAsgnmVO.setAsgnmAprvlId(loginVO.getUniqId());
p_vEInstrAsgnmVO.setRmrks("배정기준1순위");
//저장
vEEduChasiInstrAsgnmService.insert(p_vEInstrAsgnmVO);
//저장여부 확인
//step3-1.해당 차시에 강사 배정이 있는지 확인
VEInstrAsgnmVO vEInstrAsgnmVOTmp = vEEduChasiInstrAsgnmService.selectDetail(p_vEInstrAsgnmVO);
if (vEInstrAsgnmVOTmp!=null) p = p+1;
}
*/
} }
} }

View File

@ -132,9 +132,9 @@
, A.EDU_CHASI_ORD AS eduChasiOrd , A.EDU_CHASI_ORD AS eduChasiOrd
, B.INSTR_FEE_ORD AS instrFeeOrd , B.INSTR_FEE_ORD AS instrFeeOrd
, A.USER_ID AS userId , A.USER_ID AS userId
,(SELECT AA.ADDR FROM VE_INSTR_DETAIL AA WHERE 1=1 AND AA.USER_ID = A.USER_ID AND aa.instr_div=e.lctr_div_cd AND aa.use_yn='Y') AS instrRsdnc ,(SELECT AA.ADDR FROM VE_INSTR_DETAIL AA WHERE 1=1 AND AA.USER_ID = A.USER_ID AND aa.instr_div=e.lctr_div_cd AND aa.use_yn='Y' LIMIT 1) AS instrRsdnc
,(SELECT AA.div_cd FROM VE_INSTR_DETAIL AA WHERE 1=1 AND AA.USER_ID = A.USER_ID AND aa.instr_div=e.lctr_div_cd AND aa.use_yn ='Y') AS divCd ,(SELECT AA.div_cd FROM VE_INSTR_DETAIL AA WHERE 1=1 AND AA.USER_ID = A.USER_ID AND aa.instr_div=e.lctr_div_cd AND aa.use_yn='Y' LIMIT 1) AS divCd
,(SELECT EE.NEW_ADDR FROM VE_SCHOL EE WHERE 1=1 AND EE.STNDRD_SCHOL_CD = E.STNDRD_SCHOL_CD) AS scholArea ,(SELECT EE.NEW_ADDR FROM VE_SCHOL EE WHERE 1=1 AND EE.STNDRD_SCHOL_CD = E.STNDRD_SCHOL_CD) AS scholArea

View File

@ -771,7 +771,11 @@
+ NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='11' THEN bb.instrSumChasi END),0) + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='11' THEN bb.instrSumChasi END),0)
+ NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='12' THEN bb.instrSumChasi END),0))*100 + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='12' THEN bb.instrSumChasi END),0))*100
/ /
( NVL(aa.m01_tm,0) /* 0 으로 나누는 오류를 막기위해서 처리함 */
DECODE
(
(
NVL(aa.m01_tm,0)
+ NVL(aa.m02_tm,0) + NVL(aa.m02_tm,0)
+ NVL(aa.m03_tm,0) + NVL(aa.m03_tm,0)
+ NVL(aa.m04_tm,0) + NVL(aa.m04_tm,0)
@ -783,7 +787,26 @@
+ NVL(aa.m10_tm,0) + NVL(aa.m10_tm,0)
+ NVL(aa.m11_tm,0) + NVL(aa.m11_tm,0)
+ NVL(aa.m12_tm,0) + NVL(aa.m12_tm,0)
)) )
,0
,1
,
(
NVL(aa.m01_tm,0)
+ NVL(aa.m02_tm,0)
+ NVL(aa.m03_tm,0)
+ NVL(aa.m04_tm,0)
+ NVL(aa.m05_tm,0)
+ NVL(aa.m06_tm,0)
+ NVL(aa.m07_tm,0)
+ NVL(aa.m08_tm,0)
+ NVL(aa.m09_tm,0)
+ NVL(aa.m10_tm,0)
+ NVL(aa.m11_tm,0)
+ NVL(aa.m12_tm,0)
)
)
)
AS achvmRt AS achvmRt
FROM vea_instr_indvd_mnt_tm aa FROM vea_instr_indvd_mnt_tm aa

View File

@ -1061,7 +1061,7 @@
<th>교육대상</th> <th>교육대상</th>
<th>강사명</th> <th>강사명</th>
<th>선택근거</th> <th>선택근거</th>
<th>확정여부</th> <th>확정여부(코드)</th>
<th>강사배치</th> <th>강사배치</th>
<th>추가강사인원</th> <th>추가강사인원</th>
</tr> </tr>
@ -1078,7 +1078,7 @@
<input name="chk" class="${list.asgnmAprvlCd}" <input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}@${list.eduChasiOrd}" data-phone="<c:out value='${list.clphone}' />" value="${list.eduAplctOrd}@${list.eduChasiOrd}" data-phone="<c:out value='${list.clphone}' />"
data-email="<c:out value='${list.email}' />" data-cnt="<c:out value='${list.cnt}'/>" data-lctr="<c:out value='${list.userId}' />" data-email="<c:out value='${list.email}' />" data-cnt="<c:out value='${list.cnt}'/>" data-lctr="<c:out value='${list.userId}' />"
title="Check" type="checkbox"/>${list.asgnmAprvlCd} title="Check" type="checkbox"/>
</td> </td>
<td> <td>
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/> <fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/>
@ -1114,7 +1114,7 @@
<c:out value="${list.rmrks}"/> <c:out value="${list.rmrks}"/>
</td> </td>
<td> <td>
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/> <ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>(${list.asgnmAprvlCd})
</td> </td>
<td> <td>
<c:if test="${list.asgnmAprvlCd ne '20' and list.asgnmAprvlCd ne '30' and list.asgnmAprvlCd ne '40'}"> <c:if test="${list.asgnmAprvlCd ne '20' and list.asgnmAprvlCd ne '30' and list.asgnmAprvlCd ne '40'}">