폐기보고정보, 폐기관리 API 반영

dev
Jonguk. Lim 7 months ago
parent 1506f9bda4
commit dbd73b7cfd

@ -1,10 +1,12 @@
package cokr.xit.adds.biz.nims.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.adds.biz.nims.model.BizNimsRequest;
import cokr.xit.adds.biz.nims.model.BizNimsResponse;
import cokr.xit.adds.inf.nims.model.NimsApiDto;
import cokr.xit.foundation.component.AbstractMapper;
@ -39,12 +41,15 @@ public interface BizNimsMapper extends AbstractMapper {
int insertDsuseRptInfoDtl(NimsApiDto.DsuseRptInfoDtl dto);
int updateCancelDsuseRptInfo(NimsApiDto.DsuseRptInfo dto);
int updateCancelDsuseRptInfoDtl(NimsApiDto.DsuseRptInfo dto);
int updateCancelDsuseMgt(NimsApiDto.DsuseRptInfo dto);
Map<String, String> recusiveRefUsrRptIdNo(String refUsrRptIdNo);
int insertDsuseMgt(BizNimsRequest.DsuseMgt dto);
int insertDsuseMgtDtl(BizNimsRequest.DsuseMgtDtl dto);
int updateCancelDsuseMgt(BizNimsRequest.DsuseMgt dto);
int updateCancelDsuseMgtDtl(BizNimsRequest.DsuseMgt dto);
NimsApiDto.DsuseRptInfo selectDsuseRptInfoByUsrRptIdNo(Map<String, String> map);
List<BizNimsResponse.DsuseMgtResponse> selectDsuseMgt(List<String> dsuseMgtIds);
// int insertDsuseMgtDtl(BizNimsRequest.DsuseMgtDtl dto);
// int updateCancelDsuseMgtDtl(BizNimsRequest.DsuseMgt dto);
// BizNimsAarDto.AarHeader selectTgtAarHeader(BizNimsRequest.DsuseMgt dto);
// List<BizNimsAarDto.AarDetail> selectTgtAarDetails(BizNimsRequest.DsuseMgt dto);

@ -65,171 +65,4 @@ public class BizNimsResponse {
*/
private String prmisnNo;
}
// @Schema(name = "BizDsuseRptInfo", description = "폐기관리정보 DTO")
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// @SuperBuilder
// @EqualsAndHashCode(callSuper = false)
// public static class BizDsuseRptInfo extends AuditDto {
// /**
// * 사용자 보고 식별 번호
// */
// private String usrRptIdNo;
//
// /**
// * 참조 사용자 보고 식별 번호
// * 취소|변경시 필수 - 사용자 보고 식별 번호
// */
// private String refUsrRptIdNo;
//
// /**
// * 마약류취급자식별번호
// */
// private String bsshCd;
//
// /**
// * 마약류취급자명업체명
// */
// private String bsshNm;
//
// /**
// * 업종명
// */
// private String indutyNm;
//
// /**
// * 보고 유형 코드(0-신규,1-취소,2-변경)
// */
// private String rptTyCd;
//
// /**
// * 수불 상세 보고 수
// */
// private Integer rndDtlRptCnt;
//
// /**
// * 취급 일자
// */
// private String hdrDe;
//
// /**
// * 보고 일자
// */
// private String rptDe;
//
// /**
// * 폐기 구분 코드
// * 1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류
// */
// private String dsuseSeCd;
//
// /**
// * 폐기 사유 코드
// * 01~05, 07~09, 12
// */
// private String dsusePrvCd;
//
// /**
// * 폐기 방법 코드
// * 1 ~ 9
// */
// private String dsuseMthCd;
//
// /**
// * 폐기 장소
// */
// private String dsuseLoc;
//
// /**
// * 폐기 일자
// */
// private String dsuseDe;
//
// /**
// * 처리 상태 코드(0-정상,1-취소,2-변경)
// */
// private String status;
//
// /**
// * FIXME: 속성명 확정 필요
// * 보고 진행 상태 코드(0-정상,1-취소,2-변경)
// */
// private String rptPrgSttsCd;
//
// /**
// * 원사용자보고식별번호
// */
// private String orgUsrRptIdNo;
//
// /**
// * 폐기보고상세 목록
// */
// private List<BizDsuseRptInfoDtl> dsuseRptInfoDtls = new ArrayList<>();
// }
//
// @Schema(name = "BizDsuseRptInfo", description = "폐기관리정보 DTO")
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// @SuperBuilder
// @EqualsAndHashCode(callSuper = false)
// public static class BizDsuseRptInfoDtl extends AuditDto {
// /**
// * 사용자 보고 식별 번호
// */
// private String usrRptIdNo;
//
// /**
// * 사용자 보고 라인 식별 번호
// */
// private String usrRptLnIdNo;
//
// /**
// * 제품 코드
// */
// private String prductCd;
//
// /**
// * 제품 명
// */
// private String prductNm;
//
// /**
// * 최소 유통 단위 수량
// */
// private Integer minDistbQy;
//
// /**
// * 낱개 단위 수량
// */
// private Integer pceQy;
//
// /**
// * 제조 번호
// */
// private String mnfNo;
//
// /**
// * 제품 유효기한 일자
// */
// private String prdValidDe;
//
// /**
// * 제조 일련번호
// */
// private String mnfSeq;
//
// /**
// * 이동 유형 코드
// * 1102: 재고차감, 1170: 재고미차감
// */
// private String mvmnTyCd;
//
// /**
// * 폐기 수량
// */
// private Integer dsuseQy;
// }
}

