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 91617da..a225612 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 @@ -272,7 +272,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe if(reqDto.getRndDtlRptCnt() != dtls.size()) throw ApiCustomException.create("폐기물 보고수 오류[폐기물 갯수 확인]"); ApiUtil.validate(dtls, null, validator); reqDto.setRgtr(reqDto.getUserId()); - // FIXME: 파일 갯수 확인 - 프론트 파일 처리 완료시 까지 comment 처리 + if(files.size() != dtls.size()) throw ApiCustomException.create("폐기물 파일 갯수 오류[파일 갯수 확인]"); if(isEmpty(reqDto.getDscdmngId())) { @@ -451,23 +451,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe } for(NimsApiDto.DsuseRptInfo dto : rtnList){ - // 7. FIXME : 폐기 관리 데이타와 매핑 - // FIXME: 아래 부분과 비교 - 적용 필요 한지 확인후 적용 여부 결정 - // if(RPT_TY_CD.CANCEL.getCode().equals(dto.getRptTyCd())){ - // updateDsuseMgtMappingData(dto, reqDto.getUserId()); - // continue; - // } - //////////////////////////////////////////////////////////// - BizNimsResponse.DsuseMgtRes dsuseMgtRes = dto.mappingNewDsuseRptInfo(dsuseMgtDto); + // NIMS폐기보고와 일치하는 경우 - 폐기관리ID 매핑 if(ObjectUtils.isNotEmpty(dsuseMgtRes)) { - /////////////////////////////////////////////////////////////// - // FIXME: 매핑보고 조회후 일치하는 매핑관리 데이타의 매핑정보 갱신 -> 화면에서 처리하도록 comment 처리 - // dsuseMgtRes.setRgtr(reqDto.getUserId()); - // if (bizNimsMapper.updateForceMappingDsuseMgt(dsuseMgtDto) != 1) { - // throw ApiCustomException.create("폐기 관리 데이타 매핑 오류[폐기 관리 데이타 매핑 실패]"); - // } - ////////////////////////////////////////////////////////////// dto.setDscdmngId(dsuseMgtRes.getDscdmngId()); } } @@ -633,10 +619,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe NimsApiDto.DsuseRptInfo savedRptDto = bizNimsMapper.selectDsuseRptInfoByUsrRptIdNo(Map.of("usrRptIdNo", nimsDto.getUsrRptIdNo())); if(isEmpty(savedRptDto)){ newList.add(nimsDto); + }else{ - // FIXME: API 데이타 적용후 반드시 교차 확인 필요 - // FIXME: 2024-06-17 보고유형이 "취소"가 아닌 경우 return 목록에 추가??? - //if("Y".equals(savedRptDto.getUseYn()) && !RPT_TY_CD.CANCEL.getCode().equals(savedRptDto.getRptTyCd())){ + // 기 NIMS보고조회 데이타 중 사용여부 "Y"인 데이타만 return List에 추가 if("Y".equals(savedRptDto.getUseYn())){ nimsDto.setOrgUsrRptIdNo(savedRptDto.getOrgUsrRptIdNo()); rtnList.add(nimsDto); @@ -656,7 +641,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe // 폐기 보고 정보 데이타 생성 createDsuseRpt(dto, reqDto.getUserId()); - // FIXME: 2024-06-17 보고유형이 "취소"가 아닌 경우 return 목록에 추가??? + // 보고유형이 "취소"가 아닌 경우 return 목록에 추가 if(!RPT_TY_CD.CANCEL.getCode().equals(dto.getRptTyCd())){ rtnList.add(dto); } @@ -693,26 +678,25 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe /** * - * @param reqDto - * @param isUsrRptIdNo "확인" 상태의 데이타 조회 여부 - * @return + * @param reqDto NimsApiRequest.DsuseRptInfoReq + * @param isConfirmed "확인" 상태의 데이타 조회 여부 + * @return List */ - private List findNimsDsuseRptsOfApi(NimsApiRequest.DsuseRptInfoReq reqDto, boolean isUsrRptIdNo) { + private List findNimsDsuseRptsOfApi(NimsApiRequest.DsuseRptInfoReq reqDto, boolean isConfirmed) { List nimsList = new ArrayList<>(); - //boolean isUsrRptIdNo = !isEmpty(reqDto.getUr()); - while(true) { + while(true) { NimsApiResult.Response rslt = infNimsService.getDsuseRptInfo(reqDto); List curList = rslt.getResultOrThrow(); if(isEmpty(curList)) break; // FIXME: 2024-06-28 데이타 검증후 fix - // 보고유형이 취소가 아니고, 사용자보고번호가 있는 경우 또는 상태가 "확인"이 아니 경우만 추가 + // 사용자보고번호가 있는 경우 또는 상태가 "확인"이 아니 경우만 추가 nimsList.addAll( curList.stream() - .filter(d -> !RPT_TY_CD.CANCEL.getCode().equals(d.getRptTyCd())) - .filter(d -> isUsrRptIdNo || !"확인".equals(d.getStatus())) + //.filter(d -> !RPT_TY_CD.CANCEL.getCode().equals(d.getRptTyCd())) + .filter(d -> isConfirmed || !"확인".equals(d.getStatus())) .toList() ); @@ -789,7 +773,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe while(true) { Map map = bizNimsMapper.recusiveRefUsrRptIdNo(refUsrRptIdNo); if(map == null){ - // FIXME: 2024-06-17 참조사용자보고식별번호를 원사용자번호로??? + // 참조사용자식별번호가 없는 경우도 있어(NIMS보고상태 "확인"이 아닌 경우에) skip //dto.setOrgUsrRptIdNo(dto.getRefUsrRptIdNo()); //throw ApiCustomException.create("데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]"); log.error("데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]"); @@ -839,43 +823,40 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe /** *
 	 * 매핑데이타 update
