@ -183,7 +183,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
}
NimsApiResult . Response < NimsApiDto . MnfSeqInfo > response = infNimsService . getMnfSeqInfo ( reqDto ) ;
List < NimsApiDto . MnfSeqInfo > results = response . getResult OrThrow ( ) ;
List < NimsApiDto . MnfSeqInfo > results = response . getResult ( ) ;
// 올림 차순 정렬
results . sort ( ( a , b ) - > {
if ( isEmpty ( a . getPrdValidDe ( ) ) & & isEmpty ( b . getPrdValidDe ( ) ) )
@ -197,7 +197,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return results ;
}
@Override
public List < NimsApiDto . JurisdictionGovInfo > getJurisdictionGovInfo ( final NimsApiRequest . JurisdictionGovInfoReq reqDto ) {
List < NimsApiDto . JurisdictionGovInfo > list = new ArrayList < > ( ) ;
@ -229,9 +228,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return list ;
}
@Override
public List < NimsApiDto . DsuseRptInfo > save DsuseRptInfo( NimsApiRequest . DsuseRptInfoReq reqDto ) {
public List < NimsApiDto . DsuseRptInfo > getNim sDsuseRptInfo( NimsApiRequest . DsuseRptInfoReq reqDto ) {
reqDto . setFg ( "2" ) ; // 조회기준일자(1-보고일,2-취급일)
reqDto . setPg ( "1" ) ; // 조회 페이지
reqDto . setSe ( "AAR" ) ; // 보고구분코드 - 폐기
@ -243,13 +241,12 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
reqDto . setGc ( apiInfInfo . get ( "deptCd" ) ) ; // 관할관청코드
ApiUtil . validate ( reqDto , null , validator ) ;
List < NimsApiDto . DsuseRptInfo > rtnList = saveFrom findDsuseRptDataByNim sApi( reqDto ) ;
List < NimsApiDto . DsuseRptInfo > rtnList = findNims DsuseRptsOf Api( reqDto ) ;
// FIXME: API연계 데이타 확인후 매핑될 데이타가 최상단에 오도록 정렬기준 재정의 필요
rtnList . sort ( ( a , b ) - > a . getUsrRptIdNo ( ) . compareTo ( b . getUsrRptIdNo ( ) ) ) ;
return rtnList ;
}
//------------------------------------------------------------------------------------------------------
// NIMS BIZ
//------------------------------------------------------------------------------------------------------
@ -356,10 +353,10 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
for ( BizNimsResponse . DsuseMgtRes dto : resList ) {
// FIXME: API 적용 완류후 command 제거
//dto.setRptTy Cd Nm(RPT_TY_CD.getName(dto.getRptTyCd()));
// dto.setDsuseSe Cd Nm(Constants.DSUSE_SE_CD.getName(dto.getDsuseSeCd()));
// dto.setDsusePrv Cd Nm(Constants.DSUSE_PRV_CD.getName(dto.getDsusePrvCd()));
// dto.setDsuseMth Cd Nm(Constants.DSUSE_MTH_CD.getName(dto.getDsuseMthCd()));
//dto.setRptTy Nm(RPT_TY_CD.getName(dto.getRptTyCd()));
// dto.setDsuseSe Nm(Constants.DSUSE_SE_CD.getName(dto.getDsuseSeCd()));
// dto.setDsusePrv Nm(Constants.DSUSE_PRV_CD.getName(dto.getDsusePrvCd()));
// dto.setDsuseMth Nm(Constants.DSUSE_MTH_CD.getName(dto.getDsuseMthCd()));
Map < String , String > map = new HashMap < > ( ) ;
map . put ( "dscdmngId" , dto . getDscdmngId ( ) ) ;
@ -371,6 +368,26 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return resList ;
}
@Override
public List < NimsApiDto . DsuseRptInfo > saveDsuseRptInfo ( NimsApiRequest . DsuseRptInfoReq reqDto ) {
reqDto . setFg ( "2" ) ; // 조회기준일자(1-보고일,2-취급일)
reqDto . setPg ( "1" ) ; // 조회 페이지
reqDto . setSe ( "AAR" ) ; // 보고구분코드 - 폐기
if ( isEmpty ( reqDto . getFg2 ( ) ) ) reqDto . setFg2 ( "" ) ; // 보고유형('': 전체, 0:신규, 1:취소, 2:변경)
if ( isEmpty ( reqDto . getPs ( ) ) ) reqDto . setPs ( "" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
Map < String , String > apiInfInfo = getApiInfInfo ( reqDto . getUserId ( ) ) ;
reqDto . setK ( apiInfInfo . get ( "apiKey" ) ) ;
reqDto . setGc ( apiInfInfo . get ( "deptCd" ) ) ; // 관할관청코드
ApiUtil . validate ( reqDto , null , validator ) ;
List < NimsApiDto . DsuseRptInfo > rtnList = saveFromfindDsuseRptDataByNimsApi ( reqDto ) ;
// FIXME: API연계 데이타 확인후 매핑될 데이타가 최상단에 오도록 정렬기준 재정의 필요
rtnList . sort ( ( a , b ) - > a . getUsrRptIdNo ( ) . compareTo ( b . getUsrRptIdNo ( ) ) ) ;
return rtnList ;
}
/ * *
* < pre >
* saveDsuseRptInfo 대 체 메 소 드 - 확 인 후 적 용
@ -416,6 +433,13 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
for ( NimsApiDto . DsuseRptInfo dto : rtnList ) {
// 7. FIXME : 폐기 관리 데이타와 매핑
// FIXME: API 적용 필요 - 취소 데이타인 경우 확인 필요
if ( RPT_TY_CD . CANCEL . getCode ( ) . equals ( dto . getRptTyCd ( ) ) ) {
updateDsuseMgtMappingData ( dto , reqDto . getUserId ( ) ) ;
continue ;
}
////////////////////////////////////////////////////////////
BizNimsResponse . DsuseMgtRes dsuseMgtRes = dto . mappingNewDsuseRptInfo ( dsuseMgtDto ) ;
if ( ObjectUtils . isNotEmpty ( dsuseMgtRes ) ) {
if ( bizNimsMapper . updateMappingDsuseMgt ( dsuseMgtDto ) ! = 1 ) {
@ -599,19 +623,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
* < / pre >
* /
private List < NimsApiDto . DsuseRptInfo > saveFromfindDsuseRptDataByNimsApi ( NimsApiRequest . DsuseRptInfoReq reqDto ) {
List < NimsApiDto . DsuseRptInfo > nimsList = new ArrayList < > ( ) ;
while ( true ) {
NimsApiResult . Response < NimsApiDto . DsuseRptInfo > rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
List < NimsApiDto . DsuseRptInfo > curList = rslt . getResultOrThrow ( ) ;
if ( isEmpty ( curList ) ) break ;
nimsList . addAll ( curList ) ;
if ( rslt . isEndYn ( ) ) break ;
reqDto . setPg ( String . valueOf ( Integer . parseInt ( reqDto . getPg ( ) ) + 1 ) ) ;
}
List < NimsApiDto . DsuseRptInfo > nimsList = findNimsDsuseRptsOfApi ( reqDto ) ;
// 신규 작업대상 데이타 List
List < NimsApiDto . DsuseRptInfo > newList = new ArrayList < > ( ) ;
@ -632,6 +644,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
NimsApiDto . DsuseRptInfo savedMgtDto = bizNimsMapper . selectDsuseRptInfoByUsrRptIdNo ( Map . of ( "usrRptIdNo" , nimsDto . getUsrRptIdNo ( ) ) ) ;
if ( isEmpty ( savedMgtDto ) ) {
// FIXME: API 적용후 적용 내용 삭제 : 취소 데이타가 비정상 적으로 내려오고 있어 skip 처리 ///////////////////////
if ( ! "1" . equals ( nimsDto . getRptTyCd ( ) ) )
//////////////////////////////////////////////////////////////
newList . add ( nimsDto ) ;
} else {
// FIXME: API 적용 필요
@ -669,16 +684,16 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
throw ApiCustomException . create ( "데이타 오류[취소 및 변경인 경우 참조사용자식별번호(REF_USR_RPT_ID_NO) 필수]" ) ;
}
// 2-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 (취소인 경우는 tb_dsuse_rpt_info의 사용 여부 'N'으로 생성)
createDsuseRpt ( dto , reqDto . getUserId ( ) ) ;
// 2-2. 폐기보고정보, 폐기관리 변경
// 1) tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 사용여부 'N' update
// 2) tb_dsuse_mgt 변경
// 조건 : 사용자보고식별번호 = 참조사용자보고식별번호
// => usr_rpt_id_no -> refUsrRptIdNo update
// => 취소인 경우 use_yn = 'N' update
updateDsuseRptAndDsuseMgt ( dto , reqDto . getUserId ( ) ) ;
updateDsuseRptOfCancel ( dto , reqDto . getUserId ( ) ) ;
// 2-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 (취소인 경우는 tb_dsuse_rpt_info의 사용 여부 'N'으로 생성)
createDsuseRpt ( dto , reqDto . getUserId ( ) ) ;
// FIXME : API 적용 필요
// 결과 return 대상 데이타 List에서 조회한 변경 대상이 있는 경우 replace
@ -697,6 +712,81 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return rtnList ;
}
private List < NimsApiDto . DsuseRptInfo > findNimsDsuseRptsOfApi ( NimsApiRequest . DsuseRptInfoReq reqDto ) {
List < NimsApiDto . DsuseRptInfo > nimsList = new ArrayList < > ( ) ;
// FIXME: API 적용후 comment 제거 ///////////////////////
// while(true) {
// NimsApiResult.Response<NimsApiDto.DsuseRptInfo> rslt = infNimsService.getDsuseRptInfo(reqDto);
// List<NimsApiDto.DsuseRptInfo> curList = rslt.getResultOrThrow();
//
// if(isEmpty(curList)) break;
//
// nimsList.addAll(curList);
//
// if(rslt.isEndYn()) break;
// reqDto.setPg(String.valueOf(Integer.parseInt(reqDto.getPg()) + 1));
// }
//////////////////////////////////////////////////////////////////////////
// FIXME: API 적용후 제거 ///////////////////////
NimsApiResult . Response < NimsApiDto . DsuseRptInfo > rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
List < NimsApiDto . DsuseRptInfo > curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "02" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "03" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "04" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setFg2 ( "1" ) ; // 보고 유형: ""- 전체, 0-신규, 1-취소, 2-변경
reqDto . setPs ( "01" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "02" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "03" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "04" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setFg2 ( "2" ) ; // 보고 유형: ""- 전체, 0-신규, 1-취소, 2-변경
reqDto . setPs ( "01" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "02" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "03" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
reqDto . setPs ( "04" ) ; // 상태("": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)
rslt = infNimsService . getDsuseRptInfo ( reqDto ) ;
curList = rslt . getResult ( ) ;
if ( ! isEmpty ( curList ) ) nimsList . addAll ( curList ) ;
//////////////////////////////////////////////////////////////////////////
return nimsList ;
}
/ * *
* < pre >
* tb_dsuse_rpt_info , tb_dsuse_rpt_info_dtl 생 성
@ -720,7 +810,12 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
if ( RPT_TY_CD . NEW . getCode ( ) . equals ( dto . getRptTyCd ( ) ) ) {
dto . setOrgUsrRptIdNo ( dto . getUsrRptIdNo ( ) ) ;
} else {
setOrgUsrRptIdNo ( dto ) ;
// FIXME : 취소인 경우는 사용자/원사용자 식별번호 clear - API 취소 && 상태(미처리) 인 경우 제외되는지 확인후 제거 여부 결정
if ( RPT_TY_CD . CANCEL . getCode ( ) . equals ( dto . getRptTyCd ( ) ) ) {
dto . setOrgUsrRptIdNo ( dto . getUsrRptIdNo ( ) ) ;
} else {
findRecusiveOrgUsrRptIdNo ( dto ) ;
}
}
if ( bizNimsMapper . insertDsuseRptInfo ( dto ) = = 1 ) {
@ -731,9 +826,11 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
int dtlCnt = 0 ;
for ( NimsApiDto . DsuseRptInfoDtl d : dto . getListDtl ( ) ) {
d . setRgtr ( userId ) ;
// FIXME: API 적용 완류후 아래 라인 제거
// FIXME: API 적용 완류후 아래 라인 제거 - 사용자보고라인번호가 내려오지 않고 있어 임시로 추가 /////////////////////////////////////
d . setUsrRptLnIdNo ( d . getUsrRptIdNo ( ) + "_" + ( dtlCnt + 1 ) ) ;
///////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
dtlCnt = dtlCnt + bizNimsMapper . insertDsuseRptInfoDtl ( d ) ;
}
if ( dto . getRndDtlRptCnt ( ) ! = dtlCnt )
@ -753,7 +850,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
* @param dto NIMS 폐 기 보 고 데 이 타 ( NimsApiDto . DsuseRptInfo )
* < / pre >
* /
private void set OrgUsrRptIdNo( NimsApiDto . DsuseRptInfo dto ) {
private void findRecu siv eOrgUsrRptIdNo( NimsApiDto . DsuseRptInfo dto ) {
// 원 사용자 식별 번호 set - 변경/취소 인 경우
// 신규인 경우는 사용자보고식별번호로 설정
@ -762,7 +859,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 참조사용자보고식별번호로 원사용자보고식별번호조회
while ( true ) {
Map < String , String > map = bizNimsMapper . recusiveRefUsrRptIdNo ( refUsrRptIdNo ) ;
if ( map = = null ) throw ApiCustomException . create ( "데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]" ) ;
if ( map = = null ) {
throw ApiCustomException . create ( "데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]" ) ;
}
if ( ! isEmpty ( map . get ( "refUsrRptIdNo" ) ) ) {
refUsrRptIdNo = map . get ( "refUsrRptIdNo" ) ;
@ -790,13 +889,40 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
* @param dto NimsApiDto . DsuseRptInfo
* < / pre >
* /
private void updateDsuseRpt AndDsuseMgt ( NimsApiDto . DsuseRptInfo dto , String userId ) {
private void updateDsuseRpt OfCancel ( NimsApiDto . DsuseRptInfo dto , String userId ) {
dto . setRgtr ( userId ) ;
String errMsg ;
if ( RPT_TY_CD . CANCEL . getCode ( ) . equals ( dto . getRptTyCd ( ) ) ) errMsg = RPT_TY_CD . CANCEL . getNm ( ) ;
else errMsg = RPT_TY_CD . MODIFY . getNm ( ) ;
if ( bizNimsMapper . updateCancelDsuseRptInfo ( dto ) = = 1 ) {
int cnt = bizNimsMapper . updateCancelDsuseRptInfoDtl ( dto ) ;
// 취소인 경우 상세 데이타가 없을 수 있다
if ( ! RPT_TY_CD . CANCEL . getCode ( ) . equals ( dto . getRptTyCd ( ) ) ) {
if ( dto . getRndDtlRptCnt ( ) ! = cnt ) {
throw ApiCustomException . create ( String . format ( "폐기 정보 상세 %s 실패" , errMsg ) ) ;
}
}
} else {
throw ApiCustomException . create ( String . format ( "폐기 정보 %s 실패" , errMsg ) ) ;
}
}
/ * *
* < pre >
* 매 핑 데 이 타 update
* - > 취 소 인 경 우 clear
* // FIXME : 필요한 부분에 대한 추가 처리 필요
* @param dto
* @param userId
* < / pre >
* /
private void updateDsuseMgtMappingData ( NimsApiDto . DsuseRptInfo dto , String userId ) {
// 폐기보고인 경우 : 폐기관리ID가 존재하는 경우만 처리
//if(isEmpty(dto.getDscdmngId())) {
// FIXME : 폐기 관리 테이블에 사용자보고식별번호 반영
// FIXME : 취소인 경우는 사용자/원사용자 식별번호 clear
// FIXME : 변경인 경우는 사용자식별번호 update
@ -804,21 +930,24 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 조건 : 사용자보고식별번호 = 참조사용자보고식별번호
// => 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 ) ) ;
}
BizNimsResponse . DsuseMgtRes dsuseMgtRes = BizNimsResponse . DsuseMgtRes . builder ( )
. dscdmngId ( dto . getDscdmngId ( ) )
. 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 ( dsuseMgtRes ) = = 0 ) {
throw ApiCustomException . create (
"폐기보고정보 변경 적용 실패\n[폐기관리테이블에 사용자보고식별번호 = 참조사용자보고식별번호에 해당하는 데이타 미존재]" ) ;
}
//}
}
/ * *
@ -910,311 +1039,4 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// }
// return list;
// }
// /**
// * <pre>
// * 마약류 취급자 업체 추가 정보 set
// * 허가번호(prmisnNo), 대표자명(rprsntvNm) set
// * @param resList List<BizNimsResponse.DsuseMgtResponse>
// * </pre>
// */
// private void setAddBsshInfo(List<BizNimsResponse.DsuseRptInfoRes> resList) {
// for (BizNimsResponse.DsuseRptInfoRes r : resList) {
// r.setRptTyCdNm(RPT_TY_CD.getName(r.getRptTyCd()));
// r.setDsuseSeCdNm(Constants.DSUSE_SE_CD.getName(r.getDsuseSeCd()));
// r.setDsusePrvCdNm(Constants.DSUSE_PRV_CD.getName(r.getDsusePrvCd()));
// r.setDsuseMthCdNm(Constants.DSUSE_MTH_CD.getName(r.getDsuseMthCd()));
//
// if (isEmpty(r.getPrmisnNo())) {
// List<BsshInfoSt> list = saveBsshInfoSt(
// BsshInfoReq.builder()
// .fg("1")
// .pg("1")
// .bc(r.getBsshCd())
// .build()
// );
// if (isEmpty(list)) {
// // FIXME : 데이타 정상 흐름 확인후 comment 제거
// continue;
// //throw ApiCustomException.create(String.format("데이타 오류(마약류취급자식별번호[%s]에 해당하는 데이타가 없습니다)", r.getBsshCd()));
// }
// r.setPrmisnNo(list.get(0).getPrmisnNo());
// r.setRprsntvNm(list.get(0).getRprsntvNm());
// }
// }
// }
//
// /**
// * <pre>
// * 제품 추가 정보 set
// * 마약항정구분(nrcdSeNm), 중점일반구분(prtmSenm), 제조수입자명(bsshNm)
// * 제품최소유통단위(stdPackngStleNm), 제품낱개단위명(pceCoUnitNm) set
// * @param dtlList <NimsApiDto.DsuseRptInfoDtl>
// * </pre>
// */
// private void setAddProductInfo(List<NimsApiDto.DsuseRptInfoDtl> dtlList) {
//
// for (NimsApiDto.DsuseRptInfoDtl r : dtlList) {//if()
// // 마약항정구분(nrcdSeNm), 중점일반구분(prtmSenm)
// if (isEmpty(r.getNrcdSeNm()) || isEmpty(r.getPrtmSeNm())) {
// //NimsApiResult.Response<NimsApiDto.ProductInfoKd> result = infNimsService.getProductInfoKd(
//
// List<NimsApiDto.ProductInfoKd> list = saveProductInfoKd(
// NimsApiRequest.ProductInfoReq.builder()
// .fg("1")
// .pg("1")
// .p(r.getPrductCd())
// .build(),
// false
// );
// if (isEmpty(list)) {
// // FIXME : 데이타 정상 흐름 확인후 comment 제거
// continue;
// //throw ApiCustomException.create(String.format("데이타 오류(제품코드[%s]에 해당하는 데이타가 없습니다)", r.getPrductCd()));
// }
// r.setNrcdSeNm(list.get(0).getNrcdSeNm());
// r.setPrtmSeNm(list.get(0).getPrtmSeNm());
// r.setStdPackngStleNm(list.get(0).getStdPackngStleNm());
// r.setPceCoUnitNm(list.get(0).getPceCoUnitNm());
// }
//
// // 제조수입자명(bsshNm)
// if (isEmpty(r.getBsshNm()) && !isEmpty(r.getBsshCd())) {
// List<BsshInfoSt> list = saveBsshInfoSt(
// BsshInfoReq.builder()
// .fg("1")
// .pg("1")
// .bc(r.getBsshCd())
// .build()
// );
// if (isEmpty(list)) {
// // FIXME : 데이타 정상 흐름 확인후 comment 제거
// continue;
// //throw ApiCustomException.create(String.format("데이타 오류(마약류취급자식별번호[%s]에 해당하는 데이타가 없습니다)", r.getBsshCd()));
// }
// r.setBsshNm(list.get(0).getBsshNm());
// }
// }
// }
/ *
@Override
public BizNimsAarDto . AarHeader getTgtDsuseRptData ( BizNimsRequest . DsuseMgt dto ) {
ApiUtil . validate ( dto , null , validator ) ;
dto . setRgtr ( Constants . NIMS_API_USER_ID ) ;
BizNimsAarDto . AarHeader aarHeader = bizNimsMapper . selectTgtAarHeader ( dto ) ;
if ( aarHeader = = null ) throw ApiCustomException . create ( "NIMS 연계 데이타를 생성할 수 없습니다. 데이타를 확인해 주세요" ) ;
List < BizNimsAarDto . AarDetail > aarDetails = bizNimsMapper . selectTgtAarDetails ( dto ) ;
if ( aarDetails . isEmpty ( ) ) throw ApiCustomException . create ( "NIMS 연계 데이타를 생성할 수 없습니다. 데이타를 확인해 주세요" ) ;
// 관할행정기관코드
setDsuseInsttCd ( aarHeader ) ;
// 저장소
setStorgeNo ( aarHeader , aarDetails ) ;
// 제조 번호, 일련번호, 유효기간 정보 목록
setMnfSeqs ( aarDetails ) ;
aarHeader . getAarDetails ( ) . addAll ( aarDetails ) ;
return aarHeader ;
}
@Override
public BizNimsAarDto . AarHeader createTgtDsuseRptData ( BizNimsAarDto . AarHeader dto ) {
ApiUtil . validate ( dto , null , validator ) ;
dto . setUid ( bsshCd ) ;
dto . setSwId ( bsshCd ) ;
dto . setRgtr ( Constants . NIMS_API_USER_ID ) ;
return dto ;
}
* /
// @Override
// public NimsAarResult createReportDsuse() {
// String xml = toXml();
// log.info(xml);
// return NimsAarResult.builder().build();
// }
//
// @Override
// public NimsAarResult updateReportDsuse() {
// String xml = toXml();
// log.info(xml);
// return NimsAarResult.builder().build();
// }
//
// @Override
// public NimsAarResult cancelReportDsuse() {
// String xml = toXml();
// log.info(xml);
// return NimsAarResult.builder().build();
// }
// private String toXml() {
// Aar dto = getAar();
//
// XmlMapper mapper = new XmlMapper();
// mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
// mapper.enable(SerializationFeature.INDENT_OUTPUT);
//
// String xmlString = null;
// try {
// xmlString = mapper.writeValueAsString(dto);
// } catch (JsonProcessingException e) {
// throw ApiCustomException.create(e.getMessage());
// }
// xmlString = xmlString.replaceFirst("nims\">",
// "nims\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
// return xmlString.replaceFirst(" xmlns=\"\"", StringUtils.EMPTY);
// }
//
// private Aar getAar() {
// Aar.ReportSet reportSet = Aar.ReportSet.builder()
// .header(List.of(getHeader()))
// .build();
//
// return Aar.builder()
// .reportSet(reportSet)
// .build();
// }
//
// private Aar.Header getHeader() {
// return Aar.Header.builder()
// .hdrDe("20240326")
// .bsshCd("123456789")
// .lines(getLines())
// .atchFileCo("2")
// .atchFiles(getAtchFiles())
// .build();
// }
//
// private Aar.Lines getLines() {
//
// return Aar.Lines.builder()
// .line(getLineList())
// .build();
// }
//
// private Aar.AtchFiles getAtchFiles() {
// return Aar.AtchFiles.builder()
// .atchFileNm(List.of("file-1.txt","file-2.txt"))
// .build();
// }
//
// private List<Aar.Line> getLineList(){
// Aar.Line line = Aar.Line.builder()
// .usrRptIdNo("123456789")
// .usrRptLnIdNo("123456789")
// .storgeNo("123456789")
// .mvmnTyCd("123456789")
// .prductCd("123456789")
// .build();
// Aar.Line line2 = Aar.Line.builder()
// .usrRptIdNo("123456789-1")
// .usrRptLnIdNo("123456789-1")
// .storgeNo("123456789-1")
// .mvmnTyCd("123456789-1")
// .prductCd("123456789-1")
// .build();
//
// return List.of(line, line2);
// }
//
//
// private void setStorgeNo(BizNimsAarDto.AarHeader aarHeader, List<BizNimsAarDto.AarDetail> aarDetails) {
//
// if(isEmpty(aarDetails.get(0).getStorgeNo())){
// try {
// List<NimsApiDto.StorageInfo> storageInfos = saveStorageInfo(
// NimsApiRequest.StorageInfoRequest.builder()
// .fg("1")
// .pg("1")
// .bc(aarHeader.getBsshCd())
// .build()
// );
// aarDetails.forEach(d -> d.setStorgeNo(storageInfos.get(0).getStorgeNo()));
//
// }catch (Exception e){
// if( e instanceof ApiCustomException){
// aarDetails.forEach(d -> d.setStorgeNo("S0001"));
// return;
// }
// throw ApiCustomException.create(e.getMessage());
// }
// }
// }
//
// private void setDsuseInsttCd(BizNimsAarDto.AarHeader aarHeader) {
//
// try {
// List<NimsApiDto.JurisdictionGovInfo> list = getJurisdictionGovInfo(
// NimsApiRequest.JurisdictionGovInfoRequest.builder()
// .fg("1")
// .pg("1")
// .onm(onm)
// .build()
// );
// aarHeader.setDsuseInsttCd(list.get(0).getOfCd());
//
// }catch (Exception e){
// if( e instanceof ApiCustomException){
// throw ApiCustomException.create(String.format("[%s]의 관할 행정 기관 코드를 찾을수 없습니다.", onm));
// }
// throw ApiCustomException.create(e.getMessage());
// }
// }
// private void setMnfSeqs(List<BizNimsAarDto.AarDetail> aarDetails) {
// AtomicReference<String> productCd = new AtomicReference<>("");
//
// try {
//
// aarDetails.forEach(d -> {
// productCd.set(d.getPrductCd());
//
// List<NimsApiDto.MnfSeqInfo> list = getMnfSeqInfo(
// NimsApiRequest.MnfSeqInfoRequest.builder()
// .fg("1")
// .pg("1")
// .p(d.getPrductCd())
// .build()
// );
//
// // FIXME: 내림 차순 정렬
// list.sort((a, b) -> {
// if(isEmpty(a.getPrdValidDe()) && isEmpty(b.getPrdValidDe())) return 0;
// if(isEmpty(a.getPrdValidDe())) return 1;
// if(isEmpty(b.getPrdValidDe())) return -1;
// return b.getPrdValidDe().compareTo(a.getPrdValidDe());
// });
//
// // FIXME: default list 1st value??
// d.setMnfNo(list.get(0).getMnfNo());
// d.setMnfSeq(list.get(0).getMnfSeq());
// d.setPrdValidDe(list.get(0).getPrdValidDe());
//
// d.getMnfSeqInfos().addAll(list);
// });
//
// }catch (Exception e){
// if( e instanceof ApiCustomException){
// throw ApiCustomException.create(String.format("[%s]의 제조번호 정보를 찾을수 없습니다.", productCd.get()));
// }
// throw ApiCustomException.create(e.getMessage());
// }
// }
}