fix: 폐기보고 반영

- NIMS API 반영
dev
Jonguk. Lim 5 months ago
parent 25363500ea
commit b4c0b81544

@ -234,8 +234,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
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"));
@ -325,11 +323,10 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
if(isForDoc) apiKey = getApiInfInfo(reqDto.getUserId()).get("apiKey");
for (BizNimsResponse.DsuseMgtRes dto : resList) {
// FIXME: API 적용 완류후 command 제거
//dto.setRptTyNm(RPT_TY_CD.getName(dto.getRptTyCd()));
// dto.setDsuseSeNm(Constants.DSUSE_SE_CD.getName(dto.getDsuseSeCd()));
// dto.setDsusePrvNm(Constants.DSUSE_PRV_CD.getName(dto.getDsusePrvCd()));
// dto.setDsuseMthNm(Constants.DSUSE_MTH_CD.getName(dto.getDsuseMthCd()));
dto.setRptTyNm(RPT_TY_CD.getName(dto.getRptTyCd()));
dto.setDsuseSeNm(Constants.DSUSE_SE_CD.getName(dto.getDsuseSeCd()));
dto.setDsusePrvNm(Constants.DSUSE_PRV_CD.getName(dto.getDsusePrvCd()));
dto.setDsuseMthNm(Constants.DSUSE_MTH_CD.getName(dto.getDsuseMthCd()));
Map<String, String> map = new HashMap<>();
map.put("dscdmngId", dto.getDscdmngId());
@ -346,8 +343,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
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"));
@ -366,37 +361,41 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
* saveDsuseRptInfo -
* 6. return List -
* 7. FIXME :
* 8. sort return
* @param reqDto
* @return
* </pre>
*/
// FIXME: API 적용 필요 - nims API 확정후
// FIXME: saveDsuseRptInfo() 메소드를 활용할 수 있도록 구성
@Override
public List<NimsApiDto.DsuseRptInfo> getDsuseMgtMapping(BizNimsRequest.DsuseRptMappingInq reqDto) {
ApiUtil.validate(reqDto, null, validator);
Map<String, String> apiInfInfo = getApiInfInfo(reqDto.getUserId());
// 0. GET 폐기관리 데이타 정보
BizNimsResponse.DsuseMgtRes dsuseMgtDto = getDsuseMgts(
List<BizNimsResponse.DsuseMgtRes> dsuseMgtDtos = getDsuseMgts(
BizNimsRequest.DsuseMgtInq.builder()
.dscdmngIds(List.of(reqDto.getDscdmngId()))
.deptCd(apiInfInfo.get("deptCd"))
.prgrsSttsCd(null)
.build(),
false)
.get(0);
false);
if(dsuseMgtDtos.isEmpty()){
throw ApiCustomException.create(
String.format(
"사용자[%s]의 폐기관리데이타[%s]를 확인해 주세요",
reqDto.getUserId(),
reqDto.getDscdmngId()
)
);
}
BizNimsResponse.DsuseMgtRes dsuseMgtDto = dsuseMgtDtos.get(0);
NimsApiRequest.DsuseRptInfoReq rptDto = NimsApiRequest.DsuseRptInfoReq.builder()
.k(apiInfInfo.get("apiKey"))
.gc(apiInfInfo.get("deptCd"))
.se("AAR") // 보고구분: AAR-폐기
.pg("1") // 페이지번호
.fg("2") // 조회기준일자 : 1-보고일자, 2-취급일자
.fg2("0") // 보고 유형: ""- 전체, 0-신규, 1-취소, 2-변경
.ps("01") // "": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리
.sdt(dsuseMgtDto.getHdrDe())
.edt(dsuseMgtDto.getHdrDe())
.bc(dsuseMgtDto.getBsshCd())
@ -513,8 +512,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
);
if (isEmpty(list)) {
// FIXME : 데이타 정상 흐름 확인후 comment 제거
continue;
//throw ApiCustomException.create(String.format("데이타 오류(제품코드[%s]에 해당하는 데이타가 없습니다)", r.getPrductCd()));
//continue;
throw ApiCustomException.create(String.format("데이타 오류(제품코드[%s]에 해당하는 데이타가 없습니다)", r.getPrductCd()));
}
r.setNrcdSeNm(list.get(0).getNrcdSeNm());
r.setPrtmSeNm(list.get(0).getPrtmSeNm());
@ -535,8 +534,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
);
if (isEmpty(list)) {
// FIXME : 데이타 정상 흐름 확인후 comment 제거
continue;
//throw ApiCustomException.create(String.format("데이타 오류(마약류취급자식별번호[%s]에 해당하는 데이타가 없습니다)", r.getBsshCd()));
//continue;
throw ApiCustomException.create(String.format("데이타 오류(마약류취급자식별번호[%s]에 해당하는 데이타가 없습니다)", r.getBsshCd()));
}
r.setBsshNm(list.get(0).getBsshNm());
}
@ -588,14 +587,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 적용 필요
// API 조회 반영된 사용여부가 'Y', 처리상태코드가 미완료인 경우는 return 대상
//if("Y".equals(infoDto.getUseYn()) && !"".equals(infoDto.getStatus())){
// FIXME: API 적용 확인 필요
if("Y".equals(savedMgtDto.getUseYn())){
nimsDto.setOrgUsrRptIdNo(savedMgtDto.getOrgUsrRptIdNo());
rtnList.add(nimsDto);
@ -635,8 +629,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 1) tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 사용여부 'N' update
updateDsuseRptOfCancel(dto, reqDto.getUserId());
// FIXME : API 적용 필요
// 결과 return 대상 데이타 List에서 조회한 변경 대상이 있는 경우 replace
for(NimsApiDto.DsuseRptInfo item : concurrentList){
if(item.getOrgUsrRptIdNo().equals(dto.getOrgUsrRptIdNo())
&& item.getUsrRptIdNo().equals(dto.getRefUsrRptIdNo())){
@ -651,77 +643,17 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
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);
//////////////////////////////////////////////////////////////////////////
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));
}
nimsList.sort((a, b) -> a.getUsrRptIdNo().compareTo(b.getUsrRptIdNo()));
return nimsList;
}
@ -739,11 +671,10 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
*/
private void createDsuseRpt(final NimsApiDto.DsuseRptInfo dto, String userId) {
dto.setRgtr(userId);
// FIXME: API 적용 완류후 command 제거
// dto.setRptTyNm(RPT_TY_CD.getName(dto.getRptTyCd()));
// dto.setDsuseSeNm(Constants.DSUSE_SE_CD.getName(dto.getDsuseSeCd()));
// dto.setDsusePrvNm(Constants.DSUSE_PRV_CD.getName(dto.getDsusePrvCd()));
// dto.setDsuseMthNm(Constants.DSUSE_MTH_CD.getName(dto.getDsuseMthCd()));
dto.setRptTyNm(RPT_TY_CD.getName(dto.getRptTyCd()));
dto.setDsuseSeNm(Constants.DSUSE_SE_CD.getName(dto.getDsuseSeCd()));
dto.setDsusePrvNm(Constants.DSUSE_PRV_CD.getName(dto.getDsusePrvCd()));
dto.setDsuseMthNm(Constants.DSUSE_MTH_CD.getName(dto.getDsuseMthCd()));
// 참조사용자보고번호가 없으면 -> 원사용자보고식별번호 = 사용자보고식별번호
if(isEmpty(dto.getRefUsrRptIdNo())){
@ -758,11 +689,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
int dtlCnt = 0;
for (NimsApiDto.DsuseRptInfoDtl d : dto.getListDtl()) {
d.setRgtr(userId);
// FIXME: API 적용 완류후 아래 라인 제거 - 사용자보고라인번호가 내려오지 않고 있어 임시로 추가 /////////////////////////////////////
d.setUsrRptLnIdNo(d.getUsrRptIdNo()+"_"+(dtlCnt+1));
/////////////////////////////////////////////////////////////////////////////////////
dtlCnt = dtlCnt + bizNimsMapper.insertDsuseRptInfoDtl(d);
}
if (dto.getRndDtlRptCnt() != dtlCnt)
@ -943,68 +869,6 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
/**
* <pre>
*
* @param dtos List<BizNimsRequest.DsuseMgt>
* @return List<BizNimsResponse.DsuseRptInfoResponse>
* </pre>
*/
// @Deprecated
// @Override
// public List<BizNimsResponse.DsuseRptInfoResponse> saveDsuseMgts(List<BizNimsRequest.DsuseMgt> dtos) {
// for (BizNimsRequest.DsuseMgt dto : dtos) {
// ApiUtil.validate(dto, null, validator);
// }
//
// final List<String> dscdmngIds = new ArrayList<>();
// for (BizNimsRequest.DsuseMgt dto : dtos) {
// dto.setRgtr(Constants.NIMS_API_USER_ID);
//
// bizNimsMapper.insertDsuseMgt(dto);
// dscdmngIds.add(dto.getDscdmngId());
// }
// List<BizNimsResponse.DsuseRptInfoResponse> resList = bizNimsMapper.selectSavedDsuseMgts(dscdmngIds);
//
// // 마약류취급업체의 허가번호(prmisnNo), 대표자명(rprsntvNm) set
// setAddBsshInfo(resList);
//
// return resList;
// }
/**
* <pre>
*
* @param reqDto BizNimsRequest.DsuseMgt
* @return BizNimsRequest.DsuseMgt
* </pre>
*/
// FIXME: 현재 미사용
// public BizNimsDto.DsuseMgt saveDsuseMgt(BizNimsDto.DsuseMgt reqDto) {
// ApiUtil.validate(reqDto, null, validator);
// if(reqDto.getRndDtlRptCnt() != reqDto.getDsuseMgtDtls().size()) throw ApiCustomException.create("폐기물 보고수 오류[폐기물 갯수 확인]");
// reqDto.setRgtr(reqDto.getUserId());
//
// if(bizNimsMapper.insertDsuseMgt(reqDto) == 1){
// int dtlCnt = 0;
// for (BizNimsDto.DsuseMgtDtl d : reqDto.getDsuseMgtDtls()) {
// d.setDscdmngId(reqDto.getDscdmngId());
// d.setDscdmngSn(StringUtils.leftPad(dtlCnt + 1 + "", 3, "0"));
// d.setRgtr(reqDto.getUserId());
// dtlCnt = dtlCnt + bizNimsMapper.insertDsuseMgtDtl(d);
// }
// if(reqDto.getDsuseMgtDtls().size() != dtlCnt) throw ApiCustomException.create("폐기 관리 상세 등록 실패");
// } else {
// throw ApiCustomException.create("폐기 관리 마스터 등록 실패");
// }
// return reqDto;
// }
// @Override
// public List<NimsApiDto.StorageInfo> saveStorageInfo(NimsApiRequest.StorageInfoRequest dto) {
// NimsApiResult.Response<NimsApiDto.StorageInfo> result = infNimsService.getStorageInfo(dto);

@ -163,14 +163,12 @@ public class BizNimsController {
@Content(mediaType = "application/json", examples = {
@ExampleObject(value = """
{
"sdt": "20240105",
"edt": "20240105",
"sdt": "20221016",
"edt": "20221116",
"bc": "",
"bn": "",
"ur": "",
"fg2": "0",
"ps": "01",
"userId": "suji"
"ur": "",
"userId": "cheoin"
}
""")
})

@ -179,10 +179,10 @@ public class Constants {
* <pre>
* - ADDS11
* 01-
* 06-
* 07-
* 11-
* 21-
* 06-[]
* 11-
* 12-
* 21-
* 99-
* </pre>
*/
@ -190,10 +190,11 @@ public class Constants {
public enum PRGRS_STTS_CD {
// 폐기보고신청서의 데이타 입력 생성 - 폐기관리 데이타 생성
RECEIPT("01", "폐기신청서접수"),
NOTICE_WRITE("06", "폐기결과통보서작성"),
REPORT_WRITE("07", "폐기내역서작성"),
RESULT_EXEC("06", "폐기결과[통보]처리"),
RESULT_REPORT_WRITE("11", "폐기결과보고서작성"),
PROC_STTMT_WRITE("12", "폐기처리내역및사진작성"),
// 폐기보고 데이타 매핑 완료
MAPPING("11", "폐기보고확인"),
MAPPING("21", "폐기보고확인"),
COMPLETE("99", "폐기보고완료")
;

@ -11,7 +11,6 @@ import cokr.xit.foundation.util.CharsEncoder;
import egovframework.com.cmm.model.LoginVO;
@Service
//public class AuthApiService extends EgovAbstractServiceImpl implements IAuthApiService {
public class AuthApiServiceBean extends AbstractServiceBean implements IAuthApiService {
@Resource

@ -478,22 +478,18 @@ public class NimsApiDto {
String rptInfoStr = String.join("",
this.bsshCd, // 마약류취급자식별번호
this.hdrDe, // 취급일자
// FIXME: API 적용 완료후 comment 제거 필요
// this.dsuseSeCd, // 폐기구분코드
// this.dsusePrvCd, // 폐기사유코드
// this.dsuseMthCd, // 폐기방법코드
/////////////////////////////////////////////////////////////////////
this.dsuseSeCd, // 폐기구분코드
this.dsusePrvCd, // 폐기사유코드
this.dsuseMthCd, // 폐기방법코드
this.dsuseDe, // 폐기일자
String.valueOf(this.rndDtlRptCnt) // 수불상세보고수
);
String mgtInfoStr = String.join("",
mgtDto.getBsshCd(), // 마약류취급자식별번호
mgtDto.getHdrDe(),
// FIXME: API 적용 완료후 comment 제거 필요// 취급일자
// mgtDto.getDsuseSeCd(), // 폐기구분코드
// mgtDto.getDsusePrvCd(), // 폐기사유코드
// mgtDto.getDsuseMthCd(), // 폐기방법코드
/////////////////////////////////////////////////////////////////
mgtDto.getDsuseSeCd(), // 폐기구분코드
mgtDto.getDsusePrvCd(), // 폐기사유코드
mgtDto.getDsuseMthCd(), // 폐기방법코드
mgtDto.getDsuseDe(), // 폐기일자
String.valueOf(mgtDto.getRndDtlRptCnt()) // 수불상세보고수
);
@ -563,7 +559,6 @@ public class NimsApiDto {
continue;
}
// FIXME: 상품정보 미일치 여부 set - 비교 필드 확정 필요
if (this.listDtl.size() == mgtDto.getDsuseMgtDtls().size()) {
for (DsuseRptInfoDtl rptDtl : this.listDtl) {
for (BizNimsDto.DsuseMgtDtl mgtDtl : mgtDto.getDsuseMgtDtls()) {

@ -231,7 +231,7 @@ public class NimsApiRequest {
/**
*
*/
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "1d6646562470902a61fc334c83a249cdcc5dc753426942138ee04342e66c8128")
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "030723d4b6f30126a7abc350f78ee3b5fa2302f7ec7f22ad95d6c99db568db57")
@NotEmpty(message = "인증키는 필수 입니다")
String k;
@ -257,7 +257,7 @@ public class NimsApiRequest {
* :
* 0: , 1: , 2:
*/
@Schema(title = "보고유형('': 전체, 0:신규, 1:취소, 2:변경)", description = "보고유형('': 전체, 0:신규, 1:취소, 2:변경)", example = "0", allowableValues = {"", "0", "1", "2"})
@Schema(title = "보고유형('': 전체, 0:신규, 1:취소, 2:변경)", description = "보고유형('': 전체, 0:신규, 1:취소, 2:변경)", example = " ", allowableValues = {"", "0", "1", "2"})
@Pattern(regexp = "^$|[012]", message = "보고유형 값을 확인해 주세요('': 전체, 0:신규, 1:취소, 2:변경)")
String fg2;
@ -274,7 +274,7 @@ public class NimsApiRequest {
* (yyyyMMdd)
* 1
*/
@Schema(title = "조회 시작일(yyyyMMdd)", description = "조회 시작일(yyyyMMdd)", example = "20240105")
@Schema(title = "조회 시작일(yyyyMMdd)", description = "조회 시작일(yyyyMMdd)", example = "20221016")
@Pattern(regexp = Constants.DATE_REGX, message = "조회 시작일은 필수 입니다(yyyyMMdd)")
String sdt;
@ -282,7 +282,7 @@ public class NimsApiRequest {
* (yyyyMMdd)
* 1
*/
@Schema(title = "조회 종료일(yyyyMMdd)", description = "조회 종료일(yyyyMMdd)", example = "20240105")
@Schema(title = "조회 종료일(yyyyMMdd)", description = "조회 종료일(yyyyMMdd)", example = "20221116")
@Pattern(regexp = Constants.DATE_REGX, message = "조회 종료일은 필수 입니다(yyyyMMdd)")
String edt;
@ -308,7 +308,7 @@ public class NimsApiRequest {
*
* "": , 01: , 02: , 03: , 04:
*/
@Schema(title = "상태", description = "상태(\"\": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)", example = "01", allowableValues = {"01", "02", "03", "04"})
@Schema(title = "상태", description = "상태(\"\": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리)", example = " ", allowableValues = {"01", "02", "03", "04"})
@Pattern(regexp = "^$|0[1-4]", message = "상태[폐기보고] 값을 확인해 주세요('': 전체, 01:확인, 02:보류, 03:정정, 04:미처리)")
String ps;
@ -320,7 +320,7 @@ public class NimsApiRequest {
* 4050149 -
* </pre>
*/
@Schema(requiredMode = REQUIRED, title = "관할관청기관코드", description = "관할관청기관코드", example = "4050149")
@Schema(requiredMode = REQUIRED, title = "관할관청기관코드", description = "관할관청기관코드", example = " ")
@Pattern(regexp = "[0-9]{7}", message = "관할 관청 기관 코드는 필수 입니다(7자리)")
String gc;
@ -329,7 +329,7 @@ public class NimsApiRequest {
*
* </pre>
*/
@Schema(title = "사용자ID", description = "해당 사용자ID로 관할관청코드및 API KEY 조회", example = "suji")
@Schema(title = "사용자ID", description = "해당 사용자ID로 관할관청코드및 API KEY 조회", example = "cheoin")
String userId;
}

@ -1,8 +1,5 @@
package cokr.xit.adds.inf.nims.service.bean;
import java.util.List;
import java.util.Map;
import javax.validation.Validation;
import javax.validation.Validator;
@ -17,7 +14,6 @@ import cokr.xit.adds.core.util.ApiUtil;
import cokr.xit.adds.inf.nims.model.NimsApiDto;
import cokr.xit.adds.inf.nims.model.NimsApiRequest;
import cokr.xit.adds.inf.nims.model.NimsApiResult;
import cokr.xit.adds.inf.nims.model.NimsApiResult2;
import cokr.xit.adds.inf.nims.service.InfNimsService;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.JSON;
@ -130,6 +126,21 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
return result.getResponse();
}
@Override
public NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoReq dto) {
//FIXME: API 운영반영시 까지 comment 처리 - gc(관할군청코드 필수) skip
//ApiUtil.validate(dto, null, validator);
ApiUtil.checkYmdError(dto.getSdt(), "sdt");
ApiUtil.checkYmdError(dto.getEdt(), "edt");
// FIXME: API 호출 시 주석 해제
String rslt = ApiUtil.callNimsApi(nimsUrl + dsuseresult, dto);
NimsApiResult<NimsApiDto.DsuseRptInfo> result = json.parse(rslt, new TypeReference<>() {});
return result.getResponse();
}
// @Override
// @TraceLogging
// public NimsApiResult.Response<NimsApiDto.StorageInfo> getStorageInfo(NimsApiRequest.StorageInfoRequest dto) {
@ -146,62 +157,4 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
// NimsApiResult<NimsApiDto.StorageInfo> result = json.parse(rslt, new TypeReference<>() {});
// return result.getResponse();
// }
@Override
public NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoReq dto) {
ApiUtil.validate(dto, null, validator);
ApiUtil.checkYmdError(dto.getSdt(), "sdt");
ApiUtil.checkYmdError(dto.getEdt(), "edt");
// FIXME: API 호출 시 주석 해제
String rslt = ApiUtil.callNimsApi(nimsUrl + dsuseresult, dto);
/////////////////////////////////////////////////////////////////////////////////
// FIXME: API 오류 보정을 위해 임시로 사용
// listDtl의 값이 [] String 형태로 들어오는데, 이를 객체로 변환하기 위해 처리
// "listDtl": "[{PCE_UNIT=정 PRDUCT_CD=8806519017940 DSUSE_QY=28 MNF_NO=20005 MNF_SEQ=2010136201005327 MIN_DISTB_UNIT=병 PRD_VALID_DE=20230722 PCE_QY=0 PRDUCT_NM=졸피신정10mg (10mg) USR_RPT_ID_NO=AAR_R240108122001673_H0000 MIN_DISTB_QY=1}]",
NimsApiResult2 tempResult = json.parse(rslt, new TypeReference<>() {});
List<Object> list = null;
try{
list = tempResult.getResponse().getResult();
} catch (ApiCustomException e) {
throw e;
}
list = tempResult.getResponse().getResult();
for (Object o : list) {
Map<String,Object> map = (Map)o;
String input = map.get("listDtl").toString();
// Remove the brackets at the beginning and end of the string
input = input.substring(1, input.length() - 1);
// Split the string into individual objects
String[] objects = input.split("\\}\\s*\\{");
// Process each object
for (int i = 0; i < objects.length; i++) {
// Add back the curly braces
objects[i] = objects[i].startsWith("{") ? objects[i] : "{" + objects[i];
objects[i] = objects[i].endsWith("}") ? objects[i] : objects[i] + "}";
objects[i] = objects[i].replaceAll("(\\w+_QY)=([^=]+)\\s{2}", "\"$1\":$2,");
objects[i] = objects[i].replaceAll("(\\w+)=([^=]+)\\s{2}", "\"$1\":\"$2\",");
objects[i] = objects[i].replaceAll("(\\w+)=([^=]+)\\}", "\"$1\":$2}");
}
// Join the objects back into a single string
String output = "[" + String.join(", ", objects) + "]";
//json.parse(output, new TypeReference<>() {});
map.put("listDtl", json.parse(output, new TypeReference<>() {}));
}
String tmp = json.stringify(tempResult);
// FIXME: API 오류 보정을 위해 임시로 사용
/////////////////////////////////////////////////////////////////////////////////
NimsApiResult<NimsApiDto.DsuseRptInfo> result = json.parse(tmp, new TypeReference<>() {});
return result.getResponse();
}
}

@ -23,7 +23,7 @@ spring:
app:
inf:
nims:
url: https://www.nims.or.kr
url: https://test.nims.or.kr
---
spring:

Loading…
Cancel
Save