This commit is contained in:
2025-12-19 11:49:37 +09:00
15 changed files with 222 additions and 78 deletions

View File

@@ -2736,6 +2736,24 @@ ORDER BY COALESCE(T.REVISION, '1.0')
ORDER BY SUPPLY_NAME
</select>
<!-- 공급업체 + 일반거래처 통합 목록 조회 (발주서 검색용) -->
<select id="getAllSupplySelect" parameterType="map" resultType="map">
SELECT
OBJID::VARCHAR AS CODE
,SUPPLY_NAME AS NAME
,OBJID::VARCHAR AS CODE_ID
,SUPPLY_NAME AS CODE_NAME
FROM ADMIN_SUPPLY_MNG
UNION ALL
SELECT
'C_' || OBJID::VARCHAR AS CODE
,CLIENT_NM AS NAME
,'C_' || OBJID::VARCHAR AS CODE_ID
,CLIENT_NM AS CODE_NAME
FROM CLIENT_MNG
ORDER BY NAME
</select>
<!-- 일반거래처 목록 조회 (CLIENT_MNG 테이블) - 발주서용 -->
<select id="getClientMngSupplySelect" parameterType="map" resultType="map">
SELECT

View File

@@ -4416,6 +4416,10 @@
''
) AS PRODUCT_NAME,
CM.CATEGORY_CD AS CATEGORY_CODE,
COALESCE(
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CM.CATEGORY_CD LIMIT 1),
CM.CATEGORY_CD
) AS CATEGORY_CODE_NAME,
-- 생산유형 (TODO: 실제 컬럼명 확인 필요)
'' AS PRODUCTION_TYPE,
'' AS PRODUCTION_TYPE_NAME,
@@ -4472,9 +4476,12 @@
WHERE 1=1
AND PM.PROJECT_NO IS NOT NULL
AND PM.PROJECT_NO != ''
<!-- 프로젝트번호 검색 -->
<if test="search_project_no != null and search_project_no != ''">
AND UPPER(PM.PROJECT_NO) LIKE '%' || UPPER(#{search_project_no}) || '%'
<!-- 프로젝트번호 검색 (multiple select) -->
<if test="search_project_nos != null and search_project_nos != ''">
AND PM.OBJID::VARCHAR IN
<foreach item="projNo" collection="search_project_nos.split(',')" open="(" separator="," close=")">
#{projNo}
</foreach>
</if>
<!-- 제품구분 검색 -->
<if test="search_product_code != null and search_product_code != ''">
@@ -4488,9 +4495,13 @@
<if test="search_production_type != null and search_production_type != ''">
AND 1=1 <!-- TODO: 생산유형 컬럼 확인 후 조건 추가 -->
</if>
<!-- 고객사 검색 -->
<!-- 고객사 검색 (C_ 접두사 처리) -->
<if test="search_customer_objid != null and search_customer_objid != ''">
AND CM.CUSTOMER_OBJID = #{search_customer_objid}
AND (
CM.CUSTOMER_OBJID = #{search_customer_objid}
OR CM.CUSTOMER_OBJID = REPLACE(#{search_customer_objid}, 'C_', '')
OR REPLACE(CM.CUSTOMER_OBJID, 'C_', '') = REPLACE(#{search_customer_objid}, 'C_', '')
)
</if>
<!-- 요청납기 검색 -->
<if test="search_req_del_date_from != null and search_req_del_date_from != ''">

View File

@@ -2944,7 +2944,7 @@ WHERE 1=1
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -2972,7 +2972,7 @@ WHERE 1=1
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
@@ -3107,7 +3107,7 @@ SELECT
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -3135,7 +3135,7 @@ SELECT
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
@@ -3337,7 +3337,7 @@ WHERE 1=1
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -3372,7 +3372,7 @@ WHERE 1=1
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<!--
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
@@ -3564,7 +3564,7 @@ WHERE 1=1
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -3599,7 +3599,7 @@ WHERE 1=1
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<!--
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
@@ -4374,7 +4374,7 @@ SELECT POM.OBJID
AND TO_CHAR(TO_DATE(S1.CUR_DELIVERY_DATE ,'YYYY-MM-DD'), 'YYYY') = #{Year}
</if>
<if test="customer_cd !=null and customer_cd != '' ">
AND CM.CUSTOMER_OBJID = #{customer_cd}
AND CM.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
AND TRIM(UPPER(CM.CUSTOMER_PROJECT_NAME)) = TRIM(UPPER(#{customer_project_name}))
@@ -4405,7 +4405,7 @@ SELECT POM.OBJID
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<!-- <if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
@@ -4424,7 +4424,7 @@ SELECT POM.OBJID
AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{reg_end_date}, 'YYYY-MM-DD')
</if>
<if test="delivery_status !=null and delivery_status != '' ">
AND (CASE WHEN 0 <![CDATA[ >= ]]> ((SELECT SUM(REAL_ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - (S1.TOTAL_DELIVERY_QTY <!-- - S1.TOTAL_DEFECT_QTY -->)) THEN '입고완료'
AND (CASE WHEN 0 <![CDATA[ >= ]]> ((SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - (S1.TOTAL_DELIVERY_QTY <!-- - S1.TOTAL_DEFECT_QTY -->)) THEN '입고완료'
WHEN TO_CHAR(NOW(),'YYYY-MM-DD') <![CDATA[ > ]]> POM.DELIVERY_DATE THEN '지연'
ELSE '입고중'
END) = #{delivery_status}

View File

@@ -827,32 +827,59 @@
ELSE '입고중'
END) = #{search_delivery_status}
</if>
<!-- 프로젝트번호 (multi select) -->
<!-- 프로젝트번호 (multi select) - OBJID로 검색 -->
<if test="project_nos != null and project_nos != ''">
AND CM.PROJECT_NO IN
AND CM.OBJID::VARCHAR IN
<foreach item="item" collection="project_nos.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<!-- 검사자 -->
<if test="inspector_id != null and inspector_id != ''">
AND IID.INSPECTOR_ID = #{inspector_id}
AND EXISTS (
SELECT 1 FROM INCOMING_INSPECTION_DETAIL IID_SUB
LEFT JOIN INCOMING_INSPECTION_DEFECT IDF_SUB ON IDF_SUB.INSPECTION_DETAIL_OBJID = IID_SUB.OBJID
WHERE IID_SUB.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
AND IDF_SUB.INSPECTOR_ID = #{inspector_id}
)
</if>
<!-- 검사일 (시작) -->
<if test="inspection_start_date != null and inspection_start_date != ''">
AND IID.INSPECTION_DATE <![CDATA[ >= ]]> #{inspection_start_date}
AND EXISTS (
SELECT 1 FROM INCOMING_INSPECTION_DETAIL IID_SUB
LEFT JOIN INCOMING_INSPECTION_DEFECT IDF_SUB ON IDF_SUB.INSPECTION_DETAIL_OBJID = IID_SUB.OBJID
WHERE IID_SUB.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
AND IDF_SUB.INSPECTION_DATE <![CDATA[ >= ]]> TO_DATE(#{inspection_start_date}, 'YYYY-MM-DD')
)
</if>
<!-- 검사일 (종료) -->
<if test="inspection_end_date != null and inspection_end_date != ''">
AND IID.INSPECTION_DATE <![CDATA[ <= ]]> #{inspection_end_date}
AND EXISTS (
SELECT 1 FROM INCOMING_INSPECTION_DETAIL IID_SUB
LEFT JOIN INCOMING_INSPECTION_DEFECT IDF_SUB ON IDF_SUB.INSPECTION_DETAIL_OBJID = IID_SUB.OBJID
WHERE IID_SUB.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
AND IDF_SUB.INSPECTION_DATE <![CDATA[ <= ]]> TO_DATE(#{inspection_end_date}, 'YYYY-MM-DD')
)
</if>
<!-- 검사결과 -->
<if test="search_inspection_result != null and search_inspection_result != ''">
AND (CASE WHEN IID.NG_COUNT > 0 THEN 'NG'
WHEN IID.TOTAL_COUNT > 0 AND IID.TOTAL_COUNT = IID.INSPECTED_COUNT THEN 'OK'
WHEN IID.INSPECTED_COUNT > 0 THEN '검사중'
AND (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 '검사중'
ELSE '' END) = #{search_inspection_result}
</if>
<!-- 요청자 -->
<if test="request_user_id != null and request_user_id != ''">
AND IID.REQUEST_USER_ID = #{request_user_id}
</if>
<!-- 요청일 (시작) -->
<if test="request_start_date != null and request_start_date != ''">
AND IID.REQUEST_DATE <![CDATA[ >= ]]> #{request_start_date}
</if>
<!-- 요청일 (종료) -->
<if test="request_end_date != null and request_end_date != ''">
AND IID.REQUEST_DATE <![CDATA[ <= ]]> #{request_end_date}
</if>
<!-- 요청현황 필터 (수입검사 진행 리스트에서 요청완료 건만 조회) -->
<if test="request_status_filter != null and request_status_filter == '요청완료'">
AND REQ.DELIVERY_TOTAL_COUNT = REQ.SELECTED_COUNT
@@ -1096,23 +1123,23 @@
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PM.PRODUCT = #{productType})
</if>
/* 품번 */
/* 품번 (OBJID 또는 품번 텍스트로 검색) */
<if test="search_part_objid != null and search_part_objid != ''">
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PID.PART_OBJID = #{search_part_objid})
AND (PID.PART_OBJID = #{search_part_objid} OR UPPER(PID.PART_NO) LIKE '%' || UPPER(#{search_part_objid}) || '%'))
</if>
/* 품명 */
/* 품명 (LIKE 검색) */
<if test="search_part_name != null and search_part_name != ''">
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PID.PART_OBJID = #{search_part_name})
AND UPPER(PID.PART_NAME) LIKE '%' || UPPER(#{search_part_name}) || '%')
</if>
/* 작업환경상태 */
/* 작업환경상태 (화면 표시 로직과 동일하게: 하나라도 불량이면 불량) */
<if test="search_work_env_status != null and search_work_env_status != ''">
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PID.WORK_ENV_STATUS = CASE WHEN #{search_work_env_status} = 'OK' THEN '양호' ELSE '불량' END)
AND (SELECT CASE WHEN COUNT(CASE WHEN PID.WORK_ENV_STATUS = '불량' THEN 1 END) > 0 THEN '불량' ELSE '양호' END
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
) = CASE WHEN #{search_work_env_status} = 'OK' THEN '양호' ELSE '불량' END
</if>
/* 측정기 */
<if test="search_measuring_device != null and search_measuring_device != ''">

View File

@@ -138,7 +138,7 @@ var columns = [
hozAlign: 'center',
width: 80,
title: '주문유형',
field: 'CATEGORY_CODE'
field: 'CATEGORY_CODE_NAME'
},
// 5. 생산유형
@@ -299,6 +299,23 @@ var columns = [
// 검색 함수
function fn_search(){
// multiple select 값을 콤마로 join해서 hidden input에 설정
var projectNos = $("#search_project_no").val();
console.log("=== 프로젝트번호 검색 디버그 ===");
console.log("projectNos:", projectNos);
console.log("projectNos type:", typeof projectNos);
console.log("projectNos length:", projectNos ? projectNos.length : 0);
if(projectNos && projectNos.length > 0) {
var joinedVal = projectNos.join(",");
console.log("joined value:", joinedVal);
$("#search_project_nos_hidden").val(joinedVal);
} else {
$("#search_project_nos_hidden").val("");
}
console.log("hidden input value:", $("#search_project_nos_hidden").val());
console.log("================================");
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/productionplanning/prodPlanResultMgmtGridList.do", columns, true);
}
@@ -413,6 +430,7 @@ function getCheckedRows() {
<form name="form1" id="form1" method="post">
<input type="hidden" name="actionType" id="actionType">
<input type="hidden" name="search_project_nos" id="search_project_nos_hidden">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name_gdnsi">

View File

@@ -542,7 +542,7 @@ function setup_wbs_popup(objId){
<input type="text" name="contract_end_date" id="contract_end_date" style="width:90px;" autocomplete="off" value="${param.contract_end_date}" class="date_icon">
</td>
<td class="align_r">
<td class="align_r">
<label>입고지</label>
</td>
<td>
@@ -555,7 +555,7 @@ function setup_wbs_popup(objId){
<td>
<input type="text" name="setup" id="setup" style="" autocomplete="off" value="${param.setup}">
</td>
<td><label for="pm_user_id">PM</label></td>
<td>
<select name="pm_user_id" id="pm_user_id" style="width:200px;" class="select2" autocomplete="off">

View File

@@ -296,9 +296,9 @@ function fn_FileRegist(objId, docType, docTypeName){
<td>
<select name="search_blame_decision" id="search_blame_decision" class="select2" autocomplete="off" style="">
<option value="">전체</option>
<option value="R">R</option>
<option value="C">C</option>
<option value="O">O</option>
<option value="R">RPS</option>
<option value="C">고객사</option>
<option value="O">외주업체</option>
</select>
</td>
<td><label>상태</label></td>

View File

@@ -116,13 +116,14 @@ var columns = [
// 조회
function fn_search(){
// 프로젝트번호 multi select 처리
// 프로젝트번호 multi select 처리 (배열을 콤마로 join)
var selectedProjectNos = $("#project_no").val();
$('input[name="project_nos"]').remove();
var projectNosValue = (selectedProjectNos && selectedProjectNos.length > 0) ? selectedProjectNos.join(',') : '';
$('<input>').attr({
type: 'hidden',
name: 'project_nos',
value: selectedProjectNos
value: projectNosValue
}).appendTo('#form1');
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/quality/incomingInspectionGridList.do", columns, true);
@@ -254,6 +255,7 @@ function fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS){
<option value="">전체</option>
<option value="입고중">입고중</option>
<option value="입고완료">입고완료</option>
<option value="지연">지연</option>
</select>
</td>

View File

@@ -316,6 +316,7 @@ function fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS){
<option value="">전체</option>
<option value="입고중">입고중</option>
<option value="입고완료">입고완료</option>
<option value="지연">지연</option>
</select>
</td>

View File

@@ -1655,8 +1655,8 @@ public class ProductionPlanningController extends BaseService {
// 생산유형
code_map.put("production_type_cd", commonService.bizMakeOptionList("0001832", CommonUtils.nullToEmpty((String)paramMap.get("production_type")), "common.getCodeselect"));
// 고객사
code_map.put("customer_cd", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")), "common.getClientMngSupplySelect"));
// 고객사 (SUPPLY_MNG + CLIENT_MNG 통합)
code_map.put("customer_cd", commonService.bizMakeOptionList("", CommonUtils.nullToEmpty((String)paramMap.get("customer_objid")), "common.getsupplyselect"));
request.setAttribute("code_map", code_map);
}catch(Exception e){
@@ -1674,6 +1674,17 @@ public class ProductionPlanningController extends BaseService {
@ResponseBody
@RequestMapping("/productionplanning/prodPlanResultMgmtGridList.do")
public Map prodPlanResultMgmtGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
// 프로젝트번호 multiple select 처리 (Java 7 호환)
String[] projectNos = request.getParameterValues("search_project_no");
if(projectNos != null && projectNos.length > 0) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < projectNos.length; i++) {
if(i > 0) sb.append(",");
sb.append(projectNos[i]);
}
paramMap.put("search_project_nos", sb.toString());
}
commonService.selectListPagingNew("productionplanning.prodPlanResultMgmtGridList", request, paramMap);
return paramMap;
}

View File

@@ -1118,8 +1118,8 @@ public class PurchaseOrderController {
code_map.put("part_type",commonService.bizMakeOptionList(Constants.PART_TYPE_CODE, (String)paramMap.get("part_type"),"common.getCodeselect"));
//발주부품
code_map.put("type",commonService.bizMakeOptionList("0001068", (String)paramMap.get("type"),"common.getCodeselect"));
//공급업체
code_map.put("partner_objid",commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"),"common.getmatersupplyselect"));
//공급업체 (공급업체 + 일반거래처 통합)
code_map.put("partner_objid",commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"),"common.getAllSupplySelect"));
//조치담당자
code_map.put("sales_mng_user_id", commonService.bizMakeOptionList("", (String)paramMap.get("sales_mng_user_id"),"common.getUserselect"));
//상태코드
@@ -1294,8 +1294,8 @@ public class PurchaseOrderController {
code_map.put("part_type",commonService.bizMakeOptionList(Constants.PART_TYPE_CODE, (String)paramMap.get("part_type"),"common.getCodeselect"));
//발주구분
code_map.put("type",commonService.bizMakeOptionList("0001068", (String)paramMap.get("type"),"common.getCodeselect"));
//공급업체
code_map.put("partner_objid",commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"),"common.getmatersupplyselect"));
//공급업체 (공급업체 + 일반거래처 통합)
code_map.put("partner_objid",commonService.bizMakeOptionList("", (String)paramMap.get("partner_objid"),"common.getAllSupplySelect"));
//조치담당자
code_map.put("sales_mng_user_id", commonService.bizMakeOptionList("", (String)paramMap.get("sales_mng_user_id"),"common.getUserselect"));
//상태코드

View File

@@ -2736,6 +2736,24 @@ ORDER BY COALESCE(T.REVISION, '1.0')
ORDER BY SUPPLY_NAME
</select>
<!-- 공급업체 + 일반거래처 통합 목록 조회 (발주서 검색용) -->
<select id="getAllSupplySelect" parameterType="map" resultType="map">
SELECT
OBJID::VARCHAR AS CODE
,SUPPLY_NAME AS NAME
,OBJID::VARCHAR AS CODE_ID
,SUPPLY_NAME AS CODE_NAME
FROM ADMIN_SUPPLY_MNG
UNION ALL
SELECT
'C_' || OBJID::VARCHAR AS CODE
,CLIENT_NM AS NAME
,'C_' || OBJID::VARCHAR AS CODE_ID
,CLIENT_NM AS CODE_NAME
FROM CLIENT_MNG
ORDER BY NAME
</select>
<!-- 일반거래처 목록 조회 (CLIENT_MNG 테이블) - 발주서용 -->
<select id="getClientMngSupplySelect" parameterType="map" resultType="map">
SELECT

View File

@@ -4416,6 +4416,10 @@
''
) AS PRODUCT_NAME,
CM.CATEGORY_CD AS CATEGORY_CODE,
COALESCE(
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CM.CATEGORY_CD LIMIT 1),
CM.CATEGORY_CD
) AS CATEGORY_CODE_NAME,
-- 생산유형 (TODO: 실제 컬럼명 확인 필요)
'' AS PRODUCTION_TYPE,
'' AS PRODUCTION_TYPE_NAME,
@@ -4472,9 +4476,12 @@
WHERE 1=1
AND PM.PROJECT_NO IS NOT NULL
AND PM.PROJECT_NO != ''
<!-- 프로젝트번호 검색 -->
<if test="search_project_no != null and search_project_no != ''">
AND UPPER(PM.PROJECT_NO) LIKE '%' || UPPER(#{search_project_no}) || '%'
<!-- 프로젝트번호 검색 (multiple select) -->
<if test="search_project_nos != null and search_project_nos != ''">
AND PM.OBJID::VARCHAR IN
<foreach item="projNo" collection="search_project_nos.split(',')" open="(" separator="," close=")">
#{projNo}
</foreach>
</if>
<!-- 제품구분 검색 -->
<if test="search_product_code != null and search_product_code != ''">
@@ -4488,9 +4495,13 @@
<if test="search_production_type != null and search_production_type != ''">
AND 1=1 <!-- TODO: 생산유형 컬럼 확인 후 조건 추가 -->
</if>
<!-- 고객사 검색 -->
<!-- 고객사 검색 (C_ 접두사 처리) -->
<if test="search_customer_objid != null and search_customer_objid != ''">
AND CM.CUSTOMER_OBJID = #{search_customer_objid}
AND (
CM.CUSTOMER_OBJID = #{search_customer_objid}
OR CM.CUSTOMER_OBJID = REPLACE(#{search_customer_objid}, 'C_', '')
OR REPLACE(CM.CUSTOMER_OBJID, 'C_', '') = REPLACE(#{search_customer_objid}, 'C_', '')
)
</if>
<!-- 요청납기 검색 -->
<if test="search_req_del_date_from != null and search_req_del_date_from != ''">

View File

@@ -2947,7 +2947,7 @@ WHERE 1=1
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -2975,7 +2975,7 @@ WHERE 1=1
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
@@ -3110,7 +3110,7 @@ SELECT
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -3138,7 +3138,7 @@ SELECT
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
@@ -3340,7 +3340,7 @@ WHERE 1=1
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -3375,7 +3375,7 @@ WHERE 1=1
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<!--
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
@@ -3567,7 +3567,7 @@ WHERE 1=1
AND EXISTS (
SELECT 'E' FROM PROJECT_MGMT AS S_P
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
AND S_P.CUSTOMER_OBJID = #{customer_cd}
AND S_P.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
)
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
@@ -3602,7 +3602,7 @@ WHERE 1=1
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<!--
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
@@ -4377,7 +4377,7 @@ SELECT POM.OBJID
AND TO_CHAR(TO_DATE(S1.CUR_DELIVERY_DATE ,'YYYY-MM-DD'), 'YYYY') = #{Year}
</if>
<if test="customer_cd !=null and customer_cd != '' ">
AND CM.CUSTOMER_OBJID = #{customer_cd}
AND CM.CUSTOMER_OBJID = REPLACE(#{customer_cd}, 'C_', '')
</if>
<if test="customer_project_name !=null and customer_project_name != '' ">
AND TRIM(UPPER(CM.CUSTOMER_PROJECT_NAME)) = TRIM(UPPER(#{customer_project_name}))
@@ -4408,7 +4408,7 @@ SELECT POM.OBJID
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
</if>
<if test="partner_objid !=null and partner_objid != '' ">
AND POM.PARTNER_OBJID = #{partner_objid}
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
</if>
<!-- <if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
@@ -4427,7 +4427,7 @@ SELECT POM.OBJID
AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{reg_end_date}, 'YYYY-MM-DD')
</if>
<if test="delivery_status !=null and delivery_status != '' ">
AND (CASE WHEN 0 <![CDATA[ >= ]]> ((SELECT SUM(REAL_ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - (S1.TOTAL_DELIVERY_QTY <!-- - S1.TOTAL_DEFECT_QTY -->)) THEN '입고완료'
AND (CASE WHEN 0 <![CDATA[ >= ]]> ((SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - (S1.TOTAL_DELIVERY_QTY <!-- - S1.TOTAL_DEFECT_QTY -->)) THEN '입고완료'
WHEN TO_CHAR(NOW(),'YYYY-MM-DD') <![CDATA[ > ]]> POM.DELIVERY_DATE THEN '지연'
ELSE '입고중'
END) = #{delivery_status}

View File

@@ -830,32 +830,59 @@
ELSE '입고중'
END) = #{search_delivery_status}
</if>
<!-- 프로젝트번호 (multi select) -->
<!-- 프로젝트번호 (multi select) - OBJID로 검색 -->
<if test="project_nos != null and project_nos != ''">
AND CM.PROJECT_NO IN
AND CM.OBJID::VARCHAR IN
<foreach item="item" collection="project_nos.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<!-- 검사자 -->
<if test="inspector_id != null and inspector_id != ''">
AND IID.INSPECTOR_ID = #{inspector_id}
AND EXISTS (
SELECT 1 FROM INCOMING_INSPECTION_DETAIL IID_SUB
LEFT JOIN INCOMING_INSPECTION_DEFECT IDF_SUB ON IDF_SUB.INSPECTION_DETAIL_OBJID = IID_SUB.OBJID
WHERE IID_SUB.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
AND IDF_SUB.INSPECTOR_ID = #{inspector_id}
)
</if>
<!-- 검사일 (시작) -->
<if test="inspection_start_date != null and inspection_start_date != ''">
AND IID.INSPECTION_DATE <![CDATA[ >= ]]> #{inspection_start_date}
AND EXISTS (
SELECT 1 FROM INCOMING_INSPECTION_DETAIL IID_SUB
LEFT JOIN INCOMING_INSPECTION_DEFECT IDF_SUB ON IDF_SUB.INSPECTION_DETAIL_OBJID = IID_SUB.OBJID
WHERE IID_SUB.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
AND IDF_SUB.INSPECTION_DATE <![CDATA[ >= ]]> TO_DATE(#{inspection_start_date}, 'YYYY-MM-DD')
)
</if>
<!-- 검사일 (종료) -->
<if test="inspection_end_date != null and inspection_end_date != ''">
AND IID.INSPECTION_DATE <![CDATA[ <= ]]> #{inspection_end_date}
AND EXISTS (
SELECT 1 FROM INCOMING_INSPECTION_DETAIL IID_SUB
LEFT JOIN INCOMING_INSPECTION_DEFECT IDF_SUB ON IDF_SUB.INSPECTION_DETAIL_OBJID = IID_SUB.OBJID
WHERE IID_SUB.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
AND IDF_SUB.INSPECTION_DATE <![CDATA[ <= ]]> TO_DATE(#{inspection_end_date}, 'YYYY-MM-DD')
)
</if>
<!-- 검사결과 -->
<if test="search_inspection_result != null and search_inspection_result != ''">
AND (CASE WHEN IID.NG_COUNT > 0 THEN 'NG'
WHEN IID.TOTAL_COUNT > 0 AND IID.TOTAL_COUNT = IID.INSPECTED_COUNT THEN 'OK'
WHEN IID.INSPECTED_COUNT > 0 THEN '검사중'
AND (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 '검사중'
ELSE '' END) = #{search_inspection_result}
</if>
<!-- 요청자 -->
<if test="request_user_id != null and request_user_id != ''">
AND IID.REQUEST_USER_ID = #{request_user_id}
</if>
<!-- 요청일 (시작) -->
<if test="request_start_date != null and request_start_date != ''">
AND IID.REQUEST_DATE <![CDATA[ >= ]]> #{request_start_date}
</if>
<!-- 요청일 (종료) -->
<if test="request_end_date != null and request_end_date != ''">
AND IID.REQUEST_DATE <![CDATA[ <= ]]> #{request_end_date}
</if>
<!-- 요청현황 필터 (수입검사 진행 리스트에서 요청완료 건만 조회) -->
<if test="request_status_filter != null and request_status_filter == '요청완료'">
AND REQ.DELIVERY_TOTAL_COUNT = REQ.SELECTED_COUNT
@@ -1100,23 +1127,23 @@
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PM.PRODUCT = #{productType})
</if>
/* 품번 */
/* 품번 (OBJID 또는 품번 텍스트로 검색) */
<if test="search_part_objid != null and search_part_objid != ''">
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PID.PART_OBJID = #{search_part_objid})
AND (PID.PART_OBJID = #{search_part_objid} OR UPPER(PID.PART_NO) LIKE '%' || UPPER(#{search_part_objid}) || '%'))
</if>
/* 품명 */
/* 품명 (LIKE 검색) */
<if test="search_part_name != null and search_part_name != ''">
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PID.PART_OBJID = #{search_part_name})
AND UPPER(PID.PART_NAME) LIKE '%' || UPPER(#{search_part_name}) || '%')
</if>
/* 작업환경상태 */
/* 작업환경상태 (화면 표시 로직과 동일하게: 하나라도 불량이면 불량) */
<if test="search_work_env_status != null and search_work_env_status != ''">
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
WHERE PID.MASTER_OBJID = PIM.OBJID
AND PID.WORK_ENV_STATUS = CASE WHEN #{search_work_env_status} = 'OK' THEN '양호' ELSE '불량' END)
AND (SELECT CASE WHEN COUNT(CASE WHEN PID.WORK_ENV_STATUS = '불량' THEN 1 END) > 0 THEN '불량' ELSE '양호' END
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
) = CASE WHEN #{search_work_env_status} = 'OK' THEN '양호' ELSE '불량' END
</if>
/* 측정기 */
<if test="search_measuring_device != null and search_measuring_device != ''">