결재 에러 수정정
This commit is contained in:
@@ -626,7 +626,15 @@
|
||||
CREATE INDEX IF NOT EXISTS IDX_AMARANTH_APPROVAL_APPRO_KEY ON AMARANTH_APPROVAL(APPRO_KEY);
|
||||
===================================================== -->
|
||||
|
||||
<!-- Amaranth 결재 매핑 등록 (SSO URL 생성 시) -->
|
||||
<!-- TARGET_OBJID + TARGET_TYPE으로 기존 매핑 조회 -->
|
||||
<select id="selectAmaranthApprovalByTarget" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID, APPRO_KEY, TARGET_TYPE, TARGET_OBJID, STATUS
|
||||
FROM AMARANTH_APPROVAL
|
||||
WHERE TARGET_OBJID = #{targetObjId} AND TARGET_TYPE = #{targetType}
|
||||
</select>
|
||||
|
||||
<!-- Amaranth 결재 매핑 등록 (최초) -->
|
||||
<insert id="insertAmaranthApproval" parameterType="map">
|
||||
INSERT INTO AMARANTH_APPROVAL (
|
||||
APPRO_KEY, TARGET_TYPE, TARGET_OBJID, APPROVAL_TITLE, WRITER, STATUS, REGDATE
|
||||
@@ -635,6 +643,19 @@
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 기존 매핑의 APPRO_KEY 갱신 (재상신 시) -->
|
||||
<update id="updateAmaranthApprovalResubmit" parameterType="map">
|
||||
UPDATE AMARANTH_APPROVAL SET
|
||||
APPRO_KEY = #{approKey},
|
||||
APPROVAL_TITLE = #{approvalTitle},
|
||||
WRITER = #{writer},
|
||||
STATUS = 'create',
|
||||
AMARANTH_DOC_ID = NULL,
|
||||
DOC_STS = '0',
|
||||
UPDATE_DATE = NOW()
|
||||
WHERE TARGET_OBJID = #{targetObjId} AND TARGET_TYPE = #{targetType}
|
||||
</update>
|
||||
|
||||
<!-- approKey로 Amaranth 결재 매핑 조회 -->
|
||||
<select id="selectAmaranthApprovalByApproKey" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
|
||||
@@ -4713,16 +4713,9 @@ ORDER BY V.PATH2
|
||||
A.ROUTE_OBJID
|
||||
FROM
|
||||
SALES_REQUEST_MASTER SRM
|
||||
LEFT OUTER JOIN (
|
||||
SELECT AA.TARGET_OBJID, AA.STATUS AS AMARANTH_STATUS
|
||||
FROM AMARANTH_APPROVAL AA
|
||||
INNER JOIN (
|
||||
SELECT TARGET_OBJID, MAX(OBJID) AS MAX_OBJID
|
||||
FROM AMARANTH_APPROVAL
|
||||
WHERE TARGET_TYPE = 'PROPOSAL'
|
||||
GROUP BY TARGET_OBJID
|
||||
) AA_MAX ON AA.OBJID = AA_MAX.MAX_OBJID
|
||||
) AMR ON SRM.OBJID::VARCHAR = AMR.TARGET_OBJID
|
||||
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,
|
||||
|
||||
@@ -1843,7 +1843,7 @@ public class ApprovalService {
|
||||
String resultCode = extractJsonStringValue(apiResponse, "resultCode");
|
||||
|
||||
if("0".equals(resultCode) && !fullUrl.isEmpty()){
|
||||
// approKey → targetObjId 매핑을 DB에 저장 (콜백/컨텐츠 조회 시 사용)
|
||||
// approKey → targetObjId 매핑: 기존 건 있으면 UPDATE, 없으면 INSERT
|
||||
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
|
||||
Map<String, Object> mappingParam = new HashMap();
|
||||
mappingParam.put("approKey", approKey);
|
||||
@@ -1851,10 +1851,16 @@ public class ApprovalService {
|
||||
mappingParam.put("targetObjId", targetObjId);
|
||||
mappingParam.put("approvalTitle", approvalTitle);
|
||||
mappingParam.put("writer", loginId);
|
||||
sqlSession.insert("approval.insertAmaranthApproval", mappingParam);
|
||||
sqlSession.commit();
|
||||
|
||||
System.out.println("Amaranth 결재 매핑 DB 저장 완료 - approKey: " + approKey);
|
||||
Map<String, Object> existing = sqlSession.selectOne("approval.selectAmaranthApprovalByTarget", mappingParam);
|
||||
if(existing != null){
|
||||
sqlSession.update("approval.updateAmaranthApprovalResubmit", mappingParam);
|
||||
System.out.println("Amaranth 결재 매핑 UPDATE - approKey: " + approKey);
|
||||
} else {
|
||||
sqlSession.insert("approval.insertAmaranthApproval", mappingParam);
|
||||
System.out.println("Amaranth 결재 매핑 INSERT - approKey: " + approKey);
|
||||
}
|
||||
sqlSession.commit();
|
||||
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append("{\"resultCode\":0,\"resultMsg\":\"SUCCESS\",\"resultData\":{");
|
||||
|
||||
Reference in New Issue
Block a user