영업관리 화면 수정 등...
This commit is contained in:
@@ -1201,12 +1201,13 @@ public class ProductionPlanningController extends BaseService {
|
||||
mbomDetailList = commonService.selectList("partMng.getBOMTreeList", request, bomParam);
|
||||
System.out.println("할당된 E-BOM 조회 - mbomDetailList size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
||||
} else if("ASSIGNED_MBOM".equals(bomDataType)) {
|
||||
// 할당된 M-BOM: MBOM_DETAIL 테이블에서 조회 (ORDER_QTY, PRODUCTION_QTY 포함)
|
||||
// 할당된 M-BOM: 구조만 조회 (생산 정보 제외)
|
||||
Map<String, Object> mbomParam = new HashMap<>();
|
||||
mbomParam.put("mbomHeaderObjid", bomReportObjid);
|
||||
List tempList = commonService.selectList("productionplanning.getSavedMbomTreeList", request, mbomParam);
|
||||
mbomDetailList = (List<Map<String, Object>>) (List<?>) CommonUtils.keyChangeUpperList(tempList);
|
||||
System.out.println("할당된 M-BOM 조회 - mbomDetailList size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
||||
List tempList = commonService.selectList("productionplanning.getMbomStructureOnly", request, mbomParam);
|
||||
// UpperKeyMap으로 이미 대문자 변환되어 오므로 keyChangeUpperList 불필요
|
||||
mbomDetailList = (List<Map<String, Object>>) (List<?>) tempList;
|
||||
System.out.println("할당된 M-BOM 구조만 조회 - size: " + (mbomDetailList != null ? mbomDetailList.size() : 0));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4095,6 +4095,166 @@
|
||||
ORDER BY V.PATH2
|
||||
</select>
|
||||
|
||||
<!-- M-BOM 구조만 조회 (할당용 - 생산 정보 제외) -->
|
||||
<select id="getMbomStructureOnly" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
/* productionplanning.getMbomStructureOnly - M-BOM 구조만 조회 (생산 정보 제외) */
|
||||
WITH RECURSIVE VIEW_BOM(
|
||||
MBOM_HEADER_OBJID,
|
||||
OBJID,
|
||||
PARENT_OBJID,
|
||||
CHILD_OBJID,
|
||||
PART_OBJID,
|
||||
PART_NO,
|
||||
PART_NAME,
|
||||
QTY,
|
||||
ITEM_QTY,
|
||||
QTY_TEMP,
|
||||
REGDATE,
|
||||
SEQ,
|
||||
STATUS,
|
||||
LEV,
|
||||
PATH,
|
||||
PATH2,
|
||||
CYCLE,
|
||||
UNIT,
|
||||
WRITER
|
||||
) AS (
|
||||
SELECT
|
||||
A.MBOM_HEADER_OBJID,
|
||||
A.OBJID,
|
||||
A.PARENT_OBJID,
|
||||
A.CHILD_OBJID,
|
||||
A.PART_OBJID,
|
||||
A.PART_NO,
|
||||
A.PART_NAME,
|
||||
A.QTY,
|
||||
A.QTY,
|
||||
A.QTY,
|
||||
A.REGDATE,
|
||||
A.SEQ,
|
||||
A.STATUS,
|
||||
1,
|
||||
ARRAY [A.CHILD_OBJID::TEXT],
|
||||
ARRAY [A.SEQ::TEXT],
|
||||
FALSE,
|
||||
A.UNIT,
|
||||
A.WRITER
|
||||
FROM
|
||||
MBOM_DETAIL A
|
||||
WHERE 1=1
|
||||
AND (A.PARENT_OBJID IS NULL OR A.PARENT_OBJID = '')
|
||||
AND A.MBOM_HEADER_OBJID = #{mbomHeaderObjid}
|
||||
AND A.STATUS = 'ACTIVE'
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
B.MBOM_HEADER_OBJID,
|
||||
B.OBJID,
|
||||
B.PARENT_OBJID,
|
||||
B.CHILD_OBJID,
|
||||
B.PART_OBJID,
|
||||
B.PART_NO,
|
||||
B.PART_NAME,
|
||||
B.QTY,
|
||||
B.QTY,
|
||||
B.QTY,
|
||||
B.REGDATE,
|
||||
B.SEQ,
|
||||
B.STATUS,
|
||||
LEV + 1,
|
||||
PATH||B.CHILD_OBJID::TEXT,
|
||||
PATH2||B.SEQ::TEXT,
|
||||
B.PARENT_OBJID = ANY(PATH),
|
||||
B.UNIT,
|
||||
B.WRITER
|
||||
FROM
|
||||
MBOM_DETAIL B
|
||||
JOIN
|
||||
VIEW_BOM
|
||||
ON B.PARENT_OBJID = VIEW_BOM.CHILD_OBJID
|
||||
AND VIEW_BOM.MBOM_HEADER_OBJID = B.MBOM_HEADER_OBJID
|
||||
AND B.STATUS = 'ACTIVE'
|
||||
)
|
||||
SELECT
|
||||
V.MBOM_HEADER_OBJID AS BOM_REPORT_OBJID,
|
||||
V.OBJID,
|
||||
V.PARENT_OBJID,
|
||||
V.CHILD_OBJID,
|
||||
V.PART_OBJID,
|
||||
V.PART_OBJID AS LAST_PART_OBJID,
|
||||
V.PART_OBJID AS BOM_LAST_PART_OBJID,
|
||||
V.PART_NO,
|
||||
V.PART_NAME,
|
||||
V.QTY,
|
||||
V.ITEM_QTY,
|
||||
V.QTY_TEMP,
|
||||
V.LEV AS LEVEL,
|
||||
(SELECT COUNT(*) FROM MBOM_DETAIL WHERE PARENT_OBJID = V.CHILD_OBJID) AS SUB_PART_CNT,
|
||||
V.SEQ,
|
||||
V.STATUS,
|
||||
V.UNIT,
|
||||
V.WRITER,
|
||||
TO_CHAR(V.REGDATE, 'YYYY-MM-DD HH24:MI:SS') AS REGDATE,
|
||||
-- 생산 정보는 모두 NULL
|
||||
NULL AS SUPPLY_TYPE,
|
||||
NULL AS MAKE_OR_BUY,
|
||||
NULL AS RAW_MATERIAL_NO,
|
||||
NULL AS RAW_MATERIAL_SPEC,
|
||||
NULL AS RAW_MATERIAL,
|
||||
NULL AS SIZE,
|
||||
NULL AS PROCESSING_VENDOR,
|
||||
NULL AS PROCESSING_DEADLINE,
|
||||
NULL AS GRINDING_DEADLINE,
|
||||
NULL AS REQUIRED_QTY,
|
||||
NULL AS ORDER_QTY,
|
||||
NULL AS PRODUCTION_QTY,
|
||||
NULL AS STOCK_QTY,
|
||||
NULL AS SHORTAGE_QTY,
|
||||
NULL AS VENDOR,
|
||||
NULL AS UNIT_PRICE,
|
||||
NULL AS TOTAL_PRICE,
|
||||
NULL AS CURRENCY,
|
||||
NULL AS LEAD_TIME,
|
||||
NULL AS MIN_ORDER_QTY,
|
||||
NULL AS EDITER,
|
||||
NULL AS EDIT_DATE,
|
||||
NULL AS REMARK,
|
||||
-- E-BOM 호환 필드
|
||||
NULL AS PARENT_PART_NO,
|
||||
NULL AS CONTRACT_OBJID,
|
||||
CASE WHEN V.LEV = 1 THEN V.OBJID ELSE NULL END AS ROOT_OBJID,
|
||||
CASE WHEN V.LEV = 1 THEN V.OBJID ELSE NULL END AS SUB_ROOT_OBJID,
|
||||
1 AS LEAF,
|
||||
-- PART_MNG 테이블에서 파트 속성 정보
|
||||
P.SPEC,
|
||||
P.MATERIAL,
|
||||
P.WEIGHT,
|
||||
P.PART_TYPE,
|
||||
P.REVISION,
|
||||
P.MAKER,
|
||||
P.THICKNESS,
|
||||
P.WIDTH,
|
||||
P.HEIGHT,
|
||||
P.OUT_DIAMETER,
|
||||
P.IN_DIAMETER,
|
||||
P.LENGTH,
|
||||
P.SOURCING_CODE,
|
||||
P.HEAT_TREATMENT_HARDNESS,
|
||||
P.HEAT_TREATMENT_METHOD,
|
||||
P.SURFACE_TREATMENT,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = P.UNIT) AS UNIT_TITLE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = P.PART_TYPE) AS PART_TYPE_TITLE,
|
||||
(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')) AS 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')) AS 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')) AS CU03_CNT,
|
||||
V.LEV
|
||||
FROM VIEW_BOM V
|
||||
INNER JOIN PART_MNG P ON P.OBJID = V.PART_OBJID
|
||||
WHERE 1=1
|
||||
ORDER BY V.PATH2
|
||||
</select>
|
||||
|
||||
<!-- MBOM_HEADER 테이블에 OBJID 존재 여부 확인 -->
|
||||
<select id="checkMbomHeaderExists" parameterType="map" resultType="int">
|
||||
/* productionplanning.checkMbomHeaderExists - M-BOM 존재 확인 */
|
||||
|
||||
Reference in New Issue
Block a user