@ -3,6 +3,7 @@ package cokr.xit.adds.biz.nims.service;
import java.util.List;
import cokr.xit.adds.biz.nims.model.BizNimsRequest;
import cokr.xit.adds.biz.nims.model.BizNimsResponse;
import cokr.xit.adds.inf.nims.model.NimsApiDto;
import cokr.xit.adds.inf.nims.model.NimsApiRequest;
@ -49,7 +50,6 @@ public interface BizNimsService {
* </pre>
*/
List<NimsApiDto.DsuseRptInfo> saveDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto);
List<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto);
//------------------------------------------------------------------------------------------------------
// NIMS BIZ
@ -58,7 +58,7 @@ public interface BizNimsService {
// NimsAarResult updateReportDsuse();
// NimsAarResult cancelReportDsuse();
List<BizNimsRequest.DsuseMgt> saveDsuseMgt(List<BizNimsRequest.DsuseMgt> dtos);
List<BizNimsResponse.DsuseMgtResponse> saveDsuseMgt(List<BizNimsRequest.DsuseMgt> dtos);
// BizNimsAarDto.AarHeader getTgtDsuseRptData(BizNimsRequest.DsuseMgt dto);
// BizNimsAarDto.AarHeader createTgtDsuseRptData(BizNimsAarDto.AarHeader dto);

@ -1,5 +1,7 @@
package cokr.xit.adds.biz.nims.service.bean;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
@ -19,6 +21,7 @@ import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import cokr.xit.adds.biz.nims.dao.BizNimsMapper;
import cokr.xit.adds.biz.nims.model.BizNimsAarDto;
import cokr.xit.adds.biz.nims.model.BizNimsRequest;
import cokr.xit.adds.biz.nims.model.BizNimsResponse;
import cokr.xit.adds.biz.nims.service.BizNimsService;
import cokr.xit.adds.core.Constants;
import cokr.xit.adds.core.spring.exception.ApiCustomException;
@ -126,12 +129,18 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
* orgUsrRptIdNo()
*
*
* 0. () (usrRptIdNo DB )
* 1. (rptTyCd : 0) - tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl
* - orgUsrRptIdNo() = (usrRptIdNo)
* 2. (rptTyCd : 1 - , 2 - )
* 2-1. refUsrRptIdNo
* 2-2. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 'N' update
* 3-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl
* 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
* 2-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl
* => tb_dsuse_rpt_info 'N'
* @param reqDto NimsApiRequest.DsuseRptInfoRequest
* @return List<NimsApiDto.DsuseRptInfo>
@ -139,13 +148,19 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
*/
@Override
public List<NimsApiDto.DsuseRptInfo> saveDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest reqDto) {
/*
( 0 ) - API
1. skip : (rptTyCd) 1- , refUsrRptIdNo
2. : (rptTyCd) 2-
*/
NimsApiResult.Response<NimsApiDto.DsuseRptInfo> result = infNimsService.getDsuseRptInfo(reqDto);
List<NimsApiDto.DsuseRptInfo> list = result.getResultOrThrow();
List<NimsApiDto.DsuseRptInfo> rsltList = result.getResultOrThrow();
// 0. 조회(저장)한 데이타 대상 에서 제외 (usrRptIdNo가 DB에 저장된 경우)
List<NimsApiDto.DsuseRptInfo> list = new ArrayList<>();
for (NimsApiDto.DsuseRptInfo dto : rsltList) {
Map<String, String> map = new HashMap<>();
map.put("usrRptIdNo", dto.getUsrRptIdNo());
if(isEmpty(bizNimsMapper.selectDsuseRptInfoByUsrRptIdNo(map))){
list.add(dto);
};
}
// 1. 신규(rptTyCd : 0) 저장 - tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성
for (NimsApiDto.DsuseRptInfo dto : list) {
@ -171,10 +186,15 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
throw ApiCustomException.create("데이타 오류[취소 및 변경인 경우 참조사용자식별번호(REF_USR_RPT_ID_NO) 필수]");
}
// 2-2. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 사용여부 'N' update
// 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
updateDsuseRpt(dto);
// 3-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 (취소인 경우는 tb_dsuse_rpt_info의 사용 여부 'N'으로 생성)
// 2-3. tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 생성 (취소인 경우는 tb_dsuse_rpt_info의 사용 여부 'N'으로 생성)
createDsuseRpt(dto, false);
}
@ -185,72 +205,53 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return list;
}
//------------------------------------------------------------------------------------------------------
// NIMS BIZ
//------------------------------------------------------------------------------------------------------
/**
* <pre>
*
* ( 0 ) - API
* 1. skip : (rptTyCd) 1- , refUsrRptIdNo
* 2. : (rptTyCd) 2-
* => refUsrRptIdNo
* @param dto
* @return
*
*
* @param dtos List<BizNimsRequest.DsuseMgt>
* @return List<BizNimsResponse.DsuseMgtResponse>
* </pre>
*/
@Override
public List<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto) {
/*
( 0 ) - API
1. skip : (rptTyCd) 1- , refUsrRptIdNo
2. : (rptTyCd) 2-
*/
NimsApiResult.Response<NimsApiDto.DsuseRptInfo> result = infNimsService.getDsuseRptInfo(dto);
return result.getResultOrThrow();
}
//------------------------------------------------------------------------------------------------------
// NIMS BIZ
//------------------------------------------------------------------------------------------------------
@Override
public List<BizNimsRequest.DsuseMgt> saveDsuseMgt(List<BizNimsRequest.DsuseMgt> dtos) {
public List<BizNimsResponse.DsuseMgtResponse> saveDsuseMgt(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.setOrgUsrRptIdNo(dto.getUsrRptIdNo());
dto.setRgtr(Constants.NIMS_API_USER_ID);
// 신규가 아닌 경우 skip
if(!"0".equals(dto.getRptTyCd())) continue;
createDsuseMgt(dto);
bizNimsMapper.insertDsuseMgt(dto);
dscdmngIds.add(dto.getDscdmngId());
}
List<BizNimsResponse.DsuseMgtResponse> resList = bizNimsMapper.selectDsuseMgt(dscdmngIds);
// 취소 및 변경 데이타 처리
String errMsg = null;
for (BizNimsRequest.DsuseMgt dto : dtos) {
dto.setRgtr(Constants.NIMS_API_USER_ID);
// 마약류취급업체의 허가번호(prmisnNo), 대표자명(rprsntvNm) set
setAddBsshInfo(resList);
// 신규인 경우 skip
if("0".equals(dto.getRptTyCd())) continue;
return resList;
}
if(isEmpty(dto.getRefUsrRptIdNo())){
throw ApiCustomException.create("데이타 오류[취소 및 변경인 경우 참조사용자식별번호(REF_USR_RPT_ID_NO) 필수]");
}
// 폐기관리 데이타 disable(미사용)
updateDsuseMgt(dto);
createDsuseMgt(dto);
}
return dtos;
}
//------------------------------------------------------------------------------------------------------
// private method
//------------------------------------------------------------------------------------------------------
/**
* <pre>
* tb_dsuse_rpt_info, tb_dsuse_rpt_info_dtl 'N' update
*
* tb_dsuse_mgt
* : =
* => usr_rpt_id_no -> refUsrRptIdNo update
* => use_yn = 'N' update
* @param dto NimsApiDto.DsuseRptInfo
* </pre>
*/
private void updateDsuseRpt(NimsApiDto.DsuseRptInfo dto) {
String errMsg;
@ -258,6 +259,14 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
else errMsg = "변경";
if (bizNimsMapper.updateCancelDsuseRptInfo(dto) == 1) {
// tb_dsuse_mgt
// 조건 : 사용자보고식별번호 = 참조사용자보고식별번호
// => 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));
@ -332,39 +341,43 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
}
}
private void updateDsuseMgt(BizNimsRequest.DsuseMgt dto) {
String errMsg;
if ("1".equals(dto.getRptTyCd())) errMsg = "취소";
else errMsg = "변경";
/**
* <pre>
* set
* (prmisnNo), (rprsntvNm) set
* @param resList List<BizNimsResponse.DsuseMgtResponse>
* </pre>
*/
private void setAddBsshInfo(List<BizNimsResponse.DsuseMgtResponse> resList) {
resList.forEach(r -> {
if(isEmpty(r.getPrmisnNo())){
List<BsshInfoSt> list = saveBsshInfoSt(
BsshInfoRequest.builder()
.fg("1")
.pg("1")
.bc(r.getBsshCd())
.build()
);
if(list.isEmpty()) throw ApiCustomException.create("데이타 오류[마약류취급자식별번호에 해당하는 데이타가 없습니다.]");
r.setPrmisnNo(list.get(0).getPrmisnNo());
r.setRprsntvNm(list.get(0).getRprsntvNm());
}
});
}
if (bizNimsMapper.updateCancelDsuseMgt(dto) == 1) {
int cnt = bizNimsMapper.updateCancelDsuseMgtDtl(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));
}
}
private void createDsuseMgt(BizNimsRequest.DsuseMgt dto) {
if (bizNimsMapper.insertDsuseMgt(dto) == 1) {
int dtlCnt = 0;
for (BizNimsRequest.DsuseMgtDtl d : dto.getDsuseMgtDtls()) {
d.setDscdmngId(dto.getDscdmngId());
d.setRgtr(Constants.NIMS_API_USER_ID);
dtlCnt = dtlCnt + bizNimsMapper.insertDsuseMgtDtl(d);
}
if (dto.getDsuseMgtDtls().size() != dtlCnt)
throw ApiCustomException.create("폐기 관리 상세 등록 실패");
} else {
throw ApiCustomException.create("폐기 관리 마스터 등록 실패");
}
}
/*
@Override
public BizNimsAarDto.AarHeader getTgtDsuseRptData(BizNimsRequest.DsuseMgt dto) {

@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cokr.xit.adds.biz.nims.model.BizNimsRequest;
import cokr.xit.adds.biz.nims.model.BizNimsResponse;
import cokr.xit.adds.biz.nims.service.BizNimsService;
import cokr.xit.adds.core.model.ApiBaseResponse;
import cokr.xit.adds.inf.nims.model.NimsApiDto;
@ -46,7 +47,7 @@ public class BizNimsController {
//------------------------------------------------------------------------------------------------------
// NIMS API CALL
//------------------------------------------------------------------------------------------------------
@Operation(summary = "NIMS API - 마약류 취급자 정보 조회", description = "마약류 취급자 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return<br><br><strong>bi-사업자등록번호, hp-요양기관번호, bn-업체명, bc-취급자식별번호 중 하나는 필수<strong>")
@Operation(summary = "마약류 취급자 정보 조회(NIMS API)", description = "마약류 취급자 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return<br><br><strong>bi-사업자등록번호, hp-요양기관번호, bn-업체명, bc-취급자식별번호 중 하나는 필수<strong>")
@PostMapping(value = "/getBsshInfoSt")
public ApiBaseResponse<List<NimsApiDto.BsshInfoSt>> getBsshInfoSt(
@RequestBody @Validated NimsApiRequest.BsshInfoRequest dto
@ -54,7 +55,7 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.saveBsshInfoSt(dto));
}
@Operation(summary = "NIMS API - 마약류 상품 정보 조회", description = "마약류 상품정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return")
@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
@ -62,7 +63,7 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto));
}
@Operation(summary = "NIMS API - 제조 일련 번호 정보 조회", description = "제보 일련 번호 정보 조회<br><br>NIMS API 호출 결과 Return")
@Operation(summary = "제조 일련 번호 정보 조회(NIMS API)", description = "제보 일련 번호 정보 조회<br><br>NIMS API 호출 결과 Return")
@PostMapping(value = "/getMnfSeqInfo")
public ApiBaseResponse<List<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo(
@RequestBody @Validated NimsApiRequest.MnfSeqInfoRequest dto
@ -70,7 +71,7 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.getMnfSeqInfo(dto));
}
@Operation(summary = "NIMS API - 관할 허가 관청 정보 조회", description = "관할 허가 관청 정보 조회<br><br>NIMS API 호출 결과 Return")
@Operation(summary = "관할 허가 관청 정보 조회(NIMS API)", description = "관할 허가 관청 정보 조회<br><br>NIMS API 호출 결과 Return")
@PostMapping(value = "/getJurisdictionGovInfo")
public ApiBaseResponse<List<NimsApiDto.JurisdictionGovInfo>> getJurisdictionGovInfo(
@RequestBody @Validated NimsApiRequest.JurisdictionGovInfoRequest dto
@ -78,7 +79,7 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.getJurisdictionGovInfo(dto));
}
@Operation(summary = "NIMS API - 저장소 정보 조회", description = "저장소 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return")
@Operation(summary = "저장소 정보 조회(NIMS API)", description = "저장소 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return")
@PostMapping(value = "/getStorageInfo")
public ApiBaseResponse<List<NimsApiDto.StorageInfo>> getStorageInfo(
@RequestBody @Validated NimsApiRequest.StorageInfoRequest dto
@ -86,7 +87,7 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.saveStorageInfo(dto));
}
@Operation(summary = "NIMS API - 폐기 보고 정보 조회", description = "폐기 보고 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return")
@Operation(summary = "업체 폐기 보고 정보 조회(NIMS API)", description = "업체 폐기 보고 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return")
@PostMapping("/getDsuseRptInfo")
public ApiBaseResponse<List<NimsApiDto.DsuseRptInfo>> getDsuseRptInfo(
@RequestBody @Validated NimsApiRequest.DsuseRptInfoRequest dto
@ -97,214 +98,32 @@ public class BizNimsController {
//------------------------------------------------------------------------------------------------------
// NIMS BIZ
//------------------------------------------------------------------------------------------------------
// @Operation(summary = "NIMS API - 사고 마약류 폐기 생성 보고", description = "사고 마약류 폐기 생성<br><br>NIMS 연계 시스템에 폐기 생성 send")
// @PostMapping("/createReportDsuse")
// public ApiBaseResponse<NimsAarResult> createReportDsuse(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.createReportDsuse());
// }
//
// @Operation(summary = "NIMS API - 사고 마약류 폐기 변경 보고", description = "사고 마약류 폐기 변경<br><br>NIMS 연계 시스템에 폐기 변경 send")
// @PostMapping("/updateReportDsuse")
// public ApiBaseResponse<NimsAarResult> updateReportDsuse(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.updateReportDsuse());
// }
//
// @Operation(summary = "NIMS API - 사고 마약류 폐기 취소 보고", description = "사고 마약류 폐기 취소<br><br>NIMS 연계 시스템에 폐기 취소 send")
// @PostMapping("/cancelReportDsuse")
// public ApiBaseResponse<NimsAarResult> cancelReportDsuse(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.cancelReportDsuse());
// }
@Operation(summary = "사고 마약류 폐기 관리 등록", description = "사고 마약류 폐기 관리 등록<br><br>폐기보고관리 화면에서 보고대상 조회후 등록시 사용")
@Operation(summary = "사고 마약류 폐기 관리 생성", description = "사고 마약류 폐기 관리 생성<br><br>폐기관리 데이타 생성후 폐기보고 정보 return")
@io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
@Content(mediaType = "application/json", examples = {
@ExampleObject(value = """
[
{
"userId":"userid1",
"USR_RPT_ID_NO":"usrRptIdNo1111",
"REF_USR_RPT_ID_NO":null,
"BSSH_CD":"H00008333",
"BSSH_NM":"수지미래산부인과의원",
"INDUTY_NM":"마약류취급의료업",
"RPT_TY_CD":"0",
"RND_DTL_RPT_CNT":2,
"HDR_DE":"20240401",
"RPT_DE":"20240401",
"DSUSE_SE_CD":"1",
"DSUSE_PRV_CD":"01",
"DSUSE_MTH_CD":"1",
"DSUSE_LOC":"보건소",
"DSUSE_DE":null,
"STATUS":"0",
"RPT_PRG_STTS_CD":"0",
"dsuseMgtDtls":[
{
"USR_RPT_ID_NO":"usrRptIdNo1111",
"USR_RPT_LN_ID_NO":"dsuseRptDtlIdNo11",
"PRDUCT_CD":"상품코드",
"PRDCT_NM":"제품명",
"MIN_DISTB_QY":1,
"PCE_QY":0,
"MNF_NO":"제조번호",
"PRD_VALID_DE":"20240401",
"MNF_SEQ":"-",
"STORGE_NO":"저장소번호",
"STORGE_NM":"저장소명",
"MVMN_TY_CD":"1102",
"DSUSE_QY":30
},
{
"USR_RPT_ID_NO":"usrRptIdNo1111",
"USR_RPT_LN_ID_NO":"dsuseRptDtlIdNo22",
"PRDUCT_CD":"상품코드1",
"PRDCT_NM":"제품명1",
"MIN_DISTB_QY":1,
"PCE_QY":0,
"MNF_NO":"제조번호1",
"PRD_VALID_DE":"20240401",
"MNF_SEQ":"-",
"STORGE_NO":"저장소번호1",
"STORGE_NM":"저장소명1",
"MVMN_TY_CD":"1102",
"DSUSE_QY":10
}
]
},
{
"userId":"userid1",
"USR_RPT_ID_NO":"usrRptIdNo2222",
"REF_USR_RPT_ID_NO":null,
"BSSH_CD":"H00008333",
"BSSH_NM":"수지미래산부인과의원",
"INDUTY_NM":"마약류취급의료업",
"RPT_TY_CD":"0",
"RND_DTL_RPT_CNT":2,
"HDR_DE":"20240401",
"RPT_DE":"20240401",
"DSUSE_SE_CD":"1",
"DSUSE_PRV_CD":"01",
"DSUSE_MTH_CD":"1",
"DSUSE_LOC":"보건소",
"DSUSE_DE":null,
"STATUS":"0",
"RPT_PRG_STTS_CD":"0",
"dsuseMgtDtls":[
{
"USR_RPT_ID_NO":"usrRptIdNo2222",
"USR_RPT_LN_ID_NO":"dsuseRptDtlIdNo33",
"PRDUCT_CD":"상품코드",
"PRDCT_NM":"제품명",
"MIN_DISTB_QY":1,
"PCE_QY":0,
"MNF_NO":"제조번호",
"PRD_VALID_DE":"20240401",
"MNF_SEQ":"-",
"STORGE_NO":"저장소번호",
"STORGE_NM":"저장소명",
"MVMN_TY_CD":"1102",
"DSUSE_QY":30
},
{
"USR_RPT_ID_NO":"usrRptIdNo2222",
"USR_RPT_LN_ID_NO":"dsuseRptDtlIdNo44",
"PRDUCT_CD":"상품코드1",
"PRDCT_NM":"제품명1",
"MIN_DISTB_QY":1,
"PCE_QY":0,
"MNF_NO":"제조번호1",
"PRD_VALID_DE":"20240401",
"MNF_SEQ":"-",
"STORGE_NO":"저장소번호1",
"STORGE_NM":"저장소명1",
"MVMN_TY_CD":"1102",
"DSUSE_QY":10
}
]
"usrRptIdNo":"22222",
"orgUsrRptIdNo":"22222"
},
{
"userId":"userid1",
"USR_RPT_ID_NO":"usrRptIdNo3333",
"REF_USR_RPT_ID_NO":"usrRptIdNo1111",
"BSSH_CD":"H00008333",
"BSSH_NM":"수지미래산부인과의원",
"INDUTY_NM":"마약류취급의료업",
"RPT_TY_CD":"2",
"RND_DTL_RPT_CNT":2,
"HDR_DE":"20240401",
"RPT_DE":"20240401",
"DSUSE_SE_CD":"1",
"DSUSE_PRV_CD":"01",
"DSUSE_MTH_CD":"1",
"DSUSE_LOC":"보건소",
"DSUSE_DE":null,
"STATUS":"0",
"RPT_PRG_STTS_CD":"0",
"dsuseMgtDtls":[
{
"USR_RPT_ID_NO":"usrRptIdNo3333",
"USR_RPT_LN_ID_NO":"dsuseRptDtlIdNo55",
"PRDUCT_CD":"상품코드",
"PRDCT_NM":"제품명",
"MIN_DISTB_QY":1,
"PCE_QY":0,
"MNF_NO":"제조번호",
"PRD_VALID_DE":"20240401",
"MNF_SEQ":"-",
"STORGE_NO":"저장소번호",
"STORGE_NM":"저장소명",
"MVMN_TY_CD":"1102",
"DSUSE_QY":30
},
{
"USR_RPT_ID_NO":"usrRptIdNo3333",
"USR_RPT_LN_ID_NO":"dsuseRptDtlIdNo66",
"PRDUCT_CD":"상품코드1",
"PRDCT_NM":"제품명1",
"MIN_DISTB_QY":1,
"PCE_QY":0,
"MNF_NO":"제조번호1",
"PRD_VALID_DE":"20240401",
"MNF_SEQ":"-",
"STORGE_NO":"저장소번호1",
"STORGE_NM":"저장소명1",
"MVMN_TY_CD":"1102",
"DSUSE_QY":10
}
]
"usrRptIdNo":"44444",
"orgUsrRptIdNo":"44444"
},
{
"userId":"userid1",
"USR_RPT_ID_NO":"usrRptIdNo4444",
"REF_USR_RPT_ID_NO":"usrRptIdNo2222",
"BSSH_CD":"H00008333",
"BSSH_NM":"수지미래산부인과의원",
"INDUTY_NM":"마약류취급의료업",
"RPT_TY_CD":"1",
"RND_DTL_RPT_CNT":0,
"HDR_DE":"20240401",
"RPT_DE":"20240401",
"DSUSE_SE_CD":"1",
"DSUSE_PRV_CD":"01",
"DSUSE_MTH_CD":"1",
"DSUSE_LOC":"보건소",
"DSUSE_DE":null,
"STATUS":"0",
"RPT_PRG_STTS_CD":"0",
"dsuseMgtDtls":[]
"usrRptIdNo":"77777",
"orgUsrRptIdNo":"33333"
}
]
""")
})
})
@PostMapping("/saveDsuseMgt")
public ApiBaseResponse<List<BizNimsRequest.DsuseMgt>> saveDsuseMgt(
public ApiBaseResponse<List<BizNimsResponse.DsuseMgtResponse>> saveDsuseMgt(
@RequestBody List<BizNimsRequest.DsuseMgt> dtos
) {
return ApiBaseResponse.of(bizNimsService.saveDsuseMgt(dtos));
@ -417,4 +236,29 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.createTgtDsuseRptData(dto));
}
*/
// @Operation(summary = "NIMS API - 사고 마약류 폐기 생성 보고", description = "사고 마약류 폐기 생성<br><br>NIMS 연계 시스템에 폐기 생성 send")
// @PostMapping("/createReportDsuse")
// public ApiBaseResponse<NimsAarResult> createReportDsuse(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.createReportDsuse());
// }
//
// @Operation(summary = "NIMS API - 사고 마약류 폐기 변경 보고", description = "사고 마약류 폐기 변경<br><br>NIMS 연계 시스템에 폐기 변경 send")
// @PostMapping("/updateReportDsuse")
// public ApiBaseResponse<NimsAarResult> updateReportDsuse(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.updateReportDsuse());
// }
//
// @Operation(summary = "NIMS API - 사고 마약류 폐기 취소 보고", description = "사고 마약류 폐기 취소<br><br>NIMS 연계 시스템에 폐기 취소 send")
// @PostMapping("/cancelReportDsuse")
// public ApiBaseResponse<NimsAarResult> cancelReportDsuse(
// @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
// ) {
// return ApiBaseResponse.of(bizNimsService.cancelReportDsuse());
// }
}

