Merge branch 'refs/heads/main-api-temp'

dev
Jonguk. Lim 5 months ago
commit dbd711588c

@ -245,7 +245,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
reqDto.setFg("2"); // 조회기준일자(1-보고일,2-취급일)
reqDto.setPg("1"); // 조회 페이지
reqDto.setSe("AAR"); // 보고구분코드 - 폐기
// FIXME: 적용 필요 한지 확인후 적용 여부 결정
// FIXME: 2024-06-17 적용 필요 한지 확인후 적용 여부 결정
// reqDto.setPs("01"); // 상태[폐기보고] ('': 전체, 01:확인, 02:보류, 03:정정, 04:미처리)
Map<String, String> apiInfInfo = getApiInfInfo(reqDto.getUserId());
@ -288,7 +288,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
dtlCnt = dtlCnt + bizNimsMapper.insertDsuseMgtDtl(d);
// FIXME: 파일 갯수 확인 - 프론트 파일 처리 완료시 까지 comment 처리
d.setFileId(uploadFileAndSave(Constants.FILE_INF_TYPE.DSUSE_PRD_IMG.getCode(), reqDto.getDscdmngId(), sn, files.get(dtlCnt-1)));
d.setFileId(
uploadFileDeleteAndSave(Constants.FILE_INF_TYPE.DSUSE_PRD_IMG.getCode(), reqDto.getDscdmngId(), sn, files.get(dtlCnt-1)));
}
if(dtls.size() != dtlCnt) throw ApiCustomException.create("폐기 관리 상세 등록 실패");
} else {
@ -309,9 +310,15 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
reqDto.setRgtr(reqDto.getUserId());
if(bizNimsMapper.updateDsuseMgtRslt(reqDto) == 1){
// 파일 삭제
List<String> fileIds = bizNimsMapper.selectFileId(Map.of("infType", Constants.FILE_INF_TYPE.DSUSE_IMG.getCode(), "infKey", reqDto.getDscdmngId()));
if(!fileIds.isEmpty()){
fileService.delete(fileIds.toArray(new String[0]));
}
int idx = 1;
for (MultipartFile mf : files) {
uploadFileAndSave(Constants.FILE_INF_TYPE.DSUSE_IMG.getCode(), reqDto.getDscdmngId(), String.valueOf(idx), mf);
uploadFileSave(Constants.FILE_INF_TYPE.DSUSE_IMG.getCode(), reqDto.getDscdmngId(), String.valueOf(idx), mf);
idx++;
}
@ -358,8 +365,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
reqDto.setFg("2"); // 조회기준일자(1-보고일,2-취급일)
reqDto.setPg("1"); // 조회 페이지
reqDto.setSe("AAR"); // 보고구분코드 - 폐기
// FIXME: 적용 필요 한지 확인후 적용 여부 결정
reqDto.setPs("01"); // 상태[폐기보고] ('': 전체, 01:확인, 02:보류, 03:정정, 04:미처리)
// FIXME: 2024-06-17 적용 필요 한지 확인후 적용 여부 결정
//reqDto.setPs("01"); // 상태[폐기보고] ('': 전체, 01:확인, 02:보류, 03:정정, 04:미처리)
Map<String, String> apiInfInfo = getApiInfInfo(reqDto.getUserId());
reqDto.setK(apiInfInfo.get("apiKey"));
@ -408,27 +415,14 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
}
BizNimsResponse.DsuseMgtRes dsuseMgtDto = dsuseMgtDtos.get(0);
////////////////////////////////////////////////////////////
// FIXME: 테스트를 위해 폐기관리ID 1, 2를 강제로 개발기 데이타로 매핑
if("2024060001".equals(reqDto.getDscdmngId())){
dsuseMgtDto.setHdrDe("20221107");
dsuseMgtDto.setBsshCd("TTAP00001");
}
if("2024060002".equals(reqDto.getDscdmngId())){
dsuseMgtDto.setHdrDe("20221103");
dsuseMgtDto.setBsshCd("");
}
////////////////////////////////////////////////////////////
NimsApiRequest.DsuseRptInfoReq rptDto = NimsApiRequest.DsuseRptInfoReq.builder()
.k(apiInfInfo.get("apiKey"))
.gc(apiInfInfo.get("deptCd"))
.se("AAR") // 보고구분: AAR-폐기
.pg("1") // 페이지번호
.fg("2") // 조회기준일자 : 1-보고일자, 2-취급일자
// FIXME: 적용 필요 한지 확인후 적용 여부 결정
// FIXME: 2024-06-17 적용 필요 한지 확인후 적용 여부 결정
//
// .ps("01") // 상태[폐기보고] ('': 전체, 01:확인, 02:보류, 03:정정, 04:미처리)
.sdt(dsuseMgtDto.getHdrDe())
.edt(dsuseMgtDto.getHdrDe())
@ -625,7 +619,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
newList.add(nimsDto);
}else{
// FIXME: API 데이타 적용후 반드시 교차 확인 필요
if("Y".equals(savedRptDto.getUseYn())){
// FIXME: 2024-06-17 보고유형이 "취소"가 아닌 경우 return 목록에 추가???
if("Y".equals(savedRptDto.getUseYn()) && !RPT_TY_CD.CANCEL.getCode().equals(savedRptDto.getRptTyCd())){
nimsDto.setOrgUsrRptIdNo(savedRptDto.getOrgUsrRptIdNo());
rtnList.add(nimsDto);
}
@ -643,7 +638,12 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
// 폐기 보고 정보 데이타 생성
createDsuseRpt(dto, reqDto.getUserId());
rtnList.add(dto);
// FIXME: 2024-06-17 보고유형이 "취소"가 아닌 경우 return 목록에 추가???
if(!RPT_TY_CD.CANCEL.getCode().equals(dto.getRptTyCd())){
rtnList.add(dto);
}
//rtnList.add(dto);
}
// 2. 참조사용자보고번호가 있는 경우 처리(rptTyCd : 1 - 취소, 2 - 변경)
@ -684,7 +684,13 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
if(isEmpty(curList)) break;
nimsList.addAll(curList);
// FIXME: 2024-06-17 상태가 "확인" 이 아닌 건만 추가
// nimsList.addAll(curList);
nimsList.addAll(
curList.stream()
.filter(d -> !"확인".equals(d.getStatus()))
.toList()
);
if(rslt.isEndYn()) break;
reqDto.setPg(String.valueOf(Integer.parseInt(reqDto.getPg()) + 1));
@ -715,8 +721,14 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
if(isEmpty(dto.getRefUsrRptIdNo())){
dto.setOrgUsrRptIdNo(dto.getUsrRptIdNo());
}else{
// 참조사용자보고번호가 있으면, 원사용자보고식별번호 조회
findRecusiveOrgUsrRptIdNo(dto);
// FIXME: 2024-06-17 참조사용자보고번호와 사용자보고식별번호가 같으면 skip
// 참조사용자보고번호와 사용자보고식별번호가 같으면 -> 원사용자보고식별번호 = 사용자보고식별번호
if(dto.getRefUsrRptIdNo().equals(dto.getUsrRptIdNo())){
dto.setOrgUsrRptIdNo(dto.getUsrRptIdNo());
}else {
// 참조사용자보고번호가 있으면, 원사용자보고식별번호 조회
findRecusiveOrgUsrRptIdNo(dto);
}
}
if (bizNimsMapper.insertDsuseRptInfo(dto) == 1) {
@ -752,7 +764,11 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
while(true) {
Map<String, String> map = bizNimsMapper.recusiveRefUsrRptIdNo(refUsrRptIdNo);
if(map == null){
throw ApiCustomException.create("데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]");
// FIXME: 2024-06-17 참조사용자보고식별번호를 원사용자번호로???
//dto.setOrgUsrRptIdNo(dto.getRefUsrRptIdNo());
//throw ApiCustomException.create("데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]");
log.error("데이타 오류[참조사용자로 사용자보고식별번호 조회 실패 - 데이타 누락]");
break;
}
// 참조사용자보고식별번호가 있으면 계속 조회
@ -789,7 +805,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
int cnt = bizNimsMapper.updateCancelDsuseRptInfoDtl(dto);
} else {
throw ApiCustomException.create(String.format("폐기 정보 %s 실패", errMsg));
// FIXME: 2024-06-17 실패시 처리 방안 확인 필요??
log.error("폐기 정보 {} 실패", errMsg);
//throw ApiCustomException.create(String.format("폐기 정보 %s 실패", errMsg));
}
}
@ -883,12 +901,28 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
* @return fileId
* </pre>
*/
private String uploadFileAndSave(String infType, String infKey, String subType, MultipartFile mf) {
private String uploadFileDeleteAndSave(String infType, String infKey, String subType, MultipartFile mf) {
List<String> fileIds = bizNimsMapper.selectFileId(Map.of("infType", infType, "infKey", infKey, "subType", subType));
if(!fileIds.isEmpty()){
fileService.delete(fileIds.toArray(new String[0]));
}
return uploadFileSave(infType, infKey, subType, mf);
}
/**
* <pre>
* file
* @param infType : : Constants.FILE_INFO_TYPE
* @param infKey : - ID
* @param subType :
* -> :
* -> :
* @param mf : MultipartFile
* @return fileId
* </pre>
*/
private String uploadFileSave(String infType, String infKey, String subType, MultipartFile mf) {
MultipartFile[] uploads = Collections.singletonList(mf).toArray(new MultipartFile[0]);
List<FileInfo> files = (new FileInfoFactory()).makeFileInfos((new FileInfo.Relation()).setInfoType(infType).setInfoKey(infKey).setSubType(subType), uploads);
fileService.create(files);

@ -93,7 +93,7 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.getJurisdictionGovInfo(dto));
}
@Operation(summary = "Nims 폐기 보고 조회", description = "NIMS의 업체 폐기 보고 정보 목록 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return<br><br><strong>아래 항목만 set</strong><br>sdt - 조회시작일(취급일자)<br>edt - 조회종료일(취급일자)<br>bc - 마약류취급자식별번호<br>bn - 마약류취급자업체명<br>ur - 사용자보고식별번호<br>userId - 사용자ID<br><strong>bc, bn, ur는 모두 null 가능</strong>", tags = { "NIMS API" })
@Operation(summary = "Nims 폐기 보고 조회", description = "NIMS의 업체 폐기 보고 정보 목록 조회<br><br>NIMS API 호출 결과 Return<br><br><strong>아래 항목만 set</strong><br>sdt - 조회시작일(취급일자)<br>edt - 조회종료일(취급일자)<br>bc - 마약류취급자식별번호<br>bn - 마약류취급자업체명<br>ur - 사용자보고식별번호<br>userId - 사용자ID<br><strong>bc, bn, ur는 모두 null 가능</strong>", tags = { "NIMS API" })
// @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
// @Content(mediaType = "application/json", examples = {
// @ExampleObject(value = """

@ -725,7 +725,9 @@
FROM tb_file
WHERE INF_TYPE = #{infType}
AND INF_KEY = #{infKey}
<if test="subType != null and subType != ''">
AND SUB_TYPE = #{subType}
</if>
</select>

Loading…
Cancel
Save