Merge branch 'main' into V20251023001
This commit is contained in:
@@ -2,6 +2,23 @@
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ page import="com.pms.common.utils.*"%>
|
||||
<%@ page import="java.util.*"%>
|
||||
<%
|
||||
// URL 파라미터 가져오기 (request.getParameter는 자동으로 URL 디코딩됨)
|
||||
String bomPartNo = request.getParameter("BOM_PART_NO");
|
||||
String bomPartName = request.getParameter("BOM_PART_NAME");
|
||||
String bomVersion = request.getParameter("BOM_VERSION");
|
||||
|
||||
// 디버깅: 콘솔에 출력
|
||||
System.out.println("=== BOM 파라미터 디버깅 ===");
|
||||
System.out.println("bomPartNo: " + bomPartNo);
|
||||
System.out.println("bomPartName: " + bomPartName);
|
||||
System.out.println("bomVersion: " + bomVersion);
|
||||
|
||||
// null 체크
|
||||
if(bomPartNo == null) bomPartNo = "";
|
||||
if(bomPartName == null) bomPartName = "";
|
||||
if(bomVersion == null) bomVersion = "";
|
||||
%>
|
||||
<%@include file="/init_jqGrid.jsp"%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
@@ -302,9 +319,13 @@ $(document).ready(function(){
|
||||
}
|
||||
}
|
||||
}
|
||||
,{name:"SUPPLIER",index:"SUPPLIER", width: 120, align:"center", hidden: false, sortable:false, editable:true
|
||||
,{name:"SUPPLY_CODE",index:"SUPPLY_CODE", width: 120, align:"center", hidden: false, sortable:false, editable:true
|
||||
,edittype :"select"
|
||||
,formatter :"select"
|
||||
,editoptions:{
|
||||
dataInit : function(e){
|
||||
value: sup_code
|
||||
,dataInit : function(e){
|
||||
e.style.width = "92%";
|
||||
e.style.fontSize = 13;
|
||||
}
|
||||
}
|
||||
@@ -934,15 +955,15 @@ function fn_save(){
|
||||
</td>
|
||||
<td style="font-size:12px;" class="align_c"><label for="bom_part_no">품번</label></td>
|
||||
<td>
|
||||
<input type="text" name="bom_part_no" id="bom_part_no" required reqTitle="품번" value="${param.BOM_PART_NO}" style="width: 170px;"/>
|
||||
<input type="text" name="bom_part_no" id="bom_part_no" required reqTitle="품번" value="<%= bomPartNo %>" style="width: 170px;"/>
|
||||
</td>
|
||||
<td style="font-size:12px;" class="align_c"><label for="bom_part_name">품명</label></td>
|
||||
<td>
|
||||
<input type="text" name="bom_part_name" id="bom_part_name" required reqTitle="품명" value="${param.BOM_PART_NAME}" style="width: 170px;"/>
|
||||
<input type="text" name="bom_part_name" id="bom_part_name" required reqTitle="품명" value="<%= bomPartName %>" style="width: 170px;"/>
|
||||
</td>
|
||||
<td style="font-size:12px;" class="align_c"><label for="version">Version</label></td>
|
||||
<td>
|
||||
<input type="text" name="version" id="version" reqTitle="Version" value="${param.BOM_VERSION}" style="width: 140px;"/>
|
||||
<input type="text" name="version" id="version" reqTitle="Version" value="<%= bomVersion %>" style="width: 140px;"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -21,7 +21,10 @@ $(document).ready(function(){
|
||||
$("._table1").scrollLeft($("._table2").scrollLeft());
|
||||
});
|
||||
|
||||
|
||||
// 품번/품명 Select2 AJAX 초기화 (common.js의 새 함수 사용)
|
||||
initPartSelect2Ajax("#search_partNo", "#search_partName", "#search_partObjId", {
|
||||
debug: false // 디버깅 모드 비활성화
|
||||
});
|
||||
|
||||
$("#mainGrid").jqGrid({
|
||||
height : 630,
|
||||
@@ -759,6 +762,24 @@ function fn_excelExport(pGridObj,pFileName){
|
||||
<td class="align_r">
|
||||
<label for="" class="">품번</label>
|
||||
</td>
|
||||
<td>
|
||||
<select name="search_partNo" id="search_partNo" class="select2-part" style="width: 100%;">
|
||||
<option value="">품번 선택</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_partObjId" id="search_partObjId" value=""/>
|
||||
</td>
|
||||
<td class="align_r">
|
||||
<label for="" class="">품명</label>
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<select name="search_partName" id="search_partName" class="select2-part" style="width: 100%;">
|
||||
<option value="">품명 선택</option>
|
||||
</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>
|
||||
@@ -767,7 +788,7 @@ function fn_excelExport(pGridObj,pFileName){
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="search_partName" id="search_partName" value="${param.search_partName}" class="text_area" style="width:200px;"/>
|
||||
</td>
|
||||
</td> -->
|
||||
<!-- <td class="align_r">
|
||||
<label for="" class="">LEVEL</label>
|
||||
</td>
|
||||
|
||||
@@ -158,7 +158,7 @@ var columns = [
|
||||
|
||||
|
||||
{headerHozAlign : 'center', hozAlign : 'center', width : '200', title : '제품구분', field : 'PRODUCT_NAME' },
|
||||
{headerHozAlign : 'center', hozAlign : 'center', title : '제품구분', field : 'PRODUCT_CD' ,hidden: true},
|
||||
// {headerHozAlign : 'center', hozAlign : 'center', title : '제품구분', field : 'PRODUCT_CD' ,hidden: true},
|
||||
{headerHozAlign : 'center', hozAlign : 'left', width : '300', title : '품번', field : 'PART_NO' },
|
||||
{headerHozAlign : 'center', hozAlign : 'left', /* width : '300',*/ title : '품명', field : 'PART_NAME' },
|
||||
|
||||
@@ -552,8 +552,21 @@ function saveexcelpop() {
|
||||
BOM_VERSION = fnc_checkNull(selectedStructure[i].REVISION);
|
||||
}
|
||||
|
||||
var url = "/partMng/openBomReportExcelImportPopUp.do?PRODUCT_CD="+BOM_PRODUCT_CD+"&BOM_PART_NAME="+BOM_PART_NAME+"&BOM_PART_NO="+BOM_PART_NO+"&BOM_REPORT_OBJID="+BOM_REPORT_OBJID+"&BOM_VERSION="+BOM_VERSION;
|
||||
var target = "openBomReportExcelImportPopUp";
|
||||
// hiddenForm을 사용하여 POST 방식으로 팝업 열기 (한글 인코딩 문제 해결)
|
||||
var hiddenForm = document.hiddenForm;
|
||||
var url = "/partMng/openBomReportExcelImportPopUp.do";
|
||||
var target = "openBomReportExcelImportPopUp";
|
||||
|
||||
hiddenForm.PRODUCT_CD.value = BOM_PRODUCT_CD;
|
||||
hiddenForm.BOM_PART_NAME.value = BOM_PART_NAME;
|
||||
hiddenForm.BOM_PART_NO.value = BOM_PART_NO;
|
||||
hiddenForm.BOM_REPORT_OBJID.value = BOM_REPORT_OBJID;
|
||||
hiddenForm.BOM_VERSION.value = BOM_VERSION;
|
||||
|
||||
window.open('', target, 'width=1920, height=860, menubars=no, scrollbars=yes, resizable=yes');
|
||||
hiddenForm.action = url;
|
||||
hiddenForm.target = target;
|
||||
hiddenForm.submit();
|
||||
}
|
||||
}else{
|
||||
if($("#customer_cd").val()==""){
|
||||
@@ -571,8 +584,8 @@ function saveexcelpop() {
|
||||
|
||||
var url = "/partMng/openBomReportExcelImportPopUp.do?customer_cd="+$("#customer_cd").val()+"&project_name="+$("#project_name").val()+"&unit_code="+$("#unit_code").val();
|
||||
var target = "openBomReportExcelImportPopUp";
|
||||
window.open(url, target,"width=1920, height=860, menubars=no, scrollbars=yes, resizable=yes");
|
||||
}
|
||||
window.open(url, target,"width=1920, height=860, menubars=no, scrollbars=yes, resizable=yes");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
@@ -583,6 +596,11 @@ function saveexcelpop() {
|
||||
<input type="hidden" name="param_product_mgmt_spec" id="param_product_mgmt_spec">
|
||||
<input type="hidden" name="param_upg_no" id="param_upg_no">
|
||||
<input type="hidden" name="BOM_REPORT_OBJID" id="BOM_REPORT_OBJID">
|
||||
<!-- BOM Excel Import 팝업용 파라미터 -->
|
||||
<input type="hidden" name="PRODUCT_CD" id="PRODUCT_CD">
|
||||
<input type="hidden" name="BOM_PART_NAME" id="BOM_PART_NAME">
|
||||
<input type="hidden" name="BOM_PART_NO" id="BOM_PART_NO">
|
||||
<input type="hidden" name="BOM_VERSION" id="BOM_VERSION">
|
||||
</form>
|
||||
|
||||
<form name="form1" id="form1" action="" method="post">
|
||||
|
||||
@@ -3850,6 +3850,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
PARENT_PART_NO,
|
||||
PART_NO,
|
||||
QTY,
|
||||
ITEM_QTY,
|
||||
QTY_TEMP,
|
||||
REGDATE,
|
||||
WRITER,
|
||||
@@ -3873,6 +3874,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
<!-- (SELECT PART_NO FROM BOM_PART_QTY WHERE 1=1 AND CHILD_OBJID = #{PARENT_OBJID} AND BOM_REPORT_OBJID = #{BOM_REPORT_OBJID}),
|
||||
#{PART_OBJID}, -->
|
||||
#{QTY},
|
||||
#{ITEM_QTY},
|
||||
#{QTY_TEMP},
|
||||
NOW(),
|
||||
#{WRITER},
|
||||
@@ -6353,6 +6355,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
BPQ.PART_NO,
|
||||
BPQ.PARENT_PART_NO,
|
||||
BPQ.QTY,
|
||||
BPQ.ITEM_QTY,
|
||||
BPQ.SEQ,
|
||||
COALESCE(BPQ.LAST_PART_OBJID, BPQ.PART_NO) AS LAST_PART_OBJID,
|
||||
1 AS LEV,
|
||||
@@ -6380,6 +6383,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
BPQ.PART_NO,
|
||||
BPQ.PARENT_PART_NO,
|
||||
BPQ.QTY,
|
||||
BPQ.ITEM_QTY,
|
||||
BPQ.SEQ,
|
||||
COALESCE(BPQ.LAST_PART_OBJID, BPQ.PART_NO) AS LAST_PART_OBJID,
|
||||
BT.LEV + 1,
|
||||
@@ -6400,12 +6404,14 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
BT.LEV,
|
||||
BT.LEV AS LEVEL,
|
||||
BT.QTY,
|
||||
BT.ITEM_QTY,
|
||||
BT.QTY AS P_QTY,
|
||||
BT.SEQ,
|
||||
-- PART 정보
|
||||
PM.OBJID AS PART_OBJID,
|
||||
PM.PART_NO AS PART_NO_TITLE,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
PM.REVISION AS REV,
|
||||
PM.REVISION,
|
||||
PM.MATERIAL,
|
||||
PM.SPEC,
|
||||
PM.WEIGHT,
|
||||
@@ -7643,6 +7649,15 @@ SELECT PM.OBJID
|
||||
AND PARENT_CODE_ID='0000062'
|
||||
</select>
|
||||
|
||||
<!-- 공급업체명으로 OBJID 조회 -->
|
||||
<select id="getSupplyCodeByName" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID
|
||||
FROM ADMIN_SUPPLY_MNG
|
||||
WHERE SUPPLY_NAME = #{SUPPLY_NAME}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- PART 관리 목록 조회 -->
|
||||
<select id="supplyInfo" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
|
||||
@@ -3064,7 +3064,7 @@ public class PartMngService extends BaseService {
|
||||
insertMap.put("LENGTH", CommonUtils.checkNull((String)insertMap.get("LENGTH")));
|
||||
insertMap.put("PART_TYPE", CommonUtils.checkNull((String)insertMap.get("PART_TYPE")));
|
||||
insertMap.put("REMARK", CommonUtils.checkNull((String)insertMap.get("REMARK")));
|
||||
insertMap.put("SUPPLY_CODE", CommonUtils.checkNull((String)insertMap.get("SUP_CODE")));
|
||||
insertMap.put("SUPPLY_CODE", CommonUtils.checkNull((String)insertMap.get("SUPPLY_CODE")));
|
||||
insertMap.put("MAKER", CommonUtils.checkNull((String)insertMap.get("MAKER")));
|
||||
insertMap.put("POST_PROCESSING", CommonUtils.checkNull((String)insertMap.get("POST_PROCESSING")));
|
||||
// insertMap.put("CONTRACT_OBJID", CommonUtils.checkNull((String)paramMap.get("CONTRACT_OBJID")));
|
||||
@@ -3080,7 +3080,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")));
|
||||
insertMap.put("SUPPLY_CODE", CommonUtils.checkNull((String)insertMap.get("SUPPLY_CODE")));
|
||||
//sqlSession.insert("partMng.insertpartInfo", insertMap);
|
||||
sqlSession.insert("partMng.mergePartMng", insertMap);
|
||||
/*
|
||||
@@ -3292,6 +3292,20 @@ public class PartMngService extends BaseService {
|
||||
}
|
||||
}
|
||||
|
||||
// SUPPLY_CODE 코드 조회 (공급업체명 -> OBJID 변환)
|
||||
String supplyCode = "";
|
||||
if(!StringUtils.isBlank(supplier)) {
|
||||
Map sqlParamMap = new HashMap();
|
||||
sqlParamMap.put("SUPPLY_NAME", supplier);
|
||||
Map supplyMap = sqlSession.selectOne("partMng.getSupplyCodeByName", sqlParamMap);
|
||||
if(null != supplyMap && supplyMap.get("objid") != null){
|
||||
// OBJID는 BIGINT 타입이므로 String으로 변환
|
||||
supplyCode = String.valueOf(supplyMap.get("objid"));
|
||||
} else {
|
||||
noteMsg += "공급업체 확인:" + supplier + ";";
|
||||
}
|
||||
}
|
||||
|
||||
// Map에 데이터 저장
|
||||
partMap.put("LEVEL", level); // 수준 값 (화면 표시용)
|
||||
partMap.put("PARENT_PART_NO", parentPartNo); // 실제 부모 품번 (저장용)
|
||||
@@ -3303,7 +3317,7 @@ public class PartMngService extends BaseService {
|
||||
partMap.put("HEAT_TREATMENT_HARDNESS", heatTreatmentHardness);
|
||||
partMap.put("HEAT_TREATMENT_METHOD", heatTreatmentMethod);
|
||||
partMap.put("SURFACE_TREATMENT", surfaceTreatment);
|
||||
partMap.put("SUPPLIER", supplier);
|
||||
partMap.put("SUPPLY_CODE", supplyCode);
|
||||
partMap.put("PART_TYPE", partTypeCode);
|
||||
partMap.put("NOTE", noteMsg);
|
||||
|
||||
@@ -3626,6 +3640,20 @@ public class PartMngService extends BaseService {
|
||||
}
|
||||
}
|
||||
|
||||
// SUPPLY_CODE 코드 조회 (공급업체명 -> OBJID 변환)
|
||||
String supplyCode = "";
|
||||
if(!StringUtils.isBlank(supplier)) {
|
||||
Map sqlParamMap = new HashMap();
|
||||
sqlParamMap.put("SUPPLY_NAME", supplier);
|
||||
Map supplyMap = sqlSession.selectOne("partMng.getSupplyCodeByName", sqlParamMap);
|
||||
if(null != supplyMap && supplyMap.get("objid") != null){
|
||||
// OBJID는 BIGINT 타입이므로 String으로 변환
|
||||
supplyCode = String.valueOf(supplyMap.get("objid"));
|
||||
} else {
|
||||
noteMsg += "공급업체 확인:" + supplier + ";";
|
||||
}
|
||||
}
|
||||
|
||||
// Map에 데이터 저장
|
||||
partMap.put("PARENT_PART_NO", parentPartNo);
|
||||
partMap.put("PART_NO", partNo);
|
||||
@@ -3636,7 +3664,7 @@ public class PartMngService extends BaseService {
|
||||
partMap.put("HEAT_TREATMENT_HARDNESS", heatHardness);
|
||||
partMap.put("HEAT_TREATMENT_METHOD", heatMethod);
|
||||
partMap.put("SURFACE_TREATMENT", surfaceTreatment);
|
||||
partMap.put("SUPPLIER", supplier);
|
||||
partMap.put("SUPPLY_CODE", supplyCode);
|
||||
partMap.put("PART_TYPE", partTypeCode);
|
||||
partMap.put("NOTE", noteMsg);
|
||||
|
||||
@@ -4412,7 +4440,7 @@ public class PartMngService extends BaseService {
|
||||
insertMap.put("LENGTH", CommonUtils.checkNull((String)insertMap.get("LENGTH")));
|
||||
insertMap.put("PART_TYPE", CommonUtils.checkNull((String)insertMap.get("PART_TYPE")));
|
||||
insertMap.put("REMARK", CommonUtils.checkNull((String)insertMap.get("REMARK")));
|
||||
insertMap.put("SUPPLY_CODE", CommonUtils.checkNull((String)insertMap.get("SUP_CODE")));
|
||||
insertMap.put("SUPPLY_CODE", CommonUtils.checkNull((String)insertMap.get("SUPPLY_CODE")));
|
||||
insertMap.put("MAKER", CommonUtils.checkNull((String)insertMap.get("MAKER")));
|
||||
insertMap.put("POST_PROCESSING", CommonUtils.checkNull((String)insertMap.get("POST_PROCESSING")));
|
||||
insertMap.put("HEAT_TREATMENT_HARDNESS", CommonUtils.checkNull((String)insertMap.get("HEAT_TREATMENT_HARDNESS")));
|
||||
@@ -4424,6 +4452,12 @@ public class PartMngService extends BaseService {
|
||||
insertMap.put("CONTRACT_OBJID", CommonUtils.checkNull((String)paramMap.get("CONTRACT_OBJID")));
|
||||
insertMap.put("PRODUCT_MGMT_OBJID", CommonUtils.checkNull((String)paramMap.get("product_mgmt_objid")));
|
||||
insertMap.put("CONNECTUSERID", CommonUtils.checkNull((String)paramMap.get("CONNECTUSERID")));
|
||||
|
||||
// 디버깅: SUPPLY_CODE 값 확인
|
||||
//System.out.println("=== SUPPLY_CODE DEBUG ===");
|
||||
//System.out.println("PART_NO: " + PART_NO);
|
||||
//System.out.println("SUPPLY_CODE: " + insertMap.get("SUPPLY_CODE"));
|
||||
//System.out.println("========================");
|
||||
|
||||
partobjMap.put("PART_NO", PART_NO);
|
||||
resultMap = (HashMap)sqlSession.selectOne("partMng.getPartObjid", partobjMap); //part_no로 is_last = 1 건 조회
|
||||
|
||||
Reference in New Issue
Block a user