diff --git a/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java b/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java index 0e2d4a3..1163285 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java +++ b/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java @@ -86,6 +86,8 @@ public interface BizNimsMapper extends AbstractMapper { // 이미지 업로드시 이전 이미지 삭제를 위한 fileId 조회 List selectFileId(Map map); + void deleteDsuseMgtDtl(final String dscdmngId); + //List selectDsuseRptInfoDtls(final Map map); diff --git a/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java b/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java index dec0cf9..8fef3dd 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java +++ b/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java @@ -277,23 +277,30 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe // FIXME: 파일 갯수 확인 - 프론트 파일 처리 완료시 까지 comment 처리 if(files.size() != dtls.size()) throw ApiCustomException.create("폐기물 파일 갯수 오류[파일 갯수 확인]"); - if(bizNimsMapper.insertDsuseMgtReceipt(reqDto) == 1){ - int dtlCnt = 0; + if(isEmpty(reqDto.getDscdmngId())) { - for (BizNimsDto.DsuseMgtDtl d : dtls) { - String sn = StringUtils.leftPad(dtlCnt + 1 + "", 3, "0"); - d.setDscdmngId(reqDto.getDscdmngId()); - d.setDscdmngSn(sn); - d.setRgtr(reqDto.getUserId()); - dtlCnt = dtlCnt + bizNimsMapper.insertDsuseMgtDtl(d); + if (bizNimsMapper.insertDsuseMgtReceipt(reqDto) == 1) { - // FIXME: 파일 갯수 확인 - 프론트 파일 처리 완료시 까지 comment 처리 - d.setFileId( - uploadFileDeleteAndSave(Constants.FILE_INF_TYPE.DSUSE_PRD_IMG.getCode(), reqDto.getDscdmngId(), sn, files.get(dtlCnt-1))); + // 폐기관리 상세 등록 + saveDsuseMgtDtls(reqDto, dtls, files); + } else { + throw ApiCustomException.create("폐기 관리 마스터 등록 실패"); } - if(dtls.size() != dtlCnt) throw ApiCustomException.create("폐기 관리 상세 등록 실패"); } else { - throw ApiCustomException.create("폐기 관리 마스터 등록 실패"); + bizNimsMapper.updateDsuseMgtReceipt(reqDto); + + // 파일 삭제 + List fileIds = bizNimsMapper.selectFileId( + Map.of("infType", Constants.FILE_INF_TYPE.DSUSE_PRD_IMG.getCode(), "infKey", reqDto.getDscdmngId())); + if (!fileIds.isEmpty()) { + fileService.delete(fileIds.toArray(new String[0])); + } + + // 폐기관리 상세 삭제 + bizNimsMapper.deleteDsuseMgtDtl(reqDto.getDscdmngId()); + + // 폐기관리 상세 등록 + saveDsuseMgtDtls(reqDto, dtls, files); } return reqDto; } @@ -899,6 +906,34 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe } } + /** + *
+	 * 폐기관리 상세 등록
+	 * @param reqDto
+	 * @param dtls
+	 * @param files
+	 * 
+ */ + private void saveDsuseMgtDtls(BizNimsRequest.DsuseMgtReceiptReq reqDto, List dtls, + List files) { + int dtlCnt = 0; + + for (BizNimsDto.DsuseMgtDtl d : dtls) { + String sn = StringUtils.leftPad(dtlCnt + 1 + "", 3, "0"); + d.setDscdmngId(reqDto.getDscdmngId()); + d.setDscdmngSn(sn); + d.setRgtr(reqDto.getUserId()); + dtlCnt = dtlCnt + bizNimsMapper.insertDsuseMgtDtl(d); + + 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("폐기 관리 상세 등록 실패"); + } + + /** *
 	 * file 저장 처리
diff --git a/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml b/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml
index 8a62bab..060bdcd 100644
--- a/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml
+++ b/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml
@@ -279,7 +279,7 @@
         )
     
 
-    
+    
         /** nims-mysql-mapper|updateDsuseMgtReceipt-폐기관리 정보 변경|julim  */
         UPDATE tb_dsuse_mgt
            SET dsuse_prv_cd = #{dsusePrvCd}
@@ -344,6 +344,12 @@
         )
     
 
+    
+        /** nims-mysql-mapper|deleteDsuseMgtDtl-폐기관리 상세 삭제|julim  */
+        DELETE FROM tb_dsuse_mgt_dtl
+         WHERE dscdmng_id = #{dscdmngId}
+    
+
     
         /** nims-mysql-mapper|insertDsuseMgtDtl-폐기관리 상세 생성|julim  */
         INSERT INTO tb_dsuse_mgt_dtl (