diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/partMng.xml b/WebContent/WEB-INF/classes/com/pms/mapper/partMng.xml index 90d9e45..c76539d 100644 --- a/WebContent/WEB-INF/classes/com/pms/mapper/partMng.xml +++ b/WebContent/WEB-INF/classes/com/pms/mapper/partMng.xml @@ -3210,12 +3210,15 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.* ,P.OUT_DIAMETER ,P.IN_DIAMETER ,P.LENGTH - ,P.SOURCING_CODE - ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('3D_CAD')) AS CU01_CNT - ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) AS CU02_CNT - ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_PDF_CAD')) AS CU03_CNT - - ,V.LEV + ,P.SOURCING_CODE + ,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.DOC_TYPE IN ('3D_CAD')) AS CU01_CNT + ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) AS CU02_CNT + ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_PDF_CAD')) AS CU03_CNT + + ,V.LEV ,(SELECT OBJID FROM VIEW_BOM VT WHERE V.BOM_REPORT_OBJID = VT.BOM_REPORT_OBJID AND VT.LEV = 1 ORDER BY SEQ LIMIT 1) AS ROOT_OBJID ,(SELECT OBJID FROM VIEW_BOM VT WHERE V.BOM_REPORT_OBJID = VT.BOM_REPORT_OBJID AND VT.LEV = 1 ORDER BY SEQ LIMIT 1) AS SUB_ROOT_OBJID ,( SELECT diff --git a/WebContent/WEB-INF/view/partMng/structureList.jsp b/WebContent/WEB-INF/view/partMng/structureList.jsp index 14ef481..b4dccbd 100644 --- a/WebContent/WEB-INF/view/partMng/structureList.jsp +++ b/WebContent/WEB-INF/view/partMng/structureList.jsp @@ -462,7 +462,7 @@ function fn_openSetBomCopy(product_code){ * 구조등록 팝업 */ function fn_openSetStructure(objId){ - window.open("/partMng/setStructurePopupMainFS.do?objId="+objId, "", "width=1880, height=900, resizable=no"); + window.open("/partMng/setStructurePopupMainFS.do?objId="+objId, "", "width=1880, height=900, resizable=yes"); } /** * 배포사유 입력 팝업 diff --git a/WebContent/WEB-INF/view/partMng/structurePopupCenter.jsp b/WebContent/WEB-INF/view/partMng/structurePopupCenter.jsp index d270675..8f0b59d 100644 --- a/WebContent/WEB-INF/view/partMng/structurePopupCenter.jsp +++ b/WebContent/WEB-INF/view/partMng/structurePopupCenter.jsp @@ -10,33 +10,31 @@ - - - - -<%=Constants.SYSTEM_NAME%> @@ -240,134 +443,20 @@ function fn_excel() { -
-
(${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})_${info.REV}
-
※수량 변경 후, 엔터치시면 저장됩니다.(신규 추가 파트만 가능)
-
- - - <% if(Maxlevel == 0){%> - - <%}else{%> - - <%} - for(int i=0; i< Maxlevel; i++){%> - - <%}%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Level품번품명수량3D2DPDF재질사양(규격)MAKERRevisionEO NoEO DatePART 구분
- - - - <% if(Maxlevel == 0){%> - - <%}else{%> - - <%} - for(int i=0; i< Maxlevel; i++){%> - - <%}%> - - - - - - - - - - - - - - - - - - - - - <% - for(int i=0; i< Maxlevel; i++){ - if(levelarr[z] == (i+1)){%> - - <% }else{ %> - - <% } - } - z++; - %> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *
${item.PART_NO}
${item.PART_NAME}${item.QTY_TEMP}${item.MATERIAL}${item.SPEC}${item.MAKER}${item.REVISION}${item.EO_NO}${item.EO_DATE}${item.PART_TYPE_TITLE}
등록된 구조정보가 없습니다.
-
-
+ + + +
+
+ (${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})_${info.REV} + +
+
+ ※수량 변경 후, 엔터치시면 저장됩니다.(신규 추가 파트만 가능) +
+ +
- \ No newline at end of file + diff --git a/WebContent/WEB-INF/view/partMng/structurePopupRight.jsp b/WebContent/WEB-INF/view/partMng/structurePopupRight.jsp index 20d577e..31386eb 100644 --- a/WebContent/WEB-INF/view/partMng/structurePopupRight.jsp +++ b/WebContent/WEB-INF/view/partMng/structurePopupRight.jsp @@ -8,6 +8,8 @@ <%=Constants.SYSTEM_NAME%> + + -
+

- 구조등록 + E-BOM 확인/수정

+ + +
+ + + + + + + + + + +
+ + + + + + +
+
\ No newline at end of file diff --git a/rebuild-and-restart.sh b/rebuild-and-restart.sh index 67a94f7..bf645be 100755 --- a/rebuild-and-restart.sh +++ b/rebuild-and-restart.sh @@ -24,8 +24,9 @@ echo "" # 2단계: 도커 중지 및 삭제 echo -e "${YELLOW}[2/3] 기존 도커 컨테이너 중지 및 삭제 중...${NC}" -docker-compose -f docker-compose.dev.yml down 2>&1 | grep -v "level=warning" -if [ $? -ne 0 ]; then +docker-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}" exit 1 fi @@ -34,14 +35,14 @@ 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 -if [ $? -ne 0 ]; then +docker-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" -if [ $? -ne 0 ]; then +docker-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 fi diff --git a/src/com/pms/controller/PartMngController.java b/src/com/pms/controller/PartMngController.java index 4202030..e62c205 100644 --- a/src/com/pms/controller/PartMngController.java +++ b/src/com/pms/controller/PartMngController.java @@ -875,6 +875,14 @@ public class PartMngController { @RequestMapping("/partMng/structureHeaderPopup.do") public String structureHeaderPopup(HttpServletRequest request, @RequestParam Map paramMap){ + Map code_map = new HashMap(); + try { + // 제품구분 (PART_TYPE) + code_map.put("product_cd", commonService.bizMakeOptionList("0000001", CommonUtils.nullToEmpty((String)paramMap.get("product")),"common.getCodeselect")); + } catch (Exception e) { + e.printStackTrace(); + } + request.setAttribute("code_map", code_map); return "/partMng/structurePopupTop"; } @@ -928,6 +936,27 @@ public class PartMngController { return "/partMng/structurePopupLeft"+("excel".equals(actionType) ? "Excel" : ""); } + /** + * 구조등록 좌측 프레임 JSON 데이터 + * @param request + * @param paramMap + * @return + */ + @RequestMapping("/partMng/getStructureTreeJson.do") + @ResponseBody + public List getStructureTreeJson(HttpServletRequest request, @RequestParam Map paramMap){ + List bomTreeList = null; + + try{ + Map info = partMngService.getBOMStructureStandardInfo(request,paramMap); + bomTreeList = partMngService.getBOMPartTreeList(info); + }catch(Exception e){ + e.printStackTrace(); + } + + return bomTreeList != null ? bomTreeList : new ArrayList(); + } + @RequestMapping("/partMng/structurePopupCenter.do") public String structurePopupCenter(HttpServletRequest request, @RequestParam Map paramMap){ diff --git a/src/com/pms/mapper/partMng.xml b/src/com/pms/mapper/partMng.xml index 90d9e45..c76539d 100644 --- a/src/com/pms/mapper/partMng.xml +++ b/src/com/pms/mapper/partMng.xml @@ -3210,12 +3210,15 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.* ,P.OUT_DIAMETER ,P.IN_DIAMETER ,P.LENGTH - ,P.SOURCING_CODE - ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('3D_CAD')) AS CU01_CNT - ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) AS CU02_CNT - ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_PDF_CAD')) AS CU03_CNT - - ,V.LEV + ,P.SOURCING_CODE + ,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.DOC_TYPE IN ('3D_CAD')) AS CU01_CNT + ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) AS CU02_CNT + ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.DOC_TYPE IN ('2D_PDF_CAD')) AS CU03_CNT + + ,V.LEV ,(SELECT OBJID FROM VIEW_BOM VT WHERE V.BOM_REPORT_OBJID = VT.BOM_REPORT_OBJID AND VT.LEV = 1 ORDER BY SEQ LIMIT 1) AS ROOT_OBJID ,(SELECT OBJID FROM VIEW_BOM VT WHERE V.BOM_REPORT_OBJID = VT.BOM_REPORT_OBJID AND VT.LEV = 1 ORDER BY SEQ LIMIT 1) AS SUB_ROOT_OBJID ,( SELECT