Merge remote-tracking branch 'origin/main' into V20260210

This commit is contained in:
2026-02-25 15:51:42 +09:00
5 changed files with 89 additions and 35 deletions

View File

@@ -4535,20 +4535,25 @@ ORDER BY V.PATH2
-- (SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID AND MAIL_SENT = 'Y') AS MAIL_SENT,
-- 발주일 (일단 주석처리)
-- (SELECT TO_CHAR(MAX(ORDER_DATE), 'YYYY-MM-DD') FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID) AS ORDER_DATE,
-- 상태: 결재 테이블 상태 우선, 없으면 SRM.STATUS
-- 상태: 아마란스 결재 > 내부 결재 > SRM.STATUS 순서로 우선
CASE
WHEN AMR.STATUS = 'complete' THEN 'approvalComplete'
WHEN AMR.STATUS = 'inProcess' THEN 'inProcess'
WHEN AMR.STATUS = 'reject' THEN 'reject'
WHEN A.ROUTE_STATUS = 'complete' THEN 'approvalComplete'
WHEN A.ROUTE_STATUS = 'inProcess' THEN 'inProcess'
WHEN A.ROUTE_STATUS = 'reject' THEN 'reject'
ELSE SRM.STATUS
END AS STATUS,
CASE
WHEN AMR.STATUS = 'complete' THEN '결재완료'
WHEN AMR.STATUS = 'inProcess' THEN '결재 상신중'
WHEN AMR.STATUS = 'reject' THEN '반려'
WHEN A.APPR_STATUS IS NOT NULL THEN A.APPR_STATUS
WHEN SRM.STATUS = 'create' THEN '작성중'
-- WHEN SRM.STATUS = 'approvalComplete' THEN '결재완료'
-- WHEN SRM.STATUS = 'reject' THEN '반려'
WHEN SRM.STATUS = 'create' THEN '등록중'
ELSE ''
END AS STATUS_TITLE,
COALESCE(AMR.STATUS, '') AS AMARANTH_STATUS,
SRM.WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
SRM.REGDATE,
@@ -4557,6 +4562,9 @@ ORDER BY V.PATH2
A.ROUTE_OBJID
FROM
SALES_REQUEST_MASTER SRM
LEFT OUTER JOIN AMARANTH_APPROVAL AMR
ON SRM.OBJID::VARCHAR = AMR.TARGET_OBJID
AND AMR.TARGET_TYPE = 'PROPOSAL'
LEFT OUTER JOIN (
SELECT
B.OBJID AS ROUTE_OBJID,

View File

@@ -1336,6 +1336,7 @@ public class SalesMngController {
}
request.setAttribute("code_map", code_map);
request.setAttribute("AMARANTH_OUT_PROCESS_CODE", Constants.AMARANTH_OUT_PROCESS_CODE);
return returnUrl;
}

View File

@@ -1949,11 +1949,7 @@ public class ApprovalService {
}
} else if("ECR".equals(targetType)){
Map<String, Object> ecrParam = new HashMap<String, Object>();
try {
ecrParam.put("OBJID", Long.parseLong(targetObjId));
} catch(NumberFormatException nfe){
ecrParam.put("OBJID", targetObjId);
}
ecrParam.put("OBJID", targetObjId);
Map<String, Object> ecrInfo = sqlSession.selectOne("quality.getEcrInfo", ecrParam);
if(ecrInfo != null){
@@ -3005,11 +3001,7 @@ public class ApprovalService {
}
} else if("ECR".equals(targetType) && !targetObjId.isEmpty()){
Map<String, Object> ecrParam = new HashMap();
try {
ecrParam.put("OBJID", Long.parseLong(targetObjId));
} catch(NumberFormatException nfe){
ecrParam.put("OBJID", targetObjId);
}
ecrParam.put("OBJID", targetObjId);
System.out.println("ECR 본문 조회 - OBJID: " + targetObjId);
Map<String, Object> ecrInfo = sqlSession.selectOne("quality.getEcrInfo", ecrParam);
System.out.println("ECR 조회 결과: " + (ecrInfo != null ? "데이터 있음" : "null"));
@@ -3082,9 +3074,21 @@ public class ApprovalService {
String changeTypeName = CommonUtils.checkNull(ecrInfo.get("CHANGE_TYPE_NAME"));
String ecrDocSummary = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_SUMMARY"));
String ecrDocReason = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_REASON"));
String ecrDocFormNo = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_FORM_NO"));
String ecrRevNo = CommonUtils.checkNull(ecrInfo.get("ECR_REV_NO"));
String ecrRevDate = CommonUtils.checkNull(ecrInfo.get("ECR_REV_DATE"));
String ecrDocAuthor = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_AUTHOR"));
html.append("<div style='font-family:맑은 고딕,Malgun Gothic,sans-serif; padding:10px;'>");
html.append("<h2 style='text-align:center; margin-bottom:15px;'>ECR (Engineering Change Request)</h2>");
html.append("<table style='width:100%; margin-bottom:5px;'><tr>");
html.append("<td style='text-align:center; vertical-align:middle;'><h2 style='margin:0;'>ECR (Engineering Change Request)</h2></td>");
html.append("<td style='width:180px; vertical-align:top;'>");
html.append("<table style='width:100%; border-collapse:collapse; border:1px solid #333;'>");
html.append("<tr><td style='border:1px solid #333; padding:4px 8px; background:#f0f0f0; font-weight:bold; width:80px;'>Form no.</td><td style='border:1px solid #333; padding:4px 8px;'>").append(ecrDocFormNo).append("</td></tr>");
html.append("<tr><td style='border:1px solid #333; padding:4px 8px; background:#f0f0f0; font-weight:bold;'>Rev.no</td><td style='border:1px solid #333; padding:4px 8px;'>").append(ecrRevNo).append("</td></tr>");
html.append("<tr><td style='border:1px solid #333; padding:4px 8px; background:#f0f0f0; font-weight:bold;'>Rev. date</td><td style='border:1px solid #333; padding:4px 8px;'>").append(ecrRevDate).append("</td></tr>");
html.append("<tr><td style='border:1px solid #333; padding:4px 8px; background:#f0f0f0; font-weight:bold;'>Author</td><td style='border:1px solid #333; padding:4px 8px;'>").append(ecrDocAuthor).append("</td></tr>");
html.append("</table></td></tr></table>");
html.append("<table style='width:100%; border-collapse:collapse; border:1px solid #333; margin-bottom:15px;'>");
html.append("<tr>");
@@ -3177,7 +3181,6 @@ public class ApprovalService {
String ecrDocAuthor = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_AUTHOR"));
String ecrDocSummary = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_SUMMARY"));
String ecrDocReason = CommonUtils.checkNull(ecrInfo.get("ECR_DOC_REASON"));
html.append("<!DOCTYPE html><html><head><meta charset='UTF-8'>");
html.append("<title>ECR - ").append(ecrNo).append("</title>");
html.append("<style>");