Merge pull request 'V2025120101' (#92) from V2025120101 into main

Reviewed-on: #92
This commit was merged in pull request #92.
This commit is contained in:
2025-12-09 07:32:10 +00:00
8 changed files with 366 additions and 39 deletions

View File

@@ -162,14 +162,16 @@ $(function(){
fn_closeWindow();
});
/* 주석처리: 가공납기/연삭납기 일괄 적용 버튼 이벤트
// 일괄 적용 버튼 클릭
$("#btnApplyBulkDeadline").click(function(){
fn_applyBulkDeadline();
});
*/
});
// 가공납기/연삭납기 일괄 적용
/* 주석처리: 가공납기/연삭납기 일괄 적용 함수
function fn_applyBulkDeadline() {
var processingDeadline = $("#bulk_processing_deadline").val();
var grindingDeadline = $("#bulk_grinding_deadline").val();
@@ -206,6 +208,7 @@ function fn_applyBulkDeadline() {
alert("적용할 데이터가 없습니다.");
}
}
*/
// M-BOM 템플릿 로드 (Machine 이외 제품)
function fn_loadMbomTemplate() {
@@ -926,7 +929,7 @@ function compareItemFields(before, after) {
<input type="button" value="닫기" class="plm_btns" id="btnClose">
</td>
</tr>
<tr>
<!-- <tr>
<td><label for="bulk_processing_deadline">가공납기 일괄</label></td>
<td>
<input type="date" name="bulk_processing_deadline" id="bulk_processing_deadline" value="">
@@ -940,7 +943,7 @@ function compareItemFields(before, after) {
<td>
<input type="button" value="일괄 적용" class="plm_btns" id="btnApplyBulkDeadline">
</td>
</tr>
</tr> -->
</table>
</div>
</form>

View File

@@ -537,6 +537,7 @@ function fn_initGrid() {
values: ['업체A', '업체B', '업체C'] // TODO: 실제 가공업체 목록으로 교체
}
},
/* 주석처리: 가공납기, 연삭납기 컬럼
{
headerHozAlign: 'center',
hozAlign: 'center',
@@ -555,6 +556,7 @@ function fn_initGrid() {
titleFormatter: function() { return '<span class="editable-header">연삭납기</span>'; },
editor: 'date'
},
*/
{
headerHozAlign: 'center',
hozAlign: 'left',
@@ -843,7 +845,7 @@ function fn_searchMbom(searchParams) {
});
}
// 가공납기/연삭납기 일괄 적용
/* 주석처리: 가공납기/연삭납기 일괄 적용
function applyBulkDeadline(processingDeadline, grindingDeadline) {
if(!_tabulGrid) {
console.error("그리드가 초기화되지 않았습니다.");
@@ -877,6 +879,7 @@ function applyBulkDeadline(processingDeadline, grindingDeadline) {
console.log("업데이트 완료 - 업데이트된 행:", updatedCount);
return updatedCount;
}
*/
// M-BOM 트리 데이터 수집 (저장용)
function getMbomTreeData() {

View File

@@ -0,0 +1,105 @@
<%@ page isThreadSafe = "true" %>
<%@ page buffer="256kb" %>
<%@ page autoFlush = "true" %>
<%@ page contentType="application/vnd.ms-excel;charset=UTF-8" %>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%
java.text.SimpleDateFormat frm= new java.text.SimpleDateFormat ("yyyy_MM_dd_HH_mm");
Calendar cal = Calendar.getInstance();
String todayKor = frm.format(cal.getTime());
String excelName = "품질관리_수입검사관리";
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("LIST");
%>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 11">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<body class="backcolor">
<form name="form1" action="" method="post">
<section class="min_part_search">
<div class="pdm_menu_name">
<h2>
<span>수입검사 관리</span>
</h2>
</div>
<div class="contents_page_basic_margin">
<div class="pdm_table_wrap">
<table class="pdm_table_noImg" style="text-align:center;" border="1">
<tr class="pdm_thead" align="center" style="background:yellow; font-weight:bold;">
<td>No.</td>
<!-- 수입검사 관리 리스트 정보 -->
<td>품의서 No</td>
<td>발주서 No</td>
<td>프로젝트번호</td>
<td>품번</td>
<td>품명</td>
<td>공급업체</td>
<td>입고결과</td>
<!-- 검사 등록 상세 정보 -->
<td>입고일</td>
<td>입고수량</td>
<td>검사구분</td>
<td>검사여부</td>
<td>불량유형</td>
<td>불량원인</td>
<td>처리현황</td>
<td>검사수량</td>
<td>불량수량</td>
<td>불량율(%)</td>
<td>검사결과</td>
<td>검사자</td>
<td>검사일</td>
<td>비고</td>
</tr>
<%
if(list != null && !list.isEmpty()){
for(int i = 0 ; i < list.size() ; i++){
HashMap map = (HashMap)list.get(i);
%>
<tr>
<td align="center"><%=i+1%></td>
<!-- 수입검사 관리 리스트 정보 -->
<td align="center"><%=CommonUtils.checkNull(map.get("proposal_no"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("purchase_order_no"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("project_no"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("part_no"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("part_name"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("partner_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("delivery_status"))%></td>
<!-- 검사 등록 상세 정보 -->
<td align="center"><%=CommonUtils.checkNull(map.get("delivery_date"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("delivery_qty"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspection_type"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspection_yn"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("defect_type_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("defect_reason_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("action_status"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("inspection_qty"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("defect_qty"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("defect_rate"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspection_result"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspector_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspection_date"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("remark"))%></td>
</tr>
<%
}
}
%>
</table>
</div>
</div>
</section>
</form>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<%@ page isThreadSafe = "true" %>
<%@ page buffer="256kb" %>
<%@ page autoFlush = "true" %>
<%@ page contentType="application/vnd.ms-excel;charset=UTF-8" %>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%
java.text.SimpleDateFormat frm= new java.text.SimpleDateFormat ("yyyy_MM_dd_HH_mm");
Calendar cal = Calendar.getInstance();
String todayKor = frm.format(cal.getTime());
String excelName = "품질관리_공정검사관리";
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("LIST");
%>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 11">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<body class="backcolor">
<form name="form1" action="" method="post">
<section class="min_part_search">
<div class="pdm_menu_name">
<h2>
<span>공정검사 관리</span>
</h2>
</div>
<div class="contents_page_basic_margin">
<div class="pdm_table_wrap">
<table class="pdm_table_noImg" style="text-align:center;" border="1">
<tr class="pdm_thead" align="center" style="background:yellow; font-weight:bold;">
<td>No.</td>
<!-- 공정검사 마스터 정보 -->
<td>검사일</td>
<td>검사자</td>
<td>마스터 비고</td>
<!-- 공정검사 디테일 정보 -->
<td>공정</td>
<td>프로젝트번호</td>
<td>품번</td>
<td>품명</td>
<td>검사수량</td>
<td>불량수량</td>
<td>불량율(%)</td>
<td>작업환경상태</td>
<td>측정기</td>
<td>담당부서</td>
<td>담당자</td>
<td>처리현황</td>
<td>검사결과</td>
<td>상세 비고</td>
</tr>
<%
if(list != null && !list.isEmpty()){
for(int i = 0 ; i < list.size() ; i++){
HashMap map = (HashMap)list.get(i);
%>
<tr>
<td align="center"><%=i+1%></td>
<!-- 공정검사 마스터 정보 -->
<td align="center"><%=CommonUtils.checkNull(map.get("inspection_date"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspector_name"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("master_remark"))%></td>
<!-- 공정검사 디테일 정보 -->
<td align="center"><%=CommonUtils.checkNull(map.get("process_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("project_no"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("part_no"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("part_name"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("inspection_qty"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("defect_qty"))%></td>
<td align="right"><%=CommonUtils.checkNull(map.get("defect_rate"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("work_env_status"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("measuring_device"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("dept_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("user_name"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("action_status"))%></td>
<td align="center"><%=CommonUtils.checkNull(map.get("inspection_result"))%></td>
<td align="left"><%=CommonUtils.checkNull(map.get("detail_remark"))%></td>
</tr>
<%
}
}
%>
</table>
</div>
</div>
</section>
</form>
</body>
</html>

View File

@@ -2989,7 +2989,10 @@ $(document).ready(function() {
if (gridToUse && gridToUse.getRows && gridToUse.getRows().length > 0) {
var pageTitle = $('.plm_menu_name_gdnsi h2 span').text().trim();
$('.btnArea').append("<input type='button' class='plm_btns excelBtn' value='Excel Download'>");
// 이미 엑셀 버튼이 있으면 추가하지 않음 (#btnExcel 또는 .excel 클래스 체크)
if ($('#btnExcel').length === 0 && $('.btnArea .excel').length === 0) {
$('.btnArea').append("<input type='button' class='plm_btns excelBtn' value='Excel Download'>");
}
$(document).on('click', '.excelBtn', async function() {
console.log("Excel 다운로드 버튼 클릭됨");

View File

@@ -4187,7 +4187,7 @@
V.STOCK_QTY,
V.SHORTAGE_QTY,
V.VENDOR,
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = V.VENDOR) AS VENDOR_NAME,
(SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = V.VENDOR) AS VENDOR_NAME,
V.UNIT_PRICE,
V.TOTAL_PRICE,
V.CURRENCY,

View File

@@ -843,38 +843,100 @@
WHERE OBJID = #{OBJID}
</update>
<!-- 수입검사 목록 조회 (엑셀용) -->
<!-- 수입검사 목록 조회 (엑셀용) - 상세 정보 포함 -->
<select id="getIncomingInspectionListForExcel" parameterType="map" resultType="map">
SELECT A.OBJID
, A.PROPOSAL_NO
, A.PURCHASE_ORDER_NO
, A.PROJECT_NO
, A.PART_NO
, A.PART_NAME
, A.PARTNER_NAME
, A.DELIVERY_STATUS
, B.INSPECTOR_ID
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.INSPECTOR_ID) AS INSPECTOR_NAME
, TO_CHAR(B.INSPECTION_DATE, 'YYYY-MM-DD') AS INSPECTION_DATE
, B.INSPECTION_RESULT
FROM (
SELECT POM.OBJID
, SRM.PROPOSAL_NO
, POM.PURCHASE_ORDER_NO
, PJ.PROJECT_NO
, POD.PART_NO
, POD.PART_NAME
, PM.PARTNER_NAME
, CASE WHEN NVL(POD.DELIVERY_QTY, 0) >= NVL(POD.ORDER_QTY, 0) THEN '입고완료' ELSE '입고중' END AS DELIVERY_STATUS
FROM PMS_PURCHASE_ORDER_MASTER POM
LEFT JOIN PMS_PURCHASE_ORDER_DETAIL POD ON POM.OBJID = POD.PURCHASE_ORDER_MASTER_OBJID
LEFT JOIN PMS_SALES_REQUEST_MASTER SRM ON POM.SALES_REQUEST_MASTER_OBJID = SRM.OBJID
LEFT JOIN PMS_PROJECT_INFO PJ ON POM.PROJECT_OBJID = PJ.OBJID
LEFT JOIN PARTNER_MNG PM ON POM.PARTNER_OBJID = PM.OBJID
WHERE 1=1
) A
LEFT JOIN QUALITY_INCOMING_INSPECTION B ON A.OBJID = B.PURCHASE_ORDER_MASTER_OBJID
ORDER BY A.PURCHASE_ORDER_NO DESC
SELECT
/* 수입검사 관리 리스트 정보 */
(SELECT REQUEST_MNG_NO FROM SALES_REQUEST_MASTER WHERE OBJID::VARCHAR = POM.SALES_REQUEST_OBJID) AS PROPOSAL_NO
, POM.PURCHASE_ORDER_NO
, CM.PROJECT_NO
, PM.PART_NO
, PM.PART_NAME
, (SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
, (CASE WHEN 0 <![CDATA[ >= ]]> ((SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - COALESCE(S1.TOTAL_DELIVERY_QTY, 0)) THEN '입고완료'
WHEN TO_CHAR(NOW(),'YYYY-MM-DD') <![CDATA[ > ]]> POM.DELIVERY_DATE THEN '지연'
ELSE '입고중'
END) AS DELIVERY_STATUS
/* 검사 등록 상세 정보 (입고내역 + 검사상세) */
, TO_CHAR(IMI.REGDATE, 'YYYY-MM-DD') AS DELIVERY_DATE
, IMI.RECEIPT_QTY AS DELIVERY_QTY
, IID.INSPECTION_TYPE
, COALESCE(IID.INSPECTION_YN, '검사') AS INSPECTION_YN
, (SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = IID.DEFECT_TYPE) AS DEFECT_TYPE_NAME
, (SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = IID.DEFECT_REASON) AS DEFECT_REASON_NAME
, IID.ACTION_STATUS
, IID.INSPECTION_QTY
, IID.DEFECT_QTY
, CASE WHEN NULLIF(IID.INSPECTION_QTY, '')::NUMERIC > 0
THEN ROUND((COALESCE(NULLIF(IID.DEFECT_QTY, '')::NUMERIC, 0) / NULLIF(IID.INSPECTION_QTY, '')::NUMERIC) * 100, 2)
ELSE NULL END AS DEFECT_RATE
, IID.INSPECTION_RESULT
, IID.REMARK
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = IID.INSPECTOR_ID) AS INSPECTOR_NAME
, IID.INSPECTION_DATE
FROM PURCHASE_ORDER_MASTER POM
LEFT OUTER JOIN PROJECT_MGMT CM ON POM.CONTRACT_MGMT_OBJID = CM.OBJID
LEFT OUTER JOIN (
SELECT POP.PURCHASE_ORDER_MASTER_OBJID
, SUM(POP.ORDER_QTY::NUMERIC) AS TOTAL_PO_QTY
, MAX(DH.RECEIPT_DATE) AS CUR_DELIVERY_DATE
, SUM(DH.RECEIPT_QTY::NUMERIC) AS TOTAL_DELIVERY_QTY
FROM PURCHASE_ORDER_PART POP
LEFT OUTER JOIN ARRIVAL_PLAN DH ON POP.OBJID = DH.ORDER_PART_OBJID
GROUP BY POP.PURCHASE_ORDER_MASTER_OBJID
) S1 ON POM.OBJID::VARCHAR = S1.PURCHASE_ORDER_MASTER_OBJID
/* 입고내역과 조인 (검사등록 팝업과 동일한 구조) */
LEFT OUTER JOIN INVENTORY_MGMT_IN IMI ON IMI.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR
LEFT OUTER JOIN INVENTORY_MGMT IM ON IM.OBJID = IMI.PARENT_OBJID
LEFT OUTER JOIN PART_MNG PM ON PM.OBJID::VARCHAR = IM.PART_OBJID
LEFT OUTER JOIN INCOMING_INSPECTION_DETAIL IID ON IID.INVENTORY_IN_OBJID = IMI.OBJID
WHERE 1=1
AND POM.MAIL_SEND_DATE IS NOT NULL
AND (MULTI_MASTER_YN = 'Y' OR NVL(MULTI_MASTER_YN, '') != 'Y' AND NVL(MULTI_YN, '') != 'Y')
/* 입고된 건만 조회 (검사등록된 데이터) */
AND IMI.OBJID IS NOT NULL
<if test="search_proposal_no != null and search_proposal_no != ''">
AND (SELECT REQUEST_MNG_NO FROM SALES_REQUEST_MASTER WHERE OBJID::VARCHAR = POM.SALES_REQUEST_OBJID) LIKE '%' || #{search_proposal_no} || '%'
</if>
<if test="search_purchase_order_no != null and search_purchase_order_no != ''">
AND TRIM(UPPER(POM.PURCHASE_ORDER_NO)) LIKE '%' || TRIM(UPPER(#{search_purchase_order_no})) || '%'
</if>
<if test="project_nos != null and project_nos != ''">
AND CM.PROJECT_NO IN
<foreach item="item" collection="project_nos.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="search_part_no != null and search_part_no != ''">
AND TRIM(UPPER(PM.PART_NO)) LIKE '%' || TRIM(UPPER(#{search_part_no})) || '%'
</if>
<if test="search_part_name != null and search_part_name != ''">
AND TRIM(UPPER(PM.PART_NAME)) LIKE '%' || TRIM(UPPER(#{search_part_name})) || '%'
</if>
<if test="search_partner != null and search_partner != ''">
AND POM.PARTNER_OBJID = #{search_partner}
</if>
<if test="search_delivery_status != null and search_delivery_status != ''">
<if test="search_delivery_status == '입고완료'">
AND 0 <![CDATA[ >= ]]> ((SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - COALESCE(S1.TOTAL_DELIVERY_QTY, 0))
</if>
<if test="search_delivery_status == '입고중'">
AND 0 <![CDATA[ < ]]> ((SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) - COALESCE(S1.TOTAL_DELIVERY_QTY, 0))
</if>
</if>
<if test="inspector_id != null and inspector_id != ''">
AND IID.INSPECTOR_ID = #{inspector_id}
</if>
<if test="inspection_start_date != null and inspection_start_date != ''">
AND IID.INSPECTION_DATE <![CDATA[>=]]> #{inspection_start_date}
</if>
<if test="inspection_end_date != null and inspection_end_date != ''">
AND IID.INSPECTION_DATE <![CDATA[<=]]> #{inspection_end_date}
</if>
<if test="search_inspection_result != null and search_inspection_result != ''">
AND IID.INSPECTION_RESULT = #{search_inspection_result}
</if>
ORDER BY POM.PURCHASE_ORDER_NO DESC, PM.PART_NO
</select>
<!-- =====================================================
@@ -1096,6 +1158,60 @@
DELETE FROM PROCESS_INSPECTION_DETAIL WHERE MASTER_OBJID = #{MASTER_OBJID}
</delete>
<!-- 공정검사 목록 조회 (엑셀용) - 상세 정보 포함 -->
<select id="getProcessInspectionListForExcel" parameterType="map" resultType="map">
SELECT
/* 공정검사 마스터 정보 */
PIM.INSPECTION_DATE
, (SELECT U.USER_NAME FROM USER_INFO U WHERE U.USER_ID = PIM.INSPECTOR_ID) AS INSPECTOR_NAME
, PIM.REMARK AS MASTER_REMARK
/* 공정검사 디테일 정보 */
, (SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = PID.PROCESS_CD) AS PROCESS_NAME
, (SELECT PM.PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = PID.PROJECT_OBJID) AS PROJECT_NO
, PID.PART_NO
, PID.PART_NAME
, PID.INSPECTION_QTY
, PID.DEFECT_QTY
, CASE WHEN COALESCE(PID.INSPECTION_QTY, 0) > 0
THEN ROUND((COALESCE(PID.DEFECT_QTY, 0)::NUMERIC / PID.INSPECTION_QTY::NUMERIC) * 100, 2)
ELSE NULL END AS DEFECT_RATE
, PID.WORK_ENV_STATUS
, PID.MEASURING_DEVICE
, (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = PID.DEPT_CD) AS DEPT_NAME
, (SELECT U2.USER_NAME FROM USER_INFO U2 WHERE U2.USER_ID = PID.USER_ID) AS USER_NAME
, PID.REMARK AS DETAIL_REMARK
, PID.ACTION_STATUS
, PID.INSPECTION_RESULT
FROM PROCESS_INSPECTION_MASTER PIM
INNER JOIN PROCESS_INSPECTION_DETAIL PID ON PID.MASTER_OBJID = PIM.OBJID
WHERE 1=1
<if test="search_project_no != null and search_project_no != ''">
AND (SELECT PM2.PROJECT_NO FROM PROJECT_MGMT PM2 WHERE PM2.OBJID = PID.PROJECT_OBJID) LIKE '%' || #{search_project_no} || '%'
</if>
<if test="search_part_no != null and search_part_no != ''">
AND UPPER(PID.PART_NO) LIKE UPPER('%' || #{search_part_no} || '%')
</if>
<if test="search_part_name != null and search_part_name != ''">
AND UPPER(PID.PART_NAME) LIKE UPPER('%' || #{search_part_name} || '%')
</if>
<if test="search_inspector != null and search_inspector != ''">
AND (
UPPER(PIM.INSPECTOR_ID) LIKE UPPER('%' || #{search_inspector} || '%')
OR UPPER((SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PIM.INSPECTOR_ID)) LIKE UPPER('%' || #{search_inspector} || '%')
)
</if>
<if test="search_inspection_date_from != null and search_inspection_date_from != ''">
AND PIM.INSPECTION_DATE <![CDATA[>=]]> #{search_inspection_date_from}
</if>
<if test="search_inspection_date_to != null and search_inspection_date_to != ''">
AND PIM.INSPECTION_DATE <![CDATA[<=]]> #{search_inspection_date_to}
</if>
<if test="search_inspection_result != null and search_inspection_result != ''">
AND PID.INSPECTION_RESULT = #{search_inspection_result}
</if>
ORDER BY PIM.INSPECTION_DATE DESC, PIM.REG_DATE DESC, PID.REG_DATE
</select>
<!-- =====================================================
반제품검사 관리
===================================================== -->

View File

@@ -776,14 +776,14 @@ public class QualityService extends BaseService{
}
/**
* 공정검사 목록 조회 (엑셀용)
* 공정검사 목록 조회 (엑셀용) - 상세 정보 포함
*/
public List getProcessInspectionListForExcel(Map paramMap){
List resultList = new ArrayList();
SqlSession sqlSession = null;
try{
sqlSession = SqlMapConfig.getInstance().getSqlSession();
resultList = sqlSession.selectList("quality.getProcessInspectionList", paramMap);
resultList = sqlSession.selectList("quality.getProcessInspectionListForExcel", paramMap);
}catch(Exception e){
e.printStackTrace();
}finally{