diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml b/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml
index ea7fc45..fbadf53 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/productionplanning.xml
@@ -3049,7 +3049,7 @@
- AND CM.AREA_CD = #{search_area_cd}
+ AND CODE_NAME(CM.AREA_CD) = #{search_area_cd}
@@ -3060,7 +3060,11 @@
- AND CM.CUSTOMER_OBJID = REPLACE(#{search_customer_objid}, 'C_', '')
+ AND (
+ CM.CUSTOMER_OBJID = #{search_customer_objid}
+ OR CM.CUSTOMER_OBJID = REPLACE(#{search_customer_objid}, 'C_', '')
+ OR 'C_' || CM.CUSTOMER_OBJID = #{search_customer_objid}
+ )
@@ -3077,10 +3081,10 @@
- = TO_DATE(#{search_req_del_date_from}, 'YYYY-MM-DD')]]>
+ = #{search_req_del_date_from}]]>
-
+
diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/quality.xml b/WebContent/WEB-INF/classes/com/pms/mapper/quality.xml
index 993b93d..d1f2eaa 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/quality.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/quality.xml
@@ -711,10 +711,9 @@
,DEFECT.INSPECTOR_NAME_DISPLAY AS INSPECTOR_NAME
/* 검사일: YYYY-MM-DD 외 N건 형태 */
,DEFECT.INSPECTION_DATE_DISPLAY AS INSPECTION_DATE
- /* 검사결과: 하나라도 NG면 NG, 검사 대상(스킵 제외) 모두 검사완료면 OK, 일부만 검사면 검사중 */
- ,(CASE WHEN DEFECT.NG_COUNT > 0 THEN 'NG'
- WHEN DEFECT.INSPECTION_TARGET_COUNT > 0 AND DEFECT.INSPECTION_TARGET_COUNT = DEFECT.INSPECTED_COUNT THEN 'OK'
- WHEN DEFECT.INSPECTED_COUNT > 0 THEN '검사중'
+ /* 검사현황: 불량상세 처리결과(ACTION_RESULT)가 전부 있으면 완료, 일부만 있으면 진행중 */
+ ,(CASE WHEN DEFECT.DEFECT_TOTAL_COUNT > 0 AND DEFECT.DEFECT_TOTAL_COUNT = DEFECT.ACTION_RESULT_COUNT THEN '완료'
+ WHEN DEFECT.ACTION_RESULT_COUNT > 0 THEN '진행중'
ELSE '' END) AS INSPECTION_RESULT
/* 검사여부: 검사가 하나라도 있으면 '검사', 모두 스킵이면 '스킵', 아무것도 없으면 빈값 */
@@ -764,6 +763,10 @@
END AS INSPECTION_DATE_DISPLAY
/* 검사 대상 건수 (스킵 제외, 검사인 항목만) */
,COUNT(CASE WHEN IID2.INSPECTION_YN = '검사' THEN 1 END) AS INSPECTION_TARGET_COUNT
+ /* 불량상세 테이블 전체 건수 (검사인 항목 기준) */
+ ,COUNT(CASE WHEN IID2.INSPECTION_YN = '검사' THEN IDF.OBJID END) AS DEFECT_TOTAL_COUNT
+ /* 처리결과(ACTION_RESULT) 입력된 건수 */
+ ,COUNT(CASE WHEN IID2.INSPECTION_YN = '검사' AND IDF.ACTION_RESULT IS NOT NULL AND IDF.ACTION_RESULT != '' THEN 1 END) AS ACTION_RESULT_COUNT
/* 검사결과 입력된 건수 */
,COUNT(CASE WHEN IDF.INSPECTION_RESULT IS NOT NULL AND IDF.INSPECTION_RESULT != '' THEN 1 END) AS INSPECTED_COUNT
,COUNT(CASE WHEN IDF.INSPECTION_RESULT = 'NG' THEN 1 END) AS NG_COUNT
@@ -885,6 +888,40 @@
AND REQ.DELIVERY_TOTAL_COUNT = REQ.SELECTED_COUNT
AND REQ.SELECTED_COUNT > 0
+
+
+ AND CM.PRODUCT = #{search_product_cd}
+
+
+
+
+ AND IID.INSPECTION_YN_COUNT > 0
+
+
+ AND IID.SKIP_YN_COUNT > 0 AND IID.INSPECTION_YN_COUNT = 0
+
+
+
+
+
+ AND REQ.DELIVERY_TOTAL_COUNT > 0 AND REQ.SELECTED_COUNT = 0
+
+
+ AND REQ.SELECTED_COUNT > 0 AND REQ.SELECTED_COUNT REQ.DELIVERY_TOTAL_COUNT
+
+
+ AND REQ.DELIVERY_TOTAL_COUNT > 0 AND REQ.SELECTED_COUNT = REQ.DELIVERY_TOTAL_COUNT
+
+
+
+
+
+ AND DEFECT.DEFECT_TOTAL_COUNT > 0 AND DEFECT.DEFECT_TOTAL_COUNT = DEFECT.ACTION_RESULT_COUNT
+
+
+ AND DEFECT.ACTION_RESULT_COUNT > 0 AND DEFECT.DEFECT_TOTAL_COUNT != DEFECT.ACTION_RESULT_COUNT
+
+
ORDER BY POM.REGDATE DESC
@@ -1108,6 +1145,7 @@
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
) AS INSPECTION_RESULT
, PIM.REMARK
+ , (SELECT COUNT(*) FROM ATTACH_FILE_INFO F WHERE F.TARGET_OBJID = PIM.OBJID AND F.DOC_TYPE = 'PROCESS_INSPECTION_FILE' AND UPPER(F.STATUS) = 'ACTIVE') AS PROCESS_INSPECTION_FILE_CNT
FROM PROCESS_INSPECTION_MASTER PIM
WHERE 1=1
/* 프로젝트번호 */
@@ -2317,6 +2355,14 @@
, IID.REMARK
, IMI.PURCHASE_ORDER_MASTER_OBJID
, POM.PURCHASE_ORDER_NO
+ /* 불량수량 합계 (INCOMING_INSPECTION_DETAIL.DEFECT_QTY에 저장된 값 사용) */
+ , COALESCE(NULLIF(IID.DEFECT_QTY, '')::NUMERIC, 0) AS DEFECT_QTY_SUM
+ /* 불량율 (불량수량합계 / 입고수량 * 100) */
+ , CASE WHEN IMI.RECEIPT_QTY::NUMERIC > 0
+ THEN ROUND(COALESCE(NULLIF(IID.DEFECT_QTY, '')::NUMERIC, 0) / IMI.RECEIPT_QTY::NUMERIC * 100, 2)
+ ELSE NULL END AS LEFT_DEFECT_RATE
+ /* 검사성적서 파일 수 */
+ , (SELECT COUNT(*) FROM ATTACH_FILE_INFO AFI WHERE AFI.TARGET_OBJID = IID.OBJID AND AFI.DOC_TYPE = 'INSPECTION_REPORT' AND UPPER(AFI.STATUS) = 'ACTIVE') AS INSPECTION_FILE_CNT
FROM INVENTORY_MGMT_IN IMI
INNER JOIN INVENTORY_MGMT IM ON IM.OBJID = IMI.PARENT_OBJID
INNER JOIN PART_MNG PM ON PM.OBJID::VARCHAR = IM.PART_OBJID
diff --git a/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp b/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp
index 4e60b21..58bd93e 100644
--- a/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp
+++ b/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp
@@ -684,7 +684,8 @@ function fn_openPurchaseListPopup() {
diff --git a/WebContent/WEB-INF/view/quality/incomingInspectionList.jsp b/WebContent/WEB-INF/view/quality/incomingInspectionList.jsp
index 4e3716d..f2a1933 100644
--- a/WebContent/WEB-INF/view/quality/incomingInspectionList.jsp
+++ b/WebContent/WEB-INF/view/quality/incomingInspectionList.jsp
@@ -259,6 +259,33 @@ function fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS){
+
|
+
+
+ |
+
+ |
+
+
+ |
+
+ |
+
+
+ |
+
|
|
diff --git a/WebContent/WEB-INF/view/quality/incomingInspectionProgressList.jsp b/WebContent/WEB-INF/view/quality/incomingInspectionProgressList.jsp
index fe593b9..d754792 100644
--- a/WebContent/WEB-INF/view/quality/incomingInspectionProgressList.jsp
+++ b/WebContent/WEB-INF/view/quality/incomingInspectionProgressList.jsp
@@ -320,6 +320,14 @@ function fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS){
+ |
+
+
+ |
+
|
|
@@ -329,12 +337,12 @@ function fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS){
- |
+ |
- |
diff --git a/src/com/pms/controller/ProductionPlanningController.java b/src/com/pms/controller/ProductionPlanningController.java
index 90edd93..c9280c9 100644
--- a/src/com/pms/controller/ProductionPlanningController.java
+++ b/src/com/pms/controller/ProductionPlanningController.java
@@ -889,12 +889,12 @@ public class ProductionPlanningController extends BaseService {
public String mBomMgmt(HttpServletRequest request, @RequestParam Map paramMap){
Map code_map = new HashMap();
try{
- // 주문유형 (0001406)
- code_map.put("category_cd", commonService.bizMakeOptionList("0001406", (String)paramMap.get("search_category_cd"), "common.getCodeselect"));
+ // 주문유형 (0000167)
+ code_map.put("category_cd", commonService.bizMakeOptionList("0000167", (String)paramMap.get("search_category_cd"), "common.getCodeselect"));
// 제품구분 (0000001)
code_map.put("product_cd", commonService.bizMakeOptionList("0000001", (String)paramMap.get("search_product_cd"), "common.getCodeselect"));
- // 국내/해외 (0001395)
- code_map.put("area_cd", commonService.bizMakeOptionList("0001395", (String)paramMap.get("search_area_cd"), "common.getCodeselect"));
+ // 국내/해외 (0000172)
+ code_map.put("area_cd", commonService.bizMakeOptionList("0000172", (String)paramMap.get("search_area_cd"), "common.getCodeselect"));
// 고객사 (SUPPLY_MNG + CLIENT_MNG)
code_map.put("customer_cd", commonService.bizMakeOptionList("", (String)paramMap.get("search_customer_objid"), "common.getAllSupplySelect"));
diff --git a/src/com/pms/controller/QualityController.java b/src/com/pms/controller/QualityController.java
index 56bb747..0b1b72f 100644
--- a/src/com/pms/controller/QualityController.java
+++ b/src/com/pms/controller/QualityController.java
@@ -276,6 +276,8 @@ public class QualityController {
code_map.put("partner_objid", commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"), "common.getClientMngSupplySelect"));
// 요청자
code_map.put("request_user_id", commonService.bizMakeOptionList("", (String)paramMap.get("request_user_id"), "common.getUserselect"));
+ // 제품구분
+ code_map.put("product_cd", commonService.bizMakeOptionList("0000001", (String)paramMap.get("search_product_cd"), "common.getCodeselect"));
list = commonService.selectListPaging("quality.getIncomingInspectionList", request, paramMap);
} catch(Exception e) {
@@ -306,6 +308,8 @@ public class QualityController {
code_map.put("partner_objid", commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"), "common.getClientMngSupplySelect"));
// 검사자
code_map.put("inspector_id", commonService.bizMakeOptionList("", (String)paramMap.get("inspector_id"), "common.getUserselect"));
+ // 제품구분
+ code_map.put("product_cd", commonService.bizMakeOptionList("0000001", (String)paramMap.get("search_product_cd"), "common.getCodeselect"));
list = commonService.selectListPaging("quality.getIncomingInspectionList", request, paramMap);
} catch(Exception e) {
diff --git a/src/com/pms/mapper/productionplanning.xml b/src/com/pms/mapper/productionplanning.xml
index ea7fc45..fbadf53 100644
--- a/src/com/pms/mapper/productionplanning.xml
+++ b/src/com/pms/mapper/productionplanning.xml
@@ -3049,7 +3049,7 @@
- AND CM.AREA_CD = #{search_area_cd}
+ AND CODE_NAME(CM.AREA_CD) = #{search_area_cd}
@@ -3060,7 +3060,11 @@
- AND CM.CUSTOMER_OBJID = REPLACE(#{search_customer_objid}, 'C_', '')
+ AND (
+ CM.CUSTOMER_OBJID = #{search_customer_objid}
+ OR CM.CUSTOMER_OBJID = REPLACE(#{search_customer_objid}, 'C_', '')
+ OR 'C_' || CM.CUSTOMER_OBJID = #{search_customer_objid}
+ )
@@ -3077,10 +3081,10 @@
- = TO_DATE(#{search_req_del_date_from}, 'YYYY-MM-DD')]]>
+ = #{search_req_del_date_from}]]>
-
+
diff --git a/src/com/pms/mapper/quality.xml b/src/com/pms/mapper/quality.xml
index 4bbcb55..d1f2eaa 100644
--- a/src/com/pms/mapper/quality.xml
+++ b/src/com/pms/mapper/quality.xml
@@ -888,6 +888,40 @@
AND REQ.DELIVERY_TOTAL_COUNT = REQ.SELECTED_COUNT
AND REQ.SELECTED_COUNT > 0
+
+
+ AND CM.PRODUCT = #{search_product_cd}
+
+
+
+
+ AND IID.INSPECTION_YN_COUNT > 0
+
+
+ AND IID.SKIP_YN_COUNT > 0 AND IID.INSPECTION_YN_COUNT = 0
+
+
+
+
+
+ AND REQ.DELIVERY_TOTAL_COUNT > 0 AND REQ.SELECTED_COUNT = 0
+
+
+ AND REQ.SELECTED_COUNT > 0 AND REQ.SELECTED_COUNT REQ.DELIVERY_TOTAL_COUNT
+
+
+ AND REQ.DELIVERY_TOTAL_COUNT > 0 AND REQ.SELECTED_COUNT = REQ.DELIVERY_TOTAL_COUNT
+
+
+
+
+
+ AND DEFECT.DEFECT_TOTAL_COUNT > 0 AND DEFECT.DEFECT_TOTAL_COUNT = DEFECT.ACTION_RESULT_COUNT
+
+
+ AND DEFECT.ACTION_RESULT_COUNT > 0 AND DEFECT.DEFECT_TOTAL_COUNT != DEFECT.ACTION_RESULT_COUNT
+
+
ORDER BY POM.REGDATE DESC