폐기관리목록 조회 반영

dev
Jonguk. Lim 7 months ago
parent 63b16ff2dd
commit b4daeec93f

@ -31,7 +31,7 @@ public interface BizNimsMapper extends AbstractMapper {
// NIMS API CALL
//------------------------------------------------------------------------------------------------------
int mergeBsshInfoSt(NimsApiDto.BsshInfoSt dto);
// int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto);
int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto);
// int mergeStorgeInfo(NimsApiDto.StorageInfo dto);
//------------------------------------------------------------------------------------------------------
@ -47,7 +47,11 @@ public interface BizNimsMapper extends AbstractMapper {
int insertDsuseMgt(BizNimsRequest.DsuseMgt dto);
NimsApiDto.DsuseRptInfo selectDsuseRptInfoByUsrRptIdNo(Map<String, String> map);
List<BizNimsResponse.DsuseMgtResponse> selectDsuseMgt(List<String> dsuseMgtIds);
List<NimsApiDto.DsuseRptInfoDtl> selectDsuseRptInfoDtls(Map<String, String> map);
List<BizNimsResponse.DsuseMgtResponse> selectSavedDsuseMgts(List<String> dsuseMgtIds);
List<BizNimsResponse.DsuseMgtResponse> selectDsuseMgts(BizNimsRequest.DsuseMgtInq dto);
// int insertDsuseMgtDtl(BizNimsRequest.DsuseMgtDtl dto);
// int updateCancelDsuseMgtDtl(BizNimsRequest.DsuseMgt dto);

@ -2,6 +2,8 @@ package cokr.xit.adds.biz.nims.model;
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.*;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
@ -97,6 +99,40 @@ public class BizNimsRequest {
private String prgrsSttsCd = "01";
}
/**
* request
*/
@Schema(name = "DsuseMgtInq", description = "마약류 폐기 관리 조회 DTO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@EqualsAndHashCode(callSuper = false)
public static class DsuseMgtInq {
@Schema(requiredMode = AUTO, title = "폐기 관리 ID 목록", example = "[\"2024040001\", \"2024040002\"]")
private List<String> dscdmngIds;
@Schema(requiredMode = REQUIRED, title = "사용자 ID", example = " ")
@NotEmpty(message = "사용자 ID는 필수 입니다")
private String userId;
/**
* <pre>
*
*
* 01-
* 02-
* 11-()
* 21-
* 22-
* 31-
* 41-
* 99-
* </pre>
*/
@Schema(requiredMode = REQUIRED, title = "진행 상태 코드", example = " ", allowableValues = {"01", "02", "11", "22", "31", "41", "99"})
private String prgrsSttsCd = "01";
}
/**
* request
*/

@ -64,5 +64,19 @@ public class BizNimsResponse {
*
*/
private String prmisnNo;
// /**
// * <pre>
// * 업체명
// * </pre>
// */
// private String nrcdSeNm;
//
// /**
// * <pre>
// * 업체구분명
// * </pre>
// */
// private String prtmSeNm;
}
}

@ -27,7 +27,7 @@ public interface BizNimsService {
// NIMS API CALL
//------------------------------------------------------------------------------------------------------
List<NimsApiDto.BsshInfoSt> saveBsshInfoSt(NimsApiRequest.BsshInfoRequest dto);
// List<NimsApiDto.ProductInfoKd> saveProductInfoKd(NimsApiRequest.ProductInfoRequest dto);
List<NimsApiDto.ProductInfoKd> saveProductInfoKd(NimsApiRequest.ProductInfoRequest dto);
// List<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto);
// List<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto);
// List<NimsApiDto.StorageInfo> saveStorageInfo(NimsApiRequest.StorageInfoRequest dto);
@ -60,6 +60,8 @@ public interface BizNimsService {
List<BizNimsResponse.DsuseMgtResponse> saveDsuseMgt(List<BizNimsRequest.DsuseMgt> dtos);
List<BizNimsResponse.DsuseMgtResponse> getDsuseMgts(BizNimsRequest.DsuseMgtInq dto);
// BizNimsAarDto.AarHeader getTgtDsuseRptData(BizNimsRequest.DsuseMgt dto);
// BizNimsAarDto.AarHeader createTgtDsuseRptData(BizNimsAarDto.AarHeader dto);

@ -66,7 +66,9 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
@Override
public List<BsshInfoSt> saveBsshInfoSt(BsshInfoRequest dto) {
NimsApiResult.Response<BsshInfoSt> result = infNimsService.getBsshInfoSt(dto);
List<BsshInfoSt> list = result.getResultOrThrow();
List<BsshInfoSt> list = result.getResult();
if(isEmpty(list)) return list;
for (BsshInfoSt d : list) {
d.setRgtr(Constants.NIMS_API_USER_ID);
@ -75,18 +77,20 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return list;
}
// @Override
// public List<ProductInfoKd> saveProductInfoKd(ProductInfoRequest dto) {
// NimsApiResult.Response<ProductInfoKd> result = infNimsService.getProductInfoKd(dto);
// List<ProductInfoKd> list = result.getResultOrThrow();
//
// for (ProductInfoKd d : list) {
// d.setRgtr(Constants.NIMS_API_USER_ID);
// bizNimsMapper.mergeProductInfoKd(d);
// }
// return list;
// }
//
@Override
public List<NimsApiDto.ProductInfoKd> saveProductInfoKd(NimsApiRequest.ProductInfoRequest dto) {
NimsApiResult.Response<NimsApiDto.ProductInfoKd> result = infNimsService.getProductInfoKd(dto);
List<NimsApiDto.ProductInfoKd> list = result.getResult();
if(isEmpty(list)) return list;
for (NimsApiDto.ProductInfoKd d : list) {
d.setRgtr(Constants.NIMS_API_USER_ID);
bizNimsMapper.mergeProductInfoKd(d);
}
return list;
}
// @Override
// public List<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) {
// NimsApiResult.Response<NimsApiDto.MnfSeqInfo> response = infNimsService.getMnfSeqInfo(dto);
@ -218,7 +222,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
bizNimsMapper.insertDsuseMgt(dto);
dscdmngIds.add(dto.getDscdmngId());
}
List<BizNimsResponse.DsuseMgtResponse> resList = bizNimsMapper.selectDsuseMgt(dscdmngIds);
List<BizNimsResponse.DsuseMgtResponse> resList = bizNimsMapper.selectSavedDsuseMgts(dscdmngIds);
// 마약류취급업체의 허가번호(prmisnNo), 대표자명(rprsntvNm) set
setAddBsshInfo(resList);
@ -226,7 +230,25 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return resList;
}
@Override
public List<BizNimsResponse.DsuseMgtResponse> getDsuseMgts(BizNimsRequest.DsuseMgtInq dto) {
List<BizNimsResponse.DsuseMgtResponse> resList = bizNimsMapper.selectDsuseMgts(dto);
resList.forEach(r -> {
r.setRptTyCdNm(Constants.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()));
Map<String, String> map = new HashMap<>();
map.put("usrRptIdNo", r.getUsrRptIdNo());
List<NimsApiDto.DsuseRptInfoDtl> dsuseRptInfoDtls = bizNimsMapper.selectDsuseRptInfoDtls(map);
setAddProductInfo(dsuseRptInfoDtls);
r.getDsuseRptInfoDtls().addAll(bizNimsMapper.selectDsuseRptInfoDtls(map));
});
return resList;
}
//------------------------------------------------------------------------------------------------------
// private method
@ -344,6 +366,11 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
*/
private void setAddBsshInfo(List<BizNimsResponse.DsuseMgtResponse> resList) {
resList.forEach(r -> {
r.setRptTyCdNm(Constants.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(
BsshInfoRequest.builder()
@ -352,13 +379,49 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
.bc(r.getBsshCd())
.build()
);
if(list.isEmpty()) throw ApiCustomException.create("데이타 오류[마약류취급자식별번호에 해당하는 데이타가 없습니다.]");
if(isEmpty(list)){
// FIXME : 데이타 정상 흐름 확인후 comment 제거
return;
//throw ApiCustomException.create(String.format("데이타 오류(마약류취급자식별번호[%s]에 해당하는 데이타가 없습니다)", r.getBsshCd()));
}
r.setPrmisnNo(list.get(0).getPrmisnNo());
r.setRprsntvNm(list.get(0).getRprsntvNm());
}
});
}
/**
* <pre>
* set
* (nrcdSeNm), (prtmSenm) set
* @param dtlList <NimsApiDto.DsuseRptInfoDtl>
* </pre>
*/
private void setAddProductInfo(List<NimsApiDto.DsuseRptInfoDtl> dtlList) {
dtlList.forEach(r -> {
//if()
if(isEmpty(r.getNrcdSeNm()) || isEmpty(r.getPrtmSeNm())){
//NimsApiResult.Response<NimsApiDto.ProductInfoKd> result = infNimsService.getProductInfoKd(
List<NimsApiDto.ProductInfoKd> list = saveProductInfoKd(
NimsApiRequest.ProductInfoRequest.builder()
.fg("1")
.pg("1")
.p(r.getPrductCd())
.build()
);
if(isEmpty(list)){
// FIXME : 데이타 정상 흐름 확인후 comment 제거
return;
//throw ApiCustomException.create(String.format("데이타 오류(제품코드[%s]에 해당하는 데이타가 없습니다)", r.getPrductCd()));
}
r.setNrcdSeNm(list.get(0).getNrcdSeNm());
r.setPrtmSeNm(list.get(0).getPrtmSeNm());
}
});
}

@ -53,14 +53,14 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.saveBsshInfoSt(dto));
}
// @Operation(summary = "마약류 상품 정보 조회(NIMS API)", description = "마약류 상품정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return")
// @PostMapping(value = "/getProductInfoKd")
// public ApiBaseResponse<List<NimsApiDto.ProductInfoKd>> getMnfSeqInfo(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto));
// }
//
@Operation(summary = "마약류 상품 정보 조회(NIMS API)", description = "마약류 상품정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return")
@PostMapping(value = "/getProductInfoKd")
public ApiBaseResponse<List<NimsApiDto.ProductInfoKd>> getMnfSeqInfo(
@RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
) {
return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto));
}
// @Operation(summary = "제조 일련 번호 정보 조회(NIMS API)", description = "제보 일련 번호 정보 조회<br><br>NIMS API 호출 결과 Return")
// @PostMapping(value = "/getMnfSeqInfo")
// public ApiBaseResponse<List<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo(
@ -127,6 +127,14 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.saveDsuseMgt(dtos));
}
@Operation(summary = "사고 마약류 폐기 관리 목록 조회", description = "사고 마약류 폐기 관리 목록 조회")
@PostMapping(value = "/getDsuseMgts")
public ApiBaseResponse<List<BizNimsResponse.DsuseMgtResponse>> getDsuseMgts(
@RequestBody BizNimsRequest.DsuseMgtInq dto
) {
return ApiBaseResponse.of(bizNimsService.getDsuseMgts(dto));
}
/*
@Operation(summary = "폐기 보고 관리 대상 연계 데이타 생성 조회", description = "폐기 보고 관리 대상 연계 데이타 생성 조회")
@io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {

@ -7,6 +7,8 @@ import java.time.format.DateTimeFormatter;
import java.util.Collection;
import java.util.Objects;
import org.apache.commons.lang3.ObjectUtils;
import com.fasterxml.jackson.annotation.JsonRootName;
import io.swagger.v3.oas.annotations.media.Schema;
@ -71,10 +73,17 @@ public class ApiBaseResponse<T> {
}
private ApiBaseResponse(T data) {
if(ObjectUtils.isEmpty(data)) {
this.code = ResultCode.NO_CONTENT.getStatusCode();
this.message = ResultCode.NO_CONTENT.getMessage();
this.data = null;
}else{
this.code = ResultCode.SUCCESS.getStatusCode();
this.message = ResultCode.findByStatusCode(code).getMessage();
this.data = data;
}
}
private ApiBaseResponse(T data, ResultCode resultCode) {
this.success = true;
@ -101,7 +110,7 @@ public class ApiBaseResponse<T> {
}else {
if (Collection.class.isAssignableFrom(data.getClass())) {
this.totalCount = (((Collection<?>) data).size());
this.totalCount = ((Collection<?>) data).size();
} else {
this.totalCount = 1;

@ -1,42 +0,0 @@
package cokr.xit.adds.core.spring.config;// package cokr.xit.adds.core.config;
//
// import javax.annotation.PostConstruct;
//
// import org.apache.commons.lang3.StringUtils;
// import org.springframework.context.annotation.Configuration;
//
// import com.p6spy.engine.spy.P6SpyOptions;
// import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
//
//
// /**
// * <pre>
// * description : P6Spy SQL 로그 Multiline 출력 포맷 Custom
// * - sql이 있는 경우만 출력
// * - prepared, url(DB), now 출력 제거
// * author : julim
// * date : 2023-04-28
// * ======================================================================
// * 변경일 변경자 변경 내용
// * ----------------------------------------------------------------------
// * 2023-04-28 julim 최초 생성
// *
// * </pre>
// * @see com.p6spy.engine.spy.appender.MultiLineFormat
// */
//
// @Configuration
// public class P6SpySqlMultilineFormat implements MessageFormattingStrategy {
//
// @PostConstruct
// public void setLogMessageFormat() {
// P6SpyOptions.getActiveInstance().setLogMessageFormat(this.getClass().getName());
// }
//
// @Override
// public String formatMessage(final int connectionId, final String now, final long elapsed, final String category, final String prepared, final String sql, final String url) {
// if(StringUtils.isEmpty(sql)) return StringUtils.EMPTY;
//
// return "connection " + connectionId + " | took " + elapsed + "ms | " + category + "\n" + sql +";";
// }
// }

