생산관리_M-BOM관리 생성

This commit is contained in:
Johngreen
2025-10-28 17:26:18 +09:00
parent 661e1df716
commit 318e371249
6 changed files with 552 additions and 13 deletions

View File

@@ -0,0 +1,309 @@
<%@ 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>
<script type="text/javascript" src="/js/tabulator/tabulator_custom.js"></script>
</head>
<body>
<script type="text/javascript">
// Tabulator 그리드 전역 변수
var _tabulGrid;
$(document).ready(function(){
_fnc_datepick(); // 날짜 선택기 초기화
$('.select2').select2(); // select2 초기화
// Enter 키로 검색
$("input").keyup(function(e) {
if (e.keyCode == 13) {
fn_search();
}
});
// 조회 버튼
$("#btnSearch").click(function(){
fn_search();
});
// 전체 체크박스
$(document).on('click', '#checkAll', function() {
$('.rowCheck').prop('checked', $(this).prop('checked'));
});
// 초기 조회
fn_search();
});
// 날짜 선택기 초기화 함수
function _fnc_datepick(){
var $dateinput = $("input.date_icon");
for(var i=0; i<$dateinput.length; i++){
$dateinput.eq(i).attr("size","10");
$dateinput.eq(i).datepicker({
changeMonth:true,
changeYear:true
});
}
}
// 그리드 컬럼 정의
var columns = [
{title:'OBJID', field:'OBJID', visible: false},
{title:'CONTRACT_OBJID', field:'CONTRACT_OBJID', visible: false},
{title:'BOM_REPORT_OBJID', field:'BOM_REPORT_OBJID', visible: false},
// 체크박스
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 50,
title: '<input type="checkbox" id="checkAll">',
field: 'CHK',
formatter: function(cell, formatterParams, onRendered) {
return '<input type="checkbox" class="rowCheck" data-objid="' + cell.getRow().getData().OBJID + '">';
},
headerSort: false
},
// 프로젝트번호
{
headerHozAlign: 'center',
hozAlign: 'left',
width: 120,
title: '프로젝트번호',
field: 'PROJECT_NO'
},
// 주문유형
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '주문유형',
field: 'CATEGORY_NAME'
},
// 제품구분
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '제품구분',
field: 'PRODUCT_NAME'
},
// 국내/해외
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 80,
title: '국내/해외',
field: 'AREA_NAME'
},
// 접수일
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '접수일',
field: 'RECEIPT_DATE'
},
// 고객사
{
headerHozAlign: 'center',
hozAlign: 'left',
width: 150,
title: '고객사',
field: 'CUSTOMER_NAME'
},
// 유/무상
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 80,
title: '유/무상',
field: 'PAID_TYPE_NAME'
},
// 품번
{
headerHozAlign: 'center',
hozAlign: 'left',
width: 150,
title: '품번',
field: 'PART_NO'
},
// 품명
{
headerHozAlign: 'center',
hozAlign: 'left',
width: 200,
title: '품명',
field: 'PART_NAME'
},
// S/N
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 120,
title: 'S/N',
field: 'SERIAL_NO'
},
// 수주수량
{
headerHozAlign: 'center',
hozAlign: 'right',
width: 80,
title: '수주수량',
field: 'QUANTITY'
},
// 요청납기
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '요청납기',
field: 'REQ_DEL_DATE'
},
// 고객사요청사항
{
headerHozAlign: 'center',
hozAlign: 'left',
width: 200,
title: '고객사요청사항',
field: 'CUSTOMER_REQUEST'
},
// E-BOM
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: 'E-BOM',
field: 'EBOM_STATUS',
formatter: fnc_subInfoValueFormatter,
cellClick: function(e, cell) {
var objid = fnc_checkNull(cell.getData().BOM_REPORT_OBJID);
if(objid) {
fn_openEBomPopup(objid);
} else {
alert("E-BOM 정보가 없습니다.");
}
}
},
// E-BOM 작성일
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '작성일',
field: 'EBOM_REGDATE'
},
// M-BOM
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: 'M-BOM',
field: 'MBOM_STATUS',
formatter: fnc_subInfoValueFormatter,
cellClick: function(e, cell) {
var objid = fnc_checkNull(cell.getData().OBJID);
fn_openMBomPopup(objid);
}
},
// M-BOM Version
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 80,
title: 'Version',
field: 'MBOM_VERSION'
},
// M-BOM 작성일
{
headerHozAlign: 'center',
hozAlign: 'center',
width: 100,
title: '작성일',
field: 'MBOM_REGDATE'
}
];
// 검색 함수
function fn_search(){
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/productionplanning/mBomMgmtGridList.do", columns, true);
}
// E-BOM 팝업
function fn_openEBomPopup(bomReportObjId) {
var popup_width = 1800;
var popup_height = 800;
var url = "/partMng/structurePopupLeft.do?readonly=readonly&objId=" + bomReportObjId;
fn_centerPopup(popup_width, popup_height, url, 'ebomPopup');
}
// M-BOM 팝업
function fn_openMBomPopup(objId) {
var popup_width = 1800;
var popup_height = 800;
var url = "/productionplanning/mBomFormPopup.do?objId=" + objId;
fn_centerPopup(popup_width, popup_height, url, 'mbomPopup');
}
</script>
<form name="form1" id="form1" method="post">
<input type="hidden" name="actionType" id="actionType">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name_gdnsi">
<h2>
<span>생산관리_M-BOM관리</span>
</h2>
<div class="btnArea">
<input type="button" class="plm_btns" value="조회" id="btnSearch">
</div>
</div>
<!-- 검색 영역 -->
<div id="plmSearchZon">
<table>
<tr>
<td class="label"><label for="search_part_no">품번</label></td>
<td><input type="text" name="search_part_no" id="search_part_no" value="${param.search_part_no}"></td>
<td class="label"><label for="search_part_name">품명</label></td>
<td><input type="text" name="search_part_name" id="search_part_name" value="${param.search_part_name}"></td>
</tr>
</table>
</div>
<!-- 그리드 영역 -->
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
</div>
</div>
</form>
</body>
</html>