feat: PART 관리 기능 개선 및 Excel 업로드 수정

- PART 관리 목록에 열처리경도, 열처리방법, 표면처리, 공급업체 필드 추가
- Excel 업로드 시 공급업체 및 범주 이름 검증 로직 추가 (띄어쓰기 무시)
- partMng.xml: SUPPLY_CODE 중복 제거 및 쿼리 최적화
- PartMngController: sup_code 코드맵 활성화
- common.js: jqGrid 호환성 개선 (getRows 에러 수정)
- header.jsp, menu.jsp: 메뉴 UI 개선
- CSS: 로고 및 메뉴 스타일 조정
This commit is contained in:
2025-10-21 16:23:07 +09:00
parent ca25e0de56
commit 5794895dcb
13 changed files with 1047 additions and 434 deletions

View File

@@ -100,7 +100,7 @@ $(function(){
// 클릭된 메뉴를 on 스타일로 변경
$(this).css({
'background-color': '#5e9cff',
'background-color': '#1e40af',
'color': '#fff'
}).removeClass('menu_off').addClass('menu_on');
@@ -214,7 +214,7 @@ function fn_goFirstMenu(){
// 첫 번째 메뉴를 on 스타일로 변경
$(".menu").eq(0).css({
'background-color': '#5e9cff',
'background-color': '#1e40af',
'color': '#fff'
}).removeClass('menu_off').addClass('menu_on');
@@ -392,7 +392,7 @@ function fn_setApprovalCnt(){
if("2".equals(lev)){
%>
<a href="#" class="menu menu_off" menuObjId="<%=menuObjid%>" style="background-color: #89b4fa; color: #fff; padding: 3px 6px; font-size: 10px; border-radius: 3px; text-decoration: none; display: inline-block; min-width: 50px; text-align: center; margin-right: 4px;"><%=menuKorName%></a>
<a href="#" class="menu menu_off" menuObjId="<%=menuObjid%>" style="background-color: #1e40af; color: #fff; padding: 3px 6px; font-size: 10px; border-radius: 3px; text-decoration: none; display: inline-block; min-width: 50px; text-align: center; margin-right: 4px;"><%=menuKorName%></a>
<%
}
}
@@ -418,7 +418,7 @@ function fn_setApprovalCnt(){
<%
if("plm_admin".equals(userId)){%>
<a href="#" style="color:#fff; padding: 2px 4px; font-size:9px; background-color:#5897fb; border-radius:2px; text-decoration: none; display: inline-block; margin-left: 5px;" onclick="javascript:openAdminMngPop();">Admin</a>
<a href="#" style="color:#fff; padding: 2px 4px; font-size:9px; background-color:#1e40af; border-radius:2px; text-decoration: none; display: inline-block; margin-left: 5px;" onclick="javascript:openAdminMngPop();">Admin</a>
<%}%>
</td>
<%--

View File

@@ -90,12 +90,12 @@
#menu-lock-btn:hover {
background-color: #e8e8e8;
border-color: #1159bc;
border-color: #1e40af;
}
#menu-lock-btn.locked {
background-color: #1159bc;
border-color: #1159bc;
background-color: #1e40af;
border-color: #1e40af;
}
#menu-lock-btn svg {

View File

@@ -36,7 +36,7 @@ $(document).ready(function(){
//var unit_cd = $.parseJSON($("#unit_cd").val()); //jqGrid 구분
var part_type = $.parseJSON($("#part_type").val()); //jqGrid 구분
//var sup_code = $.parseJSON($("#sup_code").val()); //jqGrid 구분
var sup_code = $.parseJSON($("#sup_code").val()); //jqGrid 구분
//Excel File Upload된 파일 목록 부분을 초기화 한다.
$("#excelImportList").hide();
@@ -48,7 +48,7 @@ $(document).ready(function(){
url: ""
,datatype: "local"
,colNames: ["결과",
"품번","품명","수량","재질","사양(규격)","처리","MAKER","PART구분","REMARK"] //PART구분(부품 유형)
"품번","품명","재료","열처리경도","열처리방법","표면처리","공급업체","범주 이름","비고"] //PART구분(부품 유형)
,colModel: [
/* */
{name:"NOTE",index:"NOTE", width: 200, align:"left", hidden: false, sortable:false, editable:true
@@ -68,41 +68,73 @@ $(document).ready(function(){
}
}
}
,{name:"QTY",index:"QTY", width: 30, align:"center", hidden: false, sortable:false, editable:true
// ,{name:"QTY",index:"QTY", width: 30, align:"center", hidden: false, sortable:false, editable:true
// ,editoptions:{
// dataInit : function(e){
// e.style.fontSize = 13;
// }
// }
// }
,{name:"MATERIAL",index:"MATERIAL", width: 130, align:"center", hidden: false, sortable:false, editable:true
,editoptions:{
dataInit : function(e){
e.style.fontSize = 13;
}
}
}
,{name:"MATERIAL",index:"MATERIAL", width: 150, align:"center", hidden: false, sortable:false, editable:true
,editoptions:{
dataInit : function(e){
e.style.fontSize = 13;
}
}
}
,{name:"SPEC",index:"SPEC", width: 150, align:"center", hidden: false, sortable:false, editable:true
,{name:"HEAT_TREATMENT_HARDNESS",index:"HEAT_TREATMENT_HARDNESS", width: 130, align:"center", hidden: false, sortable:false, editable:true
,editoptions:{
dataInit : function(e){
e.style.fontSize = 13;
}
}
}
,{name:"POST_PROCESSING",index:"POST_PROCESSING", width: 100, align:"center", hidden: false, sortable:false, editable:true
,{name:"HEAT_TREATMENT_METHOD",index:"HEAT_TREATMENT_METHOD", width: 130, align:"center", hidden: false, sortable:false, editable:true
,editoptions:{
dataInit : function(e){
e.style.fontSize = 13;
}
}
}
,{name:"MAKER",index:"MAKER", width: 150, align:"center", hidden: false, sortable:false, editable:true
}
,{name:"SURFACE_TREATMENT",index:"SURFACE_TREATMENT", width: 130, align:"center", hidden: false, sortable:false, editable:true
,editoptions:{
dataInit : function(e){
e.style.fontSize = 13;
}
}
}
}
,{name:"SUP_CODE" ,index:"SUP_CODE" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: sup_code
,dataInit : function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
// ,{name:"SPEC",index:"SPEC", width: 150, align:"center", hidden: false, sortable:false, editable:true
// ,editoptions:{
// dataInit : function(e){
// e.style.fontSize = 13;
// }
// }
// }
// ,{name:"POST_PROCESSING",index:"POST_PROCESSING", width: 100, align:"center", hidden: false, sortable:false, editable:true
// ,editoptions:{
// dataInit : function(e){
// e.style.fontSize = 13;
// }
// }
// }
// ,{name:"MAKER",index:"MAKER", width: 150, align:"center", hidden: false, sortable:false, editable:true
// ,editoptions:{
// dataInit : function(e){
// e.style.fontSize = 13;
// }
// }
// }
,{name:"PART_TYPE" ,index:"PART_TYPE" , width:100, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
@@ -114,7 +146,7 @@ $(document).ready(function(){
}
}
}
,{name:"REMARK",index:"REMARK", width: 170, align:"center", hidden: false, sortable:false, editable:true
,{name:"REMARK",index:"REMARK", width: 130, align:"center", hidden: false, sortable:false, editable:true
,editoptions:{
dataInit : function(e){
e.style.fontSize = 13;

View File

@@ -358,9 +358,17 @@ function fn_edit(){
<td class="input_title">
<label for="">품번</label>
</td>
<td class="input_sub_title" colspan="4">
<td class="input_sub_title" colspan="2">
<input type="text" name="PART_NO" id="PART_NO" value="${resultMap.PART_NO}">
</td>
<td class="input_title">
<label for="">품명</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="PART_NAME" id="PART_NAME" value="<c:out value='${resultMap.PART_NAME}' escapeXml='true'/>">
</td>
<%-- <td class="input_title">
<label for="">Revision</label>
</td>
@@ -368,80 +376,61 @@ function fn_edit(){
<input type="text" name="REVISION" id="REVISION" value="${resultMap.REVISION}" readonly>
</td> --%>
</tr>
<tr>
<td class="input_title">
<label for="">품명</label>
</td>
<td class="input_sub_title" colspan="4">
<input type="text" name="PART_NAME" id="PART_NAME" value="<c:out value='${resultMap.PART_NAME}' escapeXml='true'/>">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">대분류</label>
<label for="">재료</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="MAJOR_CATEGORY" id="MAJOR_CATEGORY" value="${resultMap.MAJOR_CATEGORY}">
</td>
<td class="input_title">
<label for="">중분류</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="SUB_CATEGORY" id="SUB_CATEGORY" value="${resultMap.SUB_CATEGORY}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">QTY</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="QTY" id="QTY" value="${resultMap.QTY}">
</td>
<td class="input_title">
<label for="">재질</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="MATERIAL" id="MATERIAL" value="${resultMap.MATERIAL}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">사양(규격)</label>
</td>
<td class="input_sub_title" colspan="4" title="${resultMap.SPEC}">
<input type="text" name="SPEC" id="SPEC" value="${resultMap.SPEC}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">후처리</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="POST_PROCESSING" id="POST_PROCESSING" value="${resultMap.POST_PROCESSING}">
</td>
<td class="input_title">
<label for="">MAKER</label>
<label for="">열처리경도</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="MAKER" id="MAKER" value="${resultMap.MAKER}">
<input type="text" name="HEAT_TREATMENT_HARDNESS" id="HEAT_TREATMENT_HARDNESS" value="${resultMap.HEAT_TREATMENT_HARDNESS}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">열처리방법</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="HEAT_TREATMENT_METHOD" id="HEAT_TREATMENT_METHOD" value="${resultMap.HEAT_TREATMENT_METHOD}">
</td>
<td class="input_title">
<label for="">표면처리</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="SURFACE_TREATMENT" id="SURFACE_TREATMENT" value="${resultMap.SURFACE_TREATMENT}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">공급업체</label>
</td>
<td class="input_sub_title" colspan="2">
<select name="SUPPLY_CODE" id="SUPPLY_CODE" class="select2">
${code_map.SUPPLY_CODE}
</select>
</td>
<td class="input_title">
<label for="">PART구분</label>
</td>
<td class="input_sub_title" colspan="2">
<td class="input_sub_title" colspan="">
<select name="PART_TYPE" id="PART_TYPE" class=""></select>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">Revision</label>
<label for="">비고</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="REVISION" id="REVISION" value="${resultMap.REVISION}" readonly>
<td class="input_sub_title" colspan="4">
<input type="text" name="REMARK" id="REMARK" value="${resultMap.REMARK}">
</td>
</tr>
</tr>
<%-- <tr>
<td class="input_title">
@@ -589,14 +578,7 @@ function fn_edit(){
<select name="CHANGE_OPTION" id="CHANGE_OPTION" class=""><option value="">선택</option>${code_map.CHANGE_OPTION}</select>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">비고</label>
</td>
<td class="input_sub_title" colspan="4">
<input type="text" name="REMARK" id="REMARK" value="${resultMap.REMARK}">
</td>
</tr>
<!-- <tr> -->
<!-- <td class="input_title"> -->
<!-- <label for="">ECD</label> -->

View File

@@ -56,7 +56,7 @@ $(document).ready(function(){
// $("input:radio[name='CHANGE_OPTION']:radio[value='${resultMap.CHANGE_OPTION}']").prop('checked', true);
$("input:radio[name='MANAGEMENT_FLAG']:radio[value='${resultMap.MANAGEMENT_FLAG}']").prop('checked', true);
//$('.select2').select2();
// $('.select2').select2();
if('changeDesign' == '${param.ACTION_TYPE}'){
//alert('c');
@@ -307,235 +307,71 @@ function fn_overlapPartMng(){
<col width="12%">
<col width="*">
</colgroup>
<%--
<tr>
<!-- <td class="input_title">
<label for="">기종(모델)명</label>
</td>
<td class="input_sub_title" colspan="3">
<select name="PRODUCT_MGMT_OBJID" id="PRODUCT_MGMT_OBJID" class="select2"></select>
</td> -->
<!-- <td class="input_title"> -->
<!-- <label for="">UPG No</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" > -->
<!-- <select name="UPG_NO" id="UPG_NO" class="select2"></select> -->
<!-- </td> -->
<td class="input_title">
<label for="">부품 유형</label>
</td>
<td class="input_sub_title">
<select name="PART_TYPE" id="PART_TYPE" class="select2"></select>
</td>
</tr>
--%>
<tr>
<td class="input_title">
<label for="">품번</label>
</td>
<td class="input_sub_title" colspan="4">
<td class="input_sub_title" colspan="2">
<input type="text" name="PART_NO" id="PART_NO" value="${resultMap.PART_NO}" required ${'changeDesign' eq param.ACTION_TYPE ? 'readonly' : ''}>
</td>
<%-- <td class="input_title">
<label for="">Revision</label>
</td>
<td class="input_sub_title" >
<input type="text" name="REVISION" id="REVISION" value="${resultMap.REVISION}" >
</td> --%>
</tr>
<%-- <tr>
<td class="input_title">
<label for="">모품번</label>
</td>
<td class="input_sub_title" colspan="3" >
<select name="PARENT_PART_NO" id="PARENT_PART_NO" reqTitle="모품번" type="select" class="select2">
<option value="">선택</option>
${code_map.PARENT_PART_NO}
</select>
</td>
</tr> --%>
<tr>
<td class="input_title">
<label for="">품명</label>
</td>
<td class="input_sub_title" colspan="4">
<td class="input_sub_title" >
<input type="text" name="PART_NAME" id="PART_NAME" value="<c:out value='${resultMap.PART_NAME}' escapeXml='true'/>" required>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">QTY</label>
</td>
<td class="input_sub_title" colspan="2">
<%--
<input type="text" name="QTY" id="QTY" value="${resultMap.QTY}">
--%>
<input type="text" name="QTY" id="QTY" value="1" readonly>
</td>
<td class="input_title">
<label for="">재질</label>
<label for="">재료</label>
</td>
<td class="input_sub_title">
<td class="input_sub_title" colspan="2">
<input type="text" name="MATERIAL" id="MATERIAL" value="${resultMap.MATERIAL}">
</td>
<td class="input_title">
<label for="">열처리경도</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="HEAT_TREATMENT_HARDNESS" id="HEAT_TREATMENT_HARDNESS" value="${resultMap.HEAT_TREATMENT_HARDNESS}">
</td>
</tr>
<tr>
<td class="input_title" >
<label for="">사양(규격)</label>
</td>
<td class="input_sub_title" colspan="4" title="${resultMap.SPEC}">
<input type="text" name="SPEC" id="SPEC" value="${resultMap.SPEC}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">처리</label>
</td>
<td class="input_sub_title" colspan="2" >
<input type="text" name="POST_PROCESSING" id="POST_PROCESSING" value="${resultMap.POST_PROCESSING}">
</td>
<td class="input_title" colspan="">
<label for="">MAKER</label>
</td>
<label for="">처리방법</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="HEAT_TREATMENT_METHOD" id="HEAT_TREATMENT_METHOD" value="${resultMap.HEAT_TREATMENT_METHOD}">
</td>
<td class="input_title">
<label for="">표면처리</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="MAKER" id="MAKER" value="${resultMap.MAKER}">
</td>
</tr>
<input type="text" name="SURFACE_TREATMENT" id="SURFACE_TREATMENT" value="${resultMap.SURFACE_TREATMENT}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">PART구분</label>
<label for="">공급업체</label>
</td>
<td class="input_sub_title" colspan="2">
<select name="PART_TYPE" id="PART_TYPE" class="" type="select" required ></select>
</td>
</tr>
<%--
<tr>
<td class="input_title">
<label for="">단위</label>
</td>
<td class="input_sub_title" >
<select name="UNIT" id="UNIT" class="select2"></select>
</td>
<td class="input_title">
<label for="">수량</label>
</td>
<td class="input_sub_title">
<input type="text" name="QTY" id="QTY" value="${resultMap.QTY}">
</td>
<!-- <td class="input_title" rowspan="4">
<label for="">형상</label>
</td>
<td class="input_sub_title" rowspan="4">
<div id="shapeDropZone" class="dropzone" style="width:99%;height:130px;border: 2px dotted rgb(130, 150, 194);">Drag & Drop Image Files Here</div>
<div id="shapeFileArea" style="display:none;"></div>
</td> -->
</tr>
--%>
<%--
<tr>
<td class="input_title">
<label for="">공급처</label>
</td>
<td class="input_sub_title">
<select name="SUPPLY_CODE" id="SUPPLY_CODE" class="select2">
${code_map.SUPPLY_CODE}
</select>
</td>
</tr>
--%>
<%--
<tr>
<td class="input_title">
<label for="">두께</label>
</td>
<td class="input_sub_title" >
<input type="text" name="THICKNESS" id="THICKNESS" value="${resultMap.THICKNESS}">
</td>
<td class="input_title">
<label for="">가로</label>
</td>
<td class="input_sub_title">
<input type="text" name="WIDTH" id="WIDTH" value="${resultMap.WIDTH}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">세로</label>
</td>
<td class="input_sub_title" >
<input type="text" name="HEIGHT" id="HEIGHT" value="${resultMap.HEIGHT}">
</td>
<td class="input_title">
<label for="">외경</label>
</td>
<td class="input_sub_title">
<input type="text" name="OUT_DIAMETER" id="OUT_DIAMETER" value="${resultMap.OUT_DIAMETER}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">내경</label>
</td>
<td class="input_sub_title" >
<input type="text" name="IN_DIAMETER" id="IN_DIAMETER" value="${resultMap.IN_DIAMETER}">
</td>
<td class="input_title">
<label for="">길이</label>
</td>
<td class="input_sub_title">
<input type="text" name="LENGTH" id="LENGTH" value="${resultMap.LENGTH}">
</td>
</tr>
--%>
<%-- <tr>
<td class="input_title">
<label for="">대체 재질</label>
</td>
<td class="input_sub_title">
<input type="text" name="SUB_MATERIAL" id="SUB_MATERIAL" value="${resultMap.SUB_MATERIAL}">
</td>
</tr> --%>
<%-- <tr>
<td class="input_title">
<label for="">중량</label>
</td>
<td class="input_sub_title" >
<input type="text" name="WEIGHT" id="WEIGHT" value="${resultMap.WEIGHT}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">설계적용시점</label>
</td>
<td class="input_sub_title">
<select name="DESIGN_APPLY_POINT" id="DESIGN_APPLY_POINT"></select>
</td>
</tr> --%>
<%-- <td class="input_title">
<label for="">최초설계일</label>
<td class="input_title">
<label for="">범주이름</label>
</td>
<td class="input_sub_title" >
<input type="text" class="date_icon" name="DESIGN_DATE" id="DESIGN_DATE" value="${resultMap.DESIGN_DATE}" />
</td> --%>
<c:if test="${ !empty param.ACTION_TYPE}">
<td class="input_sub_title" colspan="">
<select name="PART_TYPE" id="PART_TYPE" class="" type="select2" required ></select>
</td>
</tr>
<c:if test="${ !empty param.ACTION_TYPE}">
<tr>
<td class="input_title" >
<label for="">Revision</label>
@@ -559,50 +395,9 @@ function fn_overlapPartMng(){
<input type="text" class="" name="EO_DATE" id="EO_DATE" value="${resultMap.EO_DATE}" readonly/>
</td>
</tr>
</c:if>
</c:if>
<%--
<tr>
<td class="input_title">
<label for="">비고</label>
</td>
<td class="input_sub_title" colspan="3">
<input type="text" name="REMARK" id="REMARK" value="${resultMap.REMARK}">
</td>
</tr>
--%>
<!-- <tr> -->
<!-- <td class="input_title" rowspan="2"> -->
<!-- <label for="">사양 번호</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" >ES</td> -->
<!-- <td colspan="2"> -->
<!-- <select name="ES_SPEC" id="ES_SPEC"></select> -->
<!-- </td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td class="input_sub_title" >MS</td> -->
<!-- <td colspan="2"> -->
<!-- <select name="MS_SPEC" id="MS_SPEC"></select> -->
<!-- </td> -->
<!-- </tr> -->
<%--
<tr>
<td class="input_title">
<label for="">설변항목</label>
</td>
<td class="input_sub_title" colspan="3">
<!-- <input type="radio" name="CHANGE_OPTION" value="changeShape">&nbsp;형상변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="changeMaterial">&nbsp;재질변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="addChange">&nbsp;추가변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="changeConfig">&nbsp;구성변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="firstDrawing">&nbsp;초도&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="etc">&nbsp;기타&nbsp;&nbsp; -->
${code_map.CHANGE_OPTION}
</td>
<input type="hidden" name="CHANGE_OPTION_Arr" id="CHANGE_OPTION_Arr">
</tr>
--%>
<c:if test="${ 'changeDesign' eq param.ACTION_TYPE}">
<tr>
<td class="input_title" >
@@ -629,34 +424,7 @@ function fn_overlapPartMng(){
<input type="text" name="REMARK" id="REMARK" value="${resultMap.REMARK}">
</td>
</tr>
<!-- <tr> -->
<!-- <td class="input_title"> -->
<!-- <label for="">ECD</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" colspan="3"> -->
<!-- <div id="ecdDropZone" class="dropzone" style="width:99%;height:90%;border: 2px dotted rgb(130, 150, 194);">Drag & Drop Files Here</div> -->
<!-- <div id="ecdFileArea" style="display:none;"></div> -->
<!-- </td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td class="input_title"> -->
<!-- <label for="">관리항목</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" colspan="3"> -->
<!-- <input type="radio" name="MANAGEMENT_FLAG" value="Y">유 -->
<!-- <input type="radio" name="MANAGEMENT_FLAG" value="N">무 -->
<!-- </td> -->
<!-- </tr> -->
<!--
</table>
<table class="pmsPopupForm" style="margin-top:0px;">
<colgroup>
<col width="15%">
<col width="20%">
<col width="15%">
<col width="*">
</colgroup>
-->
<tr>
<td class="input_title" rowspan="3">
<label for="">CAD Data</label>

View File

@@ -0,0 +1,708 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = CommonUtils.checkNull(person.getUserId());
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<style type="text/css">
::-webkit-scrollbar-thumb {
background: linear-gradient(to bottom, #f5d78e, #f5d78e);
}
</style>
</head>
<script>
$(document).ready(function(){
$("#btnClose").click(function(){
self.close(0);
});
$("#btnSave").click(function(){
/* if($("#PRODUCT_MGMT_OBJID").val()==""){
Swal.fire('기종을 선택해주세요');
return;
}
*/
fn_save();
});
$("#PRODUCT_MGMT_OBJID").change(function(){
fnc_productUPGNEWList(this.value,"","UPG_NO", "");
});
//fnc_setFileDropZone("shapeDropZone", "${resultMap.OBJID}", "PART_SHAPE_IMG", "Part 형상", "fileAreaDraw",true,null,null,"jpg,png,jpeg");
//fnc_setFileDropZone("ecdDropZone", "${resultMap.OBJID}", "ECD_DOC", "ECD 첨부파일", "fileAreaDraw",true,null,null,null);
fnc_setFileDropZone("3dCadDropZone", "${resultMap.OBJID}", "3D_CAD", "3D CAD 첨부파일", "fileAreaDraw",false,null,null,null);
fnc_setFileDropZone("2dDrawingCadDropZone", "${resultMap.OBJID}", "2D_DRAWING_CAD", "2D(Drawing) CAD 첨부파일", "fileAreaDraw",false,null,null,null);
fnc_setFileDropZone("2dPDFCadDropZone", "${resultMap.OBJID}", "2D_PDF_CAD", "2D(PDF) CAD 첨부파일", "fileAreaDraw",false,null,null,null);
fileAreaDraw();
fnc_getCodeListAppend("<%=Constants.UNIT_CODE%>","UNIT","${resultMap.UNIT}");
fnc_getCodeListAppend("<%=Constants.PART_TYPE_CODE%>","PART_TYPE","${resultMap.PART_TYPE}");
fnc_getCodeListAppend("<%=Constants.MATERIAL_CODE%>","MATERIAL","${resultMap.MATERIAL}");
fnc_getCodeListAppend("<%=Constants.SPEC_NO_CODE%>","SPEC_NO","${resultMap.SPEC_NO}");
fnc_getCodeListAppend("<%=Constants.DESIGN_APPLY_POINT_CODE%>","DESIGN_APPLY_POINT","${resultMap.DESIGN_APPLY_POINT}");
fnc_getProductMgmtList("PRODUCT_MGMT_OBJID", "${resultMap.PRODUCT_MGMT_OBJID}");
fnc_productUPGNEWList("${resultMap.PRODUCT_MGMT_OBJID}","","UPG_NO", "${resultMap.UPG_NO}");
// $("input:radio[name='CHANGE_OPTION']:radio[value='${resultMap.CHANGE_OPTION}']").prop('checked', true);
$("input:radio[name='MANAGEMENT_FLAG']:radio[value='${resultMap.MANAGEMENT_FLAG}']").prop('checked', true);
//$('.select2').select2();
if('changeDesign' == '${param.ACTION_TYPE}'){
//alert('c');
window.resizeTo(800,750);
//fnc_datepick();
}else if(fnc_isEmpty('${param.ACTION_TYPE}')){
window.resizeTo(800,720);
//alert('r');
}else{//수정
window.resizeTo(800,760);
//alert('e');
}
});
</script>
<script>
function fileAreaDraw(){
//fn_fileCallback("shape","PART_SHAPE_IMG");
//fn_fileCallback2("ecd","ECD_DOC");
fn_fileCallback2("3dCad","3D_CAD");
fn_fileCallback2("2dDrawingCad","2D_DRAWING_CAD");
fn_fileCallback2("2dPDFCad","2D_PDF_CAD");
}
//첨부파일 목록을 가져온다.
function fn_fileCallback(areaId,fileType){
$.ajax({
url:"/common/getFileList.do",
type:"POST",
data:{"targetObjId":"${resultMap.OBJID}", "docType":fileType},
dataType:"json",
async:false,
success:function(data){
if(0 < data.length){
//첨부파일 목록 영역 show
$("#"+areaId+"FileArea").empty();
if(0 < $("#"+areaId+"DropZone").length){
$("#"+areaId+"DropZone").hide();
$("#"+areaId+"FileArea").show();
}
$.each(data, function(i){
var realFileName = data[i].REAL_FILE_NAME;
var srcLocation = encodeURI("/common/viewImage.do?realFileName="+realFileName+"&savedFileName="+data[i].SAVED_FILE_NAME+"&attDir="+data[i].FILE_PATH);
var appendText = "";
var appendImgText = ""
appendText+= "<a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>&nbsp;"+data[i].REAL_FILE_NAME+"</a>";
appendText+= "<a href='javascript:fileDelete(\""+data[i].OBJID+"\",\""+areaId+"\")'><div class='delete_btn'></div></a>";
appendImgText = "<img src='"+srcLocation+"' height='85px' width='99%' onclick='openImagePopUp(this.src)' style='cursor:pointer;' />"
$("#"+areaId+"FileArea").append(appendImgText+appendText);
});
}else{
$("#"+areaId+"DropZone").show();
$("#"+areaId+"FileArea").empty();
$("#"+areaId+"FileArea").hide();
}
},
error: function(jqxhr, status, error){
}
});
}//파일 첨부 END
function fn_fileCallback2(areaId,fileType){
$.ajax({
url:"/common/getFileList.do",
type:"POST",
data:{"targetObjId":"${resultMap.OBJID}", "docType":fileType},
dataType:"json",
async:false,
success:function(data){
if(0 < data.length){
if(0 < $("#"+areaId+"DropZone").length){
if(areaId == "ecd"){
$("#"+areaId+"DropZone").hide();
}
$("#"+areaId+"FileArea").show();
}
//첨부파일 목록 영역 show
$("#"+areaId+"FileArea").empty();
$.each(data, function(i){
var appendText = "";
var path = data[i].FILE_PATH;
var fileName = data[i].SAVED_FILE_NAME;
var fileExt = data[i].UPPER_FILE_EXT;
appendText+= "<div style='float:left;width:95%;white-space: nowrap; overflow: hidden; text-overflow: ellipsis;'>";
appendText+= " <a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")' title='"+data[i].REAL_FILE_NAME+"'>"+data[i].REAL_FILE_NAME+"</a>";
appendText+= "</div>";
appendText+= "<div>";
appendText+= "<a href='javascript:fileDelete(\""+data[i].OBJID+"\",\""+areaId+"\")'><div class='delete_btn'></div></a>";
appendText+= "</div>";
$("#"+areaId+"FileArea").append(appendText);
});
}else{
$("#"+areaId+"DropZone").show();
$("#"+areaId+"FileArea").empty();
$("#"+areaId+"FileArea").hide();
}
},
error: function(jqxhr, status, error){
}
});
}//파일 첨부 END
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,"problemImgPopUp","width="+img_width+",height="+height+", menubars=no, scrollbars=yes'");
}
/*첨부 파일 삭제 */
function fileDelete(fileObjId,areaId){
var type =areaId;
if(confirm("파일을 삭제하시겠습니까?")){
$.ajax({
url:"/common/deleteFileInfo.do",
type:"POST",
data:{"objId":fileObjId},
dataType:"json",
async:true,
success:function(data){
fileAreaDraw();
},
error: function(jqxhr, status, error){
}
});
}
}
function fn_save(){
//var CHANGE_OPTION_Arr = new Array();
// $('input:checkbox[name="CHANGE_OPTION"]').each(function() {
// if(this.checked){//checked 처리된 항목의 값
// CHANGE_OPTION_Arr.push(this.value);
// }
// });
// $("#CHANGE_OPTION_Arr").val(CHANGE_OPTION_Arr);
if(fnc_validate('form1')){
if(fn_overlapPartMng()){
if(confirm("저장하시겠습니까?")){
$.ajax({
url:"/partMng/savePartMng.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
async:false,
success:function(data){
if(data.result == "DUPLICATE"){
alert(data.msg);
$("#PART_NO").focus();
}else{
alert(data.msg);
if(typeof(opener.fn_search) == "function"){
opener.fn_search();
}else{
}
self.close();
}
},
error: function(jqxhr, status, error){
}
});
}
}
}
}
//저장 시 중복여부를 확인한다.
function fn_overlapPartMng(){
var returnFlag = false;
$.ajax({
url:"/partMng/overlapPartMng.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
async:false,
success:function(data){
if(0 < data.length){
Swal.fire("중복되는 품목이 존재합니다.\n품번 및 Revision을 확인하시기 바랍니다.");
returnFlag = false;
}else{
returnFlag = true;
}
},
error: function(jqxhr, status, error){
}
});
return returnFlag;
}
</script>
<style>
.input_title {border-left:1px solid #ccc;}
.input_sub_title {border-left:1px solid #ccc;}
.pmsPopupForm tr:last-child td{border-bottom:1px solid #ccc;}
</style>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="OBJID" id="OBJID" value="${resultMap.OBJID}">
<input type="hidden" name="CHILD_OBJID" id="CHILD_OBJID" value="${resultMap.CHILD_OBJID}">
<input type="hidden" name="STATUS" id="STATUS" value="${resultMap.STATUS}">
<input type="hidden" name="IS_LAST" id="IS_LAST" value="${resultMap.IS_LAST}">
<input type="hidden" name="ACTION_TYPE" id="ACTION_TYPE" value="${param.ACTION_TYPE}">
<input type="hidden" name="CONTRACT_OBJID" id="CONTRACT_OBJID" value="${resultMap.CONTRACT_OBJID}">
<section>
<div class="plm_menu_name" style="display:flex;">
<h2>
<span>
<c:if test="${ 'changeDesign' ne param.ACTION_TYPE}">
품목 등록
</c:if>
<c:if test="${ 'changeDesign' eq param.ACTION_TYPE}">
품목 설계변경
</c:if>
</span>
</h2>
</div>
<div id="businessPopupFormWrap">
<!-- <div class="form_popup_title">&nbsp;&nbsp;&nbsp;영업활동 등록</div> -->
<table class="pmsPopupForm">
<colgroup>
<col width="12%">
<col width="12%">
<col width="25%">
<col width="12%">
<col width="*">
</colgroup>
<%--
<tr>
<!-- <td class="input_title">
<label for="">기종(모델)명</label>
</td>
<td class="input_sub_title" colspan="3">
<select name="PRODUCT_MGMT_OBJID" id="PRODUCT_MGMT_OBJID" class="select2"></select>
</td> -->
<!-- <td class="input_title"> -->
<!-- <label for="">UPG No</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" > -->
<!-- <select name="UPG_NO" id="UPG_NO" class="select2"></select> -->
<!-- </td> -->
<td class="input_title">
<label for="">부품 유형</label>
</td>
<td class="input_sub_title">
<select name="PART_TYPE" id="PART_TYPE" class="select2"></select>
</td>
</tr>
--%>
<tr>
<td class="input_title">
<label for="">품번</label>
</td>
<td class="input_sub_title" colspan="4">
<input type="text" name="PART_NO" id="PART_NO" value="${resultMap.PART_NO}" required ${'changeDesign' eq param.ACTION_TYPE ? 'readonly' : ''}>
</td>
<%-- <td class="input_title">
<label for="">Revision</label>
</td>
<td class="input_sub_title" >
<input type="text" name="REVISION" id="REVISION" value="${resultMap.REVISION}" >
</td> --%>
</tr>
<%-- <tr>
<td class="input_title">
<label for="">모품번</label>
</td>
<td class="input_sub_title" colspan="3" >
<select name="PARENT_PART_NO" id="PARENT_PART_NO" reqTitle="모품번" type="select" class="select2">
<option value="">선택</option>
${code_map.PARENT_PART_NO}
</select>
</td>
</tr> --%>
<tr>
<td class="input_title">
<label for="">품명</label>
</td>
<td class="input_sub_title" colspan="4">
<input type="text" name="PART_NAME" id="PART_NAME" value="<c:out value='${resultMap.PART_NAME}' escapeXml='true'/>" required>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">QTY</label>
</td>
<td class="input_sub_title" colspan="2">
<%--
<input type="text" name="QTY" id="QTY" value="${resultMap.QTY}">
--%>
<input type="text" name="QTY" id="QTY" value="1" readonly>
</td>
<td class="input_title">
<label for="">재질</label>
</td>
<td class="input_sub_title">
<input type="text" name="MATERIAL" id="MATERIAL" value="${resultMap.MATERIAL}">
</td>
</tr>
<tr>
<td class="input_title" >
<label for="">사양(규격)</label>
</td>
<td class="input_sub_title" colspan="4" title="${resultMap.SPEC}">
<input type="text" name="SPEC" id="SPEC" value="${resultMap.SPEC}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">후처리</label>
</td>
<td class="input_sub_title" colspan="2" >
<input type="text" name="POST_PROCESSING" id="POST_PROCESSING" value="${resultMap.POST_PROCESSING}">
</td>
<td class="input_title" colspan="">
<label for="">MAKER</label>
</td>
<td class="input_sub_title" colspan="">
<input type="text" name="MAKER" id="MAKER" value="${resultMap.MAKER}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">PART구분</label>
</td>
<td class="input_sub_title" colspan="2">
<select name="PART_TYPE" id="PART_TYPE" class="" type="select" required ></select>
</td>
</tr>
<%--
<tr>
<td class="input_title">
<label for="">단위</label>
</td>
<td class="input_sub_title" >
<select name="UNIT" id="UNIT" class="select2"></select>
</td>
<td class="input_title">
<label for="">수량</label>
</td>
<td class="input_sub_title">
<input type="text" name="QTY" id="QTY" value="${resultMap.QTY}">
</td>
<!-- <td class="input_title" rowspan="4">
<label for="">형상</label>
</td>
<td class="input_sub_title" rowspan="4">
<div id="shapeDropZone" class="dropzone" style="width:99%;height:130px;border: 2px dotted rgb(130, 150, 194);">Drag & Drop Image Files Here</div>
<div id="shapeFileArea" style="display:none;"></div>
</td> -->
</tr>
--%>
<%--
<tr>
<td class="input_title">
<label for="">공급처</label>
</td>
<td class="input_sub_title">
<select name="SUPPLY_CODE" id="SUPPLY_CODE" class="select2">
${code_map.SUPPLY_CODE}
</select>
</td>
</tr>
--%>
<%--
<tr>
<td class="input_title">
<label for="">두께</label>
</td>
<td class="input_sub_title" >
<input type="text" name="THICKNESS" id="THICKNESS" value="${resultMap.THICKNESS}">
</td>
<td class="input_title">
<label for="">가로</label>
</td>
<td class="input_sub_title">
<input type="text" name="WIDTH" id="WIDTH" value="${resultMap.WIDTH}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">세로</label>
</td>
<td class="input_sub_title" >
<input type="text" name="HEIGHT" id="HEIGHT" value="${resultMap.HEIGHT}">
</td>
<td class="input_title">
<label for="">외경</label>
</td>
<td class="input_sub_title">
<input type="text" name="OUT_DIAMETER" id="OUT_DIAMETER" value="${resultMap.OUT_DIAMETER}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">내경</label>
</td>
<td class="input_sub_title" >
<input type="text" name="IN_DIAMETER" id="IN_DIAMETER" value="${resultMap.IN_DIAMETER}">
</td>
<td class="input_title">
<label for="">길이</label>
</td>
<td class="input_sub_title">
<input type="text" name="LENGTH" id="LENGTH" value="${resultMap.LENGTH}">
</td>
</tr>
--%>
<%-- <tr>
<td class="input_title">
<label for="">대체 재질</label>
</td>
<td class="input_sub_title">
<input type="text" name="SUB_MATERIAL" id="SUB_MATERIAL" value="${resultMap.SUB_MATERIAL}">
</td>
</tr> --%>
<%-- <tr>
<td class="input_title">
<label for="">중량</label>
</td>
<td class="input_sub_title" >
<input type="text" name="WEIGHT" id="WEIGHT" value="${resultMap.WEIGHT}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">설계적용시점</label>
</td>
<td class="input_sub_title">
<select name="DESIGN_APPLY_POINT" id="DESIGN_APPLY_POINT"></select>
</td>
</tr> --%>
<%-- <td class="input_title">
<label for="">최초설계일</label>
</td>
<td class="input_sub_title" >
<input type="text" class="date_icon" name="DESIGN_DATE" id="DESIGN_DATE" value="${resultMap.DESIGN_DATE}" />
</td> --%>
<c:if test="${ !empty param.ACTION_TYPE}">
<tr>
<td class="input_title" >
<label for="">Revision</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="REVISION" id="REVISION" value="${resultMap.REVISION}" readonly>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">EO No</label>
</td>
<td class="input_sub_title" colspan="2">
<input type="text" name="EO_NO" id="EO_NO" value="${resultMap.EO_NO}" readonly/>
</td>
<td class="input_title">
<label for="">EO Date</label>
</td>
<td class="input_sub_title">
<input type="text" class="" name="EO_DATE" id="EO_DATE" value="${resultMap.EO_DATE}" readonly/>
</td>
</tr>
</c:if>
<%--
<tr>
<td class="input_title">
<label for="">비고</label>
</td>
<td class="input_sub_title" colspan="3">
<input type="text" name="REMARK" id="REMARK" value="${resultMap.REMARK}">
</td>
</tr>
--%>
<!-- <tr> -->
<!-- <td class="input_title" rowspan="2"> -->
<!-- <label for="">사양 번호</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" >ES</td> -->
<!-- <td colspan="2"> -->
<!-- <select name="ES_SPEC" id="ES_SPEC"></select> -->
<!-- </td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td class="input_sub_title" >MS</td> -->
<!-- <td colspan="2"> -->
<!-- <select name="MS_SPEC" id="MS_SPEC"></select> -->
<!-- </td> -->
<!-- </tr> -->
<%--
<tr>
<td class="input_title">
<label for="">설변항목</label>
</td>
<td class="input_sub_title" colspan="3">
<!-- <input type="radio" name="CHANGE_OPTION" value="changeShape">&nbsp;형상변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="changeMaterial">&nbsp;재질변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="addChange">&nbsp;추가변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="changeConfig">&nbsp;구성변경&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="firstDrawing">&nbsp;초도&nbsp;&nbsp; -->
<!-- <input type="radio" name="CHANGE_OPTION" value="etc">&nbsp;기타&nbsp;&nbsp; -->
${code_map.CHANGE_OPTION}
</td>
<input type="hidden" name="CHANGE_OPTION_Arr" id="CHANGE_OPTION_Arr">
</tr>
--%>
<c:if test="${ 'changeDesign' eq param.ACTION_TYPE}">
<tr>
<td class="input_title" >
<label for="">EO구분</label>
</td>
<td class="input_sub_title" colspan="2">
<select name="CHANGE_TYPE" id="CHANGE_TYPE" class="select2" type="select" required reqTitle="EO구분"><option value="">선택</option>${code_map.CHANGE_TYPE}</select>
</td>
<td class="input_title">
<label for="">EO사유</label>
</td>
<td class="input_sub_title">
<select name="CHANGE_OPTION" id="CHANGE_OPTION" class="select2" type="select" required reqTitle="EO구분"><option value="">선택</option>${code_map.CHANGE_OPTION}</select>
</td>
</tr>
</c:if>
<tr>
<td class="input_title">
<label for="">비고</label>
</td>
<td class="input_sub_title" colspan="4">
<input type="text" name="REMARK" id="REMARK" value="${resultMap.REMARK}">
</td>
</tr>
<!-- <tr> -->
<!-- <td class="input_title"> -->
<!-- <label for="">ECD</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" colspan="3"> -->
<!-- <div id="ecdDropZone" class="dropzone" style="width:99%;height:90%;border: 2px dotted rgb(130, 150, 194);">Drag & Drop Files Here</div> -->
<!-- <div id="ecdFileArea" style="display:none;"></div> -->
<!-- </td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td class="input_title"> -->
<!-- <label for="">관리항목</label> -->
<!-- </td> -->
<!-- <td class="input_sub_title" colspan="3"> -->
<!-- <input type="radio" name="MANAGEMENT_FLAG" value="Y">유 -->
<!-- <input type="radio" name="MANAGEMENT_FLAG" value="N">무 -->
<!-- </td> -->
<!-- </tr> -->
<!--
</table>
<table class="pmsPopupForm" style="margin-top:0px;">
<colgroup>
<col width="15%">
<col width="20%">
<col width="15%">
<col width="*">
</colgroup>
-->
<tr>
<td class="input_title" rowspan="3">
<label for="">CAD Data</label>
</td>
<td class="input_title" >
3D
</td>
<td colspan="3" class="border1">
<div id="3dCadDropZone" class="dropzone"style="width:99% !important;">Drag & Drop Files Here</div>
<div class="plm_scroll_table" style="height:50px;">
<div id="3dCadFileArea" style="display:none;"></div>
</div>
</td>
</tr>
<tr>
<td class="input_title" >
2D(Drawing)
</td>
<td colspan="3" class="border1">
<div id="2dDrawingCadDropZone" class="dropzone"style="width:99% !important;">Drag & Drop Files Here</div>
<div class="plm_scroll_table" style="height:50px;">
<div id="2dDrawingCadFileArea" style="display:none;"></div>
</div>
</td>
</tr>
<tr>
<td class="input_title" >
2D(PDF)
</td>
<td colspan="3" class="border1">
<div id="2dPDFCadDropZone" class="dropzone"style="width:99% !important;">Drag & Drop Files Here</div>
<div class="plm_scroll_table" style="height:50px;">
<div id="2dPDFCadFileArea" style="display:none;"></div>
</div>
</td>
</tr>
</table>
</div>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<input type="button" value="저장" id="btnSave" class="plm_btns create">
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
</section>
</form>
</body>
</html>

View File

@@ -139,7 +139,7 @@ String connector = person.getUserId();
},
*/
//{headerHozAlign : 'center', hozAlign : 'left', width : '125', title : '모품번', field : 'PARENT_PART_INFO' },
{headerHozAlign : 'center', hozAlign : 'left', width : '125', title : '품번', field : 'PART_NO',
{headerHozAlign : 'center', hozAlign : 'left', width : '180', title : '품번', field : 'PART_NO',
formatter:fnc_createGridAnchorTag,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().OBJID);
@@ -147,8 +147,8 @@ String connector = person.getUserId();
}
},
{headerHozAlign : 'center', hozAlign : 'left', /* width : '270', */ title : '품명', field : 'PART_NAME' },
{headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '수량', field : 'BOM_QTY' }, //Q_QTY QTY QTY_P
{headerHozAlign : 'center', hozAlign : 'center', width : '45', title : '3D', field : 'CU01_CNT',
// {headerHozAlign : 'center', hozAlign : 'center', width : '50', title : '수량', field : 'BOM_QTY' }, //Q_QTY QTY QTY_P
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '3D', field : 'CU01_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().OBJID);
@@ -157,7 +157,7 @@ String connector = person.getUserId();
fnc_fileDetailPopup(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '45', title : '2D', field : 'CU02_CNT',
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '2D', field : 'CU02_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().OBJID);
@@ -166,7 +166,7 @@ String connector = person.getUserId();
fnc_fileDetailPopup(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '55', title : 'PDF', field : 'CU03_CNT',
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : 'PDF', field : 'CU03_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().OBJID);
@@ -175,16 +175,23 @@ String connector = person.getUserId();
fnc_fileDetailPopup(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '재', field : 'MATERIAL' },
{headerHozAlign : 'center', hozAlign : 'left', width : '90', title : '사양(규격)', field : 'SPEC' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '처리', field : 'POST_PROCESSING' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : 'MAKER', field : 'MAKER' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '대분류', field : 'MAJOR_CATEGORY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '중분류', field : 'SUB_CATEGORY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : 'Revision', field : 'REVISION' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '재', field : 'MATERIAL' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '열처리경도', field : 'HEAT_TREATMENT_HARDNESS' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '처리방법', field : 'HEAT_TREATMENT_METHOD' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '표면처리', field : 'SURFACE_TREATMENT' },
{headerHozAlign : 'center', hozAlign : 'center', width : '150', title : '공급업체', field : 'SUPPLY_NAME' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '범주 이름', field : 'PART_TYPE_TITLE' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '재질', field : 'MATERIAL' },
// {headerHozAlign : 'center', hozAlign : 'left', width : '90', title : '사양(규격)', field : 'SPEC' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '후처리', field : 'POST_PROCESSING' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : 'MAKER', field : 'MAKER' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '대분류', field : 'MAJOR_CATEGORY' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '중분류', field : 'SUB_CATEGORY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'Revision', field : 'REVISION' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'EO No', field : 'EO_NO' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : 'EO Date', field : 'EO_DATE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '88', title : 'PART구분', field : 'PART_TYPE_TITLE' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '88', title : 'PART구분', field : 'PART_TYPE_TITLE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '비고', field : 'REMARK' }
];
@@ -328,7 +335,7 @@ String connector = person.getUserId();
<!-- </td> -->
<td><label for="">품번</label></td>
<td>
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" style="width:194px;" autocomplete="off" value="${param.SEARCH_PART_NO}">
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" style="width:150px;" autocomplete="off" value="${param.SEARCH_PART_NO}">
</td>
<td><label for="">품명</label></td>
<td>
@@ -336,22 +343,40 @@ String connector = person.getUserId();
</td>
<td><label for="">Revision</label></td>
<td colspan="7">
<select name="SEARCH_REVISION_RELEASE" id="SEARCH_REVISION_RELEASE" style="width:150px;" autocomplete="off">
<td>
<select name="SEARCH_REVISION_RELEASE" id="SEARCH_REVISION_RELEASE" style="width:100px;" autocomplete="off">
<option value="1">current</option>
<option value="0">all</option>
</select>
</td>
<td><label for="">재</label></td>
<td><label for="">재</label></td>
<td>
<input type="text" name="SEARCH_MATERIAL" id="SEARCH_MATERIAL" style="width:150px;" autocomplete="off" value="${param.SEARCH_MATERIAL}">
<input type="text" name="SEARCH_MATERIAL" id="SEARCH_MATERIAL" style="width:110px;" autocomplete="off" value="${param.SEARCH_MATERIAL}">
</td>
<td><label for="">사양(규격)</label></td>
<td><label for="">열처리경도</label></td>
<td>
<input type="text" name="SEARCH_SPEC" id="SEARCH_SPEC" style="width:150px;" autocomplete="off" value="${param.SEARCH_SPEC}">
<input type="text" name="SEARCH_HARDNESS" id="SEARCH_HARDNESS" style="width:110px;" autocomplete="off" value="${param.SEARCH_HARDNESS}">
</td>
<td><label for="">열처리방법</label></td>
<td>
<input type="text" name="SEARCH_METHOD" id="SEARCH_METHOD" style="width:110px;" autocomplete="off" value="${param.SEARCH_METHOD}">
</td>
<td><label for="">표면처리</label></td>
<td>
<input type="text" name="SEARCH_SURFACE" id="SEARCH_SURFACE" style="width:110px;" autocomplete="off" value="${param.SEARCH_SURFACE}">
</td>
<td><label for="customer_objid">공급업체</label></td>
<td>
<select name="customer_objid" id="customer_objid" style="" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.customer_cd}
</select>
</td>
<!-- <td><label for="">EO No.</label></td> -->
<!-- <td> -->
<%-- <input type="text" name="SEARCH_EO" id="SEARCH_EO" style="width:150px;" autocomplete="off" value="${param.SEARCH_EO}"> --%>
@@ -363,9 +388,9 @@ String connector = person.getUserId();
<input type="text" name="SEARCH_DESIGN_DATE_TO" id="SEARCH_DESIGN_DATE_TO" style="width:90px;" autocomplete="off" value="${param.SEARCH_DESIGN_DATE_TO}">
</td> --%>
<td><label for="">부품 유형</label></td>
<td><label for="">범주 이름</label></td>
<td>
<select name="SEARCH_PART_TYPE" id="SEARCH_PART_TYPE" style="width:150px;" autocomplete="off"></select>
<select name="SEARCH_PART_TYPE" id="SEARCH_PART_TYPE" style="width:120px;" autocomplete="off"></select>
</td>
</tr>
</tbody>

View File

@@ -71,21 +71,21 @@ ui-jqgrid tr.jqgrow td {
fn_search();
});
$("#search_product_group").change(function(){
$("#search_product").empty();
// $("#search_product_group").change(function(){
// $("#search_product").empty();
if("" != this.value){
fnc_getCodeListAppend(this.value,"search_product","${param.search_product}");
}
});
// if("" != this.value){
// fnc_getCodeListAppend(this.value,"search_product","${param.search_product}");
// }
// });
fnc_getCarList("", "", "search_car_type","${param.search_car_type}");
// fnc_getCarList("", "", "search_car_type","${param.search_car_type}");
fnc_getCodeListAppend("<%=Constants.PRODUCT_GROUP_CODE%>","search_product_group","${param.search_product_group}");
// fnc_getCodeListAppend("<%=Constants.PRODUCT_GROUP_CODE%>","search_product_group","${param.search_product_group}");
if("" != "${param.search_product_group}"){
fnc_getCodeListAppend("${param.search_product_group}","search_product","${param.search_product}");
}
// if("" != "${param.search_product_group}"){
// fnc_getCodeListAppend("${param.search_product_group}","search_product","${param.search_product}");
// }
//fnc_getUserList("SEARCH_WRITER","${param.search_writer}");
@@ -128,9 +128,9 @@ ui-jqgrid tr.jqgrow td {
{title:'CODE4', field:'CODE4' ,visible:false ,frozen:true},
{title:'CODE5', field:'CODE5' ,visible:false ,frozen:true},
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '순', field : 'RNUM' ,frozen:true},
{headerHozAlign : 'center', hozAlign : 'left', width : '270', title : '품명', field : 'PART_NAME' ,frozen:true},
{headerHozAlign : 'center', hozAlign : 'left', width : '125', title : '모품번', field : 'PARENT_PART_INFO' ,frozen:true},
// {headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '순', field : 'RNUM' ,frozen:true},
// {headerHozAlign : 'center', hozAlign : 'left', width : '125', title : '모품번', field : 'PARENT_PART_INFO' ,frozen:true},
{headerHozAlign : 'center', hozAlign : 'left', width : '180', title : '품번', field : 'PART_NO',frozen:true,
formatter:fnc_createGridAnchorTag,
cellClick:function(e, cell){
@@ -138,7 +138,8 @@ ui-jqgrid tr.jqgrow td {
openPartMngPopup(objid);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '70', title : '수량', field : 'Q_QTY' },
{headerHozAlign : 'center', hozAlign : 'left', /*width : '270',*/ title : '품명', field : 'PART_NAME' ,frozen:true},
// {headerHozAlign : 'center', hozAlign : 'center', width : '70', title : '수량', field : 'Q_QTY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '3D', field : 'CU01_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
@@ -166,16 +167,22 @@ ui-jqgrid tr.jqgrow td {
fn_FileRegist(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '재', field : 'MATERIAL' },
{headerHozAlign : 'center', hozAlign : 'left', width : '190', title : '사양(규격)', field : 'SPEC' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '처리', field : 'POST_PROCESSING' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'MAKER', field : 'MAKER' },
{headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '대분류', field : 'MAJOR_CATEGORY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '중분류', field : 'SUB_CATEGORY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : 'Revision', field : 'REVISION' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '재', field : 'MATERIAL' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '열처리경도', field : 'HEAT_TREATMENT_HARDNESS' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '처리방법', field : 'HEAT_TREATMENT_METHOD' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '표면처리', field : 'SURFACE_TREATMENT' },
{headerHozAlign : 'center', hozAlign : 'center', width : '150', title : '공급업체', field : 'SUPPLY_NAME' },
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '범주 이름', field : 'PART_TYPE_TITLE' },
// {headerHozAlign : 'center', hozAlign : 'left', width : '190', title : '사양(규격)', field : 'SPEC' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '후처리', field : 'POST_PROCESSING' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'MAKER', field : 'MAKER' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '대분류', field : 'MAJOR_CATEGORY' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '120', title : '중분류', field : 'SUB_CATEGORY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'Revision', field : 'REVISION' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'EO No', field : 'EO_NO' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'EO Date', field : 'EO_DATE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'PART 구분', field : 'PART_TYPE_TITLE' },
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'PART 구분', field : 'PART_TYPE_TITLE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '비고', field : 'REMARK' }
];
function fn_search(){
@@ -426,7 +433,7 @@ ui-jqgrid tr.jqgrow td {
<div id="plmSearchZon">
<table>
<tr>
<td><label for="Year">년도</label></td>
<!-- <td><label for="Year">년도</label></td>
<td>
<select name="SEARCH_YEAR" id="SEARCH_YEAR" style="width:200px;" autocomplete="off">
<option value="">선택</option>
@@ -434,7 +441,7 @@ ui-jqgrid tr.jqgrow td {
<option value="${req_year}"${param.SEARCH_YEAR eq req_year ? 'selected':'' }>${req_year}</option>
</c:forEach>
</select>
</td>
</td> -->
<td><label for="">품번</label></td>
<td>
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" style="width:194px;" autocomplete="off" value="${param.SEARCH_PART_NO}">
@@ -443,14 +450,13 @@ ui-jqgrid tr.jqgrow td {
<td>
<input type="text" name="SEARCH_PART_NAME" id="SEARCH_PART_NAME" style="width:150px;" autocomplete="off" value="${param.SEARCH_PART_NAME}">
</td>
<td><label for="">등록자</label></td>
<!-- <td><label for="">등록자</label></td>
<td>
<select name="WRITER" id="WRITER" required reqTitle="작성자" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.WRITER}
</select>
</td>
</td> -->
</td>
</tr>
</table>

View File

@@ -319,7 +319,7 @@ header h1 {display:flex; align-items:center; height: 100%}
.loginLogo_new {display: block; width: 246px; height: 100px; background: url(/images/loginLogo_kumho.png) left bottom no-repeat;background-size:contain; margin-bottom:10px;margin-left:-80px;}
.slogun_box_new {position: relative; margin:144px 0px 0px 330px; width:50%; height:640px; background:#E7E9F0; border-radius: 25px 0px 0px 25px; z-index:1;}
.slogun_box_new2 {display: block; width:78%; height:90%; background: url(/images/Intops-loginpage_last1.png) left bottom no-repeat; background-size:contain; margin-left:7%;padding-top:0;}
header h1 .mainLogo_new {display:block; margin-left:-68px; width:223px; height:25px; background: url(/images/logo.png) center center no-repeat;
header h1 .mainLogo_new {display:block; margin-left:-50px; width:235px; height:35px; background: url(/images/logo.png) center center no-repeat;
background-size: contain; margin-top:0px; }
/*濡쒓렇???섏씠吏€ (intops)

View File

@@ -2982,7 +2982,12 @@ $(document).ready(function() {
var gridToUse = typeof _tabulGrid !== 'undefined' ? _tabulGrid :
typeof grid !== 'undefined' ? grid : null;
if (gridToUse && gridToUse.getRows().length > 0) {
// jqGrid 체크 - jqGrid는 이 기능을 사용하지 않음
if (gridToUse && typeof gridToUse.jqGrid === 'function') {
return; // jqGrid는 별도 처리
}
if (gridToUse && gridToUse.getRows && gridToUse.getRows().length > 0) {
var pageTitle = $('.plm_menu_name_gdnsi h2 span').text().trim();
$('.btnArea').append("<input type='button' class='plm_btns excelBtn' value='Excel Download'>");

View File

@@ -133,6 +133,9 @@ public class PartMngController {
}
code_map.put("product_code",commonService.bizMakeOptionList("", (String)paramMap.get("product_code"),"common.getProductCodeselect"));
//고객사
code_map.put("customer_cd",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_cd")),"common.getmatersupplyselect"));
if("Y".equals(search)){
//list = CommonUtils.keyChangeUpperList(partMngService.getPartMngList(request,paramMap));
}
@@ -371,7 +374,9 @@ public class PartMngController {
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", (String)resultMap.get("SUPPLY_CODE"),"common.getmatersupplyselect"));
//고객사
code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)resultMap.get("SUPPLY_CODE")),"common.getmatersupplyselect"));
//code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", (String)resultMap.get("SUPPLY_CODE"),"common.getmatersupplyselect"));
}else{
objId = CommonUtils.createObjId();
@@ -425,7 +430,8 @@ public class PartMngController {
code_map.put("CHANGE_OPTION",commonService.bizMakeOptionList("0000318", (String)resultMap.get("CHANGE_OPTION"),"common.getCodeselect"));
code_map.put("CHANGE_TYPE",commonService.bizMakeOptionList("0001054", (String)resultMap.get("CHANGE_TYPE"),"common.getCodeselect"));
code_map.put("PARENT_PART_NO",commonService.bizMakeOptionList("", (String)resultMap.get("PARENT_PART_NO"),"common.getPartNoselect"));
code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)resultMap.get("SUPPLY_CODE")),"common.getmatersupplyselect"));
//code_map.put("SUPPLY_CODE",commonService.bizMakeOptionList("", (String)resultMap.get("SUPPLY_CODE"),"common.getmatersupplyselect"));
}else{
objId = CommonUtils.createObjId();
@@ -633,6 +639,7 @@ public class PartMngController {
Map param = new HashMap();
param.put("parentCodeId", "0000062");
code_map.put("part_type", commonService.getJqGridSelectBoxJsonData("common.getCodeList2", param, "선택"));
code_map.put("sup_code", commonService.getJqGridSelectBoxJsonData("common.getmatersupplyselect", param, "선택"));
/*
//unit
param.put("parentCodeId", "0000059");

View File

@@ -157,10 +157,11 @@
<!--
(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = P.SOURCING_CODE) AS SOURCING_NAME,
-->
SUPPLY_CODE
<!--
(SELECT SUPPLY_NAME FROM admin_supply_mng O WHERE O.objid::varchar = P.SUPPLY_CODE) AS SUPPLY_NAME
-->
P.SUPPLY_CODE,
(SELECT SUPPLY_NAME FROM admin_supply_mng O WHERE O.objid::varchar = P.SUPPLY_CODE) AS SUPPLY_NAME,
P.HEAT_TREATMENT_HARDNESS,
P.HEAT_TREATMENT_METHOD,
P.SURFACE_TREATMENT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!-- AND F.STATUS = 'Active'--> AND F.DOC_TYPE IN ('3D_CAD')) CU01_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!-- AND F.STATUS = 'Active'--> AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) CU02_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!-- AND F.STATUS = 'Active'--> AND F.DOC_TYPE IN ('2D_PDF_CAD')) CU03_CNT
@@ -647,9 +648,12 @@
MAKER,
POST_PROCESSING,
MAJOR_CATEGORY,
SUB_CATEGORY
) VALUES (
#{OBJID}::NUMERIC,
SUB_CATEGORY,
HEAT_TREATMENT_HARDNESS,
HEAT_TREATMENT_METHOD,
SURFACE_TREATMENT
) VALUES (
#{OBJID}::NUMERIC,
#{PRODUCT_MGMT_OBJID},
#{UPG_NO},
#{PART_NO},
@@ -690,9 +694,12 @@
#{MAKER},
#{POST_PROCESSING},
#{MAJOR_CATEGORY},
#{SUB_CATEGORY}
) ON
CONFLICT (OBJID) DO
#{SUB_CATEGORY},
#{HEAT_TREATMENT_HARDNESS},
#{HEAT_TREATMENT_METHOD},
#{SURFACE_TREATMENT}
) ON
CONFLICT (OBJID) DO
UPDATE
SET
PRODUCT_MGMT_OBJID = #{PRODUCT_MGMT_OBJID},
@@ -731,8 +738,11 @@
MAKER = #{MAKER},
POST_PROCESSING = #{POST_PROCESSING},
MAJOR_CATEGORY = #{MAJOR_CATEGORY},
SUB_CATEGORY = #{SUB_CATEGORY}
SUB_CATEGORY = #{SUB_CATEGORY},
HEAT_TREATMENT_HARDNESS = #{HEAT_TREATMENT_HARDNESS},
HEAT_TREATMENT_METHOD = #{HEAT_TREATMENT_METHOD},
SURFACE_TREATMENT = #{SURFACE_TREATMENT}
</update>
<!-- Part 설변등록 -->
@@ -784,7 +794,11 @@
CODE4,
CODE5,
IS_NEW,
IS_LONGD
IS_LONGD,
HEAT_TREATMENT_HARDNESS,
HEAT_TREATMENT_METHOD,
SURFACE_TREATMENT,
SUPPLY_CODE
) VALUES (
#{OBJID}::NUMERIC,
#{PRODUCT_MGMT_OBJID},
@@ -838,7 +852,11 @@
#{CODE4},
#{CODE5},
#{IS_NEW},
#{IS_LONGD}
#{IS_LONGD},
#{HEAT_TREATMENT_HARDNESS},
#{HEAT_TREATMENT_METHOD},
#{SURFACE_TREATMENT},
#{SUPPLY_CODE}
) ON
CONFLICT (OBJID) DO
UPDATE
@@ -885,7 +903,11 @@
CODE4 = #{CODE4},
CODE5 = #{CODE5},
IS_NEW = #{IS_NEW},
IS_LONGD = #{IS_LONGD}
IS_LONGD = #{IS_LONGD},
HEAT_TREATMENT_HARDNESS = #{HEAT_TREATMENT_HARDNESS},
HEAT_TREATMENT_METHOD = #{HEAT_TREATMENT_METHOD},
SURFACE_TREATMENT = #{SURFACE_TREATMENT},
SUPPLY_CODE = #{SUPPLY_CODE}
</update>
<update id="mergePartMngHistory" parameterType="map">
INSERT INTO PART_MNG_HISTORY
@@ -925,7 +947,11 @@
IN_DIAMETER,
LENGTH,
CONTRACT_OBJID,
MAKER
MAKER,
HEAT_TREATMENT_HARDNESS,
HEAT_TREATMENT_METHOD,
SURFACE_TREATMENT,
SUPPLY_CODE
) VALUES (
#{OBJID}::NUMERIC,
#{PRODUCT_MGMT_OBJID},
@@ -962,7 +988,11 @@
#{IN_DIAMETER},
#{LENGTH},
#{CONTRACT_OBJID},
#{MAKER}
#{MAKER},
#{HEAT_TREATMENT_HARDNESS},
#{HEAT_TREATMENT_METHOD},
#{SURFACE_TREATMENT},
#{SUPPLY_CODE}
) ON
CONFLICT (OBJID) DO
@@ -1000,7 +1030,11 @@
IN_DIAMETER = #{IN_DIAMETER},
LENGTH = #{LENGTH},
CONTRACT_OBJID = (SELECT CONTRACT_OBJID FROM PART_MNG WHERE OBJID = #{OBJID}),
MAKER =#{MAKER}
MAKER =#{MAKER},
HEAT_TREATMENT_HARDNESS = #{HEAT_TREATMENT_HARDNESS},
HEAT_TREATMENT_METHOD = #{HEAT_TREATMENT_METHOD},
SURFACE_TREATMENT = #{SURFACE_TREATMENT},
SUPPLY_CODE = #{SUPPLY_CODE}
</update>
<select id="overlapPartMng" parameterType="map" resultType="map">
@@ -1909,6 +1943,19 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
<if test="SEARCH_MATERIAL != null and SEARCH_MATERIAL != ''">
AND UPPER(T.MATERIAL) LIKE UPPER('%${SEARCH_MATERIAL}%')
</if>
<if test="SEARCH_HARDNESS != null and SEARCH_HARDNESS != ''">
AND UPPER(T.HEAT_TREATMENT_HARDNESS) LIKE UPPER('%${SEARCH_HARDNESS}%')
</if>
<if test="SEARCH_METHOD != null and SEARCH_METHOD != ''">
AND UPPER(T.HEAT_TREATMENT_METHOD) LIKE UPPER('%${SEARCH_METHOD}%')
</if>
<if test="SEARCH_SURFACE != null and SEARCH_SURFACE != ''">
AND UPPER(T.SURFACE_TREATMENT) LIKE UPPER('%${SEARCH_SURFACE}%')
</if>
<if test="customer_objid != null and customer_objid != ''">
AND T.SUPPLY_CODE = #{customer_objid}
</if>
<if test="SEARCH_SPEC != null and SEARCH_SPEC != ''">
AND UPPER(T.SPEC) LIKE UPPER('%${SEARCH_SPEC}%')
</if>
@@ -7158,6 +7205,14 @@ SELECT PM.OBJID
AND PARENT_CODE_ID='0000062'
</select>
<!-- PART 관리 목록 조회 -->
<select id="supplyInfo" parameterType="map" resultType="map">
SELECT
OBJID::VARCHAR AS OBJID
FROM ADMIN_SUPPLY_MNG
WHERE REPLACE(SUPPLY_NAME, ' ', '') = REPLACE(#{SUPPLY_NAME}, ' ', '')
</select>
<!-- 배포 사유 저장 -->
<update id="saveChangeDesignInfo" parameterType="map">
UPDATE PART_BOM_REPORT SET NOTE = #{NOTE}

View File

@@ -2868,17 +2868,41 @@ public class PartMngService extends BaseService {
//수량(QTY)
// cellValue = getCellValue(row, columnIndex++, formatter, emptyColCnt);
partMap.put("QTY", "1");
//재
// partMap.put("QTY", "1");
//재
partMap.put("MATERIAL", getCellValue(row, columnIndex++, formatter, emptyColCnt));
//열처리경도
partMap.put("HEAT_TREATMENT_HARDNESS", getCellValue(row, columnIndex++, formatter, emptyColCnt));
//열처리방법
partMap.put("HEAT_TREATMENT_METHOD", getCellValue(row, columnIndex++, formatter, emptyColCnt));
//표면처리
partMap.put("SURFACE_TREATMENT", getCellValue(row, columnIndex++, formatter, emptyColCnt));
// if(StringUtils.isBlank(getCellValue(row, columnIndex, formatter, emptyColCnt))) emptyColCnt++;
//사양(규격)
partMap.put("SPEC", getCellValue(row, columnIndex++, formatter, emptyColCnt));
// partMap.put("SPEC", getCellValue(row, columnIndex++, formatter, emptyColCnt));
// if(StringUtils.isBlank(getCellValue(row, columnIndex, formatter, emptyColCnt))) emptyColCnt++;
//후처리
partMap.put("POST_PROCESSING", getCellValue(row, columnIndex++, formatter, emptyColCnt));
// partMap.put("POST_PROCESSING", getCellValue(row, columnIndex++, formatter, emptyColCnt));
//MAKER
partMap.put("MAKER", getCellValue(row, columnIndex++, formatter, emptyColCnt));
// partMap.put("MAKER", getCellValue(row, columnIndex++, formatter, emptyColCnt));
//공급업체
cellValue = getCellValue(row, columnIndex++, formatter, emptyColCnt);
// if(StringUtils.isBlank(cellValue)) emptyColCnt++;
partMap.put("SUP_CODE", columnIndex);
if(!CommonUtils.isBlank(cellValue)){
sqlParamMap.clear();
sqlResultMap.clear();
sqlParamMap.put("SUPPLY_NAME", cellValue);
Map supply = sqlSession.selectOne("partMng.supplyInfo", sqlParamMap);
if(null!=supply && !StringUtils.isBlank((String)supply.get("objid"))){
//&& !CommonUtils.isEmptyMap(partType)
partMap.put("SUP_CODE", supply.get("objid"));
sqlResultMap.put("SUP_CODE",supply.get("objid"));
}else {
setErrMapByExcel(resultColumn, resultList, partMap, true, "공급업체 확인:"+cellValue, cellValue);
}
}
//PART구분(부품유형)
cellValue = getCellValue(row, columnIndex++, formatter, emptyColCnt);
@@ -2894,7 +2918,7 @@ public class PartMngService extends BaseService {
partMap.put("PART_TYPE", partType.get("code_id"));
sqlResultMap.put("PART_TYPE",partType.get("code_id"));
}else {
setErrMapByExcel(resultColumn, resultList, partMap, true, "PART구분 확인:"+cellValue, cellValue);
setErrMapByExcel(resultColumn, resultList, partMap, true, "범주 이름 확인:"+cellValue, cellValue);
}
}
@@ -3009,6 +3033,7 @@ public class PartMngService extends BaseService {
//PART저장
insertMap.put("OBJID", part_objid);
insertMap.put("CONNECTUSERID", CommonUtils.checkNull((String)paramMap.get("CONNECTUSERID")));
insertMap.put("SUPPLY_CODE", CommonUtils.checkNull((String)insertMap.get("SUP_CODE")));
//sqlSession.insert("partMng.insertpartInfo", insertMap);
sqlSession.insert("partMng.mergePartMng", insertMap);
/*