폐기관리 - 폐기보고정보 연관 처리(매핑)

dev
Jonguk. Lim 6 months ago
parent a8cebe6203
commit 4261c5e2b9

@ -241,17 +241,30 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 0. 조회(저장)한 데이타 대상 에서 제외 (usrRptIdNo가 DB에 저장된 경우) // 0. 조회(저장)한 데이타 대상 에서 제외 (usrRptIdNo가 DB에 저장된 경우)
List<NimsApiDto.DsuseRptInfo> list = new ArrayList<>(); // 작업대상 데이타 List
List<NimsApiDto.DsuseRptInfo> workList = new ArrayList<>();
// 결과 return 작업 대상, 대상 데이타 List
List<NimsApiDto.DsuseRptInfo> rtnTmplist = new ArrayList<>();
List<NimsApiDto.DsuseRptInfo> rtnlist = new ArrayList<>();
for (NimsApiDto.DsuseRptInfo dto : rsltList) { for (NimsApiDto.DsuseRptInfo dto : rsltList) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("usrRptIdNo", dto.getUsrRptIdNo()); map.put("usrRptIdNo", dto.getUsrRptIdNo());
if(isEmpty(bizNimsMapper.selectDsuseRptInfoByUsrRptIdNo(map))){ NimsApiDto.DsuseRptInfo infoDto = bizNimsMapper.selectDsuseRptInfoByUsrRptIdNo(map);
list.add(dto); if(isEmpty(infoDto)){
workList.add(dto);
}else{
// FIXME: API 적용 필요
// API 조회 반영된 사용여부가 'Y', 처리상태코드가 미완료인 경우는 return 대상
//if("Y".equals(infoDto.getUseYn()) && !"".equals(infoDto.getStatus())){
if("Y".equals(infoDto.getUseYn())){
rtnTmplist.add(dto);
rtnlist.add(dto);
}
}; };
} }
// 1. 신규(rptTyCd : 0) 저장 - tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 // 1. 신규(rptTyCd : 0) 저장 - tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성
for (NimsApiDto.DsuseRptInfo dto : list) { for (NimsApiDto.DsuseRptInfo dto : workList) {
dto.setOrgUsrRptIdNo(dto.getUsrRptIdNo()); dto.setOrgUsrRptIdNo(dto.getUsrRptIdNo());
dto.setRgtr(Constants.NIMS_API_USER_ID); dto.setRgtr(Constants.NIMS_API_USER_ID);
@ -260,6 +273,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 폐기 보고 정보 데이타 생성 // 폐기 보고 정보 데이타 생성
createDsuseRpt(dto, true); createDsuseRpt(dto, true);
rtnTmplist.add(dto);
rtnlist.add(dto);
// FIXME : 폐기 관리 데이타 매핑 // FIXME : 폐기 관리 데이타 매핑
List<BizNimsResponse.DsuseMgtRes> newList = dto.mappingNewDsuseRptInfo(dsuseMgts); List<BizNimsResponse.DsuseMgtRes> newList = dto.mappingNewDsuseRptInfo(dsuseMgts);
@ -275,7 +290,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 2. 신규 외의 경우(rptTyCd : 1 - 취소, 2 - 변경) // 2. 신규 외의 경우(rptTyCd : 1 - 취소, 2 - 변경)
String errMsg = null; String errMsg = null;
for (NimsApiDto.DsuseRptInfo dto : list) { for (NimsApiDto.DsuseRptInfo dto : workList) {
dto.setRgtr(Constants.NIMS_API_USER_ID); dto.setRgtr(Constants.NIMS_API_USER_ID);
// 신규인 경우 skip // 신규인 경우 skip
@ -297,6 +312,20 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 2-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 (취소인 경우는 tb_dsuse_rpt_info의 사용 여부 'N'으로 생성) // 2-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 (취소인 경우는 tb_dsuse_rpt_info의 사용 여부 'N'으로 생성)
createDsuseRpt(dto, false); createDsuseRpt(dto, false);
// FIXME : API 적용 필요
// 결과 return 대상 데이타 List에서 조회한 변경 대상이 있는 경우 replace
// 결과 return 대상 데이타 List에서 조회한 취소 대상이 있는 경우 삭제
for(NimsApiDto.DsuseRptInfo d : rtnTmplist){
if(d.getOrgUsrRptIdNo().equals(dto.getOrgUsrRptIdNo())
&& d.getUsrRptIdNo().equals(dto.getRefUsrRptIdNo())){
rtnlist.remove(d);
if(dto.getRptTyCd().equals("2")){
rtnlist.add(dto);
}
};
}
// FIXME : 폐기 관리 데이타 매핑 // FIXME : 폐기 관리 데이타 매핑
List<BizNimsResponse.DsuseMgtRes> newList = dto.mappingDsuseRptInfo(dsuseMgts); List<BizNimsResponse.DsuseMgtRes> newList = dto.mappingDsuseRptInfo(dsuseMgts);
if(newList.size() > 1){ if(newList.size() > 1){
@ -311,7 +340,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// return dtos; // return dtos;
return list; return workList;
} }
//------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------
@ -478,45 +507,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
} }
} }
/**
* <pre>
* tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 'N' update
* tb_dsuse_mgt
* : =
* => usr_rpt_id_no -> refUsrRptIdNo update
* => use_yn = 'N' update
* @param dto NimsApiDto.DsuseRptInfo
* </pre>
*/
private void updateDsuseRpt(NimsApiDto.DsuseRptInfo dto) {
String errMsg;
if ("1".equals(dto.getRptTyCd())) errMsg = "취소";
else errMsg = "변경";
if (bizNimsMapper.updateCancelDsuseRptInfo(dto) == 1) {
// TODO : 폐기 관리 테이블에 사용자보고식별번호 반영
// tb_dsuse_mgt
// 조건 : 사용자보고식별번호 = 참조사용자보고식별번호
// => usr_rpt_id_no -> refUsrRptIdNo update
// => 취소인 경우 use_yn = 'N' update
// if(bizNimsMapper.updateCancelDsuseMgt(dto) == 0){
// throw ApiCustomException.create("폐기보고정보 변경 적용 실패\n[폐기관리테이블에 사용자보고식별번호 = 참조사용자보고식별번호에 해당하는 데이타 미존재]");
// }
int cnt = bizNimsMapper.updateCancelDsuseRptInfoDtl(dto);
if(cnt == 0) throw ApiCustomException.create(String.format("폐기 정보 상세 %s 실패", errMsg));
// 변경인 경우 상세 데이타 건수와 일치 하지 않는 경우 오류 처리
if ("2".equals(dto.getRptTyCd()) && dto.getRndDtlRptCnt() != cnt) {
throw ApiCustomException.create(String.format("폐기 정보 상세 %s 실패", errMsg));
}
} else {
throw ApiCustomException.create(String.format("폐기 정보 %s 실패", errMsg));
}
}
/** /**
* <pre> * <pre>
* tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl * tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl
@ -583,6 +573,44 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
} }
} }
/**
* <pre>
* tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 'N' update
* tb_dsuse_mgt
* : =
* => usr_rpt_id_no -> refUsrRptIdNo update
* => use_yn = 'N' update
* @param dto NimsApiDto.DsuseRptInfo
* </pre>
*/
private void updateDsuseRpt(NimsApiDto.DsuseRptInfo dto) {
String errMsg;
if ("1".equals(dto.getRptTyCd())) errMsg = "취소";
else errMsg = "변경";
if (bizNimsMapper.updateCancelDsuseRptInfo(dto) == 1) {
// TODO : 폐기 관리 테이블에 사용자보고식별번호 반영
// tb_dsuse_mgt
// 조건 : 사용자보고식별번호 = 참조사용자보고식별번호
// => usr_rpt_id_no -> refUsrRptIdNo update
// => 취소인 경우 use_yn = 'N' update
// if(bizNimsMapper.updateCancelDsuseMgt(dto) == 0){
// throw ApiCustomException.create("폐기보고정보 변경 적용 실패\n[폐기관리테이블에 사용자보고식별번호 = 참조사용자보고식별번호에 해당하는 데이타 미존재]");
// }
int cnt = bizNimsMapper.updateCancelDsuseRptInfoDtl(dto);
if(cnt == 0) throw ApiCustomException.create(String.format("폐기 정보 상세 %s 실패", errMsg));
// 변경인 경우 상세 데이타 건수와 일치 하지 않는 경우 오류 처리
if ("2".equals(dto.getRptTyCd()) && dto.getRndDtlRptCnt() != cnt) {
throw ApiCustomException.create(String.format("폐기 정보 상세 %s 실패", errMsg));
}
} else {
throw ApiCustomException.create(String.format("폐기 정보 %s 실패", errMsg));
}
}
/** /**
* <pre> * <pre>
* set * set

Loading…
Cancel
Save