diff --git a/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java b/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java index c3d73ba..91ee983 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java +++ b/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java @@ -241,17 +241,30 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe // 0. 조회(저장)한 데이타 대상 에서 제외 (usrRptIdNo가 DB에 저장된 경우) - List list = new ArrayList<>(); + // 작업대상 데이타 List + List workList = new ArrayList<>(); + // 결과 return 작업 대상, 대상 데이타 List + List rtnTmplist = new ArrayList<>(); + List rtnlist = new ArrayList<>(); for (NimsApiDto.DsuseRptInfo dto : rsltList) { Map map = new HashMap<>(); map.put("usrRptIdNo", dto.getUsrRptIdNo()); - if(isEmpty(bizNimsMapper.selectDsuseRptInfoByUsrRptIdNo(map))){ - list.add(dto); + NimsApiDto.DsuseRptInfo infoDto = bizNimsMapper.selectDsuseRptInfoByUsrRptIdNo(map); + 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 생성 - for (NimsApiDto.DsuseRptInfo dto : list) { + for (NimsApiDto.DsuseRptInfo dto : workList) { dto.setOrgUsrRptIdNo(dto.getUsrRptIdNo()); dto.setRgtr(Constants.NIMS_API_USER_ID); @@ -260,6 +273,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe // 폐기 보고 정보 데이타 생성 createDsuseRpt(dto, true); + rtnTmplist.add(dto); + rtnlist.add(dto); // FIXME : 폐기 관리 데이타 매핑 List newList = dto.mappingNewDsuseRptInfo(dsuseMgts); @@ -275,7 +290,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe // 2. 신규 외의 경우(rptTyCd : 1 - 취소, 2 - 변경) String errMsg = null; - for (NimsApiDto.DsuseRptInfo dto : list) { + for (NimsApiDto.DsuseRptInfo dto : workList) { dto.setRgtr(Constants.NIMS_API_USER_ID); // 신규인 경우 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'으로 생성) 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 : 폐기 관리 데이타 매핑 List newList = dto.mappingDsuseRptInfo(dsuseMgts); if(newList.size() > 1){ @@ -311,7 +340,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe // return dtos; - return list; + return workList; } //------------------------------------------------------------------------------------------------------ @@ -478,45 +507,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe } } - - /** - *
-	 * 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
-	 * 
- */ - 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)); - } - } - /** *
 	 * tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성
@@ -583,6 +573,44 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 		}
 	}
 
+	/**
+	 * 
+	 * 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
+	 * 
+ */ + 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)); + } + } + /** *
 	 * 마약류 취급자 업체 추가 정보 set