320 lines
11 KiB
Plaintext
320 lines
11 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file="/init_jqGrid.jsp"%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
<script>
|
|
var deptList;
|
|
var userList;
|
|
$(document).ready(function(){
|
|
|
|
deptList = fn_getDeptList();
|
|
userList = fn_getUserList();
|
|
|
|
$(".deptSelectBox").each(function(i){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var thisDeptCode = $(this).attr("data-DEPT_CODE");
|
|
$(this).children('option').remove();
|
|
$(this).append(fn_setDeptList(deptList, thisDeptCode));
|
|
});
|
|
|
|
$(".userSelectBox").each(function(i){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var thisDeptCode = $(this).attr("data-DEPT_CODE");
|
|
var userId = $(this).attr("data-MANAGER_USER_ID");
|
|
|
|
if("" != thisDeptCode){
|
|
$(this).children('option').remove();
|
|
$(this).append(fn_setUserList(userList,thisDeptCode,userId));
|
|
}
|
|
});
|
|
|
|
$(".deptSelectBox").change(function(i){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var thisDeptCode = $(this).val();
|
|
|
|
$("#MANAGER_USER_ID_"+objId).children('option').remove();
|
|
$("#MANAGER_USER_ID_"+objId).append(fn_setUserList(userList,thisDeptCode,""));
|
|
});
|
|
|
|
$(".File").click(function(){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var docType =$(this).attr("data-docType");
|
|
var docTypeName = $(this).attr("data-docTypeName");
|
|
|
|
fn_wbsResultFilePopUp(objId, docType, docTypeName);
|
|
});
|
|
|
|
$("#btnSave").click(function(){
|
|
fn_saveWbsTask();
|
|
});
|
|
|
|
$("#btnClose").click(function(){
|
|
opener.fn_search();
|
|
self.close();
|
|
});
|
|
|
|
|
|
fnc_datepick();
|
|
});
|
|
|
|
function fn_wbsResultFilePopUp(objId,docType,docTypeName){
|
|
var hiddenForm = document.hiddenForm;
|
|
|
|
var url = "/common/FileRegistPopup.do";
|
|
|
|
var target = "FileRegistPopup";
|
|
|
|
window.open(url,target,"width=800, height=300, menubars=no, scrollbars=yes, resizable=yes");
|
|
|
|
hiddenForm.targetObjId.value = objId;
|
|
hiddenForm.docType.value = docType;
|
|
hiddenForm.docTypeName.value = docTypeName;
|
|
hiddenForm.action = url;
|
|
hiddenForm.target = target;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
function fn_getDeptList(){
|
|
var resultList;
|
|
|
|
$.ajax({
|
|
url:"/common/getDeptList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
resultList = data;
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
return resultList;
|
|
}
|
|
|
|
function fn_setDeptList(deptList,selectedVal){
|
|
var resultTxt = "";
|
|
resultTxt += "<option value=''>선택</option>";
|
|
|
|
if(0 < deptList.length){
|
|
for (var i = 0; i < deptList.length; i++) {
|
|
var code = deptList[i].CODE;
|
|
var name = deptList[i].NAME;
|
|
|
|
if(selectedVal == code){
|
|
resultTxt += "<option value='"+code+"' selected>"+name+"</option>";
|
|
}else{
|
|
resultTxt += "<option value='"+code+"'>"+name+"</option>";
|
|
}
|
|
}
|
|
}
|
|
return resultTxt;
|
|
}
|
|
|
|
function fn_getUserList(deltCode,selectedVal){
|
|
var resultList;
|
|
$.ajax({
|
|
url:"/common/searchUserList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
resultList = data;
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
return resultList;
|
|
}
|
|
|
|
function fn_setUserList(userList,deltCode,selectedVal){
|
|
var resultTxt = "";
|
|
resultTxt += "<option value=''>선택</option>";
|
|
|
|
if("" != deltCode && 0 < userList.length){
|
|
for (var i = 0; i < userList.length; i++) {
|
|
var code = userList[i].CODE;
|
|
var name = userList[i].NAME;
|
|
var userDeptCode = userList[i].DEPT_CODE;
|
|
|
|
if(deltCode == userDeptCode){
|
|
if(selectedVal == code){
|
|
resultTxt += "<option value='"+code+"' selected>"+name+"</option>";
|
|
}else{
|
|
resultTxt += "<option value='"+code+"'>"+name+"</option>";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return resultTxt;
|
|
}
|
|
|
|
function fn_saveWbsTask(){
|
|
if(confirm("저장하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/project/wbs/saveWBSTask.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
Swal.fire(data.msg);
|
|
|
|
if(data.result){
|
|
opener.fn_search();
|
|
self.close(0);
|
|
}else{
|
|
return false;
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body class="backcolor">
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="targetObjId" id="targetObjId">
|
|
<input type="hidden" name="docType" id="docType">
|
|
<input type="hidden" name="docTypeName" id="docTypeName">
|
|
</form>
|
|
<form name="form1" id="form1" method="post">
|
|
<input type="hidden" name="TARGET_OBJID" id="TARGET_OBJID" value="${param.OBJID}">
|
|
<section>
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>일정관리(WBS)</span>
|
|
</h2>
|
|
</div>
|
|
<div id="businessPopupFormWrap">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="1.5%" /> <!-- 순 -->
|
|
<col width="3.5%" /> <!-- 단계 -->
|
|
<col width="11%" /> <!-- Task Name -->
|
|
<col width="9%" /> <!-- 팀명 -->
|
|
<col width="8%" /> <!-- 담당자 -->
|
|
<col width="6%" /> <!-- 예상시점 -->
|
|
<col width="7%" /> <!-- Task 수행소요일 -->
|
|
<col width="6%" /> <!-- 계획 시작일 -->
|
|
<col width="6%" /> <!-- 계획 종료일 -->
|
|
<col width="6%" /> <!-- 실적 시작일 -->
|
|
<col width="6%" /> <!-- 실적 종료일 -->
|
|
<col width="3.5%" /> <!-- 지연일 -->
|
|
<col width="*" /> <!-- 표준문서명 -->
|
|
<col width="3.5%" /> <!-- 산출물 -->
|
|
<col width="3.5%" /> <!-- PM 승인 -->
|
|
<col width="6%" /> <!-- 비고 -->
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2">순</td>
|
|
<td colspan="6">항목</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="3">실적</td>
|
|
<td rowspan="2">표준문서명</td>
|
|
<td rowspan="2">산출물</td>
|
|
<td rowspan="2">PM 승인</td>
|
|
<td rowspan="2">비고</td>
|
|
</tr>
|
|
<tr class="plm_thead">
|
|
<td>단계</td>
|
|
<td>Task Name</td>
|
|
<td>팀명</td>
|
|
<td>담당자</td>
|
|
<td class="oemOption">예상시점</td>
|
|
<td>Task 수행소요일</td>
|
|
<td>계획 시작일</td>
|
|
<td>계획 종료일</td>
|
|
<td>실적 시작일</td>
|
|
<td>실적 종료일</td>
|
|
<td>지연일</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div>
|
|
<div class="plm_scroll_table" style="height:500px;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="1.5%" /><!-- 순 -->
|
|
<col width="3.6%" /> <!-- 단계 -->
|
|
<col width="11%" /> <!-- Task Name -->
|
|
<col width="9%" /> <!-- 팀명 -->
|
|
<col width="8%" /> <!-- 담당자 -->
|
|
<col width="6%" /> <!-- 예상시점 -->
|
|
<col width="7%" /> <!-- Task 수행소요일 -->
|
|
<col width="6%" /> <!-- 계획 시작일 -->
|
|
<col width="6%" /> <!-- 계획 종료일 -->
|
|
<col width="6%" /> <!-- 실적 시작일 -->
|
|
<col width="6%" /> <!-- 실적 종료일 -->
|
|
<col width="3.5%" /><!-- 지연일 -->
|
|
<col width="*" /> <!-- 표준문서명 -->
|
|
<col width="3.5%" /><!-- 산출물 -->
|
|
<col width="3.5%" /><!-- PM 승인 -->
|
|
<col width="6%" /> <!-- 비고 -->
|
|
</colgroup>
|
|
<c:choose>
|
|
<c:when test="${empty LIST}">
|
|
<tr style="text-align: center;">
|
|
<td align="center" colspan="16">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${LIST}" varStatus="varStatus">
|
|
<tr>
|
|
<input type="hidden" name="OBJID" id="OBJID" value="${item.OBJID}">
|
|
<td>${item.RNUM}</td><!-- 순 -->
|
|
<td>${item.TASK_STEP}</td><!-- 단계 -->
|
|
<td title="${item.TASK_NAME}">${item.TASK_NAME}</td><!-- Task Name -->
|
|
<td>
|
|
<select name="DEPT_CODE_${item.OBJID}" id="DEPT_CODE_${item.OBJID}" class="deptSelectBox" data-OBJID="${item.OBJID}" data-DEPT_CODE="${item.DEPT_CODE}"></select>
|
|
</td><!-- 팀명 -->
|
|
<td>
|
|
<select name="MANAGER_USER_ID_${item.OBJID}" id="MANAGER_USER_ID_${item.OBJID}" class="userSelectBox" data-OBJID="${item.OBJID}" data-DEPT_CODE="${item.DEPT_CODE}" data-MANAGER_USER_ID="${item.MANAGER_USER_ID}"></select>
|
|
</td><!-- 담당자 -->
|
|
<td class="oemOption"><input type="text" name="EXPECTED_POINT_${item.OBJID}" id="EXPECTED_POINT_${item.OBJID}" value="${item.EXPECTED_POINT}"></td><!-- 예상시점 -->
|
|
<td><input type="number" name="TASK_PERFORM_DAY_${item.OBJID}" id="TASK_PERFORM_DAY_${item.OBJID}" value="${item.TASK_PERFORM_DAY}" class="align_c"></td><!-- Task 수행소요일 -->
|
|
<td><input type="text" name="PLAN_START_DATE_${item.OBJID}" id="PLAN_START_DATE_${item.OBJID}" value="${item.PLAN_START_DATE}" class="align_c"></td><!-- 계획 시작일 -->
|
|
<td><input type="text" name="PLAN_END_DATE_${item.OBJID}" id="PLAN_END_DATE_${item.OBJID}" value="${item.PLAN_END_DATE}" class="align_c"></td><!-- 계획 종료일 -->
|
|
<td><input type="text" name="RESULT_START_DATE_${item.OBJID}" id="RESULT_START_DATE_${item.OBJID}" value="${item.RESULT_START_DATE}" class="align_c"></td><!-- 실적 시작일 -->
|
|
<td><input type="text" name="RESULT_END_DATE_${item.OBJID}" id="RESULT_END_DATE_${item.OBJID}" value="${item.RESULT_END_DATE}" class="align_c"></td><!-- 실적 종료일 -->
|
|
<td style="${0 < item.TASK_DELAY_DAY ? 'color: red;':''}">${0 < item.TASK_DELAY_DAY ? '-':''}${0 < item.TASK_DELAY_DAY ? item.TASK_DELAY_DAY:''}</td><!-- 지연일 -->
|
|
<td style="white-space:normal;text-align:left;" title="${item.STANDARD_DOC_NAME}">${item.STANDARD_DOC_NAME}</td><!-- 표준문서명 -->
|
|
<td><a href="#" class="File file_${0 < item.RESULT_FILE_CNT ? '':'empty_'}icon" data-OBJID="${item.OBJID}" data-docType="WBS_RESULT_FILE" data-docTypeName="WBS 산출물 첨부파일"></a></td><!-- 산출물 -->
|
|
<td>
|
|
<select name="PM_CONFIRM_STATUS_${item.OBJID}" id="PM_CONFIRM_STATUS_${item.OBJID}">
|
|
<option value="">선택</option>
|
|
<option value="ok" ${item.PM_CONFIRM_STATUS eq 'ok'? 'selected':''}>OK</option>
|
|
<option value="ng" ${item.PM_CONFIRM_STATUS eq 'ng'? 'selected':''}>NG</option>
|
|
</select>
|
|
</td><!-- PM 승인 -->
|
|
<td><input type="text" name="REMARK_${item.OBJID}" id="REMARK_${item.OBJID}" value="${item.REMARK}">${item.REMARK}</td><!-- 비고 -->
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="btn_wrap">
|
|
<div class="plm_btn_wrap_center">
|
|
<input type="button" value="저장" id="btnSave" class="plm_btns create">
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html> |