@ -45,10 +45,12 @@ public class IrosResponse<T> {
*/
@JsonIgnore
public List<T> getResultOrThrow() {
if(!ObjectUtils.isEmpty(getResult())) return getResult();
if("00".equals(header.resultCode)){
if(ObjectUtils.isEmpty(body.items)) {
throw ApiCustomException.create(ResultCode.NO_CONTENT);
}
return body.items;
}
throw Objects.requireNonNull(ApiCustomException.of(header.resultCode, header.resultMsg));
}
@ -59,15 +61,11 @@ public class IrosResponse<T> {
* @return List<T> or null
*/
@JsonIgnore
public List<T> getResultOrNull() {
return getResult();
}
private List<T> getResult() {
public List<T> getResult() {
if("00".equals(header.resultCode)) {
return body.items;
}
return null;
throw Objects.requireNonNull(ApiCustomException.of(header.resultCode, header.resultMsg));
}
@Getter

@ -113,87 +113,87 @@ public class NimsApiDto {
private String prmisnNo;
}
// /**
// * 상품 정보 조회 response
// */
// @Getter
// @NoArgsConstructor
// @AllArgsConstructor
// @SuperBuilder
// public static class ProductInfoKd extends AuditDto {
// /**
// * 품목코드
// */
// @JsonAlias("PRDUCT_CD")
// private String prductCd;
//
// /**
// * 제품대표코드
// */
// @JsonAlias("PRDLST_MST_CD")
// private String prdlstMstCd;
//
// /**
// * 제품명
// */
// @JsonAlias("PRDUCT_NM")
// private String prductNm;
//
// /**
// * 마약/항정 구분명
// */
// @JsonAlias("NRCD_SE_NM")
// private String nrcdSeNm;
//
// /**
// * 중점/일반 구분
// */
// @JsonAlias("PRTM_SE_NM")
// private String prtmSeNm;
//
// /**
// * 제품최소유통단위수량
// * 제품규격정보(고정값 = 1)
// */
// @JsonAlias("PRD_MIN_DISTB_QY")
// private Integer prdMinDistbQy;
//
// /**
// * 제품최소유통단위
// */
// @JsonAlias("STD_PACKNG_STLE_NM")
// private String stdPackngStleNm;
//
// /**
// * 제품총낱개단위수량
// */
// @JsonAlias("PRD_TOT_PCE_QY")
// private Integer prdTotPceQy;
//
// /**
// * 제품낱개단위
// */
// @JsonAlias("PCE_CO_UNIT_NM")
// private String pceCoUnitNm;
//
// /**
// * 마약류취급자식별번호
// */
// @JsonAlias("BSSH_CD")
// private String bsshCd;
//
// /**
// * 등록일
// */
// @JsonAlias("RGS_DT")
// private String rgsDt;
//
// /**
// * 변경일
// */
// @JsonAlias("UPD_DT")
// private String updDt;
// }
/**
* response
*/
@Getter
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public static class ProductInfoKd extends AuditDto {
/**
*
*/
@JsonAlias("PRDUCT_CD")
private String prductCd;
/**
*
*/
@JsonAlias("PRDLST_MST_CD")
private String prdlstMstCd;
/**
*
*/
@JsonAlias("PRDUCT_NM")
private String prductNm;
/**
* /
*/
@JsonAlias("NRCD_SE_NM")
private String nrcdSeNm;
/**
* /
*/
@JsonAlias("PRTM_SE_NM")
private String prtmSeNm;
/**
*
* ( = 1)
*/
@JsonAlias("PRD_MIN_DISTB_QY")
private Integer prdMinDistbQy;
/**
*
*/
@JsonAlias("STD_PACKNG_STLE_NM")
private String stdPackngStleNm;
/**
*
*/
@JsonAlias("PRD_TOT_PCE_QY")
private Integer prdTotPceQy;
/**
*
*/
@JsonAlias("PCE_CO_UNIT_NM")
private String pceCoUnitNm;
/**
*
*/
@JsonAlias("BSSH_CD")
private String bsshCd;
/**
*
*/
@JsonAlias("RGS_DT")
private String rgsDt;
/**
*
*/
@JsonAlias("UPD_DT")
private String updDt;
}
/**
* response
@ -203,7 +203,7 @@ public class NimsApiDto {
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public static class DsuseRptInfo extends AuditDto implements Cloneable {
public static class DsuseRptInfo extends AuditDto {
/**
*
@ -399,6 +399,16 @@ public class NimsApiDto {
*/
@JsonAlias("DSUSE_QY")
private Integer dsuseQy;
/**
* /
*/
private String nrcdSeNm;
/**
* /
*/
private String prtmSeNm;
}
// /**

@ -111,73 +111,73 @@ public class NimsApiRequest {
String fg2 = "1";
}
// /**
// * 상품 정보 조회 request
// */
// @Schema(name = "ProductInfoRequest", description = "상품 정보 조회 request")
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// @Builder
// public static class ProductInfoRequest {
// /**
// * 인증키
// */
// @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419")
// @NotEmpty(message = "인증키는 필수 입니다")
// String k;
//
// /**
// * 조회범위
// * 1-전체, 2-내거래품목, 3-청구코드매핑
// */
// @Schema(requiredMode = REQUIRED, title = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", description = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", example = "1", allowableValues = {"1", "2", "3"})
// @Pattern(regexp = "[1-3]", message = "조회범위는 필수 입니다(1-전체, 2-내거래처 품목, 3-청구코드 매핑)")
// String fg;
//
// /**
// * 조회 페이지
// */
// @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1")
// @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다")
// String pg;
//
// /**
// * 기준일자 이후
// * yyyyMMdd
// */
// @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ")
// @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)")
// @Builder.Default
// String ymd = StringUtils.EMPTY;
//
// /**
// * 중점/일반 구분
// * 1:중점
// * 2:일반
// */
// @Schema(title = "중점|일반 구분(all, 1:중점, 2:일반)", description = "중점|일반 구분(all, 1:중점, 2:일반)", example = " ", allowableValues = {"", "1", "2"})
// @Pattern(regexp = "^$|[12]", message = "중점|일반 구분은 1 또는 2 입니다(1:중점, 2:일반)")
// @Builder.Default
// String fg2 = StringUtils.EMPTY;
//
// /**
// * 제품코드
// * 제품코드(like 검색)
// * 조회범위(pg)가 3인 경우 청구 코드
// */
// @Schema(title = "제품코드", description = "제품코드", example = " ")
// @Pattern(regexp = "^$|[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다")
// @Builder.Default
// String p = StringUtils.EMPTY;
//
// /**
// * 제품명(like 검색)
// */
// @Schema(title = "제품명", description = "제품명", example = " ")
// @Builder.Default
// String pn = StringUtils.EMPTY;
// }
/**
* request
*/
@Schema(name = "ProductInfoRequest", description = "상품 정보 조회 request")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class ProductInfoRequest {
/**
*
*/
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419")
@NotEmpty(message = "인증키는 필수 입니다")
String k;
/**
*
* 1-, 2-, 3-
*/
@Schema(requiredMode = REQUIRED, title = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", description = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", example = "1", allowableValues = {"1", "2", "3"})
@Pattern(regexp = "[1-3]", message = "조회범위는 필수 입니다(1-전체, 2-내거래처 품목, 3-청구코드 매핑)")
String fg;
/**
*
*/
@Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1")
@Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다")
String pg;
/**
*
* yyyyMMdd
*/
@Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ")
@Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)")
@Builder.Default
String ymd = StringUtils.EMPTY;
/**
* /
* 1:
* 2:
*/
@Schema(title = "중점|일반 구분(all, 1:중점, 2:일반)", description = "중점|일반 구분(all, 1:중점, 2:일반)", example = " ", allowableValues = {"", "1", "2"})
@Pattern(regexp = "^$|[12]", message = "중점|일반 구분은 1 또는 2 입니다(1:중점, 2:일반)")
@Builder.Default
String fg2 = StringUtils.EMPTY;
/**
*
* (like )
* (pg) 3
*/
@Schema(title = "제품코드", description = "제품코드", example = " ")
@Pattern(regexp = "^$|[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다")
@Builder.Default
String p = StringUtils.EMPTY;
/**
* (like )
*/
@Schema(title = "제품명", description = "제품명", example = " ")
@Builder.Default
String pn = StringUtils.EMPTY;
}
@Schema(name = "DsuseRptInfoRequest", description = "폐기 보고 정보 조회 request")
@Data

@ -68,10 +68,12 @@ public class NimsApiResult<T> {
*/
@JsonIgnore
public List<T> getResultOrThrow() {
if(!ObjectUtils.isEmpty(getResult())) return getResult();
if(header.resultCd == 0 || header.resultCd == 8){
if(ObjectUtils.isEmpty(body.list)) {
throw ApiCustomException.create(ResultCode.NO_CONTENT);
}
return body.list;
}
throw Objects.requireNonNull(ApiCustomException.of(header));
}
@ -82,15 +84,12 @@ public class NimsApiResult<T> {
* @return List<T> or null
*/
@JsonIgnore
public List<T> getResultOrNull() {
return getResult();
}
private List<T> getResult() {
public List<T> getResult() {
//return getResult();
if(header.resultCd == 0 || header.resultCd == 8) {
return body.list;
}
return null;
throw Objects.requireNonNull(ApiCustomException.of(header));
}
}

@ -22,8 +22,8 @@ import cokr.xit.adds.inf.nims.model.NimsApiResult;
public interface InfNimsService {
NimsApiResult.Response<NimsApiDto.BsshInfoSt> getBsshInfoSt(NimsApiRequest.BsshInfoRequest dto);
// NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto);
//
NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto);
// NimsApiResult.Response<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto);
//
// NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto);

@ -90,18 +90,18 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
return result.getResponse();
}
// @Override
// @TraceLogging
// public NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto) {
// dto.setK(nimsApiKey);
// ApiUtil.validate(dto, null, validator);
// if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null);
//
// String rslt = ApiUtil.callNimsApi(nimsUrl + productinfoKd, dto);
// NimsApiResult<NimsApiDto.ProductInfoKd> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.ProductInfoKd>>() {});
// return result.getResponse();
// }
//
@Override
@TraceLogging
public NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto) {
dto.setK(nimsApiKey);
ApiUtil.validate(dto, null, validator);
if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null);
String rslt = ApiUtil.callNimsApi(nimsUrl + productinfoKd, dto);
NimsApiResult<NimsApiDto.ProductInfoKd> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.ProductInfoKd>>() {});
return result.getResponse();
}
// @Override
// @TraceLogging
// public NimsApiResult.Response<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) {
@ -176,7 +176,7 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
NimsApiDto.DsuseRptInfoDtl dtl1 = NimsApiDto.DsuseRptInfoDtl.builder()
.usrRptIdNo(usrRptIdNoList.get(i))
.usrRptLnIdNo(usrRptLnIdNoList.get(0)+i)
.prductCd("상품코드")
.prductCd("8806718050823")
.prductNm("제품명")
.minDistbQy(1)
.pceQy(0)
@ -189,7 +189,7 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
NimsApiDto.DsuseRptInfoDtl dtl2 = NimsApiDto.DsuseRptInfoDtl.builder()
.usrRptIdNo(usrRptIdNoList.get(i))
.usrRptLnIdNo(usrRptLnIdNoList.get(1)+i)
.prductCd("상품코드1")
.prductCd("8806718050822")
.prductNm("제품명1")
.minDistbQy(1)
.pceQy(0)

