470 lines
18 KiB
Plaintext
470 lines
18 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.jsp" %>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
|
|
<c:set var="objid" value="${partInfoMap.OBJID}" />
|
|
<c:set var="drawingNoObjId" value="${partInfoMap.DRAWING_NO_OBJID}" />
|
|
<c:set var="status" value="${partInfoMap.STATUS}" />
|
|
<c:set var="userId" value="${empty partInfoMap.userId?userId:''}" />
|
|
<c:set var="writer" value="${partInfoMap.WRITER}" />
|
|
<c:set var="mngItemCnt" value="${empty partInfoMap.PART_MNG_ITEM_CNT?0:partInfoMap.PART_MNG_ITEM_CNT}" />
|
|
<c:set var="mngItemType" value="${partInfoMap.MNG_ITEM_TYPE}" />
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(function(){
|
|
$(document).ready(function(){
|
|
shapeAreaDraw();
|
|
dataAreaDraw();
|
|
attachAreaDraw();
|
|
|
|
$("#btn_revision").hide();
|
|
$("#btn_saveRevision").hide();
|
|
|
|
if("view" == "${param.actionType}" || "${userId}" != "${writer}"){
|
|
$("#btn_modify").hide();
|
|
}
|
|
|
|
if("${userId}" == "plm_admin" && "complete" == "${status}"){
|
|
$("#btn_modify").show();
|
|
}
|
|
});
|
|
});
|
|
|
|
//형상 영역을 display 한다.
|
|
function shapeAreaDraw(){
|
|
fn_fileCallback("shape","${SHAPE_CODE}");
|
|
}
|
|
|
|
//DATA 영역을 display 한다.
|
|
function dataAreaDraw(){
|
|
fn_fileCallback("data","${DATA_CODE}");
|
|
}
|
|
|
|
//참고자료 영역을 display 한다.
|
|
function attachAreaDraw(){
|
|
fn_fileCallback("attach","${ATTACH_CODE}");
|
|
}
|
|
|
|
function openImagePopUp(url){
|
|
var img=new Image();
|
|
img.src=url;
|
|
var img_width=img.width;
|
|
var img_height=img.height;
|
|
var win_width=img.width+25;
|
|
var height=img.height+30;
|
|
|
|
window.open(url,"partListShapeImgPopUp","width="+img_width+",height="+height+", menubars=no, scrollbars=yes, resizable=yes'");
|
|
}
|
|
|
|
//첨부파일 목록을 가져온다.
|
|
function fn_fileCallback(areaId,fileType){
|
|
|
|
$.ajax({
|
|
url:"/common/getFileList.do",
|
|
type:"POST",
|
|
data:{"targetObjId":"${objid}", "docType":fileType},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
|
|
if(0 < data.length){
|
|
$("#"+areaId+"FileArea").empty();
|
|
|
|
if(0 < $("#"+areaId+"DefaultRow").length){
|
|
$("#"+areaId+"DefaultRow").hide();
|
|
}
|
|
|
|
$.each(data, function(i){
|
|
|
|
var appendText = "";
|
|
if("shape" == areaId){
|
|
var path = data[i].FILE_PATH;
|
|
var fileName = data[i].SAVED_FILE_NAME;
|
|
var fileExt = data[i].UPPER_FILE_EXT;
|
|
|
|
if(fileExt == "JPEG" || fileExt == "JPG"){
|
|
var srcLocation = encodeURI("/common/viewImage.do?realFileName="+data[i].REAL_FILE_NAME+"&savedFileName="+data[i].SAVED_FILE_NAME+"&attDir="+data[i].FILE_PATH);
|
|
appendText+= "<tr>";
|
|
appendText+= " <td>";
|
|
appendText+= " <img src='"+srcLocation+"' height='100' width='100' onclick=\"openImagePopUp(this.src)\" style='cursor:pointer;' />";
|
|
appendText+= " </td>";
|
|
appendText+= "</tr>";
|
|
|
|
//첨부파일 목록 영역 show
|
|
$("#"+areaId+"AttachFileList").show();
|
|
$("#"+areaId+"FileArea").empty();
|
|
|
|
}else{
|
|
Swal.fire("형상에 업로드 가능한 확장자(jpeg,jpg)가 아닙니다.");
|
|
fileDelete(data[i].OBJID,"refeshAttachFileArea",false);
|
|
}
|
|
}else{
|
|
appendText+= "<tr>";
|
|
appendText+= " <td>"+(i+1)+"</a></td>";
|
|
appendText+= " <td><p><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>"+data[i].REAL_FILE_NAME+"</a>";
|
|
appendText+= " <div class='delete_btn' onclick='javascript:fnc_deleteFile(\""+data[i].OBJID+"\", \"refeshAttachFileArea\")'></div></p></td>";
|
|
appendText+= " <td>"+data[i].DEPT_NAME+" "+data[i].USER_NAME+"</td>";
|
|
appendText+= " <td>"+data[i].REGDATE+"</td>";
|
|
appendText+= "</tr>";
|
|
}
|
|
$("#"+areaId+"FileArea").append(appendText);
|
|
});
|
|
}else{
|
|
$("#"+areaId+"DropZone").show();
|
|
$("#"+areaId+"FileArea").empty();
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
}
|
|
});
|
|
}
|
|
|
|
function openPartFormPopup(){
|
|
if(confirm("수정하시겠습니까?")){
|
|
var form = document.form1;
|
|
var url = "/part/openStartDevPartFormPopUp.do";
|
|
form.action = url;
|
|
form.actionType.value = "modify";
|
|
form.submit();
|
|
}
|
|
}
|
|
|
|
function fn_btn_close(){
|
|
if("view" != "${param.actionType}"){
|
|
opener.location.reload();
|
|
}
|
|
self.close();
|
|
}
|
|
|
|
//파일 다운로드 시 DB에 확인 이력 입력
|
|
function checkPartMngFile(status){
|
|
if(status != "" || status != null){
|
|
if(confirm("해당 관리항목을 확인처리 하시겠습니까?")){
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/part/checkPartMngFile.do",
|
|
data:{ "partObjId" : "${objid}","status":status},
|
|
dataType:"JSON",
|
|
async:false,
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
},
|
|
success: function(result){
|
|
if(null != result){
|
|
Swal.fire(result.message);
|
|
$("#btn_confirm").hide();
|
|
$("#mngItemReceptLength").val(0);
|
|
window.location.reload();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
//Revision 클릭 시 해당 파트의 모든 Revision을 보여준다.
|
|
function fn_openPartListPop(partNo){
|
|
window.open("","openPartListPop","width=1500 height=560 menubar=no status=no");
|
|
|
|
var form = document.hiddenForm;
|
|
form.action = "/part/openRevisionPartPopUp.do";
|
|
form.partNo.value = partNo;
|
|
form.target = "openPartListPop";
|
|
form.status.value = "all";
|
|
form.submit();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body class="backcolor_light_blue">
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="objId">
|
|
<input type="hidden" name="objid">
|
|
<input type="hidden" name="actionType" value="${param.actionType}">
|
|
<input type="hidden" name="partNo">
|
|
<input type="hidden" name="status">
|
|
</form>
|
|
<form name="form1" action="" method="post">
|
|
<input type="hidden" name="objid" id="objid" value="${objid}">
|
|
<input type="hidden" name="actionType" id="actionType">
|
|
<input type="hidden" name="revCount" id="revCount" value="${partInfoMap.REV_CNT}">
|
|
<section class="part_popup_min_width">
|
|
<!-- Part의 관리항목 목록을 보여줄 영역. -->
|
|
<div id="mngItemConfirmArea"></div>
|
|
<div class="pdm_menu_name">
|
|
<h2>
|
|
<span>시작 Part상세</span>
|
|
</h2>
|
|
</div>
|
|
<div id="partPopupFormWrap" class="partPopupFormWrapLeft">
|
|
<div class="form_popup_title"> 시작 Part 상세 정보</div>
|
|
<table id="partPopupForm">
|
|
<colgroup>
|
|
<col width="13%" />
|
|
<col width="38%" />
|
|
<col width="*" />
|
|
<col width="13%" />
|
|
<col width="18%" />
|
|
<col width="19%" />
|
|
</colgroup>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">품번</label>
|
|
</td>
|
|
<td class="tr_data_border_bottom">${partInfoMap.PART_NO}</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">RH P/No.</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">${partInfoMap.RH_PART_NO_ORG}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">품명</label></td>
|
|
<td class="tr_data_border_bottom" colspan="5">
|
|
${partInfoMap.PART_NAME}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">고객사</label></td>
|
|
<td class="tr_data_border_bottom">
|
|
${partInfoMap.OEM_NAME} ${empty partInfoMap.OEM_CODE?'':'('}${partInfoMap.OEM_CODE}${empty partInfoMap.OEM_CODE?'':')'}
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">차종</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">
|
|
${partInfoMap.CAR_CODE}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">제품군</label></td>
|
|
<td class="tr_data_border_bottom">
|
|
${partInfoMap.PRODUCT_GROUP_NAME}</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">제품</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">
|
|
${partInfoMap.PRODUCT_NAME}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">EO No.</label></td>
|
|
<td class="tr_data_border_bottom">${partInfoMap.EO_NO_ORG}</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">EO Date</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">${partInfoMap.EO_ISSUE_DATE_ORG}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">Rev</label></td>
|
|
<td class="tr_data_border_bottom">
|
|
<a href="#" onclick="fn_openPartListPop('${partInfoMap.PART_NO}')">${partInfoMap.REV}</a>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">사양</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">${empty partInfoMap.PART_OPTION_NAME ? '':partInfoMap.PART_OPTION_NAME}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="checkboxName_20px tr_title_border_bottom"><label for="">출도구분</label></td>
|
|
<td class="tr_data_border_bottom">
|
|
<input type="radio" name="drawReleaseType" value="dev" ${'dev' eq partInfoMap.DRAWING_RELEASE_TYPE ? 'checked':''} disabled /><span>개발</span>
|
|
<input type="radio" name="drawReleaseType" value="product" ${'product' eq partInfoMap.DRAWING_RELEASE_TYPE ? 'checked':''} disabled /><span>양산</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="checkboxName_10px tr_title_border_bottom"><label for="">부품구분</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">
|
|
<input type="radio" name="partType" value="unique" ${'unique' eq partInfoMap.PART_TYPE ? 'checked':''} disabled /><span>Unique part</span>
|
|
<input type="radio" name="partType" value="standard" ${'standard' eq partInfoMap.PART_TYPE ? 'checked':''} disabled /><span>표준 품</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="checkboxName_20px tr_title_border_bottom"><label for="">도면구분</label></td>
|
|
<td class="tr_data_border_bottom">
|
|
<input type="radio" name="drawType" value="draw" ${'draw' eq partInfoMap.DRAWING_TYPE ? 'checked':''} disabled /><span>D</span>
|
|
<input type="radio" name="drawType" value="shownOn" ${'shownOn' eq partInfoMap.DRAWING_TYPE ? 'checked':''} disabled /><span>S</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">두께</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">
|
|
${empty partInfoMap.THICKNESS ? '':partInfoMap.THICKNESS}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">재질</label></td>
|
|
<td class="tr_data_border_bottom">
|
|
${empty partInfoMap.MATERIAL_NAME ? '':partInfoMap.MATERIAL_NAME}
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom"><label for="">도면번호</label></td>
|
|
<td class="tr_data_border_bottom" colspan="2">${empty partInfoMap.DRAWING_NO_ORG ? '':partInfoMap.DRAWING_NO_ORG}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">대체재질 유무</label>
|
|
</td>
|
|
<td colspan="2" class="tr_data_border_bottom" >${empty partInfoMap.SUB_MATERIAL_TYPE ? '':partInfoMap.SUB_MATERIAL_TYPE}</br>${empty partInfoMap.SUB_MATERIAL_NAME ? '':partInfoMap.SUB_MATERIAL_NAME}</td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">시작공용품</label>
|
|
</td>
|
|
<td colspan="2" class="tr_data_border_bottom">
|
|
<input type="radio" name="startCommonProductType" value="Y" disabled ${'Y' eq partInfoMap.START_COMMON_PRODUCT_TYPE ? 'checked':''} reqTitle="시작공용품">
|
|
<span>Y</span>
|
|
<input type="radio" name="startCommonProductType" value="N" disabled ${'N' eq partInfoMap.START_COMMON_PRODUCT_TYPE ? 'checked':''}>
|
|
<span>N</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom"><label for="">자재유형</label></td>
|
|
<td colspan="2" class="tr_data_border_bottom">
|
|
${empty partInfoMap.MATERIAL_TYPE_NAME ? '':partInfoMap.MATERIAL_TYPE_NAME}
|
|
</td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">사양</label>
|
|
</td>
|
|
<td colspan="2" class="tr_data_border_bottom">${empty partInfoMap.PART_OPTION_NAME ? '':partInfoMap.PART_OPTION_NAME}</td>
|
|
</tr>
|
|
<tr style="height:105px;">
|
|
<td class="tr_title_border_bottom"><label for="">weight(g)</label></td>
|
|
<td colspan="2" class="tr_data_border_bottom">${partInfoMap.WEIGHT}</td>
|
|
<td class="tr_title_border_bottom" rowspan=""><label for="">형상</label></td>
|
|
<td colspan="2" rowspan="" id="img_position_re" class="tr_data_border_bottom">
|
|
<div id="shapeAttachFileList">
|
|
<table id="shapeFileAreaTable" class="spec_data_in_table">
|
|
<tbody id="shapeFileArea">
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6" class="hr_td"><hr></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="checkboxName_60px tr_title_border_bottom">
|
|
<label for="">기변항목</label>
|
|
</td>
|
|
<td colspan="6">
|
|
<input type="checkbox" name="changeItem" value="changeGeometry" disabled ${empty connectChangeItemInfo.changeGeometry ? '' : connectChangeItemInfo.changeGeometry} required reqTitle="기변항목">
|
|
<span class="span_margin">형상변경</span>
|
|
<input type="checkbox" name="changeItem" value="materialThickChange" disabled ${empty connectChangeItemInfo.materialThickChange ? '' : connectChangeItemInfo.materialThickChange}>
|
|
<span>재질/두께변경</span>
|
|
<input type="checkbox" name="changeItem" value="cycleChange" disabled ${empty connectChangeItemInfo.cycleChange ? '' : connectChangeItemInfo.cycleChange}>
|
|
<span>주기변경</span>
|
|
<input type="checkbox" name="changeItem" value="constructChange" disabled ${empty connectChangeItemInfo.constructChange ? '' : connectChangeItemInfo.constructChange}>
|
|
<span>구성변경</span>
|
|
<input type="checkbox" name="changeItem" value="weldingSpot" disabled ${empty connectChangeItemInfo.weldingSpot ? '' : connectChangeItemInfo.weldingSpot}>
|
|
<span class="span_margin_1">용접점</span>
|
|
<input type="checkbox" name="changeItem" value="structurGlue" disabled ${empty connectChangeItemInfo.structurGlue ? '' : connectChangeItemInfo.structurGlue}>
|
|
<span class="span_margin_2">구조용접착제</span> </br>
|
|
<input type="checkbox" name="changeItem" value="first" disabled ${empty connectChangeItemInfo.first ? '' : connectChangeItemInfo.first}>
|
|
<span class="span_margin_3">초도</span>
|
|
<input type="checkbox" name="changeItem" value="etc" disabled ${empty connectChangeItemInfo.etc ? '' : connectChangeItemInfo.etc}>
|
|
<span>기타</span>
|
|
<input type="checkbox" name="changeItem" value="none" disabled ${empty connectChangeItemInfo.none ? '' : connectChangeItemInfo.none} >
|
|
<span>해당 無</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom">
|
|
<label for="">비고</label>
|
|
</td>
|
|
<td colspan="5">
|
|
<textarea style="resize:none; height:80px;" readonly >${partInfoMap.REMARKS}</textarea>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" rowspan="2">
|
|
<label for="">DATA</label>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="fileListscrollThead" style="width:100% !important;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr>
|
|
<td>No</td>
|
|
<td>파일명</td>
|
|
<td>등록자</td>
|
|
<td>등록일</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div style="height:90px; overflow-y:scroll; border-bottom:2px solid #cacaca;" id="dataAttachFileList">
|
|
<table class="fileListscrollTbody" id="dataFileAreaTable">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr id="dataDefaultRow">
|
|
<td colspan="4">첨부된 파일이 없습니다.</td>
|
|
</tr>
|
|
<tbody id="dataFileArea"></tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" rowspan="2">
|
|
<label for="">기타첨부자료</label>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6" >
|
|
<div style="overflow-y:scroll;">
|
|
<table class="fileListscrollThead" style="width:100% !important;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr>
|
|
<td>No</td>
|
|
<td>파일명</td>
|
|
<td>등록자</td>
|
|
<td>등록일</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div style="height:90px; overflow-y:scroll; border-bottom:2px solid #cacaca;" id="attachAttachFileList">
|
|
<table class="fileListscrollTbody" id="attachFileAreaTable">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr id="attachDefaultRow">
|
|
<td colspan="4">첨부된 파일이 없습니다.</td>
|
|
</tr>
|
|
<tbody id="attachFileArea"></tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class="btnCenterWrap">
|
|
<center class="center_btns_wrap">
|
|
<input type="button" value="수정" id="btn_modify" class="pdm_btns" onclick="openPartFormPopup();">
|
|
<input type="button" value="닫기" id="btn_close" class="pdm_btns" onclick="fn_btn_close();">
|
|
</center>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html> |