ERP-node/WebContent/WEB-INF/view/partMng/structureDescendingList.jsp

525 lines
17 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 headerNames = [];
var colModels = [];
var grid;
$(document).ready(function(){
headerNames = [
'품번',
'품명',
'형상',
'3D',
'2D(Drawing)',
'2D(PDF)',
'단위',
'수량',
'Rev',
// 'EO No',
// 'EO Date',
'최초설계일',
'설변일자',
'설변항목',
'규격',
'재질',
'대체 재질',
'중량',
'부품 유형',
'비고',
'PART_OBJID',
'EO_OBJID',
'REAL_FILE_NAME',
'SAVED_FILE_NAME',
'FILE_PATH',
'IMAGE_SRC',
'FILE_3D_CNT',
'FILE_2D_CNT',
'FILE_PDF_CNT'
];
colModels =
[
{name:'PART_NO_TITLE', index:'PART_NO_TITLE', align:'left', width:'110px', frozen:true},
{name:'PART_NAME', index:'PART_NAME', align:'center', width:'200px', frozen:true},
{name:'SHAPE_IMAGE', index:'SHAPE_IMAGE', align:'center', width:'100px' ,formatter: imageFormatter , hidden: true},
{name:'3D_CAD', index:'3D_CAD', align:'center', width:'85px' ,formatter: file3DFormatter},
{name:'2D_DRAWING_CAD', index:'2D_DRAWING_CAD', align:'center', width:'85px' ,formatter: file2DFormatter},
{name:'2D_PDF_CAD', index:'2D_PDF_CAD', align:'center', width:'85px' ,formatter: filePDFFormatter},
{name:'UNIT_TITLE', index:'UNIT_TITLE', align:'center', width:'50px'},
{name:'QTY', index:'QTY', align:'center', width:'50px'},
{name:'REV', index:'REV', align:'center', width:'50px', frozen:true},
// {name:'EO_NO', index:'EO_NO', align:'center', width:'100px'},
// {name:'EO_ISSUE_DATE', index:'EO_ISSUE_DATE', align:'center', width:'100px'},
{name:'DESIGN_DATE', index:'DESIGN_DATE', align:'center', width:'80px'},
{name:'EO_DATE', index:'EO_DATE', align:'center', width:'80px'},
{name:'CHANGE_OPTION_NAME', index:'CHANGE_OPTION_NAME', align:'center', width:'100px'},
{name:'SPEC', index:'SPEC', align:'center', width:'100px'},
{name:'MATERIAL', index:'MATERIAL', align:'center', width:'100px'},
{name:'SUB_MATERIAL', index:'SUB_MATERIAL', align:'center', width:'100px'},
{name:'WEIGHT', index:'WEIGHT', align:'center', width:'100px'},
{name:'PART_TYPE_TITLE', index:'PART_TYPE_TITLE', align:'center', width:'100px'},
{name:'REMARK', index:'REMARK', align:'center', width:'100px'},
{name:'PART_OBJID', index:'PART_OBJID', align:'center', width:'100px', hidden: true},
{name:'EO_OBJID', index:'EO_OBJID', align:'center', width:'100px', hidden: true},
{name:'REAL_FILE_NAME', index:'REAL_FILE_NAME', align:'center', width:'100px', hidden: true},
{name:'SAVED_FILE_NAME', index:'SAVED_FILE_NAME', align:'center', width:'100px', hidden: true},
{name:'FILE_PATH', index:'FILE_PATH', align:'center', width:'100px', hidden: true},
{name:'IMAGE_SRC', index:'IMAGE_SRC', align:'center', width:'100px', hidden: true},
{name:'FILE_3D_CNT', index:'FILE_3D_CNT', align:'center', width:'100px', hidden: true},
{name:'FILE_2D_CNT', index:'FILE_2D_CNT', align:'center', width:'100px', hidden: true},
{name:'FILE_PDF_CNT', index:'FILE_PDF_CNT', align:'center', width:'100px', hidden: true}
];
$("#mainGrid").jqGrid({
height : 630,
colNames : headerNames,
colModel : colModels,
autowidth : true,
shrinkToFit : false,
rownumbers : true,
viewrecords : true
});
$("input[type=text]").keyup(function(e){
if(e.keyCode == 13){
$("#btnSearch").trigger("click");
}
});
$("#btnSearch").click(function(){
$("#search_partNo").val($.trim($("#search_partNo").val()));
$("#search_partName").val($.trim($("#search_partName").val()));
fn_search();
});
$("#btnExcel").click(function(){
$("#search_partNo").val($.trim($("#search_partNo").val()));
$("#search_partName").val($.trim($("#search_partName").val()));
fn_excelExport($("#mainGrid"),"BOM_REPORT_역전개");
});
//1level만 활성화 시킨다.
$(".dataTr").each(function(i){
var lev = $(this).attr("data-LEVEL");
if(lev == 1){
$(this).show();
}
});
$(".btnToggle").click(function(){
var src = $(this).attr("src");
if(src.indexOf("Plus")>-1){
$(this).attr("src", "/images/btnMinus.png");
}else if(src.indexOf("Minus")>-1){
$(this).attr("src", "/images/btnPlus.png");
}
var choosedBomObjId = $(this).attr("data-BOM_REPORT_OBJID");
var choosedObjId = $(this).attr("data-OBJID");
var choosedTopObjId = $(this).attr("data-TOP_OBJID");
var choosedSubTopObjId = $(this).attr("data-SUB_TOP_OBJID");
//Swal.fire("choosedBomObjId : "+choosedBomObjId+"\nchoosedObjId : "+choosedObjId+"\nchoosedTopObjId : "+choosedTopObjId+"\nchoosedSubTopObjId : "+choosedSubTopObjId);
$(".dataTr").each(function(i){
var bomReportObjId = $(this).attr("data-BOM_REPORT_OBJID");
var objId = $(this).attr("data-OBJID");
var topObjId = $(this).attr("data-TOP_OBJID");
var subTopObjId = $(this).attr("data-SUB_TOP_OBJID");
//Swal.fire("bomReportObjId : "+bomReportObjId+"\nobjId : "+objId+"\ntopObjId : "+topObjId+"\nsubTopObjId : "+subTopObjId);
var lev = $(this).attr("data-LEVEL");
if(choosedTopObjId == topObjId){
//Swal.fire("bomReportObjId : "+bomReportObjId+", choosedBomObjId : "+choosedBomObjId);
if(lev != "1"){
var topObjId = $(this).attr("data-TOP_OBJID");
var realLevel = $(this).attr("data-REAL_LEVEL");
//Swal.fire(realLevel);
//Swal.fire("11 choosedObjId : "+choosedObjId+", topObjId : "+topObjId);
if(realLevel != "1"){
topObjId = $(this).attr("data-SUB_TOP_OBJID");
}
//Swal.fire("22 choosedObjId : "+choosedObjId+", topObjId : "+topObjId);
if(choosedObjId == topObjId){
$(this).toggle();
}
}
}
});
});
//level별 색상
$(".dataTr").each(function(i){
var lev = $(this).attr("data-REAL_LEVEL");
if(lev == 1){
$(this).css("background-color", "#fde9d9");
}else if(lev == 2){
$(this).css("background-color", "#daeef3");
}else if(lev == 3){
$(this).css("background-color", "#e4dfec");
}else if(lev == 4){
$(this).css("background-color", "#ebf1de");
}else if(lev == 5){
$(this).css("background-color", "#f2f2f2");
}else if(lev == 6){
$(this).css("background-color", "#f2dcdb");
}else if(lev == 7){
$(this).css("background-color", "#eeece1");
}else if(lev == 8){
$(this).css("background-color", "#dce6f1");
}else if(lev == 9){
$(this).css("background-color", "#FFFFEB");
}else if(lev == 10){
$(this).css("background-color", "#ffffff");
}
});
$(".btnEODetail").click(function(){
var objId = $(this).attr("data-EO_OBJID");
fn_openEOPopup(objId);
});
$(".btnPartDetail").click(function(){
var objId = $(this).attr("data-PART_OBJID");
fn_openPartPopup(objId);
});
});
function imageFormatter(cellvalue, options, rowObject)
{
console.log("rowObject:"+rowObject);
var realFileName = fnc_checkNull(rowObject.REAL_FILE_NAME);
var savedFileName = fnc_checkNull(rowObject.SAVED_FILE_NAME);
var attDir = fnc_checkNull(rowObject.FILE_PATH);
var imgTag = "";
if("" != realFileName && "" != savedFileName && "" != attDir){
var imgSrc = "/common/viewImage.do?realFileName="+rowObject.REAL_FILE_NAME+"&savedFileName="+rowObject.SAVED_FILE_NAME+"&attDir="+rowObject.FILE_PATH;
imgTag = "<img src='"+encodeURI(imgSrc)+"' height='85px' width='100%' />";
}
return imgTag;
}
function file3DFormatter(cellvalue, options, rowObject)
{
return attachFileFormatter(cellvalue, options, rowObject, "3D_CAD");
}
function file2DFormatter(cellvalue, options, rowObject)
{
return attachFileFormatter(cellvalue, options, rowObject, "2D_DRAWING_CAD");
}
function filePDFFormatter(cellvalue, options, rowObject)
{
return attachFileFormatter(cellvalue, options, rowObject, "2D_PDF_CAD");
}
function attachFileFormatter(cellvalue, options, rowObject, attachFileType)
{
var imgTag = "";
var fileCnt;
if("3D_CAD" == attachFileType){
fileCnt = fnc_checkNull(rowObject.FILE_3D_CNT);
}else if("2D_DRAWING_CAD" == attachFileType){
fileCnt = fnc_checkNull(rowObject.FILE_2D_CNT);
}else if("2D_PDF_CAD" == attachFileType){
fileCnt = fnc_checkNull(rowObject.FILE_PDF_CNT);
}
if(0 < fileCnt){
imgTag = "<img src='/images/folder_blue.png' height='20px' width='20px'/>";
}else{
imgTag = "<img src='/images/file_empty.png' height='20px' width='20px'/>";
}
return imgTag;
}
function fn_check(){
var partNo = fnc_checkNull($("#search_partNo").val());
var partName = fnc_checkNull($("#search_partName").val());
if(partNo == "" && partName == ""){
Swal.fire("조회조건을 설정해주시기 바랍니다.");
return false;
}
if(partName == "" && partNo.length < 5){
Swal.fire("품번은 최소 5자이상 입력하시기 바랍니다.");
return false;
}
if(partNo == "" && partName.length < 5){
Swal.fire("품명은 최소 5자이상 입력하시기 바랍니다.");
return false;
}
return true;
}
function fn_openEOPopup(objId){
window.open("",target,"width=1000,height=800");
window.open("/eoMng/eoMngDetailPopUp.do?OBJID="+objId, "tempEoListPopup","width=1000,height=800,toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
function fn_openPartPopup(objId){
window.open("/partMng/partMngDetailPopUp.do?OBJID="+objId, "tempPartListPopup", "width=600, height=700, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
var gridFn = {
search : function() {
grid.setGridParam({
url : "/partMng/structureDescendingList.do",
datatype : "json",
postData : $("#form1").serialize()
}).trigger("reloadGrid");
}
}
function fn_search(){
if(fn_check()){
$.ajax({
url:"/partMng/getStructureDescendingList.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
async:false,
success:function(data){
var resultList = data;
var maxLevel = 0;
var firstCol = "LEV_1";
var newHeaderNames = [];
var newColModels = [];
if(0 < resultList.length){
for (var i = 0; i < resultList.length; i++) {
if(i == 0){
maxLevel = resultList[i].MAX_LEVEL;
var levelHeaders = [];
var levelColModels = [];
for(var j=0;j<maxLevel;j++){
k = Number(j)+1;
levelHeaders.push(k);
levelColModels.push({name:"LEV_"+k, index:"LEV_"+k, align:'center', width:'20px' ,frozen:true});
}
//역순정렬
levelHeaders.reverse();
newHeaderNames = levelHeaders.concat(headerNames);
newColModels = levelColModels.concat(colModels);
$("#mainGrid").jqGrid("GridUnload");
$("#mainGrid").jqGrid({
height : 630,
colNames : newHeaderNames,
colModel : newColModels,
autowidth : true,
shrinkToFit : false,
viewrecords : true,
onCellSelect: function(rowid, iCol, cellcontent, e) {
var cm = $(this).jqGrid("getGridParam","colModel");
if("PART_NO_TITLE" == cm[iCol].name){
var row = $(this).getRowData(rowid);
var partObjId = row.PART_OBJID;
if("" != partObjId){
fn_openPartPopup(partObjId);
}
}
if("EO_NO" == cm[iCol].name){
var row = $(this).getRowData(rowid);
var eoObjId = row.EO_OBJID;
if("" != eoObjId){
fn_openEOPopup(eoObjId);
}
}
if("SHAPE_IMAGE" == cm[iCol].name){
var row = $(this).getRowData(rowid);
var imageSRC = row.IMAGE_SRC;
console.log("row:"+row);
if("" != imageSRC){
fnc_openImagePopUp(encodeURI(imageSRC));
}
}
if("3D_CAD" == cm[iCol].name || "2D_DRAWING_CAD" == cm[iCol].name || "2D_PDF_CAD" == cm[iCol].name){
var row = $(this).getRowData(rowid);
fnc_openAttachFilePopUp(row.PART_OBJID, cm[iCol].name);
}
}
});
$("#mainGrid").jqGrid("setFrozenColumns");
}
var REAL_FILE_NAME = resultList[i].REAL_FILE_NAME;
var SAVED_FILE_NAME = resultList[i].SAVED_FILE_NAME;
var FILE_PATH = resultList[i].FILE_PATH;
var imgSrc = "";
if("" != REAL_FILE_NAME && "" != SAVED_FILE_NAME){
imgSrc = "/common/viewImage.do?realFileName="+REAL_FILE_NAME+"&savedFileName="+SAVED_FILE_NAME+"&attDir="+FILE_PATH;
}
resultList[i].IMAGE_SRC = imgSrc;
$("#mainGrid").jqGrid('addRowData',i+1,resultList[i]);
}
}else{
$("#mainGrid").jqGrid("GridUnload");
$("#mainGrid").jqGrid({
height : 630,
colNames : headerNames,
colModel : colModels,
autowidth : true,
shrinkToFit : false,
rownumbers : true,
viewrecords : true
});
}
},
error: function(jqxhr, status, error){
}
});
}
}
function fn_excelExport(pGridObj,pFileName){
var mya = pGridObj.getDataIDs();
var data = pGridObj.getRowData(mya[0]);
var colNames=new Array();
var ii=0;
for (var d in data){ colNames[ii++] = d; }
//컬럼 헤더 가져오기
var columnHeader = pGridObj.jqGrid('getGridParam','colNames') + '';
var arrHeader = columnHeader.split(',');
var html="<table border=1><tr>";
for ( var y = 0; y < arrHeader.length; y++ ) {
var hName = arrHeader[y];
if("PART_OBJID" == hName || "EO_OBJID" == hName){
continue;
}
html = html + "<td><b>" + arrHeader[y] + "</b></td>";
}
html = html + "</tr>";
//값 불러오기
for(var i=0;i< mya.length;i++) {
var datac= pGridObj.getRowData(mya[i]);
html = html +"<tr>";
for(var j=0; j< colNames.length;j++){
if("PART_OBJID" == colNames[j] || "EO_OBJID" == colNames[j]){
continue;
}
html=html + '<td>' + datac[colNames[j]]+"</td>";
}
html = html+"</tr>";
}
html=html+"</table>"; // end of line at the end
document.EXCEL_.csvBuffer.value = html;
document.EXCEL_.fileName.value = pFileName;
document.EXCEL_.target='_new';
document.EXCEL_.submit();
}
</script>
</head>
<body class="backcolor">
<form id="EXCEL_" name="EXCEL_" action="/partMng/structureAscendingExcelList.do" method="post">
<input type="hidden" name="csvBuffer" id="csvBuffer" value="">
<input type="hidden" name="fileName" id="fileName" value="">
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="actionType" id="actionType" value="" />
<div class="min_part_enroll">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name">
<h2>
<span>BOM Report 역전개</span>
</h2>
</div>
<div id="plmSearchZon">
<table>
<tbody>
<tr>
<td class="align_r">
<label for="" class="">Part No</label>
</td>
<td>
<input type="text" name="search_partNo" id="search_partNo" value="${param.search_partNo}" class="text_area" style="width:200px;"/>
</td>
<td class="align_r">
<label for="" class="">Part Name</label>
</td>
<td>
<input type="text" name="search_partName" id="search_partName" value="${param.search_partName}" class="text_area" style="width:200px;"/>
</td>
</tr>
</tbody>
</table>
</div>
<div class="contents_page_basic_margin">
<div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="Excel Download" class="plm_btns" id="btnExcel">
<input type="button" value="조회" class="plm_btns" id="btnSearch">
</div>
</div>
<div class="ascendig_text">품번 혹은 품명을 통하여 조회 가능합니다.</div>
<div class="plm_table_wrap container" style="overflow-x:scroll;width:100%;">
<div>
<table class="plm_table container" id="mainGrid"></table>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
<style>
.container::-webkit-scrollbar-thumb {background: linear-gradient(to bottom, #f5d78e, #f5d78e) !important;}
.container::-webkit-scrollbar-track {background-color: white !important;}
.container::-webkit-scrollbar-button { display: none !important;}
</style>
</html>