@ -208,7 +208,7 @@ public class NimsApiDto {
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public static class DsuseRptInfo extends AuditDto {
public static class DsuseRptInfo extends AuditDto implements Cloneable {
/**
*
@ -322,6 +322,16 @@ public class NimsApiDto {
@Builder.Default
@Valid
private List<DsuseRptInfoDtl> dsuseRptInfoDtls = new ArrayList<>();
// clone 메소드 추가
@Override
public DsuseRptInfo clone() {
try {
return (DsuseRptInfo) super.clone();
} catch (CloneNotSupportedException e) {
throw ApiCustomException.create("NIMS 폐기보고 정보 복제 중 오류가 발생 하였습니다.");
}
}
}
@Getter

@ -163,12 +163,12 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
private NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptResponse() {
//List<String> usrRptIdNoList = List.of("11111", "22222", "33333", "44444", "55555", "66666");
//List<String> usrRptIdNoList = List.of("11111", "22222", "33333", "44444");
List<String> usrRptIdNoList = List.of("11111", "22222", "33333", "44444", "55555", "66666", "77777");
List<String> usrRptLnIdNoList = List.of("111111111", "222222222");
//List<String> rptTyCds = List.of("0", "0", "0", "0", "1", "2", "1");
List<String> rptTyCds = List.of("0", "0", "0", "0", "1", "2", "2");
List<String> refUsrRptIdNos = List.of("11111", "33333", "66666");
//List<String> rptTyCds = List.of("0", "0", "0", "0");
List<String> rptTyCds = List.of("0", "0", "1", "2", "0", "0", "2");
List<String> refUsrRptIdNos = List.of("11111", "22222", "44444");
List<NimsApiDto.DsuseRptInfo> dsuseRpts = new ArrayList<>();
int refIdx = 0;

@ -1,26 +1,35 @@
CREATE TABLE tb_bssh_info
create or replace table tb_dsuse_mgt
(
bssh_cd varchar(10) NOT NULL COMMENT '마약류취급자식별_번호',
bssh_nm varchar(120) NULL COMMENT '업체_명',
induty_nm varchar(200) NULL COMMENT '업종_명',
hdnt_cd varchar(10) NULL COMMENT '의료업자_구분',
hdnt_nm varchar(200) NULL COMMENT '의료업자구분_명',
bizrno varchar(10) NULL COMMENT '사업자등록번호',
rprsntv_nm varchar(60) NULL COMMENT '대표자_명',
chrg_nm varchar(60) NULL COMMENT '담당자_명',
hptl_no varchar(20) NULL COMMENT '요양기관_기호',
join_yn varchar(200) NULL COMMENT '회원가입_여부',
bssh_stts_nm varchar(200) NULL COMMENT '상태',
prmisn_no varchar(40) NULL COMMENT '허가_번호',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
mdfcn_dt varchar(14) NULL COMMENT '수정_일시',
mdfr varchar(10) NULL COMMENT '수정자',
PRIMARY KEY (bssh_cd)
dscdmng_id varchar(10) not null comment '폐기관리_id'
primary key,
user_id varchar(10) null comment '사용자_아이디',
usr_rpt_id_no varchar(30) NOT NULL COMMENT '사용자_보고_식별_번호',
org_usr_rpt_id_no varchar(30) NOT NULL COMMENT '원_사용자_보고_식별_번호',
bssh_cd varchar(10) null comment '마약류취급자식별_번호',
prgrs_stts_cd varchar(10) null comment '진행_상태_코드',
use_yn varchar(1) not null comment '사용_여부',
reg_dt varchar(14) not null comment '등록_일시',
rgtr varchar(10) not null comment '등록자',
mdfcn_dt varchar(14) null comment '수정_일시',
mdfr varchar(10) null comment '수정자',
constraint idx_tb_dsuse_mgt_01
unique (org_usr_rpt_id_no, usr_rpt_id_no)
)
comment '폐기관리';
) COMMENT '취급자_정보';
CREATE TABLE tb_dsuse_mgt
(
dscdmng_id varchar(10) NOT NULL COMMENT '폐기관리_id',
usr_rpt_id_no varchar(30) NOT NULL COMMENT '사용자_보고_식별_번호',
user_id varchar(10) NULL COMMENT '사용자_아이디',
prgrs_stts_cd varchar(10) NULL COMMENT '진행_상태_코드',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
mdfcn_dt varchar(14) NULL COMMENT '수정_일시',
mdfr varchar(10) NULL COMMENT '수정자',
PRIMARY KEY (dscdmng_id, usr_rpt_id_no)
) COMMENT '폐기관리';
CREATE TABLE tb_dsuse_rpt_info
(
@ -40,7 +49,7 @@ CREATE TABLE tb_dsuse_rpt_info
dsuse_de varchar(80) NULL COMMENT '폐기_일자',
status varchar(1) NULL COMMENT '처리상태(0-정상,1-취소,2-변경)',
rpt_prg_stts_cd varchar(10) NULL COMMENT '보고_진행_상태_코드',
org_usr_rpt_id_no varchar(30) null comment '원_사용자_보고_식별_번호'
org_usr_rpt_id_no varchar(30) null comment '원_사용자_보고_식별_번호',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
@ -49,8 +58,7 @@ CREATE TABLE tb_dsuse_rpt_info
PRIMARY KEY (usr_rpt_id_no)
) COMMENT '폐기_보고_정보';
create or replace index idx_tb_dsuse_rpt_info_01
on adds.tb_dsuse_rpt_info (org_usr_rpt_id_no)
comment '원_사용자_보고_식별_번호 인덱스';
on tb_dsuse_rpt_info (org_usr_rpt_id_no);
CREATE TABLE tb_dsuse_rpt_info_dtl
(
@ -75,19 +83,51 @@ CREATE TABLE tb_dsuse_rpt_info_dtl
foreign key (usr_rpt_id_no) references tb_dsuse_mgt (usr_rpt_id_no)
) COMMENT '폐기_보고_정보_상세';
CREATE TABLE tb_dsuse_mgt
CREATE TABLE tb_bssh_info
(
dscdmng_id varchar(10) NOT NULL COMMENT '폐기관리_id',
usr_rpt_id_no varchar(30) NOT NULL COMMENT '사용자_보고_식별_번호',
user_id varchar(10) NULL COMMENT '사용자_아이디',
prgrs_stts_cd varchar(10) NULL COMMENT '진행_상태_코드',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
mdfcn_dt varchar(14) NULL COMMENT '수정_일시',
mdfr varchar(10) NULL COMMENT '수정자',
PRIMARY KEY (dscdmng_id, usr_rpt_id_no)
) COMMENT '폐기관리';
bssh_cd varchar(10) NOT NULL COMMENT '마약류취급자식별_번호',
bssh_nm varchar(120) NULL COMMENT '업체_명',
induty_nm varchar(200) NULL COMMENT '업종_명',
hdnt_cd varchar(10) NULL COMMENT '의료업자_구분',
hdnt_nm varchar(200) NULL COMMENT '의료업자구분_명',
bizrno varchar(10) NULL COMMENT '사업자등록번호',
rprsntv_nm varchar(60) NULL COMMENT '대표자_명',
chrg_nm varchar(60) NULL COMMENT '담당자_명',
hptl_no varchar(20) NULL COMMENT '요양기관_기호',
join_yn varchar(200) NULL COMMENT '회원가입_여부',
bssh_stts_nm varchar(200) NULL COMMENT '상태',
prmisn_no varchar(40) NULL COMMENT '허가_번호',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
mdfcn_dt varchar(14) NULL COMMENT '수정_일시',
mdfr varchar(10) NULL COMMENT '수정자',
PRIMARY KEY (bssh_cd)
) COMMENT '취급자_정보';
CREATE TABLE tb_prduct_info
(
prduct_cd varchar(14) NOT NULL COMMENT '제품_코드',
prdlst_mst_cd varchar(14) NULL COMMENT '제품_대표_코드',
prduct_nm varchar(300) NULL COMMENT '품목_명',
nrcd_se_nm varchar(50) NULL COMMENT '마약/항정_구분_명',
prtm_se_nm varchar(200) NULL COMMENT '중점/일반_구분',
prd_min_distb_qy int NULL COMMENT '제품_최소_유통단위_수량',
std_packng_stle_nm varchar(200) NULL COMMENT '제품_최소_유통단위',
prd_tot_pce_qy int NULL COMMENT '제품_총_낱개단위_수량',
pce_co_unit_nm varchar(200) NULL COMMENT '제품_낱개_단위_명',
bssh_cd varchar(10) NULL COMMENT '마약류취급자식별_번호',
rgs_dt date NULL COMMENT '등록_일',
upd_dt date NULL COMMENT '변경_일',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
mdfcn_dt varchar(14) NULL COMMENT '수정_일시',
mdfr varchar(10) NULL COMMENT '수정자',
PRIMARY KEY (prduct_cd)
) COMMENT '품목_정보';
CREATE TABLE tb_storge_info
(
@ -124,28 +164,6 @@ CREATE TABLE tb_jrdt_gov_info
PRIMARY KEY (bssh_cd)
) COMMENT '관할_관청_정보';
CREATE TABLE tb_prduct_info
(
prduct_cd varchar(14) NOT NULL COMMENT '제품_코드',
prdlst_mst_cd varchar(14) NULL COMMENT '제품_대표_코드',
prduct_nm varchar(300) NULL COMMENT '품목_명',
nrcd_se_nm varchar(50) NULL COMMENT '마약/항정_구분_명',
prtm_se_nm varchar(200) NULL COMMENT '중점/일반_구분',
prd_min_distb_qy int NULL COMMENT '제품_최소_유통단위_수량',
std_packng_stle_nm varchar(200) NULL COMMENT '제품_최소_유통단위',
prd_tot_pce_qy int NULL COMMENT '제품_총_낱개단위_수량',
pce_co_unit_nm varchar(200) NULL COMMENT '제품_낱개_단위_명',
bssh_cd varchar(10) NULL COMMENT '마약류취급자식별_번호',
rgs_dt date NULL COMMENT '등록_일',
upd_dt date NULL COMMENT '변경_일',
use_yn varchar(1) NOT NULL COMMENT '사용_여부',
reg_dt varchar(14) NOT NULL COMMENT '등록_일시',
rgtr varchar(10) NOT NULL COMMENT '등록자',
mdfcn_dt varchar(14) NULL COMMENT '수정_일시',
mdfr varchar(10) NULL COMMENT '수정자',
PRIMARY KEY (prduct_cd)
) COMMENT '품목_정보';
CREATE TABLE tb_cmm_api_log
(
request_id varchar(40) NOT NULL COMMENT '요청 id',

@ -4,6 +4,9 @@
<mapper namespace="cokr.xit.adds.biz.nims.dao.BizNimsMapper">
<!-- **************************************************************************** -->
<!-- NIMS API start -->
<!-- **************************************************************************** -->
<insert id="mergeBsshInfoSt" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$BsshInfoSt">
/** nims-mysql-mapper|mergeBsshInfoSt-마약류취급자정보 생성/변경|julim */
INSERT INTO tb_bssh_info(
@ -144,50 +147,91 @@
mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
mdfr = #{rgtr}
</insert>
<!-- **************************************************************************** -->
<!-- NIMS API end -->
<!-- **************************************************************************** -->
<!-- **************************************************************************** -->
<!-- ADDS BIZ start -->
<!-- **************************************************************************** -->
<select id="selectDsuseRptInfoByUsrRptIdNo" parameterType="map" resultType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** nims-mysql-mapper|selectDsuseRptInfoByUsrRptIdNo-폐기보고정보 데이타 조회|julim */
SELECT usr_rpt_id_no, /* 사용자보고식별번호 */
ref_usr_rpt_id_no, /* 참조사용자식별번호 */
bssh_cd, /* 마약류취급자식별번호 */
bssh_nm, /* 마약류취급자명 */
induty_nm, /* 업종명 */
rpt_ty_cd, /* 보고유형코드 */
rnd_dtl_rpt_cnt, /* 수불상세보고수 */
hdr_de, /* 취급일자 */
rpt_de, /* 보고일자 */
dsuse_se_cd, /* 폐기구분코드 */
dsuse_prv_cd, /* 폐기사유코드 */
dsuse_mth_cd, /* 폐기방법코드 */
dsuse_loc, /* 폐기장소 */
dsuse_de, /* 폐기일자 */
status, /* 상태 */
rpt_prg_stts_cd, /* 보고진행상태코드 */
org_usr_rpt_id_no, /* 원본사용자보고식별번호 */
use_yn,
reg_dt,
rgtr
FROM tb_dsuse_rpt_info
WHERE usr_rpt_id_no = #{usrRptIdNo}
<if test="useYn != null">
AND use_yn = #{useYn}
</if>
<if test="userId != null">
AND 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 (usr_rpt_id_no, /* 사용자보고식별번호 */
ref_usr_rpt_id_no, /* 참조사용자식별번호 */
bssh_cd, /* 마약류취급자식별번호 */
bssh_nm, /* 마약류취급자명 */
induty_nm, /* 업종명 */
rpt_ty_cd, /* 보고유형코드 : AAR - 폐기보고 */
rnd_dtl_rpt_cnt, /* 수불상세보고수 */
hdr_de, /* 취급일자 */
rpt_de, /* 보고일자 */
dsuse_se_cd, /* 폐기구분코드 */
dsuse_prv_cd, /* 폐기사유코드 */
dsuse_mth_cd, /* 폐기방법코드 */
dsuse_loc, /* 폐기장소 */
dsuse_de, /* 폐기일자 */
status, /* 상태 */
rpt_prg_stts_cd, /* 보고진행상태코드 */
org_usr_rpt_id_no, /* 원본사용자보고식별번호 */
use_yn,
reg_dt,
rgtr)
VALUES (#{usrRptIdNo},
#{refUsrRptIdNo},
#{bsshCd},
#{bsshNm},
#{indutyNm},
#{rptTyCd},
#{rndDtlRptCnt},
#{hdrDe},
#{rptDe},
#{dsuseSeCd},
#{dsusePrvCd},
#{dsuseMthCd},
#{dsuseLoc},
#{dsuseDe},
#{status},
#{rptPrgSttsCd},
#{orgUsrRptIdNo},
IF(#{rptTyCd} = '1', 'N', 'Y'),
DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
#{rgtr})
INSERT INTO tb_dsuse_rpt_info (
usr_rpt_id_no, /* 사용자보고식별번호 */
ref_usr_rpt_id_no, /* 참조사용자식별번호 */
bssh_cd, /* 마약류취급자식별번호 */
bssh_nm, /* 마약류취급자명 */
induty_nm, /* 업종명 */
rpt_ty_cd, /* 보고유형코드 : AAR - 폐기보고 */
rnd_dtl_rpt_cnt, /* 수불상세보고수 */
hdr_de, /* 취급일자 */
rpt_de, /* 보고일자 */
dsuse_se_cd, /* 폐기구분코드 */
dsuse_prv_cd, /* 폐기사유코드 */
dsuse_mth_cd, /* 폐기방법코드 */
dsuse_loc, /* 폐기장소 */
dsuse_de, /* 폐기일자 */
status, /* 상태 */
rpt_prg_stts_cd, /* 보고진행상태코드 */
org_usr_rpt_id_no, /* 원본사용자보고식별번호 */
use_yn,
reg_dt,
rgtr
) VALUES (
#{usrRptIdNo},
#{refUsrRptIdNo},
#{bsshCd},
#{bsshNm},
#{indutyNm},
#{rptTyCd},
#{rndDtlRptCnt},
#{hdrDe},
#{rptDe},
#{dsuseSeCd},
#{dsusePrvCd},
#{dsuseMthCd},
#{dsuseLoc},
#{dsuseDe},
#{status},
#{rptPrgSttsCd},
#{orgUsrRptIdNo},
IF(#{rptTyCd} = '1', 'N', 'Y'),
DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
#{rgtr}
)
</insert>
<insert id="insertDsuseRptInfoDtl" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfoDtl">
@ -225,14 +269,6 @@
)
</insert>
<!--
FIXME :
취소 및 변경에 대하여
ref_usr_rpt_id_no 와 rpt_ty_cd를 어떻게 활용할 것인지 고민 필요
ref_usr_rpt_id_no = IF(#{rptTyCd} = '1', IFNULL(ref_usr_rpt_id_no, #{refUsrRptIdNo}), null)
, rpt_ty_cd = IF(#{rptTyCd} = '1', #{rptTyCd}, rpt_ty_cd)
-->
<update id="updateCancelDsuseRptInfo" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** nims-mysql-mapper|updateCancelDsuseRptInfo-폐기보고정보 취소|julim */
UPDATE tb_dsuse_rpt_info
@ -243,6 +279,17 @@
AND use_yn = 'Y'
</update>
<update id="updateCancelDsuseMgt" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** nims-mysql-mapper|updateCancelDsuseMgt-폐기관리 취소(참조사용자식별번호로)|julim */
UPDATE tb_dsuse_mgt
SET usr_rpt_id_no = #{usrRptIdNo}
, use_yn = IF(#{rptTyCd} = '1', 'N', use_yn)
, mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s')
, mdfr = #{rgtr}
WHERE usr_rpt_id_no = #{refUsrRptIdNo}
AND use_yn = 'Y'
</update>
<update id="updateCancelDsuseRptInfoDtl" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** nims-mysql-mapper|updateCancelDsuseRptInfoDtl-폐기보고정보 상세 취소|julim */
UPDATE tb_dsuse_rpt_info_dtl
@ -264,7 +311,7 @@
<insert id="insertDsuseMgt" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt">
/** nims-mysql-mapper|insertDsuseMgt-폐기관리 마스터 생성|julim */
/** nims-mysql-mapper|insertDsuseMgt-폐기관리 생성|julim */
<selectKey keyProperty="dscdmngId" resultType="string" order="BEFORE">
SELECT NVL(MAX(dscdmng_id), CONCAT(DATE_FORMAT(now(), '%Y%m'),'0000')) + 1
FROM tb_dsuse_mgt
@ -272,109 +319,71 @@
</selectKey>
INSERT INTO tb_dsuse_mgt (
dscdmng_id, /* 폐기관리ID */
usr_rpt_id_no, /* 사용자보고식별번호 */
ref_usr_rpt_id_no, /* 참조사용자식별번호 */
user_id, /* 사용자ID */
usr_rpt_id_no, /* 사용자보고식별번호 */
org_usr_rpt_id_no, /* 원사용자보고식별번호 */
prgrs_stts_cd, /* 폐기관리진행상태코드 */
bssh_cd, /* 마약류취급자식별번호 */
bssh_nm, /* 마약류취급자명 */
induty_nm, /* 업종명 */
rpt_ty_cd, /* 보고유형코드 : AAR - 폐기보고 */
rnd_dtl_rpt_cnt, /* 수불상세보고수 */
hdr_de, /* 취급일자 */
rpt_de, /* 보고일자 */
dsuse_se_cd, /* 폐기구분코드 */
dsuse_prv_cd, /* 폐기사유코드 */
dsuse_mth_cd, /* 폐기방법코드 */
dsuse_loc, /* 폐기장소 */
dsuse_de, /* 폐기일자 */
status, /* 상태 */
rpt_prg_stts_cd, /* 보고진행상태코드 */
use_yn,
reg_dt,
rgtr
) VALUES (
#{dscdmngId},
#{usrRptIdNo},
#{refUsrRptIdNo},
#{userId},
#{usrRptIdNo},
#{orgUsrRptIdNo},
#{prgrsSttsCd},
#{bsshCd},
#{bsshNm},
#{indutyNm},
#{rptTyCd},
#{rndDtlRptCnt},
#{hdrDe},
#{rptDe},
#{dsuseSeCd},
#{dsusePrvCd},
#{dsuseMthCd},
#{dsuseLoc},
#{dsuseDe},
#{status},
#{rptPrgSttsCd},
'Y',
DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
#{rgtr}
)
</insert>
<insert id="insertDsuseMgtDtl" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgtDtl">
/** nims-mysql-mapper|insertDsuseMgtDtl-폐기관리 상세 생성|julim */
INSERT INTO tb_dsuse_mgt_dtl (
dscdmng_id, /* 폐기관리ID */
usr_rpt_id_no, /* 사용자보고식별번호 */
usr_rpt_ln_id_no, /* 사용자보고라인식별번호 */
prduct_cd, /* 제품코드 */
prduct_nm, /* 제품명 */
min_distb_qy, /* 최소유통단위수량 */
pce_qy, /* 낱개단위수량 */
mnf_no, /* 제조번호 */
prd_valid_de, /* 제품유효기한일자 */
mnf_seq, /* 제품일련번호 */
mvmn_ty_cd, /* 이동유형코드 */
dsuse_qy, /* 폐기수량 */
use_yn,
reg_dt,
rgtr
) VALUES (
#{dscdmngId},
#{usrRptIdNo},
#{usrRptLnIdNo},
#{prductCd},
#{prductNm},
#{minDistbQy},
#{pceQy},
#{mnfNo},
#{prdValidDe},
#{mnfSeq},
#{mvmnTyCd},
#{dsuseQy},
'Y',
DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
#{rgtr}
)
</insert>
<select id="selectDsuseMgt" parameterType="java.util.List" resultType="cokr.xit.adds.biz.nims.model.BizNimsResponse$DsuseMgtResponse">
/** nims-mysql-mapper|selectDsuseMgt-폐기관리 조회|julim */
SELECT tdm.dscdmng_id /** 폐기관리ID */
, tdm.user_id /** 사용자ID */
, tdm.usr_rpt_id_no /** 사용자보고식별번호 */
, tdm.org_usr_rpt_id_no /** 원사용자보고식별번호 */
, tdri.bssh_cd /** 마약류취급자식별번호 */
, tdri.bssh_nm /** 마약류취급자명 */
, tdri.induty_nm /** 업종명 */
, tdri.rpt_ty_cd /** 보고유형코드 */
, tdri.rnd_dtl_rpt_cnt /** 수불상세보고수 */
, tdri.hdr_de /** 취급일자 */
, tdri.rpt_de /** 보고일자 */
, tdri.dsuse_se_cd /** 폐기구분코드 */
, tdri.dsuse_prv_cd /** 폐기사유코드 */
, tdri.dsuse_mth_cd /** 폐기방법코드 */
, tdri.dsuse_loc /** 폐기장소 */
, tdri.dsuse_de /** 폐기일자 */
, tdri.status /** 상태 */
, tdri.rpt_prg_stts_cd /** 보고진행상태코드 */
, tbi.rprsntv_nm /** 대표자명 */
, tbi.prmisn_no /** 허가번호 */
FROM tb_dsuse_mgt tdm
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
ON tdri.bssh_cd = tbi.bssh_cd
WHERE tdm.dscdmng_id IN
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<!-- **************************************************************************** -->
<!-- ADDS BIZ end -->
<!-- **************************************************************************** -->
<update id="updateCancelDsuseMgt" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt">
/** nims-mysql-mapper|updateCancelDsuseMgt-폐기관리 취소|julim */
UPDATE tb_dsuse_mgt
SET use_yn = 'N'
, mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s')
, mdfr = #{rgtr}
WHERE usr_rpt_id_no = #{refUsrRptIdNo}
AND use_yn = 'Y'
</update>
<update id="updateCancelDsuseMgtDtl" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt">
/** nims-mysql-mapper|updateCancelDsuseMgtDtl-폐기관리 상세 취소|julim */
UPDATE tb_dsuse_mgt_dtl
SET use_yn = 'N'
, mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s')
, mdfr = #{rgtr}
WHERE usr_rpt_id_no = #{refUsrRptIdNo}
AND use_yn = 'Y'
</update>
<select id="selectTgtAarHeader" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt" resultType="cokr.xit.adds.biz.nims.model.BizNimsAarDto$AarHeader">
/** nims-mysql-mapper|selectTgtAarHeader-폐기 보고 대상 헤더 조회|julim */

Loading…
Cancel
Save