949 lines
35 KiB
Plaintext
949 lines
35 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(){
|
|
|
|
$('.select2').select2();
|
|
$("._table1").scroll(function () {
|
|
$("._table2").scrollLeft($("._table1").scrollLeft());
|
|
});
|
|
$("._table2").scroll(function () {
|
|
$("._table1").scrollLeft($("._table2").scrollLeft());
|
|
});
|
|
|
|
|
|
|
|
$("#mainGrid").jqGrid({
|
|
height : 630,
|
|
colNames : headerNames,
|
|
colModel : colModels,
|
|
autowidth : true,
|
|
shrinkToFit : false,
|
|
rownumbers : false,
|
|
viewrecords : true
|
|
});
|
|
|
|
$("input[type=text]").keyup(function(e){
|
|
if(e.keyCode == 13){
|
|
$("#btnSearch").trigger("click");
|
|
}
|
|
});
|
|
|
|
|
|
|
|
$("#project_name").change(function(){
|
|
fn_UnitCodeList(this.value, "unit_code", "");
|
|
});
|
|
|
|
if("${param.project_name}"!=""){
|
|
fn_UnitCodeList("${param.project_name}", "unit_code","");
|
|
$("#unit_code").val("${param.unit_code}");
|
|
|
|
}
|
|
|
|
|
|
|
|
$("#btnSearch").click(function(){
|
|
|
|
$("#search_partNo").val($.trim($("#search_partNo").val()));
|
|
$("#search_partName").val($.trim($("#search_partName").val()));
|
|
|
|
/*
|
|
if($("#customer_cd").val()==""){
|
|
Swal.fire('고객사를 선택해 주세요');
|
|
return;
|
|
}
|
|
|
|
if($("#project_name").val()==""){
|
|
Swal.fire('당사프로젝트를 선택해 주세요');
|
|
return;
|
|
}
|
|
|
|
if($("#unit_code").val()==""){
|
|
Swal.fire('유닛명을 선택해 주세요');
|
|
return;
|
|
} */
|
|
|
|
fn_search();
|
|
});
|
|
$("#btnExcel").click(function(){
|
|
|
|
$("#search_partNo").val($.trim($("#search_partNo").val()));
|
|
$("#search_partName").val($.trim($("#search_partName").val()));
|
|
|
|
fn_excelExport($("#mainGrid"),"BOM_REPORT_정전개");
|
|
});
|
|
|
|
var search_level = '${param.search_level}';
|
|
$(".dataTr").each(function(i){
|
|
var lev = $(this).attr("data-LEVEL");
|
|
//if(lev == 1){ //1level만 활성화
|
|
if(!fnc_isEmpty(search_level)){ //검색조건 LEVEL까지만 활성화
|
|
if(Number(lev) <= Number(search_level)){ //검색조건 LEVEL까지만 활성화
|
|
$(this).show();
|
|
}
|
|
}else{
|
|
$(this).show(); //전체 펼치기
|
|
}
|
|
});
|
|
/*
|
|
//클릭시 하위정보를 토글한다.
|
|
$(".dataTr").click(function(){
|
|
var choosedLev = $(this).attr("data-LEVEL");
|
|
var choosedBomObjId = $(this).attr("data-BOM_REPORT_OBJID");
|
|
|
|
$(".dataTr").each(function(i){
|
|
var bomReportObjId = $(this).attr("data-BOM_REPORT_OBJID");
|
|
var lev = $(this).attr("data-LEVEL");
|
|
|
|
if(bomReportObjId == choosedBomObjId){
|
|
//Swal.fire("bomReportObjId : "+bomReportObjId+", choosedBomObjId : "+choosedBomObjId);
|
|
if(lev != "1"){
|
|
$(this).toggle();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
*/
|
|
|
|
$(".btnToggle").click(function(){
|
|
var choosedIsMinus = false;
|
|
var choosedSrc = $(this).attr("src");
|
|
if(choosedSrc.indexOf("Minus")>-1){
|
|
$(this).attr("src", "/images/btnPlus.png");
|
|
choosedIsMinus = true;
|
|
}else if(choosedSrc.indexOf("Plus")>-1){
|
|
$(this).attr("src", "/images/btnMinus.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");
|
|
var choosedLev = $(this).attr("data-REAL_LEVEL");
|
|
|
|
//Swal.fire("choosedBomObjId : "+choosedBomObjId+"\nchoosedObjId : "+choosedObjId+"\nchoosedTopObjId : "+choosedTopObjId+"\nchoosedSubTopObjId : "+choosedSubTopObjId);
|
|
|
|
var isSelectedTopRow = false; //클릭한 최상위 로우 여부
|
|
var isBeforeSub = false; //이전의 자식 여부
|
|
var isBeforeMinus = false;
|
|
var isBeforePlus = false; //+버튼이 있을때(하위는 hide상태)
|
|
var isBeforePlusLev = '';
|
|
var isBeforeLev = '';
|
|
$(".dataTr").each(function(i){
|
|
var src = $(this).find("img").attr("src");
|
|
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");
|
|
var lev = $(this).attr("data-REAL_LEVEL");
|
|
|
|
if(isBeforePlusLev >= lev){
|
|
isBeforePlus = false;
|
|
}else{
|
|
if(isBeforePlus && !choosedIsMinus){//+눌러서 보여줄때
|
|
return; //하위의 +인 하위는 pass(숨김상태)
|
|
}
|
|
}
|
|
|
|
//Swal.fire("bomReportObjId : "+bomReportObjId+"\nobjId : "+objId+"\ntopObjId : "+topObjId+"\nsubTopObjId : "+subTopObjId);
|
|
//console.log("1 " + choosedObjId + ":" + objId + ":" + choosedLev + ":" + lev + ":" + isSelectedTopRow + ":" + isBeforeSub);
|
|
if(isSelectedTopRow && Number(choosedLev) < Number(lev)){
|
|
//$(this).toggle();
|
|
if(choosedIsMinus){
|
|
$(this).hide();
|
|
}else{
|
|
if(!isBeforePlus) //중간에 +인 상태가 있으면 하위는 패스(숨김)
|
|
$(this).show();
|
|
}
|
|
}else{
|
|
isBeforeSub = false; //레벨이 높은게 나오면 자식 아님
|
|
}
|
|
//console.log("2 " + choosedObjId + ":" + objId + ":" + choosedLev + ":" + lev + ":" + isSelectedTopRow + ":" + isBeforeSub);
|
|
|
|
if(isBeforeSub || choosedObjId == objId){
|
|
isSelectedTopRow = true;
|
|
isBeforeSub = true;
|
|
}else{
|
|
isSelectedTopRow = false; //하위로 내려가다가 레벨이 바뀌면 false로 변경
|
|
}
|
|
|
|
//var isMinus = false;
|
|
//var src = $(this).attr("src");
|
|
if(src && src.indexOf("Minus")>-1 && choosedObjId != objId){
|
|
//$(this).attr("src", "/images/btnPlus.png");
|
|
isBeforeMinus = true;
|
|
isBeforePlus = false;
|
|
}else if(src && src.indexOf("Plus")>-1 && choosedObjId != objId){
|
|
//$(this).attr("src", "/images/btnMinus.png");
|
|
isBeforeMinus = false;
|
|
isBeforePlus = true;
|
|
isBeforePlusLev = lev;
|
|
}else{
|
|
//isBeforeMinus = false;
|
|
//isBeforePlus = false;
|
|
}
|
|
|
|
//console.log("3 " + choosedObjId + ":" + objId + ":" + choosedLev + ":" + lev + ":" + isSelectedTopRow + ":" + isBeforeSub);
|
|
|
|
/* 기존 로직(1단계에서만 +- 가능)
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
|
|
isBeforeLev = lev;
|
|
});
|
|
});
|
|
|
|
//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);
|
|
});
|
|
|
|
$("#search_product_mgmt_objId").change(function(){
|
|
fnc_getSpecNameListAppend(this.value,"search_spec_name","${param.search_spec_name}");
|
|
});
|
|
|
|
//fnc_getSpecNameListAppend("${param.search_product_mgmt_objId}","search_spec_name","${param.search_spec_name}");
|
|
|
|
//첨부팝업
|
|
/* */
|
|
$(".File").click(function(){
|
|
var popup_width = 800;
|
|
var popup_height = 335;
|
|
|
|
var objId = $(this).attr("data-OBJID");
|
|
var docType =$(this).attr("data-docType");
|
|
var docTypeName = $(this).attr("data-docTypeName");
|
|
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
|
|
var url = "/projectConcept/FileRegistPopup.do"+params;
|
|
|
|
fn_centerPopup(popup_width, popup_height, url);
|
|
});
|
|
|
|
});
|
|
|
|
function fn_File_openPopup(objId, docType, docTypeName){
|
|
|
|
var param = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
|
|
|
|
window.open("/common/FileRegistPopup.do"+params, "", "width=800, height=335");
|
|
}
|
|
|
|
|
|
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/getStructureAscendingList.do",
|
|
datatype : "json",
|
|
postData : $("#form1").serialize()
|
|
}).trigger("reloadGrid");
|
|
}
|
|
}
|
|
|
|
|
|
function openPartMngPopup(objId){
|
|
var hiddenForm = document.hiddenForm;
|
|
var url = "/partMng/partMngFormPopUp.do";
|
|
|
|
if("" != objId){
|
|
url = "/partMng/partMngDetailPopUp.do";
|
|
}
|
|
|
|
var target = "partMngPopUp";
|
|
|
|
window.open(url,target,"width=600, height=730, menubars=no, scrollbars=yes, resizable=yes");
|
|
|
|
hiddenForm.action = url;
|
|
hiddenForm.OBJID.value = objId;
|
|
hiddenForm.target = target;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
|
|
|
|
function fn_search(){
|
|
|
|
if(fnc_valitate("form1")){
|
|
_startLoading("검색중입니다.");
|
|
|
|
document.form1.action = "/partMng/structureAscendingList.do";
|
|
document.form1.submit();
|
|
}
|
|
|
|
// if(fnc_valitate("form1")){
|
|
// $.ajax({
|
|
// url:"/partMng/getStructureAscendingList.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){
|
|
|
|
// maxLevel = resultList[0].MAX_LEVEL;
|
|
// var ck = "";
|
|
// var appendTextHead = "";
|
|
|
|
// appendTextHead += " <colgroup>";
|
|
// for (var i = 0; i < maxLevel; i++) {
|
|
// appendTextHead += " <col width='30px' />";
|
|
// }
|
|
// appendTextHead += " <col width='250px' />";
|
|
// appendTextHead += " <col width='250px' />";
|
|
// appendTextHead += " <col width='70px' />";
|
|
// appendTextHead += " <col width='70px' />";
|
|
// appendTextHead += " <col width='70px' />";
|
|
// appendTextHead += " <col width='30px' />";
|
|
// appendTextHead += " <col width='75px' />";
|
|
// appendTextHead += " <col width='75px' />";
|
|
// appendTextHead += " <col width='150px' />";
|
|
// appendTextHead += " <col width='250px' />";
|
|
// appendTextHead += " <col width='80px' />";
|
|
// appendTextHead += " <col width='80px' />";
|
|
// appendTextHead += " <col width='60px' />";
|
|
// appendTextHead += " <col width='60px' />";
|
|
// appendTextHead += " <col width='250px' />";
|
|
// appendTextHead += " </colgroup>";
|
|
// appendTextHead += " <thead>";
|
|
// appendTextHead += " <tr class='plm_thead'>";
|
|
|
|
// for (var i = 0; i < maxLevel; i++) {
|
|
// appendTextHead += " <td>"+ (i+1) +"</td>";
|
|
// }
|
|
// appendTextHead += " <td>품번</td>";
|
|
// appendTextHead += " <td>품명</td>";
|
|
// appendTextHead += " <td>3D</td>";
|
|
// appendTextHead += " <td>2D</td>";
|
|
// appendTextHead += " <td>PDF</td>";
|
|
// appendTextHead += " <td>수량</td>";
|
|
// appendTextHead += " <td>최초설계일</td>";
|
|
// appendTextHead += " <td>설변일자</td>";
|
|
// appendTextHead += " <td>설변항목</td>";
|
|
// appendTextHead += " <td>규격</td>";
|
|
// appendTextHead += " <td>재질</td>";
|
|
// appendTextHead += " <td>대체 재질</td>";
|
|
// appendTextHead += " <td>중량</td>";
|
|
// appendTextHead += " <td>부품 유형 </td>";
|
|
// appendTextHead += " <td>비고 </td>";
|
|
// appendTextHead += " </tr>";
|
|
// appendTextHead += " </thead>";
|
|
|
|
// $("#headtr").html(appendTextHead);
|
|
|
|
// var appendText = "";
|
|
// appendText += " <colgroup>";
|
|
// for (var i = 0; i < maxLevel; i++) {
|
|
// appendText += " <col width='30px' />";
|
|
// }
|
|
|
|
// appendText += " <col width='250px' />";
|
|
// appendText += " <col width='250px' />";
|
|
// appendText += " <col width='70px' />";
|
|
// appendText += " <col width='70px' />";
|
|
// appendText += " <col width='70px' />";
|
|
// appendText += " <col width='30px' />";
|
|
// appendText += " <col width='75px' />";
|
|
// appendText += " <col width='75px' />";
|
|
// appendText += " <col width='150px' />";
|
|
// appendText += " <col width='250px' />";
|
|
// appendText += " <col width='80px' />";
|
|
// appendText += " <col width='80px' />";
|
|
// appendText += " <col width='60px' />";
|
|
// appendText += " <col width='60px' />";
|
|
// appendText += " <col width='250px' />";
|
|
// appendText += " </colgroup>";
|
|
|
|
// if (null != resultList) {
|
|
// $("#connectedList").empty();
|
|
|
|
// if (0 < resultList.length) {
|
|
// resultSize = resultList.length;
|
|
|
|
// for (var i = 0; i < resultList.length; i++) {
|
|
// appendText += "<tr>";
|
|
|
|
// for (var j = 0; j < maxLevel; j++) {
|
|
// if (resultList[i].LEV == (j+1)) {
|
|
// appendText += " <td> * </td>";
|
|
// } else {
|
|
// appendText += " <td></td>";
|
|
// }
|
|
// }
|
|
|
|
// appendText += " <td class='align_l' style='text-align: left; padding-left: 5px;'><a href='#' onclick=\"openPartMngPopup('"+resultList[i].PART_OBJID+"')\";>" + resultList[i].PART_NO_TITLE + "</a></td>";
|
|
|
|
|
|
|
|
// appendText += " <td>" + resultList[i].PART_NAME + "</td>";
|
|
|
|
// if (resultList[i].FILE_3D_CNT == "0") {
|
|
// appendText += " <td><a href='#' class='File file_empty_icon' onclick=fn_File_openPopup('"+resultList[i].PART_OBJID+"','3D_CAD','3D CAD 첨부파일');></a></td>";
|
|
// } else {
|
|
// appendText += " <td><a href='#' class='File file_icon' onclick=fn_File_openPopup('"+resultList[i].PART_OBJID+"','3D_CAD','3D CAD 첨부파일');></a></td>";
|
|
// }
|
|
|
|
// if (resultList[i].FILE_3D_CNT == "0") {
|
|
// appendText += " <td><a href='#' class='File file_empty_icon' data-OBJID='"+resultList[i].PART_OBJID+"' data-docType='2D_DRAWING_CAD' data-docTypeName='2D(Drawing) CAD 첨부파일'></a></td>";
|
|
// } else {
|
|
// appendText += " <td><a href='#' class='File file_icon' data-OBJID='"+resultList[i].PART_OBJID+"' data-docType='2D_DRAWING_CAD' data-docTypeName='2D(Drawing) CAD 첨부파일'></a></td>";
|
|
// }
|
|
|
|
// if (resultList[i].FILE_3D_CNT == "0") {
|
|
// appendText += " <td><a href='#' class='File file_empty_icon' data-OBJID='"+resultList[i].PART_OBJID+"' data-docType='2D_PDF_CAD' data-docTypeName='2D(PDF) CAD 첨부파일'></a></td>";
|
|
// } else {
|
|
// appendText += " <td><a href='#' class='File file_icon' data-OBJID='"+resultList[i].PART_OBJID+"' data-docType='2D_PDF_CAD' data-docTypeName='2D(PDF) CAD 첨부파일'></a></td>";
|
|
// }
|
|
|
|
// if(resultList[i].QTY){
|
|
// appendText += " <td>" + resultList[i].QTY + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].DESIGN_DATE){
|
|
// appendText += " <td>" + resultList[i].DESIGN_DATE + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].EO_DATE){
|
|
// appendText += " <td>" + resultList[i].EO_DATE + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].CHANGE_OPTION_NAME){
|
|
// appendText += " <td>" + resultList[i].CHANGE_OPTION_NAME + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].SPEC){
|
|
// appendText += " <td>" + resultList[i].SPEC + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].MATERIAL){
|
|
// appendText += " <td>" + resultList[i].MATERIAL + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].SUB_MATERIAL){
|
|
// appendText += " <td>" + resultList[i].SUB_MATERIAL + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].WEIGHT){
|
|
// appendText += " <td>" + resultList[i].WEIGHT + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
|
|
// if(resultList[i].PART_TYPE_TITLE){
|
|
// appendText += " <td>" + resultList[i].PART_TYPE_TITLE + "</td>";
|
|
// }else{
|
|
// appendText += " <td></td>";
|
|
// }
|
|
// appendText += " <td>" + resultList[i].REMARK + "</td>";
|
|
|
|
// appendText += "</tr>";
|
|
// }
|
|
// } else {
|
|
// appendText+=" <tr style='text-align: center;'>";
|
|
// appendText+=" <td align='center' colspan='99'>등록된 데이터가 없습니다.</td>";
|
|
// appendText+=" </tr>";
|
|
// }
|
|
|
|
// $("#connectedList").html(appendText);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }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="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="OBJID" id="OBJID">
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="search" id="search" value="Y">
|
|
<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_gdnsi>
|
|
<h2>
|
|
<span>제품관리_BOM 조회</span>
|
|
</h2>
|
|
<div class="btnArea">
|
|
<!--
|
|
<input type="button" value="Excel Download" class="plm_btns" id="btnExcel">
|
|
-->
|
|
<input type="button" value="조회" class="plm_btns" id="btnSearch">
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
|
|
<!-- <td><label for="customer_cd">고객사</label></td>
|
|
<td>
|
|
<select name="customer_cd" id="customer_cd" style="" class="select2" autocomplete="off" type="select" reqTitle="고객사">
|
|
<option value="">선택</option>
|
|
${code_map.customer_cd}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="project_name">프로젝트번호</label></td>
|
|
<td>
|
|
<select name="project_name" id="project_name" style="" class="select2" autocomplete="off" type="select" reqTitle="프로젝트번호">
|
|
<option value="">선택</option>
|
|
${code_map.project_name}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="unit_code">유닛명</label></td>
|
|
<td>
|
|
<select name="unit_code" id="unit_code" style="width:350px" class="select2" autocomplete="off" type="select" reqTitle="유닛명">
|
|
</select>
|
|
</td> -->
|
|
|
|
|
|
<!-- <td><label for="">사양명</label></td>
|
|
<td>
|
|
<select name="search_spec_name" id="search_spec_name" class="select2" style="width:200px;" autocomplete="off" type="select"></select>
|
|
</td> -->
|
|
<td class="align_r">
|
|
<label for="" class="">품번</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="">품명</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="search_partName" id="search_partName" value="${param.search_partName}" class="text_area" style="width:200px;"/>
|
|
</td>
|
|
<!-- <td class="align_r">
|
|
<label for="" class="">LEVEL</label>
|
|
</td>
|
|
<td>
|
|
<select id="search_level" name="search_level">
|
|
<option value="">전체</option>
|
|
<option value="1" ${param.search_level eq '1'?'selected':''}>1</option>
|
|
<option value="2" ${param.search_level eq '2'?'selected':''}>2</option>
|
|
<option value="3" ${param.search_level eq '3'?'selected':''}>3</option>
|
|
<option value="4" ${param.search_level eq '4'?'selected':''}>4</option>
|
|
<option value="5" ${param.search_level eq '5'?'selected':''}>5</option>
|
|
<option value="6" ${param.search_level eq '6'?'selected':''}>6</option>
|
|
</select>
|
|
</td> -->
|
|
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin">
|
|
|
|
<div class="ascendig_text">
|
|
<font size="2px">총 ${fn:length(List)}건</font>
|
|
</div>
|
|
|
|
<div class="in_table_scroll_wrap _table1" style="height:26px;width:99.4%;">
|
|
<table class="plm_table" id="headtr">
|
|
<colgroup>
|
|
<col width="20px" />
|
|
<c:choose>
|
|
<c:when test="${!empty List}">
|
|
<c:forEach var="item" items="${List}" varStatus="status">
|
|
<c:if test="${status.index eq '0'}">
|
|
<c:forEach var="i" begin="1" end="${item.MAX_LEVEL}">
|
|
<col width="20px" />
|
|
</c:forEach>
|
|
</c:if>
|
|
</c:forEach>
|
|
</c:when>
|
|
</c:choose>
|
|
<col width="120px" /> <!-- 품번 -->
|
|
<col width="150px" /> <!-- 품명 -->
|
|
<col width="35px" /> <!-- Qty -->
|
|
<col width="50px" /> <!-- P_Qty -->
|
|
<col width="30px" /> <!-- 3D -->
|
|
<col width="30px" /> <!-- 2D -->
|
|
<col width="30px" /> <!-- 2D PDF -->
|
|
<col width="100px" /> <!-- 재료 -->
|
|
<col width="130px" /> <!-- 열처리경도 -->
|
|
<col width="150px" /> <!-- 열처리방법 -->
|
|
<col width="150px" /> <!-- 표면처리 -->
|
|
<col width="100px" /> <!-- 공급업체 -->
|
|
<col width="80px" /> <!-- PART 타입 -->
|
|
<col width="60px" /> <!-- REVISION -->
|
|
<col width="70px" /> <!-- EO No -->
|
|
<col width="70px" /> <!-- EO Date -->
|
|
<col width="230px" /> <!-- REMARK -->
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td></td>
|
|
<c:choose>
|
|
<c:when test="${!empty List}">
|
|
<c:forEach var="item" items="${List}" varStatus="status">
|
|
<c:if test="${status.index eq '0'}">
|
|
<c:forEach var="i" begin="1" end="${item.MAX_LEVEL}">
|
|
<td>${i}</td>
|
|
</c:forEach>
|
|
</c:if>
|
|
</c:forEach>
|
|
</c:when>
|
|
</c:choose>
|
|
<td>품번</td>
|
|
<td>품명</td>
|
|
<td>수량</td>
|
|
<td>항목수량</td>
|
|
<td>3D</td>
|
|
<td>2D</td>
|
|
<td>PDF</td>
|
|
<td>재료</td>
|
|
<td>열처리경도</td>
|
|
<td>열처리방법</td>
|
|
<td>표면처리</td>
|
|
<td>공급업체</td>
|
|
<td>범주 이름</td>
|
|
<td>Revision</td>
|
|
<td>EO No</td>
|
|
<td>EO Date</td>
|
|
<td>비고</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="in_table_scroll_wrap _table2" style="height:700px;width:100%;">
|
|
<table class="plm_table" id="connectedList">
|
|
<colgroup>
|
|
<col width="20px" />
|
|
<c:choose>
|
|
<c:when test="${!empty List}">
|
|
<c:forEach var="item" items="${List}" varStatus="status">
|
|
<c:if test="${status.index eq '0'}">
|
|
<c:forEach var="i" begin="1" end="${item.MAX_LEVEL}">
|
|
<col width="20px" />
|
|
</c:forEach>
|
|
</c:if>
|
|
</c:forEach>
|
|
</c:when>
|
|
</c:choose>
|
|
<col width="120px" /> <!-- 품번 -->
|
|
<col width="150px" /> <!-- 품명 -->
|
|
<col width="35px" /> <!-- Qty -->
|
|
<col width="50px" /> <!-- P_Qty -->
|
|
<col width="30px" /> <!-- 3D -->
|
|
<col width="30px" /> <!-- 2D -->
|
|
<col width="30px" /> <!-- 2D PDF -->
|
|
<col width="100px" /> <!-- 재료 -->
|
|
<col width="130px" /> <!-- 열처리경도 -->
|
|
<col width="150px" /> <!-- 열처리방법 -->
|
|
<col width="150px" /> <!-- 표면처리 -->
|
|
<col width="100px" /> <!-- 공급업체 -->
|
|
<col width="80px" /> <!-- PART 타입 -->
|
|
<col width="60px" /> <!-- REVISION -->
|
|
<col width="70px" /> <!-- EO No -->
|
|
<col width="70px" /> <!-- EO Date -->
|
|
<col width="230px" /> <!-- REMARK -->
|
|
</colgroup>
|
|
<c:choose>
|
|
<c:when test="${empty List}">
|
|
<tr>
|
|
<td colspan="18" align="center">조회된 정보가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${List}" varStatus="status">
|
|
<tr class="dataTr" data-LEVEL="${item.LEVEL}" data-REAL_LEVEL="${item.LEV}" data-BOM_REPORT_OBJID="${item.BOM_REPORT_OBJID}" data-TOP_OBJID="${item.ROOT_OBJID}"
|
|
data-SUB_TOP_OBJID="${item.SUB_ROOT_OBJID}" data-OBJID="${item.PART_OBJID}${status.index}" style="display:none;">
|
|
<td>
|
|
<c:if test="${item.LEAF eq '0'}">
|
|
<c:choose>
|
|
<c:when test="${empty param.search_level}">
|
|
<img src="/images/btnMinus.png" width="13px" height="13px" class="btnToggle" style="${item.LEVEL eq '1' and item.LEAF eq '0'?'cursor:pointer;':''}" data-BOM_REPORT_OBJID="${item.BOM_REPORT_OBJID}"
|
|
data-OBJID="${item.PART_OBJID}${status.index}" data-REAL_LEVEL="${item.LEV}" data-TOP_OBJID="${item.ROOT_OBJID}" data-SUB_TOP_OBJID="${item.SUB_ROOT_OBJID}">
|
|
</c:when>
|
|
<c:when test="${param.search_level > item.LEV}">
|
|
<img src="/images/btnMinus.png" width="13px" height="13px" class="btnToggle" style="${item.LEVEL eq '1' and item.LEAF eq '0'?'cursor:pointer;':''}" data-BOM_REPORT_OBJID="${item.BOM_REPORT_OBJID}"
|
|
data-OBJID="${item.PART_OBJID}${status.index}" data-REAL_LEVEL="${item.LEV}" data-TOP_OBJID="${item.ROOT_OBJID}" data-SUB_TOP_OBJID="${item.SUB_ROOT_OBJID}">
|
|
</c:when>
|
|
<c:when test="${param.search_level <= item.LEV}">
|
|
<img src="/images/btnPlus.png" width="13px" height="13px" class="btnToggle" style="${item.LEVEL eq '1' and item.LEAF eq '0'?'cursor:pointer;':''}" data-BOM_REPORT_OBJID="${item.BOM_REPORT_OBJID}"
|
|
data-OBJID="${item.PART_OBJID}${status.index}" data-REAL_LEVEL="${item.LEV}" data-TOP_OBJID="${item.ROOT_OBJID}" data-SUB_TOP_OBJID="${item.SUB_ROOT_OBJID}">
|
|
</c:when>
|
|
</c:choose>
|
|
</c:if>
|
|
</td>
|
|
<c:forEach var="i" begin="1" end="${item.MAX_LEVEL}">
|
|
<c:if test="${item.LEVEL eq i}">
|
|
<td title="${item.LEV}">*</td>
|
|
</c:if>
|
|
<c:if test="${item.LEVEL ne i}">
|
|
<td title="${item.LEV}"> </td>
|
|
</c:if>
|
|
</c:forEach>
|
|
<td style="text-align:left !important;" title="${item.PART_NO}">
|
|
<a href="#" class="btnPartDetail" data-PART_OBJID="${item.PART_OBJID}">${item.PART_NO}</a>
|
|
</td>
|
|
<td style="text-align:left !important;" title="${item.PART_NAME}"> ${item.PART_NAME}</td>
|
|
<td title="${item.QTY}" class="align_c">${item.QTY}<%-- <fmt:formatNumber value="${item.QTY}" pattern="#,###" /> --%></td>
|
|
<td title="${item.P_QTY}" class="align_c">${item.P_QTY}<%-- <fmt:formatNumber value="${item.P_QTY}" pattern="#,###" /> --%></td>
|
|
<td><a href="#" class="File file_${item.FILE_3D_CNT eq 0?'empty_':''}icon" data-OBJID="${item.PART_OBJID}" data-docType="3D_CAD" data-docTypeName="3D CAD 첨부파일"></a></td>
|
|
<td><a href="#" class="File file_${item.FILE_2D_CNT eq 0?'empty_':''}icon" data-OBJID="${item.PART_OBJID}" data-docType="2D_DRAWING_CAD" data-docTypeName="2D(Drawing) CAD 첨부파일"></a></td>
|
|
<td><a href="#" class="File file_${item.FILE_PDF_CNT eq 0?'empty_':''}icon" data-OBJID="${item.PART_OBJID}" data-docType="2D_PDF_CAD" data-docTypeName="2D(PDF) CAD 첨부파일"></a></td>
|
|
<td title="${item.MATERIAL}" class="align_c">${item.MATERIAL}</td><!-- 재료 -->
|
|
<td title="${item.SPEC}" class="align_l" style="text-align: left; padding-left: 5px;">${item.SPEC}</td><!-- 열처리경도 -->
|
|
<td title="${item.POST_PROCESSING}" class="align_l" style="text-align: left; padding-left: 5px;">${item.POST_PROCESSING}</td><!-- 열처리방법 -->
|
|
<td title="${item.POST_PROCESSING}" class="align_l" style="text-align: left; padding-left: 5px;">${item.POST_PROCESSING}</td><!-- 표면처리 -->
|
|
<td title="${item.MAKER}" class="align_l" style="text-align: left; padding-left: 5px;">${item.MAKER}</td><!-- 공급업체 -->
|
|
<td title="${item.PART_TYPE_TITLE}" class="align_c">${item.PART_TYPE_TITLE}</td><!-- PART_TYPE -->
|
|
<td title="${item.REVISION}" class="align_c" style="text-align: left; padding-left: 5px;">${item.REVISION}</td><!-- REVISION -->
|
|
<td title="${item.EO_NO}" class="align_c" style="text-align: left; padding-left: 5px;">${item.EO_NO}</td><!-- EO_NO -->
|
|
<td title="${item.EO_DATE}" class="align_c" style="text-align: left; padding-left: 5px;">${item.EO_DATE}</td><!-- EO_DATE -->
|
|
<td title="${item.REMARK}" class="align_l">${item.REMARK}</td><!-- REMARK -->
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</table>
|
|
</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> |