- 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
313 lines
14 KiB
Plaintext
313 lines
14 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file= "/init.jsp" %>
|
|
<c:set var="now" value="<%=new java.util.Date() %>"/>
|
|
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
</head>
|
|
<style>
|
|
.select2-selection__choice {
|
|
font-size: 11px;
|
|
background-color: #fff !important;
|
|
border: none !important;
|
|
margin-right: 0px !important;
|
|
}
|
|
.select2-selection__choice__remove {
|
|
display: contents !important;
|
|
}
|
|
.select2-container .select2-selection--multiple {
|
|
min-height: 20px !important;
|
|
}
|
|
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
|
margin-top: 3.5px !important;
|
|
}
|
|
.select2-selection__rendered {
|
|
height: 18px !important;
|
|
}
|
|
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
|
overflow: auto !important;
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
|
|
fnc_changePaginationAndTotalCountArea();
|
|
$('.select2').select2();
|
|
fnc_datepick();
|
|
|
|
//조회
|
|
$("#btnSearch").click(function(){
|
|
$("#page").val("1");
|
|
fn_search();
|
|
});
|
|
//접수
|
|
$("#btnRec").click(function(){
|
|
var selectedRowIds = _tabulGrid.getSelectedData();
|
|
if(selectedRowIds.length==0){
|
|
Swal.fire("접수할 행을 선택해주십시오.");
|
|
return false;
|
|
}
|
|
|
|
var validStatus = true;
|
|
$(selectedRowIds).each(function(i, o){
|
|
var status = selectedRowIds[i].ACT_STATUS;
|
|
if('0001064' == status){
|
|
validStatus = false;
|
|
return false;
|
|
}
|
|
});
|
|
|
|
if(!validStatus){
|
|
Swal.fire("이미 접수한 건입니다.");
|
|
return false;
|
|
}
|
|
|
|
//old
|
|
let partIds = selectedRowIds.map(function(o,i){
|
|
return fnc_checkNull(selectedRowIds[i].OBJID);
|
|
});
|
|
|
|
//new
|
|
var param = $("#form1").serializeObject();
|
|
param.dataListJson = JSON.stringify(_tabulGrid.getSelectedData());
|
|
|
|
if(confirm("접수하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/salesMng/receiptSalesPartChgInfo.do"
|
|
,type:"POST"
|
|
//,data: "partIds="+partIds.join(",")
|
|
,data: param
|
|
,dataType:"json"
|
|
,async:false
|
|
,success:function(data){
|
|
Swal.fire(data.message);
|
|
fn_search();
|
|
self.close();
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
});
|
|
//조치내역등록
|
|
$("#btnActReg").click(function(){
|
|
var selectedRowIds = _tabulGrid.getSelectedData();
|
|
if(selectedRowIds.length==0){
|
|
Swal.fire("등록할 행을 선택해주십시오.");
|
|
return false;
|
|
}else if(selectedRowIds.length>1){
|
|
Swal.fire("한번에 한개의 등록만 가능합니다.");
|
|
return false;
|
|
}else{
|
|
var objid = fnc_checkNull(selectedRowIds[0].SPC_OBJID);
|
|
var part_objid = fnc_checkNull(selectedRowIds[0].OBJID);
|
|
var eo_no = fnc_checkNull(selectedRowIds[0].EO_NO);
|
|
var part_no = fnc_checkNull(selectedRowIds[0].PART_NO);
|
|
var project_no = fnc_checkNull(selectedRowIds[0].PROJECT_NO);
|
|
if(fnc_checkNull(objid)=="" || fnc_checkNull(selectedRowIds[0].CONFIRM_DATE)==""){
|
|
Swal.fire("접수되지 않은 건입니다.");
|
|
return false;
|
|
}
|
|
|
|
fn_formPopUp(600,300,"/salesMng/salesPartChgFormPopup.do", "salesPartChgFormPopup", objid, part_objid, eo_no, part_no, project_no);
|
|
}
|
|
|
|
});
|
|
|
|
fn_search();
|
|
});
|
|
|
|
var columns = [
|
|
{title:'OBJID' , field:'OBJID' ,visible: false},
|
|
{title:'SPC_OBJID' , field:'SPC_OBJID' ,visible: false},
|
|
{title:'EO_NO' , field:'EO_NO' ,visible: false},
|
|
{title:'ACT_STATUS' , field:'ACT_STATUS' ,visible: false},
|
|
{title:'PURCHASE_ORDER_MASTER_OBJID', field:'PURCHASE_ORDER_MASTER_OBJID' ,visible: false}
|
|
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "EO NO", field :"EO_NO" , width:80 }
|
|
//,{headerHozAlign : 'center', hozAlign : 'center', title : "년도", field :"CM_YEAR" , width:50 }
|
|
,{headerHozAlign : 'center', hozAlign : 'left', title : "프로젝트번호", field :"PROJECT_NO" , width:100 }
|
|
,{headerHozAlign : 'center', hozAlign : 'left', title : "프로젝트명", field :"CUSTOMER_PROJECT_NAME" , width:140 }
|
|
,{headerHozAlign : 'center', hozAlign : 'left', width :'125', title:'모품번', field:'PARENT_PART_INFO' }
|
|
,{headerHozAlign : 'center', hozAlign : 'left', title : "품번", field :"PART_NO" , width:120,
|
|
formatter: fnc_createGridAnchorTag,
|
|
cellClick : function(e, cell) {
|
|
fn_partMngHisDetail(cell.getData().OBJID);
|
|
}
|
|
}
|
|
,{headerHozAlign : 'center', hozAlign : 'left', title : "품명", field :"PART_NAME" , width:150 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : '수량', field :'QTY' , width :50}
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : '변경수량', field :'QTY_TEMP' , width :80}
|
|
,{headerHozAlign : 'center', hozAlign : 'left', title : "EO구분", field :"CHANGE_TYPE_NAME", width:90 }
|
|
,{headerHozAlign : 'center', hozAlign : 'left', title : "EO사유", field :"CHANGE_OPTION_NAME",width:80}
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "Revision", field :"REVISION" , width:80 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "EO Date", field :"EO_DATE" , width:85 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "PART구분", field :"PART_TYPE_NAME" , width:90 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "설계담당자", field :"WRITER_NAME" , width:100 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "실행일", field :"HIS_REG_DATE_TITLE" , width:80 }
|
|
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매확인", field :"CONFIRM_DATE" , width:90 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매담당자", field :"WRITER1_NAME" , width:100 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "조치내역", field :"ACT_NAME" , width:90 }
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "발주서NO", field :"PURCHASE_ORDER_NO" , width:100,
|
|
formatter: fnc_createGridAnchorTag,
|
|
cellClick : function(e, cell) {
|
|
fn_purchaseOrderPopup(cell.getData().PURCHASE_ORDER_MASTER_OBJID);
|
|
}
|
|
}
|
|
,{headerHozAlign : 'center', hozAlign : 'center', title : "조치결과", field :"ACT_STATUS_NAME" , width:80 }
|
|
];
|
|
|
|
//var grid;
|
|
function fn_search(){
|
|
var selectedValues = $("#contract_objid").val();
|
|
|
|
$('<input>').attr({
|
|
type: 'hidden',
|
|
name: 'project_nos',
|
|
value: selectedValues
|
|
}).appendTo('#form1');
|
|
|
|
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/salesMng/salesPartChgGridList.do", columns, true);
|
|
}
|
|
|
|
|
|
function fn_formPopUp(width, heigth, url, target, objId, part_objid, eo_no, part_no, project_no){
|
|
var hiddenForm = document.hiddenForm;
|
|
fn_centerPopup(width, heigth, "", target);
|
|
|
|
hiddenForm.objId.value = objId;
|
|
hiddenForm.part_objid.value = part_objid;
|
|
hiddenForm.eo_no.value = eo_no;
|
|
hiddenForm.part_no.value = part_no;
|
|
hiddenForm.project_no.value = project_no;
|
|
hiddenForm.action = url;
|
|
hiddenForm.target = target;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
function fn_partMngHisDetail(objId){
|
|
var popup_width = 550;
|
|
var popup_height = 250;
|
|
var url = "/partMng/partMngHisDetailPopUp.do?OBJID="+objId;
|
|
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
function fn_purchaseOrderPopup(objId){
|
|
var popup_width = 950;
|
|
var popup_height = 765;
|
|
var url = "/purchaseOrder/purchaseOrderFormPopup_new.do?PURCHASE_ORDER_MASTER_OBJID="+objId;
|
|
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
}
|
|
|
|
</script>
|
|
<body>
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="objId" />
|
|
<input type="hidden" name="part_objid" />
|
|
<input type="hidden" name="eo_no" />
|
|
<input type="hidden" name="part_no" />
|
|
<input type="hidden" name="project_no" />
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<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" class="plm_btns" value="접수" id="btnRec">
|
|
<input type="button" class="plm_btns" value="조치내역등록" id="btnActReg">
|
|
<input type="button" class="plm_btns" value="조회" id="btnSearch">
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tr>
|
|
<td><label for="Year">년도</label></td>
|
|
<td>
|
|
<select name="Year" id="Year" class="select2" autocomplete="off" style="width:110px;">
|
|
<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="">프로젝트번호</label></td>
|
|
<td><select name="contract_objid" id="contract_objid" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.contract_objid}</select></td> --%>
|
|
|
|
<td><label for="contract_objid">프로젝트번호</label></td>
|
|
<td>
|
|
<select name="contract_objid" id="contract_objid" style="width:270px;" class="select2" autocomplete="off" multiple="multiple">
|
|
<option value="">선택</option>
|
|
${code_map.contract_objid}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="">품번</label></td>
|
|
<td><input type="text" name="part_no" id="part_no" autocomplete="off" value="${param.part_no }" style="width:120px;"/></td>
|
|
|
|
<td><label for="">품명</label></td>
|
|
<td><input type="text" name="part_name" id="part_name" autocomplete="off" value="${param.part_name}" style="width:120px;"/></td>
|
|
|
|
<td class="align_r"><label>EO Date</label></td>
|
|
<td>
|
|
<input type="text" name="eo_date_start" id="eo_date_start" style="width:80px;" autocomplete="off" value="${param.eo_date_start}" class="date_icon">~
|
|
<input type="text" name="eo_date_end" id="eo_date_end" style="width:80px;" autocomplete="off" value="${param.eo_date_end }" class="date_icon">
|
|
</td>
|
|
|
|
<td><label for="">EO구분</label></td>
|
|
<td><select name="change_type" id="change_type" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.change_type}</select></td>
|
|
|
|
<td><label for="">설변사유</label></td>
|
|
<td><select name="change_option" id="change_option" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.change_option}</select></td>
|
|
|
|
<%-- <td><label for="">EO단계</label></td>
|
|
<td><select name="eo_step" id="eo_step" class="select2" autocomplete="off"><option value="">선택</option>${code_map.eo_step}</select></td> --%>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td><label for="">PART 구분</label></td>
|
|
<td><select name="part_type" id="part_type" class="select2" autocomplete="off" style="width:110px;"><option value="">선택</option>${code_map.part_type}</select></td>
|
|
|
|
<td><label for="">설계담당자</label></td>
|
|
<td><select name="part_writer" id="part_writer" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.part_writer}</select></td>
|
|
|
|
<td><label for="">구매담당자</label></td>
|
|
<td><select name="sales_writer" id="sales_writer" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.sales_writer}</select></td>
|
|
|
|
<td><label for="">Revision</label></td>
|
|
<td><input type="text" name="revision" id="revision" autocomplete="off" value="${param.revision }" style="width:120px;"/></td>
|
|
|
|
<td class="align_r"><label>구매확인일자(접수)</label></td>
|
|
<td>
|
|
<input type="text" name="confirm_date_start" id="confirm_date_start" style="width:80px;" autocomplete="off" value="${param.confirm_date_start}" class="date_icon">~
|
|
<input type="text" name="confirm_date_end" id="confirm_date_end" style="width:80px;" autocomplete="off" value="${param.confirm_date_end }" class="date_icon">
|
|
</td>
|
|
|
|
<td><label for="">조치내역</label></td>
|
|
<td><select name="act_cd" id="act_cd" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.act_cd}</select></td>
|
|
|
|
<td><label for="">조치결과</label></td>
|
|
<td><select name="act_status" id="act_status" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.act_status}</select></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</div>
|
|
|
|
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |