|
|
|
@ -5,6 +5,7 @@ import java.util.Collections;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.concurrent.CopyOnWriteArrayList;
|
|
|
|
|
|
|
|
|
|
import javax.validation.Validation;
|
|
|
|
|
import javax.validation.Validator;
|
|
|
|
@ -618,6 +619,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
|
|
|
|
|
|
|
|
|
|
// 2. 참조사용자보고번호가 있는 경우 처리(rptTyCd : 1 - 취소, 2 - 변경)
|
|
|
|
|
String errMsg = null;
|
|
|
|
|
// thread safe 하도록 CopyOnWriteArrayList 사용
|
|
|
|
|
// List 사용시 java.util.ConcurrentModificationException 발생 - 동시성 문제
|
|
|
|
|
CopyOnWriteArrayList<NimsApiDto.DsuseRptInfo> concurrentList = new CopyOnWriteArrayList<>(rtnList);
|
|
|
|
|
for (NimsApiDto.DsuseRptInfo dto : newList) {
|
|
|
|
|
dto.setRgtr(reqDto.getUserId());
|
|
|
|
|
|
|
|
|
@ -633,16 +637,15 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
|
|
|
|
|
|
|
|
|
|
// FIXME : API 적용 필요
|
|
|
|
|
// 결과 return 대상 데이타 List에서 조회한 변경 대상이 있는 경우 replace
|
|
|
|
|
for(NimsApiDto.DsuseRptInfo d : rtnList){
|
|
|
|
|
if(d.getOrgUsrRptIdNo().equals(dto.getOrgUsrRptIdNo())
|
|
|
|
|
&& d.getUsrRptIdNo().equals(dto.getRefUsrRptIdNo())){
|
|
|
|
|
rtnList.remove(d);
|
|
|
|
|
|
|
|
|
|
rtnList.add(dto);
|
|
|
|
|
};
|
|
|
|
|
for(NimsApiDto.DsuseRptInfo item : concurrentList){
|
|
|
|
|
if(item.getOrgUsrRptIdNo().equals(dto.getOrgUsrRptIdNo())
|
|
|
|
|
&& item.getUsrRptIdNo().equals(dto.getRefUsrRptIdNo())){
|
|
|
|
|
concurrentList.remove(item);
|
|
|
|
|
concurrentList.add(dto);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return rtnList;
|
|
|
|
|
return new ArrayList<>(concurrentList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<NimsApiDto.DsuseRptInfo> findNimsDsuseRptsOfApi(NimsApiRequest.DsuseRptInfoReq reqDto) {
|
|
|
|
|