@ -44,14 +44,14 @@ public class InfNimsController {
return ApiBaseResponse.of(infNimsService.getBsshInfoSt(dto));
}
// @Operation(summary = "마약류 상품 정보 조회", description = "마약류 상품정보 조회")
// @PostMapping("/getProductInfoKd")
// public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.ProductInfoKd>> getProductInfoKd(
// @RequestBody NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(infNimsService.getProductInfoKd(dto));
// }
//
@Operation(summary = "마약류 상품 정보 조회", description = "마약류 상품정보 조회")
@PostMapping("/getProductInfoKd")
public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.ProductInfoKd>> getProductInfoKd(
@RequestBody NimsApiRequest.ProductInfoRequest dto
) {
return ApiBaseResponse.of(infNimsService.getProductInfoKd(dto));
}
// @Operation(summary = "제조 일련 번호 정보 조회", description = "제조 일련 번호 정보 조회")
// @PostMapping("/getMnfSeqInfo")
// public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo(

@ -10,18 +10,18 @@
<insert id="mergeBsshInfoSt" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$BsshInfoSt">
/** nims-mysql-mapper|mergeBsshInfoSt-마약류취급자정보 생성/변경|julim */
INSERT INTO tb_bssh_info(
bssh_cd,
bssh_nm,
induty_nm,
hdnt_cd,
hdnt_nm,
bizrno,
rprsntv_nm,
chrg_nm,
hptl_no,
join_yn,
bssh_stts_nm,
prmisn_no,
bssh_cd, /* 마약류취급자식별번호 */
bssh_nm, /* 마약류취급자명 */
induty_nm, /* 업종명 */
hdnt_cd, /* 의료업자구분 */
hdnt_nm, /* 의료업자구분명 */
bizrno, /* 사업자등록번호 */
rprsntv_nm, /* 대표자명 */
chrg_nm, /* 담당자명 */
hptl_no, /* 요양기관번호 */
join_yn, /* 회원가입여부 */
bssh_stts_nm, /* 마약류취급자상태명 */
prmisn_no, /* 허가번호 */
use_yn,
reg_dt,
rgtr
@ -43,20 +43,72 @@
#{rgtr}
)
ON DUPLICATE KEY UPDATE
bssh_nm = #{bsshNm},
induty_nm = #{indutyNm},
hdnt_cd = #{hdntCd},
hdnt_nm = #{hdntNm},
bizrno = #{bizrno},
rprsntv_nm = #{rprsntvNm},
chrg_nm = #{chrgNm},
hptl_no = #{hptlNo},
join_yn = #{joinYn},
bssh_stts_nm = #{bsshSttusNm},
prmisn_no = #{prmisnNo},
bssh_nm = #{bsshNm}, /* 마약류취급자명 */
induty_nm = #{indutyNm}, /* 업종명 */
hdnt_cd = #{hdntCd}, /* 의료업자구분 */
hdnt_nm = #{hdntNm}, /* 의료업자구분명 */
bizrno = #{bizrno}, /* 사업자등록번호 */
rprsntv_nm = #{rprsntvNm}, /* 대표자명 */
chrg_nm = #{chrgNm}, /* 담당자명 */
hptl_no = #{hptlNo}, /* 요약기관번호 */
join_yn = #{joinYn}, /* 가입여부 */
bssh_stts_nm = #{bsshSttusNm}, /* 마약류취급자상태명 */
prmisn_no = #{prmisnNo}, /* 허가번호 */
mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
mdfr = #{rgtr}
</insert>
<insert id="mergeProductInfoKd" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$ProductInfoKd">
/** nims-mysql-mapper|mergeProductInfoKd-상품정보 생성|julim */
INSERT INTO tb_prduct_info(
prduct_cd, /* 제품코드 */
prdlst_mst_cd, /* 제품대표코드 */
prduct_nm, /* 제품명 */
nrcd_se_nm, /* 마약항정구분 */
prtm_se_nm, /* 중점일반구분 */
prd_min_distb_qy, /* 최소유통단위수량 - 제품규격정보(고정값=1) */
std_packng_stle_nm, /* 제품최소유통단위 */
prd_tot_pce_qy, /* 제품총낱개단위수량 */
pce_co_unit_nm, /* 제품낱개단위 */
bssh_cd, /* 마약류취급자식별번호 */
rgs_dt, /* 등록일 */
upd_dt, /* 변경일 */
use_yn,
reg_dt,
rgtr
) VALUES (
#{prductCd},
#{prdlstMstCd},
#{prductNm},
#{nrcdSeNm},
#{prtmSeNm},
#{prdMinDistbQy},
#{stdPackngStleNm},
#{prdTotPceQy},
#{pceCoUnitNm},
#{bsshCd},
#{rgsDt},
#{updDt},
'Y',
DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
#{rgtr}
)
ON DUPLICATE KEY UPDATE
prdlst_mst_cd = #{prdlstMstCd}, /* 제품대표코드 */
prduct_nm = #{prductNm}, /* 제품명 */
nrcd_se_nm = #{nrcdSeNm}, /* 마약항정구분 */
prtm_se_nm = #{prtmSeNm}, /* 중점일반구분 */
prd_min_distb_qy = #{prdMinDistbQy}, /* 최소유통단위수량 - 제품규격정보(고정값=1) */
std_packng_stle_nm = #{stdPackngStleNm}, /* 제품최소유통단위 */
prd_tot_pce_qy = #{prdTotPceQy}, /* 제품총낱개단위수량 */
pce_co_unit_nm = #{pceCoUnitNm}, /* 제품낱개단위 */
bssh_cd = #{bsshCd}, /* 마약류취급자식별번호 */
rgs_dt = #{rgsDt}, /* 등록일 */
upd_dt = #{updDt}, /* 변경일 */
mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
mdfr = #{rgtr}
</insert>
<!-- **************************************************************************** -->
<!-- NIMS API end -->
<!-- **************************************************************************** -->
@ -97,6 +149,40 @@
</if>
</select>
<select id="selectDsuseRptInfoDtls" parameterType="map" resultType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfoDtl">
/** nims-mysql-mapper|selectDsuseRptInfoDtls-폐기보고정보 상세 조회|julim */
SELECT tdrid.usr_rpt_id_no, /* 사용자보고식별번호 */
tdrid.usr_rpt_ln_id_no, /* 사용자보고라인식별번호 */
tdrid.prduct_cd, /* 제품코드 */
tdrid.prduct_nm, /* 제품명 */
tdrid.min_distb_qy, /* 최소유통단위수량 */
tdrid.pce_qy, /* 낱개단위수량 */
tdrid.mnf_no, /* 제조번호 */
tdrid.prd_valid_de, /* 제품유효기한일자 */
tdrid.mnf_seq, /* 제품일련번호 */
tdrid.mvmn_ty_cd, /* 이동유형코드 */
tdrid.dsuse_qy, /* 폐기수량 */
tdrid.use_yn,
tdrid.reg_dt,
tdrid.rgtr,
tpi.nrcd_se_nm, /* 마약항정구분 */
tpi.prtm_se_nm /* 중점일반구분 */
FROM tb_dsuse_rpt_info_dtl tdrid
LEFT JOIN tb_prduct_info tpi
ON (tdrid.prduct_cd = tpi.prduct_cd)
-- AND tdrid.use_yn = 'Y')
WHERE tdrid.usr_rpt_id_no = #{usrRptIdNo}
<if test="usrRptLnIdNo != null">
AND tdrid.usr_rpt_ln_id_no = #{usrRptLnIdNo}
</if>
<if test="useYn != null">
AND tdrid.use_yn = #{useYn}
</if>
<if test="userId != null">
AND tdrid.userId = #{userId}
</if>
</select>
<insert id="insertDsuseRptInfo" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** nims-mysql-mapper|insertDsuseRptInfo-폐기보고정보 생성|julim */
INSERT INTO tb_dsuse_rpt_info (
@ -248,8 +334,25 @@
)
</insert>
<select id="selectDsuseMgt" parameterType="java.util.List" resultType="cokr.xit.adds.biz.nims.model.BizNimsResponse$DsuseMgtResponse">
/** nims-mysql-mapper|selectDsuseMgt-폐기관리 조회|julim */
<select id="selectSavedDsuseMgts" parameterType="java.util.List" resultType="cokr.xit.adds.biz.nims.model.BizNimsResponse$DsuseMgtResponse">
/** nims-mysql-mapper|selectSavedDsuseMgts-저장 폐기관리목록 조회|julim */
<include refid="sqlDsuseMgt"/>
WHERE tdm.dscdmng_id IN
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<select id="selectDsuseMgts" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgtInq" resultType="cokr.xit.adds.biz.nims.model.BizNimsResponse$DsuseMgtResponse">
/** nims-mysql-mapper|selectDsuseMgts-폐기관리목록 조회|julim */
<include refid="sqlDsuseMgt"/>
WHERE tdm.dscdmng_id IN
<foreach collection="dscdmngIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<sql id="sqlDsuseMgt">
SELECT tdm.dscdmng_id /** 폐기관리ID */
, tdm.user_id /** 사용자ID */
, tdm.usr_rpt_id_no /** 사용자보고식별번호 */
@ -274,13 +377,10 @@
JOIN tb_dsuse_rpt_info tdri
ON (tdm.org_usr_rpt_id_no = tdri.org_usr_rpt_id_no
AND tdm.usr_rpt_id_no = tdri.usr_rpt_id_no)
LEFT OUTER JOIN tb_bssh_info tbi
LEFT JOIN tb_bssh_info tbi
ON tdri.bssh_cd = tbi.bssh_cd
WHERE tdm.dscdmng_id IN
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</sql>
<!-- **************************************************************************** -->
<!-- ADDS BIZ end -->
<!-- **************************************************************************** -->

Loading…
Cancel
Save