Compare commits
11 Commits
ycplm_node
...
V20260210
| Author | SHA1 | Date | |
|---|---|---|---|
| dba9a1ec63 | |||
| 1dcda9a28e | |||
| 978db17b31 | |||
| 8cee2067bb | |||
| 924f8c2781 | |||
| 6ad84230f5 | |||
| 9d9a8ad7c5 | |||
| d838c51144 | |||
| 4981332dec | |||
| 0348f57582 | |||
| e30d58a21b |
@@ -267,7 +267,7 @@
|
||||
<!-- 하단 부가세 구분 + 날짜 -->
|
||||
<div style="display:flex; justify-content:space-between; padding:3px 5px; font-size:11px; border:1px solid #000; border-top:none;">
|
||||
<span id="vatNote"></span>
|
||||
<span id="regDatetime"></span>
|
||||
<!-- <span id="regDatetime"></span> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -370,7 +370,7 @@ function fn_renderOrderForm(info, items){
|
||||
$("#summaryVat").text(vt > 0 ? fn_fmt(vt) : '');
|
||||
$("#summaryTotal").text(ta > 0 ? fn_fmt(ta) : '');
|
||||
$("#vatNote").text(fnc_checkNull(info.VAT_NOTE));
|
||||
$("#regDatetime").text(fnc_checkNull(info.REG_DATETIME));
|
||||
//$("#regDatetime").text(fnc_checkNull(info.REG_DATETIME));
|
||||
}
|
||||
|
||||
function fn_fmt(n){
|
||||
|
||||
@@ -199,11 +199,19 @@ var columns = [
|
||||
|
||||
// 11. S/N
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 100,
|
||||
title: 'S/N',
|
||||
field: 'SERIAL_NO'
|
||||
field: 'SERIAL_NO',
|
||||
formatter: function(cell, formatterParams, onRendered){
|
||||
var value = fnc_checkNull(cell.getValue());
|
||||
if(value === '') return '';
|
||||
return '<a href="javascript:void(0);">' + value + '</a>';
|
||||
},
|
||||
cellClick:function(e, cell){
|
||||
fn_showSerialNoPopup(fnc_checkNull(cell.getData().SERIAL_NO_LIST));
|
||||
}
|
||||
},
|
||||
|
||||
// 12. 수주수량
|
||||
@@ -265,6 +273,32 @@ var columns = [
|
||||
}
|
||||
];
|
||||
|
||||
// S/N 팝업 (콤마 구분 문자열 → 번호 매겨진 목록)
|
||||
function fn_showSerialNoPopup(serialNoString){
|
||||
if(!serialNoString || serialNoString === ''){
|
||||
Swal.fire("S/N 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
var serialNumbers = serialNoString.split(',').map(function(sn){ return sn.trim(); }).filter(function(sn){ return sn !== ''; });
|
||||
if(serialNumbers.length === 0){
|
||||
Swal.fire("S/N 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
var listHtml = '<div style="text-align: left; max-height: 400px; overflow-y: auto;">';
|
||||
listHtml += '<ol style="padding-left: 20px; margin: 10px 0;">';
|
||||
serialNumbers.forEach(function(sn){
|
||||
listHtml += '<li style="padding: 5px 0; font-size: 14px;">' + sn + '</li>';
|
||||
});
|
||||
listHtml += '</ol></div>';
|
||||
Swal.fire({
|
||||
title: 'S/N 목록',
|
||||
html: listHtml,
|
||||
width: 500,
|
||||
confirmButtonText: '확인',
|
||||
confirmButtonColor: '#3085d6'
|
||||
});
|
||||
}
|
||||
|
||||
// 검색 함수
|
||||
function fn_search(){
|
||||
// showCheck를 false로 설정하여 자동 체크박스 제거 (columns에 이미 체크박스 정의되어 있음)
|
||||
|
||||
@@ -204,11 +204,19 @@ var columns = [
|
||||
|
||||
// 11. S/N
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 80,
|
||||
title: 'S/N',
|
||||
field: 'SERIAL_NO'
|
||||
field: 'SERIAL_NO',
|
||||
formatter: function(cell, formatterParams, onRendered){
|
||||
var value = fnc_checkNull(cell.getValue());
|
||||
if(value === '') return '';
|
||||
return '<a href="javascript:void(0);">' + value + '</a>';
|
||||
},
|
||||
cellClick:function(e, cell){
|
||||
fn_showSerialNoPopup(fnc_checkNull(cell.getData().SERIAL_NO_LIST));
|
||||
}
|
||||
},
|
||||
|
||||
// 12. 수주수량
|
||||
@@ -321,6 +329,32 @@ var columns = [
|
||||
];
|
||||
|
||||
// 검색 함수
|
||||
// S/N 팝업 (콤마 구분 문자열 → 번호 매겨진 목록)
|
||||
function fn_showSerialNoPopup(serialNoString){
|
||||
if(!serialNoString || serialNoString === ''){
|
||||
Swal.fire("S/N 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
var serialNumbers = serialNoString.split(',').map(function(sn){ return sn.trim(); }).filter(function(sn){ return sn !== ''; });
|
||||
if(serialNumbers.length === 0){
|
||||
Swal.fire("S/N 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
var listHtml = '<div style="text-align: left; max-height: 400px; overflow-y: auto;">';
|
||||
listHtml += '<ol style="padding-left: 20px; margin: 10px 0;">';
|
||||
serialNumbers.forEach(function(sn){
|
||||
listHtml += '<li style="padding: 5px 0; font-size: 14px;">' + sn + '</li>';
|
||||
});
|
||||
listHtml += '</ol></div>';
|
||||
Swal.fire({
|
||||
title: 'S/N 목록',
|
||||
html: listHtml,
|
||||
width: 500,
|
||||
confirmButtonText: '확인',
|
||||
confirmButtonColor: '#3085d6'
|
||||
});
|
||||
}
|
||||
|
||||
function fn_search(){
|
||||
// multiple select 값을 콤마로 join해서 hidden input에 설정
|
||||
var projectNos = $("#search_project_no").val();
|
||||
|
||||
@@ -652,8 +652,8 @@ public class QualityController {
|
||||
code_map.put("inspection_date", commonService.bizMakeOptionList("", (String)paramMap.get("search_inspection_date"), "quality.getSemiProductInspectionDateList"));
|
||||
// 검사자 드롭박스
|
||||
code_map.put("writer", commonService.bizMakeOptionList("", (String)paramMap.get("search_writer"), "quality.getSemiProductWriterList"));
|
||||
// 불량유형 드롭박스
|
||||
code_map.put("defect_type", commonService.bizMakeOptionList("", (String)paramMap.get("search_defect_type"), "quality.getSemiProductDefectTypeList"));
|
||||
// 불량유형 드롭박스 (COMM_CODE 전체 목록 - 부모코드 0001820, 팝업과 동일)
|
||||
code_map.put("defect_type", commonService.bizMakeOptionList("0001820", (String)paramMap.get("search_defect_type"), "common.getCodeselect"));
|
||||
// 귀책부서 드롭박스
|
||||
code_map.put("responsible_dept", commonService.bizMakeOptionList("", (String)paramMap.get("search_responsible_dept"), "quality.getSemiProductResponsibleDeptList"));
|
||||
request.setAttribute("code_map", code_map);
|
||||
|
||||
@@ -2925,10 +2925,10 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
|
||||
AND T.PRODUCT_CD = #{product_cd}
|
||||
</if>
|
||||
<if test="search_fromDate != null and search_fromDate != ''">
|
||||
AND REGDATE::DATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
||||
AND T.REGDATE::DATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="search_toDate != null and search_toDate != ''">
|
||||
AND REGDATE::DATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
||||
AND T.REGDATE::DATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
|
||||
<if test="customer_cd != null and customer_cd != ''">
|
||||
|
||||
@@ -2911,7 +2911,7 @@
|
||||
COALESCE(CI.PART_NO, PM.PART_NO, '') AS PART_NO,
|
||||
COALESCE(CI.PART_NAME, PM.PART_NAME, '') AS PART_NAME,
|
||||
CI.PART_OBJID,
|
||||
-- S/N: 해당 품목의 시리얼 번호만 표시
|
||||
-- S/N 표시: "첫S/N 외 N건" (PM.CONTRACT_ITEM_OBJID로 직접 매칭)
|
||||
(SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) = 0 THEN ''
|
||||
@@ -2919,9 +2919,17 @@
|
||||
ELSE MIN(CIS.SERIAL_NO) || ' 외 ' || (COUNT(*) - 1)::TEXT || '건'
|
||||
END
|
||||
FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID = CI.OBJID
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = PM.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND CIS.SERIAL_NO IS NOT NULL) AS SERIAL_NO,
|
||||
AND CIS.SERIAL_NO IS NOT NULL
|
||||
AND CIS.SERIAL_NO != '') AS SERIAL_NO,
|
||||
-- S/N 전체 목록 (팝업용 콤마 연결)
|
||||
(SELECT STRING_AGG(CIS.SERIAL_NO, ', ' ORDER BY CIS.SERIAL_NO)
|
||||
FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = PM.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND CIS.SERIAL_NO IS NOT NULL
|
||||
AND CIS.SERIAL_NO != '') AS SERIAL_NO_LIST,
|
||||
-- 수량: PROJECT_MGMT 우선
|
||||
COALESCE(PM.QUANTITY::numeric, CI.ORDER_QUANTITY::numeric, 0) AS QUANTITY,
|
||||
-- 요청납기: CONTRACT_ITEM 우선
|
||||
@@ -3075,8 +3083,8 @@
|
||||
<!-- S/N 검색 -->
|
||||
<if test="search_serial_no != null and search_serial_no != ''">
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID = CI.OBJID
|
||||
SELECT 1 FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = PM.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND UPPER(CIS.SERIAL_NO) LIKE '%' || UPPER(#{search_serial_no}) || '%'
|
||||
)
|
||||
@@ -4575,9 +4583,16 @@
|
||||
ELSE MIN(CIS.SERIAL_NO) || ' 외 ' || (COUNT(*) - 1)::TEXT || '건'
|
||||
END
|
||||
FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID = CI.OBJID
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = PM.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND CIS.SERIAL_NO IS NOT NULL) AS SERIAL_NO,
|
||||
AND CIS.SERIAL_NO IS NOT NULL
|
||||
AND CIS.SERIAL_NO != '') AS SERIAL_NO,
|
||||
(SELECT STRING_AGG(CIS.SERIAL_NO, ', ' ORDER BY CIS.SERIAL_NO)
|
||||
FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = PM.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND CIS.SERIAL_NO IS NOT NULL
|
||||
AND CIS.SERIAL_NO != '') AS SERIAL_NO_LIST,
|
||||
COALESCE(NULLIF(PM.QUANTITY, '')::numeric, NULLIF(CI.ORDER_QUANTITY, '')::numeric, 0) AS QUANTITY,
|
||||
COALESCE(NULLIF(PP.EXTRA_PROD_QTY, '')::numeric, 0) AS EXTRA_PROD_QTY,
|
||||
COALESCE(NULLIF(PM.QUANTITY, '')::numeric, NULLIF(CI.ORDER_QUANTITY, '')::numeric, 0) + COALESCE(NULLIF(PP.EXTRA_PROD_QTY, '')::numeric, 0) AS TOTAL_PROD_QTY,
|
||||
@@ -4642,6 +4657,7 @@
|
||||
COALESCE(PP.PART_NO, '') AS PART_NO,
|
||||
COALESCE(PP.PART_NAME, '') AS PART_NAME,
|
||||
COALESCE(PP.SERIAL_NO, '') AS SERIAL_NO,
|
||||
COALESCE(PP.SERIAL_NO, '') AS SERIAL_NO_LIST,
|
||||
COALESCE(NULLIF(PP.ORDER_QTY, '')::numeric, 0) AS QUANTITY,
|
||||
COALESCE(NULLIF(PP.EXTRA_PROD_QTY, '')::numeric, 0) AS EXTRA_PROD_QTY,
|
||||
COALESCE(NULLIF(PP.TOTAL_PROD_QTY, '')::numeric, 0) AS TOTAL_PROD_QTY,
|
||||
@@ -4702,9 +4718,9 @@
|
||||
<if test="search_part_name != null and search_part_name != ''">
|
||||
AND UPPER(T.PART_NAME) LIKE '%' || UPPER(#{search_part_name}) || '%'
|
||||
</if>
|
||||
<!-- S/N 검색 -->
|
||||
<!-- S/N 검색 (전체 S/N 리스트에서 매치) -->
|
||||
<if test="search_serial_no != null and search_serial_no != ''">
|
||||
AND UPPER(T.SERIAL_NO) LIKE '%' || UPPER(#{search_serial_no}) || '%'
|
||||
AND UPPER(T.SERIAL_NO_LIST) LIKE '%' || UPPER(#{search_serial_no}) || '%'
|
||||
</if>
|
||||
<!-- 등록자 검색 -->
|
||||
<if test="search_writer != null and search_writer != ''">
|
||||
|
||||
@@ -3919,18 +3919,18 @@
|
||||
,COALESCE(T.QUANTITY::numeric, 0) AS CONTRACT_QTY
|
||||
,T.PART_NO AS PRODUCT_ITEM_CODE
|
||||
,T.PART_NAME AS PRODUCT_ITEM_NAME
|
||||
-- S/N: 해당 품목의 시리얼 번호 (여러 개일 경우 "S/N 외 N건" 형식)
|
||||
-- S/N: 해당 CI의 시리얼 번호 (T.CONTRACT_ITEM_OBJID로 직접 매칭)
|
||||
,(SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) = 0 THEN ''
|
||||
WHEN COUNT(*) = 1 THEN MIN(S.SERIAL_NO)
|
||||
ELSE MIN(S.SERIAL_NO) || ' 외 ' || (COUNT(*) - 1)::TEXT || '건'
|
||||
WHEN COUNT(*) = 1 THEN MIN(CIS.SERIAL_NO)
|
||||
ELSE MIN(CIS.SERIAL_NO) || ' 외 ' || (COUNT(*) - 1)::TEXT || '건'
|
||||
END
|
||||
FROM CONTRACT_ITEM AS I
|
||||
LEFT JOIN CONTRACT_ITEM_SERIAL AS S ON S.ITEM_OBJID = I.OBJID AND S.STATUS = 'ACTIVE'
|
||||
WHERE I.CONTRACT_OBJID = T.CONTRACT_OBJID
|
||||
AND I.PART_OBJID = T.PART_OBJID
|
||||
AND S.SERIAL_NO IS NOT NULL) AS SERIAL_NO
|
||||
FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = T.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND CIS.SERIAL_NO IS NOT NULL
|
||||
AND CIS.SERIAL_NO != '') AS SERIAL_NO
|
||||
-- 요청납기: CONTRACT_ITEM 우선, 없으면 PROJECT_MGMT.DUE_DATE, 없으면 CONTRACT_MGMT.due_date
|
||||
,COALESCE(
|
||||
(SELECT CI.DUE_DATE
|
||||
@@ -4223,16 +4223,16 @@
|
||||
<!-- 요청납기일 필터: REQ_DEL_DATE 로직과 동일하게 COALESCE 사용 -->
|
||||
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
||||
AND TO_DATE(COALESCE(
|
||||
(SELECT CI.DUE_DATE FROM CONTRACT_ITEM CI WHERE CI.CONTRACT_OBJID = T.CONTRACT_OBJID AND CI.PART_OBJID = T.PART_OBJID AND CI.STATUS = 'ACTIVE'),
|
||||
(SELECT CI.DUE_DATE FROM CONTRACT_ITEM CI WHERE CI.CONTRACT_OBJID = T.CONTRACT_OBJID AND CI.PART_OBJID = T.PART_OBJID AND CI.STATUS = 'ACTIVE' ORDER BY CI.OBJID DESC LIMIT 1),
|
||||
T.DUE_DATE,
|
||||
(SELECT CM.due_date FROM CONTRACT_MGMT CM WHERE CM.OBJID = T.CONTRACT_OBJID)
|
||||
(SELECT CM.due_date FROM CONTRACT_MGMT CM WHERE CM.OBJID = T.CONTRACT_OBJID LIMIT 1)
|
||||
),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
||||
AND TO_DATE(COALESCE(
|
||||
(SELECT CI.DUE_DATE FROM CONTRACT_ITEM CI WHERE CI.CONTRACT_OBJID = T.CONTRACT_OBJID AND CI.PART_OBJID = T.PART_OBJID AND CI.STATUS = 'ACTIVE'),
|
||||
(SELECT CI.DUE_DATE FROM CONTRACT_ITEM CI WHERE CI.CONTRACT_OBJID = T.CONTRACT_OBJID AND CI.PART_OBJID = T.PART_OBJID AND CI.STATUS = 'ACTIVE' ORDER BY CI.OBJID DESC LIMIT 1),
|
||||
T.DUE_DATE,
|
||||
(SELECT CM.due_date FROM CONTRACT_MGMT CM WHERE CM.OBJID = T.CONTRACT_OBJID)
|
||||
(SELECT CM.due_date FROM CONTRACT_MGMT CM WHERE CM.OBJID = T.CONTRACT_OBJID LIMIT 1)
|
||||
),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
|
||||
@@ -4267,14 +4267,13 @@
|
||||
<if test="product_item_name != null and product_item_name != ''">
|
||||
AND UPPER(T.PART_NAME) LIKE UPPER('%' || #{product_item_name} || '%')
|
||||
</if>
|
||||
<!-- S/N 필터 -->
|
||||
<!-- S/N 필터 (T.CONTRACT_ITEM_OBJID로 직접 매칭) -->
|
||||
<if test="serial_no != null and serial_no != ''">
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM CONTRACT_ITEM AS I
|
||||
LEFT JOIN CONTRACT_ITEM_SERIAL AS S ON S.ITEM_OBJID = I.OBJID AND S.STATUS = 'ACTIVE'
|
||||
WHERE I.CONTRACT_OBJID = T.CONTRACT_OBJID
|
||||
AND I.PART_OBJID = T.PART_OBJID
|
||||
AND UPPER(S.SERIAL_NO) LIKE UPPER('%' || #{serial_no} || '%')
|
||||
SELECT 1 FROM CONTRACT_ITEM_SERIAL CIS
|
||||
WHERE CIS.ITEM_OBJID::VARCHAR = T.CONTRACT_ITEM_OBJID
|
||||
AND UPPER(CIS.STATUS) = 'ACTIVE'
|
||||
AND UPPER(CIS.SERIAL_NO) LIKE UPPER('%' || #{serial_no} || '%')
|
||||
)
|
||||
</if>
|
||||
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC, OVERHAUL_ORDER DESC NULLS LAST
|
||||
|
||||
@@ -6473,7 +6473,7 @@ FROM(
|
||||
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
|
||||
</if>
|
||||
<if test="sales_mng_user_ids != null and sales_mng_user_ids != ''">
|
||||
AND POM.SALES_MNG_USER_ID IN
|
||||
AND POM.WRITER IN
|
||||
<foreach item="value" collection="sales_mng_user_ids.split(',')" open="(" separator="," close=")">
|
||||
#{value}
|
||||
</foreach>
|
||||
@@ -6712,7 +6712,7 @@ FROM(
|
||||
AND POM.PARTNER_OBJID = REPLACE(#{partner_objid}, 'C_', '')
|
||||
</if>
|
||||
<if test="sales_mng_user_ids != null and sales_mng_user_ids != ''">
|
||||
AND POM.SALES_MNG_USER_ID IN
|
||||
AND POM.WRITER IN
|
||||
<foreach item="value" collection="sales_mng_user_ids.split(',')" open="(" separator="," close=")">
|
||||
#{value}
|
||||
</foreach>
|
||||
|
||||
@@ -1767,8 +1767,9 @@
|
||||
<!-- 반제품검사 불량유형 드롭박스 목록 (CODE, NAME 형태) -->
|
||||
<select id="getSemiProductDefectTypeList" parameterType="map" resultType="map">
|
||||
SELECT DISTINCT SPI.DEFECT_TYPE AS CODE
|
||||
, SPI.DEFECT_TYPE AS NAME
|
||||
, COALESCE(CC.CODE_NAME, SPI.DEFECT_TYPE) AS NAME
|
||||
FROM PMS_QUALITY_SEMI_PRODUCT_INSPECTION SPI
|
||||
LEFT JOIN COMM_CODE CC ON CC.CODE_ID = SPI.DEFECT_TYPE
|
||||
WHERE SPI.DEFECT_TYPE IS NOT NULL AND SPI.DEFECT_TYPE != ''
|
||||
ORDER BY NAME
|
||||
</select>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1823,11 +1823,12 @@ public class ApprovalService {
|
||||
if(existing != null){
|
||||
String existingStatus = CommonUtils.checkNull(existing.get("STATUS"));
|
||||
|
||||
// 반려/삭제된 건은 새 approKey로 신규 상신 (기존 approKey는 아마란스에 반려 문서로 남아있어 재사용 불가)
|
||||
if("reject".equals(existingStatus) || "delete".equals(existingStatus)){
|
||||
// 반려/삭제/임시보관(취소) 건은 새 approKey로 신규 상신
|
||||
// - 아마란스가 기존 approKey의 원챔버 첨부파일(HTML)을 재사용하므로 수정 내용이 반영 안됨
|
||||
if("reject".equals(existingStatus) || "delete".equals(existingStatus) || "create".equals(existingStatus)){
|
||||
approKey = "UB_" + java.util.UUID.randomUUID().toString();
|
||||
isNewRecord = false;
|
||||
System.out.println("=== 반려/삭제 건 재상신 - 신규 approKey 생성: " + approKey + " (기존 상태: " + existingStatus + ") ===");
|
||||
System.out.println("=== 재상신 - 신규 approKey 생성: " + approKey + " (기존 상태: " + existingStatus + ") ===");
|
||||
} else {
|
||||
approKey = CommonUtils.checkNull(existing.get("APPRO_KEY"));
|
||||
isNewRecord = false;
|
||||
@@ -2319,7 +2320,8 @@ public class ApprovalService {
|
||||
// 하단 부가세 구분 + 날짜
|
||||
html.append("<table style='width:100%; border-collapse:collapse; margin-top:-1px;'><tr>");
|
||||
html.append("<td style='").append(S).append(" border-top:none;'>").append(vatNote).append("</td>");
|
||||
html.append("<td style='").append(S).append(" border-top:none; text-align:right;'>").append(regDatetime).append("</td>");
|
||||
//html.append("<td style='").append(S).append(" border-top:none; text-align:right;'>").append(regDatetime).append("</td>");
|
||||
html.append("<td style='").append(S).append(" border-top:none; text-align:right;'></td>");
|
||||
html.append("</tr></table>");
|
||||
|
||||
html.append("</div>");
|
||||
@@ -2451,7 +2453,8 @@ public class ApprovalService {
|
||||
// 하단 부가세 구분 + 날짜
|
||||
html.append("<div style='display:flex; justify-content:space-between; padding:3px 5px; font-size:11px; border:1px solid #000; border-top:none;'>");
|
||||
html.append("<span>").append(vatNote).append("</span>");
|
||||
html.append("<span>").append(regDatetime).append("</span>");
|
||||
//html.append("<span>").append(regDatetime).append("</span>");
|
||||
html.append("<span></span>");
|
||||
html.append("</div>");
|
||||
html.append("</div>");
|
||||
|
||||
@@ -2943,6 +2946,7 @@ public class ApprovalService {
|
||||
if("90".equals(docSts)) return "complete";
|
||||
if("100".equals(docSts)) return "reject";
|
||||
if("110".equals(docSts)) return "hold";
|
||||
if("999".equals(docSts)) return "delete";
|
||||
return "inProcess";
|
||||
}
|
||||
|
||||
@@ -2956,6 +2960,7 @@ public class ApprovalService {
|
||||
if("90".equals(docSts)) return "approvalComplete";
|
||||
if("100".equals(docSts)) return "reject";
|
||||
if("110".equals(docSts)) return "approvalRequest";
|
||||
if("999".equals(docSts)) return "create";
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -3670,6 +3675,7 @@ public class ApprovalService {
|
||||
if("90".equals(docSts)) return "종결";
|
||||
if("100".equals(docSts)) return "반려";
|
||||
if("110".equals(docSts)) return "보류";
|
||||
if("999".equals(docSts)) return "삭제";
|
||||
return "기타(" + docSts + ")";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user