- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
1163 lines
45 KiB
Plaintext
1163 lines
45 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.jsp"%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
<script type="text/javascript" src="/js/jquery.floatThead.min.js" ></script>
|
|
<script>
|
|
$(document).ready(function() {
|
|
$(".select2").each(function(i,o){
|
|
$(this).val( $(this).attr("data-value") ).trigger("change");
|
|
});
|
|
|
|
$('.select2').select2();
|
|
fnc_datepick();
|
|
$('.date').each(function(i,o){
|
|
$(this).attr("size","10");
|
|
$(this).datepicker({
|
|
changeMonth:true,
|
|
changeYear:true
|
|
});
|
|
});
|
|
|
|
|
|
$('#fixTable').floatThead();
|
|
//닫기
|
|
$("#btnClose").click(function(){
|
|
self.close(0);
|
|
});
|
|
|
|
$("#btnSave").click(function(){
|
|
$.ajax({
|
|
url:"/project/save_wbsTaskProductFormPopUp.do"
|
|
,type:"POST"
|
|
,data: $("#form1").serialize()
|
|
,dataType:"json"
|
|
,async:false
|
|
,success:function(data){
|
|
Swal.fire(data.message);
|
|
fn_reload();
|
|
opener.fn_search();
|
|
//self.close();
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
});
|
|
|
|
//취소
|
|
$("#btnCancel").click(function(){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var params = "?objId="+objId;
|
|
document.form1.action ="/project/wbs/wbsTaskListDetailPopUp.do"+params;
|
|
document.form1.target ="_self";
|
|
document.form1.submit();
|
|
});
|
|
|
|
$(".level_1").css("background-color", "#a3a5a2");
|
|
$(".level_2").css("background-color", "#e0e1e0");
|
|
$(".level_3").css("background-color", "#f1edfc");
|
|
|
|
//fn_getProjectWBSTask("1");
|
|
//fn_getProjectWBSTask("2");
|
|
//fn_getProjectWBSTask("3");
|
|
//fn_getProjectWBSTask("4");
|
|
|
|
//체크박스 전체선택/전체해제
|
|
$("#allCheck").click(function(){
|
|
if($("#allCheck").prop("checked")) {
|
|
$("input[type=checkbox]").prop("checked",true);
|
|
} else {
|
|
$("input[type=checkbox]").prop("checked",false);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
$("input").change(function(){
|
|
var _thisvalue = $(this).val();
|
|
var _name = $(this).attr("name");
|
|
$("input[name='"+_name+"']").each(function (i) {
|
|
var maxvalue = $("input[name='"+_name+"']").eq(i).val().replace(/-/g,"");
|
|
if(_thisvalue.replace(/-/g,"") <= maxvalue){
|
|
_thisvalue = $("input[name='"+_name+"']").eq(i).val();
|
|
}
|
|
});
|
|
//$("#"+_name+"_MAX").text(_thisvalue);
|
|
|
|
var trindex = $(this).parent().parent().index();
|
|
var tdindex = $(this).parent().index();
|
|
$("#fixTable tr:eq(0) td:eq("+(tdindex-1)+")").text(_thisvalue);
|
|
});
|
|
|
|
|
|
$("#btnAdd").click(function(){
|
|
//fn_openWBSTaskPopUp("");
|
|
|
|
fn_openWBSTaskPopUp('');
|
|
|
|
//fn_addNewRow();
|
|
|
|
//Table2의 3번째 tr 다음에 tr 삽입
|
|
//var table2tr3rd = $('#dataTable > tbody').children()[2];
|
|
/* newTable
|
|
var newTr = $("#dataTable > tbody > tr:last").clone();
|
|
$("#dataTable > tbody > tr:last").after(newTr);
|
|
$(lastTd).next().css('background-color', "#bbbbbb");
|
|
$(lastTd).find('.select2').select2();
|
|
fnc_datepick();
|
|
*/
|
|
|
|
//$("#dataTable > tbody > tr:last").find('.select2').select2();
|
|
//fnc_datepick();
|
|
});
|
|
|
|
$("#btnDelete").click(function(){
|
|
fn_deleteWBSTask2();
|
|
});
|
|
});
|
|
|
|
</script>
|
|
<script>
|
|
|
|
function fn_reload(){
|
|
location.reload();
|
|
}
|
|
function fn_addNewRow(){
|
|
$("#dataTable > tbody").append($("#newTable tbody").html());
|
|
}
|
|
|
|
function fn_openWBSTaskPopUp(objId){
|
|
var hiddenForm = document.hiddenForm;
|
|
|
|
var url = "/project/wbsTaskFormPopUp.do";
|
|
|
|
var target = "openWBSPopUp";
|
|
|
|
window.open(url,target,"width=700, height=145, menubars=no, scrollbars=no, resizable=yes");
|
|
|
|
hiddenForm.action = url;
|
|
//hiddenForm.OBJID.value = objId;
|
|
hiddenForm.PARENT_OBJID.value = "${param.OBJID}";
|
|
hiddenForm.target = target;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
function fn_deleteWBSTask2(){
|
|
var checkArr = new Array();
|
|
|
|
$("input[name=CHK_OBJID]:checked").each(function(){
|
|
var objId = fnc_checkNull($(this).val().replace(" ",""));
|
|
checkArr.push(objId);
|
|
});
|
|
|
|
if(0 < checkArr.length){
|
|
if(confirm("삭제하시겠습니까?")){
|
|
$.ajax({
|
|
type : "POST",
|
|
url:"/project/deleteWBSTask.do",
|
|
data: {"checkArr":checkArr.join()},
|
|
dataType:"json",
|
|
success:function(data){
|
|
/*
|
|
Swal.fire(data.msg);
|
|
if(data.result =="true"){
|
|
fn_reload();
|
|
}
|
|
*/
|
|
if(data && data.RESULT == 'S'){
|
|
alert(data.msg);
|
|
//alert("삭제하였습니다.");
|
|
fn_reload();
|
|
}else{
|
|
Swal.fire(data.MSG);
|
|
}
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}else{
|
|
Swal.fire("선택된 대상이 없습니다.");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function datepick() {
|
|
var $dateinput = $("input");
|
|
|
|
for (var i = 0; i < $dateinput.length; i++) {
|
|
var id = $dateinput.eq(i).attr("id");
|
|
|
|
if (id != null)
|
|
if (id.indexOf("Date") > -1) {
|
|
$dateinput.eq(i).attr("size", "10");
|
|
$dateinput.eq(i).datepicker();
|
|
} else {
|
|
$dateinput.eq(i).attr("size", "10");
|
|
}
|
|
}
|
|
}
|
|
|
|
//WBS Task의 내용을가져온다.
|
|
//objId가 없을 경우 등록 Form을 보여준다.
|
|
function openWBSTaskPopUp(objId) {
|
|
//wbs 등록 팝업
|
|
window.open("", "wbsTaskPopUp", "width=700, height=400");
|
|
var form = document.form1;
|
|
|
|
form.taskObjId.value = objId;
|
|
form.action = "/project/wbs/wbsTaskFormPopUp.do";
|
|
form.target = "wbsTaskPopUp";
|
|
form.submit();
|
|
}
|
|
|
|
//해당 WBS Task의 하위 Task를 생성한다.
|
|
function addWBSTask(parentObjId) {
|
|
var parentLevel = $("#taskLevel_"+parentObjId).val();
|
|
var taskType = "";
|
|
var params = "&actionType=regist"
|
|
if("2" == parentLevel){
|
|
taskType = "task";
|
|
}
|
|
window.open("/project/wbs/wbsTaskFormPopUp.do?parentObjId="+parentObjId+"&status=create&taskType="+taskType+params, "wbsTaskPopUp", "width=700, height=400");
|
|
}
|
|
|
|
//해당 WBS Task를 삭제한다.
|
|
function fn_deleteWBSTask(objId){
|
|
|
|
if(confirm("해당 Task를 삭제하시겠습니까?\n삭제 시 연결된 하위 Task도 삭제되며\n기능별 Task와의 연결도 해제됩니다.")){
|
|
|
|
$.ajax({
|
|
url:"/project/wbs/deleteWBSTask.do",
|
|
type:"POST",
|
|
data:{"taskObjId":objId},
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data.result == "true" || data.result == true || data.result){
|
|
Swal.fire("삭제되었습니다.");
|
|
fn_getProjectWBSTask("1");
|
|
fn_getProjectWBSTask("2");
|
|
fn_getProjectWBSTask("3");
|
|
fn_getProjectWBSTask("4");
|
|
}else{
|
|
Swal.fire("삭제에 실패하였습니다.");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//해당 Gate에 해당하는 WBS Task 목록을 가져온다.
|
|
function fn_getProjectWBSTask(gate){
|
|
|
|
$.ajax({
|
|
url:"/project/wbs/getProjectWBSTaskList.do",
|
|
type:"POST",
|
|
data:{"objId":"${param.objId}","projectStep":gate},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
|
|
$("#gate"+gate).empty();
|
|
|
|
if(0 < data.length){
|
|
for(var i=0;i<data.length;i++){
|
|
var appendText = "";
|
|
|
|
if(0 == (i % 22) && i != 0){
|
|
appendText+="<tr class='plm_thead'>";
|
|
/*appendText+=" <td rowspan='2'>Lev</td>";
|
|
appendText+=" <td rowspan='2' style='text-align:center;'>Task 명</td>";
|
|
appendText+=" <td colspan='2'>계획</td>";
|
|
appendText+=" <td colspan='2'>실적</td>";
|
|
appendText+=" <td colspan='2'>담당자 정보</td>";
|
|
appendText+=" <td rowspan='2'>산출물</td>";
|
|
appendText+=" <td rowspan='2'>Task Link</td>";
|
|
appendText+=" <td rowspan='2'>상태</td>";
|
|
appendText+=" <td rowspan='2'>TFT장<br>확인</td>"; */
|
|
appendText+="<td colspan='3'>제품개발표준프로세스</td>";
|
|
appendText+="<td colspan='2'>계획</td> ";
|
|
appendText+="<td colspan='2'>실행</td> ";
|
|
appendText+="<td colspan='2'>담당자</td> ";
|
|
appendText+="<td colspan='2'>Action List</td> ";
|
|
appendText+="<td rowspan='2'>CFT장 확인</td> ";
|
|
/* appendText+="<td rowspan='2' colspan='2'>기능</td>"; */
|
|
appendText+="</tr>";
|
|
appendText+="<tr class='plm_sub_thead'>";
|
|
/* appendText+=" <td>예상 시작일</td>";
|
|
appendText+=" <td class='align_c'>예상 종료일</td>";
|
|
appendText+=" <td>종료일</td>";
|
|
appendText+=" <td>지연일</td>";
|
|
appendText+=" <td>담당팀</td>";
|
|
appendText+=" <td>담당자</td>"; */
|
|
appendText+="<td>단계</td> ";
|
|
appendText+="<td>No.</td> ";
|
|
appendText+="<td>TASK명</td> ";
|
|
appendText+="<td>예상 시작일</td> ";
|
|
appendText+="<td class='align_c'>예상 종료일</td>";
|
|
appendText+="<td>종료일</td> ";
|
|
appendText+="<td>지연일</td> ";
|
|
appendText+="<td>팀명</td> ";
|
|
appendText+="<td>담당</td> ";
|
|
appendText+="<td>기록문서(설명)</td> ";
|
|
appendText+="<td>산출물</td> ";
|
|
appendText+="</tr>";
|
|
}
|
|
|
|
appendText+= "<tr class='level_"+data[i].LEV+"'>";
|
|
appendText+= " <input type='hidden' id='taskLevel_"+data[i].OBJID+"' value='"+data[i].LEV+"'>";
|
|
/* appendText+= " <td style='text-align:center;'>"+data[i].LEV+"</td>"; */
|
|
|
|
appendText+= " <td class='align_l'> "+ data[i].TASK_STEP+"단계/"+data[i].STEP_NAME+"</td>";
|
|
appendText+= " <td style='text-align:center;'>"+data[i].SEQ+"</td>";
|
|
appendText+= " <td class='align_l'>";
|
|
if("1" == data[i].LEV){
|
|
appendText+= " <a href='#' onclick=\"openWBSTaskPopUp('"+data[i].OBJID+"')\">"+data[i].TASK_NAME+"</a>";
|
|
}else{
|
|
appendText+= " "+data[i].TASK_NAME;
|
|
}
|
|
appendText+= " </td>";
|
|
appendText+= " <td>"+fnc_checkNull(data[i].TASK_START_PLAN_DATE_TITLE)+"</td>";
|
|
appendText+= " <td>"+fnc_checkNull(data[i].TASK_END_PLAN_DATE_TITLE)+"</td>";
|
|
appendText+= " <td>"+fnc_checkNull(data[i].TASK_END_DATE_TITLE)+"</td>";
|
|
appendText+= " <td></td>";
|
|
|
|
// appendText+= " <td>"+fnc_checkNull(data[i].DEPT_NAME)+"</td>";
|
|
|
|
appendText+= " <td>";
|
|
|
|
appendText+= fnc_checkNull(data[i].DEPT_NAME);
|
|
/* if("1" == data[i].LEV){
|
|
appendText+= " <select onchange=\"fn_changeTaskDept('"+data[i].OBJID+"',this.value);\">";
|
|
appendText+= " <option value=''>선택</option>";
|
|
<c:forEach items="${deptList}" var="dept">
|
|
var selectedTxt = "";
|
|
if("${dept.DEPT_CODE}" == data[i].TASK_DEPT){
|
|
selectedTxt = "selected";
|
|
}
|
|
appendText+= " <option value='"+"${dept.DEPT_CODE}"+"' "+selectedTxt+">"+"${dept.DEPT_NAME}"+"</option>";
|
|
</c:forEach>
|
|
appendText+= " </select>";
|
|
} */
|
|
appendText+= " </td>";
|
|
|
|
appendText+= " <td>"+fnc_checkNull(data[i].USER_NAME)+"</td>";
|
|
/* appendText+= " <td id='chargerArea_"+data[i].OBJID+"'>";
|
|
if("1" == data[i].LEV){
|
|
appendText+= fn_searchUser(data[i].TASK_DEPT,data[i].TASK_CHARGER_ID,data[i].OBJID);
|
|
}
|
|
appendText+= " </td>"; */
|
|
|
|
|
|
/* if(0 != data[i].TASK_LINK_CNT){
|
|
file = "btnSrFile file_icon";
|
|
}
|
|
else{
|
|
file = "btnSrFile file_empty_icon";
|
|
}
|
|
|
|
appendText+= " <td>";
|
|
if("1" == data[i].LEV){
|
|
appendText+= " <a href='#' class='"+ file +"' onclick=\"fn_openTaskLinkedFNTaskListPopUp('"+data[i].OBJID+"')\"></a>";
|
|
}
|
|
appendText+= " </td>"; */
|
|
|
|
appendText+= " <td style='text-align:left;'> "+data[i].BIGO+"</td>";
|
|
|
|
var fileCnt = "";
|
|
if(0 != data[i].WBS_FILE_CNT){
|
|
file = "btnSrFile file_icon";
|
|
}
|
|
else{
|
|
file = "btnSrFile file_empty_icon";
|
|
}
|
|
|
|
appendText+= " <td>";
|
|
if("1" == data[i].LEV){
|
|
appendText+= " <a href='#' class='"+ file +"' onclick=\"openWBSTaskPopUp('"+data[i].OBJID+"')\"></a>";
|
|
}
|
|
appendText+= " </td>";
|
|
|
|
|
|
/* appendText+= " <td>";
|
|
appendText+= " </td>";
|
|
*/
|
|
appendText+= " <td>";
|
|
if("1" == data[i].LEV && "create" != data[i].STATUS){
|
|
appendText+= " <a href='#' onclick=\"fn_openTaskConfirmListPopUp('"+data[i].OBJID+"')\">"+fnc_checkNull(data[i].STATUS_TITLE)+"</a>";
|
|
}
|
|
appendText+= " </td>";
|
|
|
|
/* if("1" == data[i].LEV){
|
|
appendText+= " <td></td>";
|
|
appendText+= " <td><input type='button' value='행삭제' class='blue_btn' onclick=\"fn_deleteWBSTask('"+data[i].OBJID+"');\"></td>";
|
|
}else{ */
|
|
/* appendText+= " <td style='text-align:center;'><input style='text-align:center;' type='button' value='행추가' class='blue_btn' onclick=\"addWBSTask('"+data[i].OBJID+"');\"></td>";
|
|
appendText+= " <td style='text-align:center;'><input type='button' value='행삭제' class='blue_btn' onclick=\"fn_deleteWBSTask('"+data[i].OBJID+"');\"></td>"; */
|
|
// }
|
|
$("#gate"+gate).append(appendText);
|
|
}
|
|
}else{
|
|
var appendText = "";
|
|
appendText+= "<tr style='text-align:center;'>";
|
|
appendText+= " <td align='center' colspan='12'>조회된 데이터가 없습니다.</td>";
|
|
appendText+= "</tr>";
|
|
|
|
$("#gate"+gate).append(appendText);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
function fn_openTaskConfirmListPopUp(taskObjId){
|
|
window.open("/project/wbs/openTaskConfirmListPopUp.do?objId="+taskObjId, "taskConfirmListPopUp", "width=700, height=440");
|
|
}
|
|
|
|
//TFT/PL을 통해 작성된 확인 내용 목록을 보여준다.
|
|
function fn_openTaskLinkedFNTaskListPopUp(taskObjId){
|
|
window.open("/project/wbs/openTaskLinkedFNTaskListPopUp.do?&objId="+taskObjId, "taskLinkFNTaskListPopUp", "width=700, height=440");
|
|
}
|
|
|
|
//부서 selectbox 변경 시 부서를 저장하도록 한다.
|
|
function fn_changeTaskDept(taskObjId,deptCode){
|
|
|
|
$.ajax({
|
|
url:"/project/wbs/changeTaskDept.do",
|
|
type:"POST",
|
|
data:{"taskObjId":taskObjId,"deptCode":deptCode},
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data.result == "true" || data.result == true || data.result){
|
|
$("#taskCharger_"+taskObjId).remove();
|
|
|
|
if("" != fnc_checkNull(deptCode)){
|
|
$("#chargerArea_"+taskObjId).append(fn_searchUser(deptCode, '',taskObjId));
|
|
}
|
|
}else{
|
|
Swal.fire("오류가 발생하였습니다.");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//부서에 따른 사원 정보를 가져온다.
|
|
function fn_searchUser(deptCode,userId,objId){
|
|
|
|
var appendText = "";
|
|
|
|
if("" != fnc_checkNull(deptCode)){
|
|
$.ajax({
|
|
url:"/common/searchUserList.do",
|
|
type:"POST",
|
|
data:{"search_deptCode":deptCode,"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if("" != objId){
|
|
$("#taskCharger_"+objId).remove();
|
|
}
|
|
appendText+= " <select id='taskCharger_"+objId+"' onchange=\"fn_changeTaskChargerId('"+objId+"',this.value);\">";
|
|
appendText+= "<option value=''>선택</option>";
|
|
if(data != null && data.length > 0){
|
|
for(var j=0;j<data.length;j++){
|
|
|
|
var selectedFlag = "";
|
|
if(fnc_checkNull(data[j].USER_ID) == userId){
|
|
selectedFlag = "selected";
|
|
}
|
|
appendText+= "<option value='"+fnc_checkNull(data[j].USER_ID)+"' "+selectedFlag+">"+fnc_checkNull(data[j].USER_NAME)+"</option>";
|
|
}
|
|
}
|
|
appendText+= " </select>";
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
}
|
|
});
|
|
|
|
}
|
|
return appendText;
|
|
}
|
|
|
|
//Task 담당자를 지정한다.
|
|
function fn_changeTaskChargerId(taskObjId,userId){
|
|
$.ajax({
|
|
url:"/project/wbs/changeTaskChargerId.do",
|
|
type:"POST",
|
|
data:{"taskObjId":taskObjId,"userId":userId},
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data.result == "true" || data.result == true || data.result){
|
|
|
|
}else{
|
|
Swal.fire("오류가 발생하였습니다.");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
function completeUpdate(){
|
|
//확정
|
|
// name을 가지는 checkbox 중 체크표시된 항목의 전체 개수
|
|
if($("input:checkbox[name=chk]:checked").length > 0){
|
|
// 현재 체크된 체크박스의 li 정보 얻기
|
|
var checkObjId = '';
|
|
$("input:checkbox[name=chk]:checked").each(function(index, val) {
|
|
if (this.checked)
|
|
{
|
|
if(index == 0 ){
|
|
checkObjId = $(this).attr("data-OBJID");
|
|
}else{
|
|
checkObjId += ','+$(this).attr("data-OBJID");
|
|
}
|
|
}
|
|
});
|
|
completeProcess(checkObjId);
|
|
} else {
|
|
Swal.fire("확정 항목을 선택해주세요.");
|
|
}
|
|
}
|
|
|
|
|
|
function deleteUpdate(){
|
|
//확정
|
|
// name을 가지는 checkbox 중 체크표시된 항목의 전체 개수
|
|
if($("input:checkbox[name=chk]:checked").length > 0){
|
|
// 현재 체크된 체크박스의 li 정보 얻기
|
|
var checkObjId = '';
|
|
$("input:checkbox[name=chk]:checked").each(function(index, val) {
|
|
if (this.checked)
|
|
{
|
|
if(index == 0 ){
|
|
checkObjId = $(this).attr("data-OBJID");
|
|
}else{
|
|
checkObjId += ','+$(this).attr("data-OBJID");
|
|
}
|
|
}
|
|
});
|
|
deleteProcess(checkObjId);
|
|
} else {
|
|
Swal.fire("삭제 항목을 선택해주세요.");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function complete_load(){
|
|
var params = "?objId="+'${param.objId}';
|
|
document.form1.action ="/project/wbs/wbsTaskListDetailPopUp.do"+params;
|
|
document.form1.target ="_self";
|
|
document.form1.submit();
|
|
}
|
|
|
|
function completeProcess(checkObjId){
|
|
if(confirm("확정 하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/project/completeWBSTask.do",
|
|
type:"POST",
|
|
data:{"ObjId":checkObjId},
|
|
dataType:"json",
|
|
success:function(data){
|
|
Swal.fire("확정 되었습니다.");
|
|
complete_load();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function deleteProcess(checkObjId){
|
|
if(confirm("삭제 하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/project/wbs/deleteWBSTask.do",
|
|
type:"POST",
|
|
data:{"ObjId":checkObjId},
|
|
dataType:"json",
|
|
success:function(data){
|
|
Swal.fire("삭제 되었습니다.");
|
|
complete_load();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//WBS Task의 상세내용을 보여준다.
|
|
function fn_openWBSTaskDetailPopUp(objId,targetObjId) {
|
|
//wbs 등록 팝업
|
|
window.open("/project/wbs/wbsTaskDetailPopUp.do?taskObjId="+objId+"&projectObjId="+targetObjId, objId, "width=650, height=350");
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="OBJID" id="OBJID">
|
|
<input type="hidden" name="PARENT_OBJID" id="PARENT_OBJID" value="${param.OBJID}">
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="projectObjId" value="${param.OBJID}">
|
|
<input type="hidden" name="parentObjId">
|
|
<input type="hidden" name="taskObjId">
|
|
<input type="hidden" name="projStep">
|
|
<input type="hidden" name="status">
|
|
<input type="hidden" name="OBJID" value="${param.OBJID}">
|
|
|
|
|
|
|
|
|
|
<!-- <div class="btn_wrap">
|
|
<div class="plm_btn_wrap">
|
|
<input type="button" value="확정" id="wbs_complete" class="plm_btns" onclick="completeUpdate()">
|
|
<input type="button" value="삭제" id="wbs_delete" class="plm_btns" onclick="deleteUpdate()">
|
|
</div>
|
|
</div> -->
|
|
<div class="plm_menu_name">
|
|
|
|
</div>
|
|
<section class="contents_page_basic_margin" style="margin-top: 3px; height: 710px;">
|
|
<div>
|
|
<div class="plm_btn_wrap">
|
|
<c:if test="${param.actionType ne 'view'}">
|
|
<input type="button" value="추가" class="plm_btns" id="btnAdd">
|
|
<input type="button" value="삭제" class="plm_btns" id="btnDelete">
|
|
</c:if>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="plm_table_wrap" style="overflow : auto; height: 710px">
|
|
<div class="in_table_scroll_wrap _table1" style="height:78px; width: fit-content;">
|
|
<table class="plm_table" style="position:absolute; border-Spacing:0; border-Collapse: separate;">
|
|
<colgroup>
|
|
<col width="30px">
|
|
<col width="30px">
|
|
|
|
<col width="50px">
|
|
<col width="200px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<!-- <col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px"> -->
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td colspan="2" style="position: sticky; left: 0; z-index: 1; background: #67686f;"></td>
|
|
<td colspan="8">설계</td>
|
|
<td colspan="6">구매</td>
|
|
<td colspan="6">조립(제작)</td>
|
|
<!-- <td colspan="6">자체검수</td>
|
|
<td colspan="6">최종검수</td>
|
|
<td colspan="6">출하</td>
|
|
<td colspan="6">셋업</td> -->
|
|
</tr>
|
|
</thead>
|
|
<tr class="plm_sub_thead">
|
|
<td rowspan="2"><input type="checkbox" name=""></td>
|
|
<td rowspan="2" style="position: sticky; left: 0; z-index: 1;">No.</td>
|
|
|
|
<td rowspan="2" style="position: sticky; left: 30px; z-index: 1;">Unit No</td>
|
|
<td rowspan="2" style="position: sticky; left: 30px; z-index: 1;">Unit Name/공정</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td>
|
|
|
|
<!-- <td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율</td> -->
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<!-- <td><input type="checkbox" name="allCheck" id="allCheck"> </td> -->
|
|
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
|
|
<!-- <td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td> -->
|
|
|
|
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<%-- <span class="r_title_back btnGanttChart" style="cursor:pointer;" data-PROJECT_OBJID="${param.objId}" data-GATE="1">Gantt Chart</span> --%>
|
|
<table id="dataTable" class="plm_table wbs_left_align in_table_scroll_wrap" id="fixTable" style="width:100%; table-rayout:fixed; position:absolute; border-right: 1px solid #ccc; border-Spacing:0; border-Collapse: separate;">
|
|
<colgroup>
|
|
<col width="30px">
|
|
<col width="30px">
|
|
|
|
<col width="50px">
|
|
<col width="200px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<!-- <col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px">
|
|
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="80px">
|
|
<col width="50px"> -->
|
|
</colgroup>
|
|
<tbody class="font_white">
|
|
|
|
<!-- <td colspan="2">Master</td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td> -->
|
|
|
|
<c:forEach var="item" items="${projectTaskList}" varStatus="varStatus">
|
|
<c:if test="${varStatus.index == 0}">
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td style="background: #fff; position: sticky; left: 0; z-index: 1;"></td>
|
|
<td style="background: #fff; position: sticky; left: 30px; z-index: 1;">Master</td>
|
|
|
|
<td></td>
|
|
<td>${item.DESIGN_PLAN_START}</td>
|
|
<td>${item.DESIGN_PLAN_END }</td>
|
|
<td>${item.DESIGN_ACT_START }</td>
|
|
<td>${item.DESIGN_ACT_END }</td>
|
|
<td class="align_r">${item.DESIGN_RATE }</td>
|
|
|
|
<td></td>
|
|
<td>${item.PURCHASE_PLAN_START}</td>
|
|
<td>${item.PURCHASE_PLAN_END }</td>
|
|
<td>${item.PURCHASE_ACT_START }</td>
|
|
<td>${item.PURCHASE_ACT_END }</td>
|
|
<td class="align_r">${item.PURCHASE_RATE }</td>
|
|
|
|
<td></td>
|
|
<td>${item.PRODUCE_PLAN_START}</td>
|
|
<td>${item.PRODUCE_PLAN_END }</td>
|
|
<td>${item.PRODUCE_ACT_START }</td>
|
|
<td>${item.PRODUCE_ACT_END }</td>
|
|
<td class="align_r">${item.PRODUCE_RATE }</td>
|
|
|
|
<%-- <td></td>
|
|
<td>${item.SELFINS_PLAN_START}</td>
|
|
<td>${item.SELFINS_PLAN_END }</td>
|
|
<td>${item.SELFINS_ACT_START }</td>
|
|
<td>${item.SELFINS_ACT_END }</td>
|
|
<td>${item.SELFINS_RATE }</td>
|
|
|
|
<td></td>
|
|
<td>${item.FINALINS_PLAN_START}</td>
|
|
<td>${item.FINALINS_PLAN_END }</td>
|
|
<td>${item.FINALINS_ACT_START }</td>
|
|
<td>${item.FINALINS_ACT_END }</td>
|
|
<td>${item.FINALINS_RATE }</td>
|
|
|
|
<td></td>
|
|
<td>${item.SHIP_PLAN_START}</td>
|
|
<td>${item.SHIP_PLAN_END }</td>
|
|
<td>${item.SHIP_ACT_START }</td>
|
|
<td>${item.SHIP_ACT_END }</td>
|
|
<td>${item.SHIP_RATE }</td>
|
|
|
|
<td></td>
|
|
<td>${item.SETUP_PLAN_START}</td>
|
|
<td>${item.SETUP_PLAN_END }</td>
|
|
<td>${item.SETUP_ACT_START }</td>
|
|
<td>${item.SETUP_ACT_END }</td>
|
|
<td>${item.SETUP_RATE }</td> --%>
|
|
</c:if>
|
|
</tr>
|
|
</c:forEach>
|
|
|
|
<c:choose>
|
|
<c:when test="${empty projectTaskList}">
|
|
<tr style="text-align:center;">
|
|
<td align="center" colspan="44">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${projectTaskList}" varStatus="varStatus">
|
|
|
|
|
|
<c:if test="${varStatus.index > 0}">
|
|
<tr>
|
|
<input type="hidden" name="TASK_OBJID" value="${item.OBJID }" />
|
|
<td class="align_c"><input type='checkbox' name='CHK_OBJID' value='${item.OBJID }'> </td>
|
|
<td style="background: #fff; position: sticky; left: 0; z-index: 1;text-align:left; padding-left: 5px">${varStatus.index}</td>
|
|
|
|
<td title="${item.UNIT_NO}" style="text-align:center; padding-left: 5px; position: sticky; left: 30px; z-index: 1; background: #fff;">${item.UNIT_NO}</td>
|
|
|
|
<c:choose>
|
|
<c:when test="${param.CATEGORY_CD eq '0000170'}"> <!-- 오버홀 -->
|
|
<td title="${item.TASK_NAME}" style="text-align:left; padding-left: 5px; position: sticky; left: 30px; z-index: 1; background: #fff;"><input type="text" name="TASK_NAME" class="align_l" value="${item.TASK_NAME}" /></td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<!--
|
|
<input type="hidden" name="TASK_NAME" value="${item.TASK_NAME}">
|
|
-->
|
|
<td title="${item.TASK_NAME}" style="text-align:left; padding-left: 5px; position: sticky; left: 30px; z-index: 1; background: #fff;">
|
|
<%--
|
|
${item.TASK_NAME}
|
|
--%>
|
|
<input type="text" name="TASK_NAME" class="align_l" value="${item.TASK_NAME}" readonly/>
|
|
</td>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<td title="${item.DESIGN_USER_ID }"><select name="DESIGN_USER_ID" data-value="${item.DESIGN_USER_ID}" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.DESIGN_PLAN_START}"><input type="text" name="DESIGN_PLAN_START" class="date" value="${item.DESIGN_PLAN_START}" /></td>
|
|
<td title="${item.DESIGN_PLAN_END }"><input type="text" name="DESIGN_PLAN_END" class="date" value="${item.DESIGN_PLAN_END }" /></td>
|
|
<td title="${item.DESIGN_ACT_START }"><input type="text" name="DESIGN_ACT_START" class="date" value="${item.DESIGN_ACT_START }" /></td>
|
|
<td title="${item.DESIGN_ACT_END }"><input type="text" name="DESIGN_ACT_END" class="date" value="${item.DESIGN_ACT_END }" /></td>
|
|
<td title="${item.DESIGN_RATE }"><input type="text" name="DESIGN_RATE" class="align_r" value="${item.DESIGN_RATE }" /></td>
|
|
|
|
<td title="${item.PURCHASE_USER_ID }"><select name="PURCHASE_USER_ID" data-value="${item.PURCHASE_USER_ID}" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.PURCHASE_PLAN_START}"><input type="text" name="PURCHASE_PLAN_START" class="date" value="${item.PURCHASE_PLAN_START}" /></td>
|
|
<td title="${item.PURCHASE_PLAN_END }"><input type="text" name="PURCHASE_PLAN_END" class="date" value="${item.PURCHASE_PLAN_END }" /></td>
|
|
<td title="${item.PURCHASE_ACT_START }"><input type="text" name="PURCHASE_ACT_START" class="date" value="${item.PURCHASE_ACT_START }" /></td>
|
|
<td title="${item.PURCHASE_ACT_END }"><input type="text" name="PURCHASE_ACT_END" class="date" value="${item.PURCHASE_ACT_END }" /></td>
|
|
<td title="${item.PURCHASE_RATE }"><input type="text" name="PURCHASE_RATE" class="align_r" value="${item.PURCHASE_RATE }" /></td>
|
|
|
|
<td title="${item.PRODUCE_USER_ID }"><select name="PRODUCE_USER_ID" data-value="${item.PRODUCE_USER_ID}" class="select2" disabled readonly><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.PRODUCE_PLAN_START}"><input type="text" name="PRODUCE_PLAN_START" class="date" value="${item.PRODUCE_PLAN_START}" disabled readonly /></td>
|
|
<td title="${item.PRODUCE_PLAN_END }"><input type="text" name="PRODUCE_PLAN_END" class="date" value="${item.PRODUCE_PLAN_END }" disabled readonly /></td>
|
|
<td title="${item.PRODUCE_ACT_START }"><input type="text" name="PRODUCE_ACT_START" class="date" value="${item.PRODUCE_ACT_START }" disabled readonly /></td>
|
|
<td title="${item.PRODUCE_ACT_END }"><input type="text" name="PRODUCE_ACT_END" class="date" value="${item.PRODUCE_ACT_END }" disabled readonly /></td>
|
|
<td title="${item.PRODUCE_RATE }"><input type="text" name="PRODUCE_RATE" class="align_r" value="${item.PRODUCE_RATE }" disabled readonly /></td>
|
|
|
|
<%-- <td title="${item.SELFINS_USER_ID }"><select name="SELFINS_USER_ID" data-value="${item.SELFINS_USER_ID}" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.SELFINS_PLAN_START}"><input type="text" name="SELFINS_PLAN_START" class="date" value="${item.SELFINS_PLAN_START}" /></td>
|
|
<td title="${item.SELFINS_PLAN_END }"><input type="text" name="SELFINS_PLAN_END" class="date" value="${item.SELFINS_PLAN_END }" /></td>
|
|
<td title="${item.SELFINS_ACT_START }"><input type="text" name="SELFINS_ACT_START" class="date" value="${item.SELFINS_ACT_START }" /></td>
|
|
<td title="${item.SELFINS_ACT_END }"><input type="text" name="SELFINS_ACT_END" class="date" value="${item.SELFINS_ACT_END }" /></td>
|
|
<td title="${item.SELFINS_RATE }"><input type="text" name="SELFINS_RATE" class="align_r" value="${item.SELFINS_RATE }" /></td>
|
|
|
|
<c:if test="${varStatus.index == 1}">
|
|
<td title="${item.FINALINS_USER_ID }"><select name="FINALINS_USER_ID" data-value="${item.FINALINS_USER_ID}" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.FINALINS_PLAN_START}"><input type="text" name="FINALINS_PLAN_START" class="date" value="${item.FINALINS_PLAN_START}" /></td>
|
|
<td title="${item.FINALINS_PLAN_END }"><input type="text" name="FINALINS_PLAN_END" class="date" value="${item.FINALINS_PLAN_END }" /></td>
|
|
<td title="${item.FINALINS_ACT_START }"><input type="text" name="FINALINS_ACT_START" class="date" value="${item.FINALINS_ACT_START }" /></td>
|
|
<td title="${item.FINALINS_ACT_END }"><input type="text" name="FINALINS_ACT_END" class="date" value="${item.FINALINS_ACT_END }" /></td>
|
|
<td title="${item.FINALINS_RATE }"><input type="text" name="FINALINS_RATE" class="align_r" value="${item.FINALINS_RATE }" /></td>
|
|
|
|
<td title="${item.SHIP_USER_ID }"><select name="SHIP_USER_ID" data-value="${item.SHIP_USER_ID}" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.SHIP_PLAN_START}"><input type="text" name="SHIP_PLAN_START" class="date" value="${item.SHIP_PLAN_START}" /></td>
|
|
<td title="${item.SHIP_PLAN_END }"><input type="text" name="SHIP_PLAN_END" class="date" value="${item.SHIP_PLAN_END }" /></td>
|
|
<td title="${item.SHIP_ACT_START }"><input type="text" name="SHIP_ACT_START" class="date" value="${item.SHIP_ACT_START }" /></td>
|
|
<td title="${item.SHIP_ACT_END }"><input type="text" name="SHIP_ACT_END" class="date" value="${item.SHIP_ACT_END }" /></td>
|
|
<td title="${item.SHIP_RATE }"><input type="text" name="SHIP_RATE" class="align_r" value="${item.SHIP_RATE }" /></td>
|
|
|
|
<td title="${item.SETUP_USER_ID }"><select name="SETUP_USER_ID" data-value="${item.SETUP_USER_ID}" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.SETUP_PLAN_START}"><input type="text" name="SETUP_PLAN_START" class="date" value="${item.SETUP_PLAN_START}" /></td>
|
|
<td title="${item.SETUP_PLAN_END }"><input type="text" name="SETUP_PLAN_END" class="date" value="${item.SETUP_PLAN_END }" /></td>
|
|
<td title="${item.SETUP_ACT_START }"><input type="text" name="SETUP_ACT_START" class="date" value="${item.SETUP_ACT_START }" /></td>
|
|
<td title="${item.SETUP_ACT_END }"><input type="text" name="SETUP_ACT_END" class="date" value="${item.SETUP_ACT_END }" /></td>
|
|
<td title="${item.SETUP_RATE }"><input type="text" name="SETUP_RATE" class="align_r" value="${item.SETUP_RATE }" /></td>
|
|
</c:if>
|
|
|
|
|
|
<c:if test="${varStatus.index > 1}">
|
|
<td><input type="hidden" name="FINALINS_USER_ID" /></td>
|
|
<td><input type="hidden" name="FINALINS_PLAN_START" /></td>
|
|
<td><input type="hidden" name="FINALINS_PLAN_END" /></td>
|
|
<td><input type="hidden" name="FINALINS_ACT_START" /></td>
|
|
<td><input type="hidden" name="FINALINS_ACT_END" /></td>
|
|
<td><input type="hidden" name="FINALINS_RATE" value="0"/></td>
|
|
|
|
<td><input type="hidden" name="SHIP_USER_ID" /></td>
|
|
<td><input type="hidden" name="SHIP_PLAN_START" /></td>
|
|
<td><input type="hidden" name="SHIP_PLAN_END" /></td>
|
|
<td><input type="hidden" name="SHIP_ACT_START" /></td>
|
|
<td><input type="hidden" name="SHIP_ACT_END" /></td>
|
|
<td><input type="hidden" name="SHIP_RATE" value="0" /></td>
|
|
|
|
<td><input type="hidden" name="SETUP_USER_ID" /></td>
|
|
<td><input type="hidden" name="SETUP_PLAN_START" /></td>
|
|
<td><input type="hidden" name="SETUP_PLAN_END" /></td>
|
|
<td><input type="hidden" name="SETUP_ACT_START" /></td>
|
|
<td><input type="hidden" name="SETUP_ACT_END" /></td>
|
|
<td><input type="hidden" name="SETUP_RATE" value="0" /></td>
|
|
</c:if> --%>
|
|
</tr>
|
|
</c:if>
|
|
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="btn_wrap" style="top:40px">
|
|
<div class="plm_btn_wrap_center">
|
|
<c:if test="${param.actionType ne 'view'}">
|
|
<input type="button" id="btnSave" value="저장" class="plm_btns" data-OBJID="${param.objId}">
|
|
</c:if>
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html>
|
|
|
|
|
|
|
|
<%-- --%>
|
|
<table id="newTable" style="display:none">
|
|
<tr id="newTr" >
|
|
<input type="hidden" name="TASK_OBJID" value="">
|
|
<td class="align_c"><input type="checkbox" name="CHK_OBJID" value=""> </td>
|
|
<td style="background: #fff; position: sticky; left: 0; z-index: 1;text-align:left; padding-left: 5px" id="tdNo"></td>
|
|
<td title="GAS PANEL" style="text-align:left; padding-left: 5px; position: sticky; left: 30px; z-index: 1; background: #fff;"><input type="text" name="task_name" value="" size="10" id=""></td>
|
|
|
|
<td title=""><select name="DESIGN_USER_ID" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title=""><input type="text" name="DESIGN_PLAN_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="DESIGN_PLAN_END" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="DESIGN_ACT_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="DESIGN_ACT_END" class="date" value="" size="10" id=""></td>
|
|
<td title="100"><input type="text" name="DESIGN_RATE" class="align_r" value="100"></td>
|
|
|
|
<td title=""><select name="PURCHASE_USER_ID" class="select2"><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title=""><input type="text" name="PURCHASE_PLAN_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="PURCHASE_PLAN_END" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="PURCHASE_ACT_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="PURCHASE_ACT_END" class="date" value="" size="10" id=""></td>
|
|
<td title="30"><input type="text" name="PURCHASE_RATE" class="align_r" value="30"></td>
|
|
|
|
<td title=""><select name="PRODUCE_USER_ID" class="select2"><option value="" >선택</option>${code_map.user_id}</select></td>
|
|
<td title=""><input type="text" name="PRODUCE_PLAN_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="PRODUCE_PLAN_END" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="PRODUCE_ACT_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="PRODUCE_ACT_END" class="date" value="" size="10" id=""></td>
|
|
<td title="0"><input type="text" name="PRODUCE_RATE" class="align_r" value="0"></td>
|
|
|
|
<td title=""><select name="SELFINS_USER_ID" class="select2"><option value="" >선택</option>${code_map.user_id}</select></td>
|
|
<td title=""><input type="text" name="SELFINS_PLAN_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="SELFINS_PLAN_END" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="SELFINS_ACT_START" class="date" value="" size="10" id=""></td>
|
|
<td title=""><input type="text" name="SELFINS_ACT_END" class="date" value="" size="10" id=""></td>
|
|
<td title="0"><input type="text" name="SELFINS_RATE" class="align_r" value="0"></td>
|
|
<td><input type="hidden" name="FINALINS_USER_ID"></td>
|
|
<td><input type="hidden" name="FINALINS_PLAN_START"></td>
|
|
<td><input type="hidden" name="FINALINS_PLAN_END"></td>
|
|
<td><input type="hidden" name="FINALINS_ACT_START"></td>
|
|
<td><input type="hidden" name="FINALINS_ACT_END"></td>
|
|
<td><input type="hidden" name="FINALINS_RATE" value="0"></td>
|
|
|
|
<td><input type="hidden" name="SHIP_USER_ID"></td>
|
|
<td><input type="hidden" name="SHIP_PLAN_START"></td>
|
|
<td><input type="hidden" name="SHIP_PLAN_END"></td>
|
|
<td><input type="hidden" name="SHIP_ACT_START"></td>
|
|
<td><input type="hidden" name="SHIP_ACT_END"></td>
|
|
<td><input type="hidden" name="SHIP_RATE" value="0"></td>
|
|
|
|
<td><input type="hidden" name="SETUP_USER_ID"></td>
|
|
<td><input type="hidden" name="SETUP_PLAN_START"></td>
|
|
<td><input type="hidden" name="SETUP_PLAN_END"></td>
|
|
<td><input type="hidden" name="SETUP_ACT_START"></td>
|
|
<td><input type="hidden" name="SETUP_ACT_END"></td>
|
|
<td><input type="hidden" name="SETUP_RATE" value="0"></td>
|
|
</tr>
|
|
</table>
|
|
|