This commit is contained in:
2025-10-27 13:41:53 +09:00
7 changed files with 67 additions and 17 deletions

View File

@@ -2912,7 +2912,10 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
DEPLOY_DATE,
EO_NO,
EO_DATE,
NOTE
NOTE,
<!-- PART_BOM_REPORT 테이블에 저장된 품번/품명 사용 -->
T.PART_NO,
T.PART_NAME
FROM PART_BOM_REPORT AS T
WHERE 1=1

View File

@@ -2,7 +2,7 @@
java.util.Map map = (java.util.HashMap)request.getAttribute("info");
%>
<frameset rows="100px, *, 50px" border="0" noresize>
<frame src="/partMng/structureHeaderPopup.do">
<frame src="/partMng/structureHeaderPopup.do?objId=<%=com.pms.common.utils.CommonUtils.checkNull(map.get("OBJID"))%>">
<frame src="/partMng/structureBottomPopupFS.do?objId=<%=com.pms.common.utils.CommonUtils.checkNull(map.get("OBJID"))%>">
<frame src="/partMng/structureBtnAreaPopup.do">
</frameset><noframes></noframes>

View File

@@ -448,7 +448,16 @@ function fn_resetFilter() {
<input type="hidden" id="filterPartName" />
<div id="structureTableWrap1">
<div id="structureName">
(${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})_${info.REV}
<span style="font-weight: bold; color: #333;">
<c:choose>
<c:when test="${not empty info.PART_NO}">
${info.PART_NO}
</c:when>
<c:otherwise>
(${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})_${info.REVISION}
</c:otherwise>
</c:choose>
</span>
<input type="button" value="Excel Download" class="plm_btns structure_btn" id="btnExcel" style="float:right;">
</div>
<div id="structureName2">

View File

@@ -9,14 +9,20 @@ java.text.SimpleDateFormat frm= new java.text.SimpleDateFormat ("yyyy_MM_dd_HH_m
Calendar cal = Calendar.getInstance();
String todayKor = frm.format(cal.getTime());
ArrayList list = (ArrayList)request.getAttribute("tree");
Map sumPriceMap = (Map)request.getAttribute("info");
// 품번 정보가 있으면 파일명에 사용
String partNo = CommonUtils.checkNull(sumPriceMap.get("PART_NO"));
String excelName = "구조등록";
String encodeName = excelName+todayKor+".xls";
if(!partNo.isEmpty()) {
excelName = partNo;
}
String encodeName = excelName+"_"+todayKor+".xls";
String fileName = java.net.URLEncoder.encode(encodeName,"UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+fileName+"");
response.setHeader("Content-Description", "JSP Generated Data");
ArrayList list = (ArrayList)request.getAttribute("tree");
Map sumPriceMap = (Map)request.getAttribute("info");
int z = 0;
int Maxlevel = 0;
@@ -50,7 +56,19 @@ if(null != list && 0 < list.size()){
<section class="min_part_search">
<div class="pdm_menu_name">
<h2>
<span>구조등록(${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})</span>
<span>구조등록
<%
if(!partNo.isEmpty()) {
%>
(<%=partNo%>)
<%
} else {
%>
(${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})_${info.REVISION}
<%
}
%>
</span>
</h2>
</div>
<div class="contents_page_basic_margin">

View File

@@ -44,6 +44,15 @@ $(document).ready(function(){
fn_applyFilter();
}
});
// 페이지 로드 시 품번/품명이 있으면 자동으로 필터 적용
var partNo = $("#filterPartNo").val().trim();
var partName = $("#filterPartName").val().trim();
if(partNo || partName) {
setTimeout(function() {
fn_applyFilter();
}, 500);
}
});
// 필터 적용 함수
@@ -91,6 +100,14 @@ function fn_resetFilter() {
<div class="plm_menu_name">
<h2>
<span>E-BOM 확인/수정</span>
<c:if test="${not empty partNo}">
<span style="font-size: 14px; font-weight: normal; color: #666; margin-left: 20px;">
품번: <strong style="color: #333;">${partNo}</strong>
<c:if test="${not empty partName}">
/ 품명: <strong style="color: #333;">${partName}</strong>
</c:if>
</span>
</c:if>
</h2>
</div>
@@ -100,12 +117,12 @@ function fn_resetFilter() {
<tr>
<td class="label"><label for="filterPartNo">품번</label></td>
<td>
<input type="text" id="filterPartNo" name="filterPartNo">
<input type="text" id="filterPartNo" name="filterPartNo" value="${partNo}">
</td>
<td class="label"><label for="filterPartName">품명</label></td>
<td>
<input type="text" id="filterPartName" name="filterPartName">
<input type="text" id="filterPartName" name="filterPartName" value="${partName}">
</td>
<td>

View File

@@ -24,7 +24,7 @@ echo ""
# 2단계: 도커 중지 및 삭제
echo -e "${YELLOW}[2/3] 기존 도커 컨테이너 중지 및 삭제 중...${NC}"
docker-compose -f docker-compose.dev.yml down 2>&1 | grep -v "level=warning" || true
podman-compose -f docker-compose.dev.yml down 2>&1 | grep -v "level=warning" || true
# PIPESTATUS[0]로 docker-compose의 실제 종료 코드 확인
if [ ${PIPESTATUS[0]} -ne 0 ]; then
echo -e "${RED}✗ 도커 중지 실패!${NC}"
@@ -35,13 +35,13 @@ echo ""
# 3단계: 도커 이미지 재빌드 및 시작
echo -e "${YELLOW}[3/3] 도커 이미지 재빌드 및 시작 중...${NC}"
docker-compose -f docker-compose.dev.yml build --no-cache 2>&1 | grep -v "level=warning" | tail -5 || true
podman-compose -f docker-compose.dev.yml build --no-cache 2>&1 | grep -v "level=warning" | tail -5 || true
if [ ${PIPESTATUS[0]} -ne 0 ]; then
echo -e "${RED}✗ 도커 빌드 실패!${NC}"
exit 1
fi
docker-compose -f docker-compose.dev.yml up -d 2>&1 | grep -v "level=warning" || true
podman-compose -f docker-compose.dev.yml up -d 2>&1 | grep -v "level=warning" || true
if [ ${PIPESTATUS[0]} -ne 0 ]; then
echo -e "${RED}✗ 도커 시작 실패!${NC}"
exit 1
@@ -54,7 +54,7 @@ echo -e "${YELLOW}Tomcat 시작 대기 중...${NC}"
sleep 10
# 상태 확인
docker ps | grep wace-plm-dev > /dev/null
podman ps | grep wace-plm-dev > /dev/null
if [ $? -eq 0 ]; then
echo ""
echo -e "${GREEN}================================${NC}"
@@ -65,11 +65,11 @@ if [ $? -eq 0 ]; then
echo ""
# 로그 확인 팁
echo -e "${YELLOW}💡 로그 확인: ${NC}docker logs -f wace-plm-dev"
echo -e "${YELLOW}💡 컨테이너 중지: ${NC}docker-compose -f docker-compose.dev.yml down"
echo -e "${YELLOW}💡 로그 확인: ${NC}podman logs -f wace-plm-dev"
echo -e "${YELLOW}💡 컨테이너 중지: ${NC}podman-compose -f docker-compose.dev.yml down"
else
echo -e "${RED}✗ 컨테이너가 실행되지 않았습니다!${NC}"
echo -e "${YELLOW}로그 확인: ${NC}docker logs wace-plm-dev"
echo -e "${YELLOW}로그 확인: ${NC}podman logs wace-plm-dev"
exit 1
fi

View File

@@ -2997,7 +2997,10 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
DEPLOY_DATE,
EO_NO,
EO_DATE,
NOTE
NOTE,
<!-- PART_BOM_REPORT 테이블에 저장된 품번/품명 사용 -->
T.PART_NO,
T.PART_NAME
FROM PART_BOM_REPORT AS T
WHERE 1=1