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")));