Browse Source

발주관련 처리 로직 수정 (발주취소, 구매반려)

dwkim 2 years ago
parent
commit
271b31a337

+ 1 - 0
src/main/java/com/oqpo/api/enums/SystemMessageCode.java

@@ -83,6 +83,7 @@ public enum SystemMessageCode {
83 83
     ERR_EQ_LOANDVSN (40046, "동일한 여신타입으로 변경할 수 없습니다.", HttpStatus.BAD_REQUEST),
84 84
     ERR_NCHG_SHCO (40047, "진행중인 발주건으로 변경할 수 없습니다.", HttpStatus.BAD_REQUEST),
85 85
     ERR_NDIFF_PODR (40048, "서로 다른 발주건으로 납품서를 생성 할 수 없습니다.", HttpStatus.BAD_REQUEST),
86
+    ERR_NOTREJECT (40049, "반려대상 구매요청품목이 없습니다.", HttpStatus.BAD_REQUEST),
86 87
     ;
87 88
 
88 89
     private int id;

+ 2 - 1
src/main/java/com/oqpo/api/mapper/pomng/PchReqMapper.java

@@ -26,7 +26,7 @@ public interface PchReqMapper {
26 26
 
27 27
     int insertPchReqDtlPtcl(@Param("userId") String userId, List<PchReqDtlPtclEntity> gridInsertData) throws Exception;
28 28
 
29
-    int updateRejPchReqBaseInfo(@Param("userId") String userId, @Param("pchReqUnqNo") String pchReqUnqNo, @Param("pchReqRjctNm") String pchReqRjctNm, @Param("pchReqRjctRsn") String pchReqRjctRsn) throws Exception;
29
+    int updateRejPchReqBaseInfo(@Param("userId") String userId, @Param("pchReqUnqNo") String pchReqUnqNo, @Param("pchReqRjctNm") String pchReqRjctNm, @Param("pchReqRjctRsn") String pchReqRjctRsn, @Param("pchReqStCd") String pchReqStCd) throws Exception;
30 30
 
31 31
     int updatePchReqDtlPtcl(@Param("userId") String userId, @Param("pchReqUnqNo") String pchReqUnqNo, List<PchReqDtlPtclEntity> gridUpdateData) throws Exception;
32 32
 
@@ -87,4 +87,5 @@ public interface PchReqMapper {
87 87
 
88 88
     List<PchReqDtlPtclEntity> selectCancelPchReqList(@Param("pchPodrUnqNo") String pchPodrUnqNo, List<PchOdrDtlPtclEntity> gridUpdateData)throws Exception;
89 89
 
90
+    int updateRejectPchReqDtlStCd(@Param("userId") String userId, List<PchReqDtlPtclEntity> gridUpdateData) throws Exception;
90 91
 }

+ 22 - 5
src/main/java/com/oqpo/api/service/pomng/PchReqService.java

@@ -455,17 +455,34 @@ public class PchReqService extends CommonService {
455 455
             // 로그인자 권한이 50 이면 매장 아이디 필수로 넘어와야함
456 456
             UserMngEntity uEntity = userMngMapper.selectGroupUserInfo(userId);
457 457
             String pchReqRjctNm = uEntity.getUserNm();
458
-            pchReqMapper.updateRejPchReqBaseInfo(userId, pchReqUnqNo, pchReqRjctNm,pchReqRjctRsn);
458
+
459
+            //일부 진행건이 있으면 요청가능건만 반려 처리함
460
+            List<PchReqDtlPtclEntity> targetList = pchReqMapper.selectPchRejectPrTargetList(pchReqUnqNo);
461
+
462
+            if (targetList.size() < 0) {
463
+                throw new GlobalException(SystemMessageCode.ERR_NOTREJECT);
464
+            }
465
+            //반려가능 대상만 구매반려처리함
466
+            long rejectAmt = 0 ;
467
+            for (int i = 0 ; i < targetList.size() ;i++) {
468
+                rejectAmt = rejectAmt + targetList.get(i).getPchReqAmt();
469
+            }
470
+            pchReqMapper.updateRejectPchReqDtlStCd(userId,targetList );
471
+
472
+            // 구매요청건에 대한 상태 변경 처리
473
+            String pchReqStCd = selectPchReqDtlStatusList(pchReqUnqNo);
474
+
475
+            pchReqMapper.updateRejPchReqBaseInfo(userId, pchReqUnqNo, pchReqRjctNm,pchReqRjctRsn, pchReqStCd);
459 476
 
460 477
             // 상세코드 반려처리 RRD40
461
-            String rtnReqDtlStCd = "PRD40";
462
-            pchReqMapper.updateAllPchReqDtlStCd(userId, pchReqUnqNo, rtnReqDtlStCd) ;
478
+            //String rtnReqDtlStCd = "PRD40";
479
+            //pchReqMapper.updateAllPchReqDtlStCd(userId, pchReqUnqNo, rtnReqDtlStCd) ;
463 480
 
464 481
             // 여신 사용금액 정리
465 482
             if (!StringUtil.isEmpty(storeId)) {
466 483
                 LoanMgntBaseInfoEntity loanMgnInfo = loanStateMapper.selectLoanJobDataInfo(storeId);
467
-                PchReqBaseInfoEntity sumData = pchReqMapper.selectSumReqAmt(pchReqUnqNo);
468
-                loanStateMapper.updateloanMinusPchReqUseAmt(loanMgnInfo.getLoanMgntUnqNo(), storeId, sumData.getPchReqTotalAmt());
484
+                //PchReqBaseInfoEntity sumData = pchReqMapper.selectSumReqAmt(pchReqUnqNo);
485
+                loanStateMapper.updateloanMinusPchReqUseAmt(loanMgnInfo.getLoanMgntUnqNo(), storeId, rejectAmt);
469 486
             }
470 487
 
471 488
 

+ 15 - 2
src/main/resources/mybatis/sqlmaps/pomng/PchReq.xml

@@ -143,7 +143,7 @@
143 143
     <update id="updateRejPchReqBaseInfo">
144 144
         UPDATE /* PchReq.updateRejPchReqBaseInfo */
145 145
             pch_req_base_info SET
146
-                pch_req_st_cd = 'PR40',
146
+                pch_req_st_cd = #{pchReqStCd},
147 147
                 pch_req_rjct_nm = #{pchReqRjctNm},
148 148
                 pch_req_rjct_dt = date_format(now(),'%Y%m%d'),
149 149
                 pch_req_rjct_rsn = #{pchReqRjctRsn},
@@ -293,7 +293,7 @@
293 293
             , pch_req_dtl_ptcl ptcl
294 294
         where 1 = 1
295 295
         and base.pch_req_unq_no = ptcl.pch_req_unq_no
296
-        and base.pch_req_st_cd = 'PR20'
296
+        and ptcl.pch_req_dtl_st_cd = 'PRD20'
297 297
         and base.pch_req_unq_no  = #{pchReqUnqNo}
298 298
     </select>
299 299
 
@@ -545,4 +545,17 @@
545 545
         </foreach>
546 546
     </select>
547 547
 
548
+
549
+    <update id="updateRejectPchReqDtlStCd">
550
+        <foreach collection="gridUpdateData" item="item" separator=";">
551
+            UPDATE /* PchReq.updateAllPchReqDtlStCd */
552
+            pch_req_dtl_ptcl SET
553
+            pch_req_dtl_st_cd = 'PRD40',
554
+            sys_chg_dttm = NOW(),
555
+            sys_chg_id = #{userId}
556
+            WHERE pch_req_unq_no = #{item.pchReqUnqNo}
557
+            and   pch_req_dtl_no = #{item.pchReqDtlNo}
558
+        </foreach>
559
+    </update>
560
+
548 561
 </mapper>