-	 * -> 취소인 경우 clear
-	 * @param dto
+	 * 폐기 관리 테이블에 사용자보고식별번호 반영
+	 * 취소인 경우는 사용자/원사용자 식별번호 clear
+	 * 변경인 경우는 사용자식별번호 update
+	 * @param dto NimsApiDto.DsuseRptInfo
 	 * @param userId
 	 * 
*/ private void updateDsuseMgtMappingData(NimsApiDto.DsuseRptInfo dto, String userId) { // 폐기보고인 경우 : 폐기관리ID가 존재하는 경우만 처리 - //if(isEmpty(dto.getDscdmngId())) { - // FIXME : 폐기 관리 테이블에 사용자보고식별번호 반영 - // FIXME : 취소인 경우는 사용자/원사용자 식별번호 clear - // FIXME : 변경인 경우는 사용자식별번호 update - // tb_dsuse_mgt - // 조건 : 사용자보고식별번호 = 참조사용자보고식별번호 - // => usr_rpt_id_no -> refUsrRptIdNo update - // => 취소인 경우 use_yn = 'N' update - BizNimsRequest.DsuseMgtMappingReq reqDto = BizNimsRequest.DsuseMgtMappingReq.builder() - .dscdmngId(dto.getDscdmngId()) - .usrRptIdNo(dto.getUsrRptIdNo()) - .orgUsrRptIdNo(dto.getOrgUsrRptIdNo()) - .rptTyCd(dto.getRptTyCd()) - .stts(dto.getStatus()) - .rgtr(userId) - .build(); - - // if (!RPT_TY_CD.CANCEL.getCode().equals(dto.getRptTyCd())) { - // dsuseMgtRes.setUsrRptIdNo(dto.getUsrRptIdNo()); - // dsuseMgtRes.setRefUsrRptIdNo(dto.getRefUsrRptIdNo()); - // dsuseMgtRes.setOrgUsrRptIdNo(dto.getOrgUsrRptIdNo()); - // dsuseMgtRes.setRptTyCd(dto.getRptTyCd()); - // dsuseMgtRes.setStts(dto.getStatus()); - // //dsuseMgtRes.setPrgrsSttsCd(dto.getP()); - // } - if (bizNimsMapper.updateMappingDsuseMgt(reqDto) == 0) { - throw ApiCustomException.create( - "폐기보고정보 변경 적용 실패\n[폐기관리테이블에 사용자보고식별번호 = 참조사용자보고식별번호에 해당하는 데이타 미존재]"); - } - //} + // tb_dsuse_mgt + // 조건 : 사용자보고식별번호 = 참조사용자보고식별번호 + // => usr_rpt_id_no -> refUsrRptIdNo update + // => 취소인 경우 use_yn = 'N' update + BizNimsRequest.DsuseMgtMappingReq reqDto = BizNimsRequest.DsuseMgtMappingReq.builder() + .dscdmngId(dto.getDscdmngId()) + .usrRptIdNo(dto.getUsrRptIdNo()) + .orgUsrRptIdNo(dto.getOrgUsrRptIdNo()) + .rptTyCd(dto.getRptTyCd()) + .stts(dto.getStatus()) + .rgtr(userId) + .build(); + + // if (!RPT_TY_CD.CANCEL.getCode().equals(dto.getRptTyCd())) { + // dsuseMgtRes.setUsrRptIdNo(dto.getUsrRptIdNo()); + // dsuseMgtRes.setRefUsrRptIdNo(dto.getRefUsrRptIdNo()); + // dsuseMgtRes.setOrgUsrRptIdNo(dto.getOrgUsrRptIdNo()); + // dsuseMgtRes.setRptTyCd(dto.getRptTyCd()); + // dsuseMgtRes.setStts(dto.getStatus()); + // //dsuseMgtRes.setPrgrsSttsCd(dto.getP()); + // } + if (bizNimsMapper.updateMappingDsuseMgt(reqDto) == 0) { + throw ApiCustomException.create( + "폐기보고정보 변경 적용 실패\n[폐기관리테이블에 사용자보고식별번호 = 참조사용자보고식별번호에 해당하는 데이타 미존재]"); + } } /**