AttachService.copyListAttach(String grpCd) 기능을 사용할려면 항상 아래와 같이 grp_cd가 not null인지 확인후 처리 해야 했는데

기능 개선전 복사로직

// 첨부파일 복사
String req_file_grpno = (String)_rfq.get("req_file_grpno");
if (!Strings.isNullOrEmpty(req_file_grpno))
{
    _rfq.put("req_file_grpno", attachService.copyListAttach(req_file_grpno));
}

 

AttachService에 Method overloading으로 아래 Method추가하여 복사로직을 단순화 하였다.

그리고 기존 copyListAttach Method의 newGrpCd의 초기화도 null로 지정하여 실제 첨부파일 있는 경우에만 grp_cd가 부여되고, 첨부파일이 없는경우는 null이 return되도록 했다.

AttachService.copyListAttach(Object grpCd)

public String copyListAttach(Object grpCd)
{
    String _grpCd = (String) grpCd;
    
    if (!String.IsNullOrEmpty(_grpCd))
    {
        return this.copyListAttach(_grpCd);
    }

    return null;
}

/**
 * 첨부파일 복사
 *
 * @param grpCd: 복사대상 첨부파일 그룹 키
 * @return newGrpCd : 복사된 첨부파일 그룹 키
 */
public String copyListAttach(String grpCd) {
    Map<String, Object> param = new HashMap<String, Object>();
    param.put("grp_cd", grpCd);
    
    String newGrpCd = null;
    
    List<Map<String, Object>> attachList = findListAttach(param);
    if(!attachList.isEmpty()) {

        newGrpCd = UUID.randomUUID().toString();

        int ord = 0;
        for(Map<String, Object> attach : attachList) {
            attach.put("new_att_id", UUID.randomUUID().toString());
            attach.put("new_grp_cd", newGrpCd);
            attach.put("grp_cd"    , grpCd);
            attach.put("sort_ord"  , ++ord);
            
            sqlSession.insert(NAMESPACE + "copyAttach", attach);
        }
    }
    return newGrpCd;
}

 

기능 개선후 복사로직

// 첨부파일 복사
_rfq.put("req_file_grpno", attachService.copyListAttach(_rfq.get("req_file_grpno")));