- 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
295 lines
13 KiB
Plaintext
295 lines
13 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file= "/init.jsp" %>
|
|
<%
|
|
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
|
String connector = person.getUserId();
|
|
|
|
%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
<!-- //JSTL 페이징 변수선언 -->
|
|
<c:set var="now" value="<%=new java.util.Date() %>"/>
|
|
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
|
|
|
<c:set var="connector" value="<%=connector %>" />
|
|
<script>
|
|
$(document).ready(function(){
|
|
$('.select2').select2();
|
|
$("#btnSearch").click(function(){
|
|
fn_search();
|
|
});
|
|
|
|
//엔터 조회
|
|
$("input").keyup(function(e){
|
|
if(e.keyCode == 13){
|
|
fn_search();
|
|
}
|
|
});
|
|
|
|
$("#project_no").change(function(){
|
|
fn_UnitCodeList(this.value, "unit_code", "");
|
|
});
|
|
|
|
fn_search();
|
|
});
|
|
|
|
var columns = [
|
|
{title:"프로젝트", headerHozAlign:'center',frozen:true,
|
|
formatter:fnc_createGridAnchorTag, //고객정보
|
|
columns:[
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '110', title : '프로젝트번호', field : 'PROJECT_NO',
|
|
formatter:fnc_createGridAnchorTag,
|
|
cellClick:function(e, cell){
|
|
var objid = fnc_checkNull(cell.getData().OBJID);
|
|
openProjectFormPopUp(objid);
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'left', width : '250', title : '프로젝트명', field : 'PROJECT_NAME' }
|
|
],
|
|
},
|
|
{title:"투입공수현황", headerHozAlign:'center',
|
|
columns:[
|
|
{title: '영업', field: 'SALES_INPUT', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%" ,*/
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '관리', field: 'MGMT_INPUT', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%" ,*/
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '설계', field: 'DESIGN_INPUT', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%" ,*/
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '구매', field: 'PURCHASE_INPUT', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%" ,*/
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '생관', field: 'PRODUCTION_MGMT_INPUT', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%" ,*/
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '생산', field: 'PRODUCTION_INPUT', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%", */
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '외주', field: 'OUTSOURCING', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%", */
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: '작업시간(h)', field: 'WORK_HOUR', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%", */
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: 'Day/Man', field: 'MAN_DAY', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%", */
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
},
|
|
{title: 'Month/Man', field: 'MAN_MONTH', headerHozAlign: 'center', hozAlign: 'center', /* width:"8%", */
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false,},
|
|
cellClick:function(e, cell){
|
|
|
|
var projectObjId = fnc_checkNull(cell.getData().OBJID);
|
|
var productObjId = fnc_checkNull(cell.getData().PROD_REL_OBJID);
|
|
var milestoneObjId = fnc_checkNull(cell.getData().MILESTONE_OBJID);
|
|
|
|
fn_openInvestmentCostPricePopUp(projectObjId,productObjId,milestoneObjId);
|
|
}
|
|
}
|
|
],
|
|
},
|
|
];
|
|
|
|
//var grid;
|
|
function fn_search(){
|
|
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/productionplanning/workMgmtdashboardGridList.do", columns, false);
|
|
}
|
|
|
|
//영업활동등록 상세
|
|
function fn_projectConceptDetail(objId){
|
|
var popup_width = 1200;
|
|
var popup_height = 760;
|
|
var url = "/contractMgmt/contracMgmtFormPopup.do?objId="+objId;
|
|
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
//프로젝트의 form,detail 팝업을 보여준다.
|
|
function openProjectFormPopUp(objId){
|
|
var popup_width = 420;
|
|
var popup_height = 350;
|
|
var objId = objId;
|
|
var params = "?OBJID="+objId;
|
|
var url = "/project/projectmodifyPopUp.do"+params;
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
//프로젝트의 form,detail 팝업을 보여준다.
|
|
function openIssueFormPopUp(status,projectobjid){
|
|
var popup_width = 1720;
|
|
var popup_height = 900;
|
|
var objId = objId;
|
|
var params = "?status="+status+"&project_no="+projectobjid;
|
|
var url = "/productionplanning/issuemgmtList.do"+params;
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
function wbs_popup(objId){
|
|
|
|
var popup_width = 900;
|
|
var popup_height = 800;
|
|
var objId = objId;
|
|
var params = "?OBJID="+objId;
|
|
//var url = "/project/wbsTaskProductGanttFormPopUp.do"+params;
|
|
var url = "/project/wbsTaskProductProduceFormPopUp.do"+params;
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
function setup_wbs_popup(objId){
|
|
|
|
var popup_width = 1100;
|
|
var popup_height = 750;
|
|
var objId = objId;
|
|
var params = "?OBJID="+objId;
|
|
//var url = "/project/wbsTaskProductGanttFormPopUp.do"+params;
|
|
var url = "/project/wbsTaskProductSetupFormPopUp.do"+params;
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="actionType" value="" />
|
|
<div class="min_part_enroll">
|
|
<div class="content-box">
|
|
<div class="content-box-s">
|
|
<div class="plm_menu_name_gdnsi">
|
|
<h2>
|
|
<span>작업관리_현황</span>
|
|
</h2>
|
|
<div class="btnArea">
|
|
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tr>
|
|
<td><label for="Year">년도</label></td>
|
|
<td>
|
|
<select name="Year" id="Year" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
|
|
<option value="${req_year}"${param.Year eq req_year ? 'selected':'' }>${req_year}</option>
|
|
</c:forEach>
|
|
</select>
|
|
</td>
|
|
|
|
<!-- <td><label for="search_division">구분</label></td>
|
|
<td>
|
|
<select name="search_division" id="search_division" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
<option value="project">프로젝트</option>
|
|
<option value="non_project">비프로젝트</option>
|
|
</select>
|
|
</td> -->
|
|
|
|
<td><label for="project_no">프로젝트번호</label></td>
|
|
<td>
|
|
<select name="project_no" id="project_no" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.project_no}
|
|
</select>
|
|
</td>
|
|
|
|
<%-- <td><label for="unit_code">유닛명</label></td>
|
|
<td>
|
|
<select name="unit_code" id="unit_code" class="select2" type="select" autocomplete="off">
|
|
</td> --%>
|
|
|
|
<td><label for="">팀명</label></td>
|
|
<td><select name="busUsersDeptId" id="busUsersDeptId" class="select2" autocomplete="off" ><option value="">선택</option>
|
|
${code_map.busUsersDeptId}</select></td>
|
|
|
|
<%-- <td><label for="">작업자</label></td>
|
|
<td><select name="worker" id="worker" class="select2" autocomplete="off"><option value="">선택</option>${code_map.worker}</select></td> --%>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |