hoseongs 2 gadi atpakaļ
vecāks
revīzija
2677a469b2

+ 64 - 0
src/main/java/com/oqpo/api/entity/loanmng/LoanMgntBaseInfoEntity.java

@@ -0,0 +1,64 @@
1
+package com.oqpo.api.entity.loanmng;
2
+
3
+import io.swagger.annotations.ApiModelProperty;
4
+import lombok.Getter;
5
+import lombok.Setter;
6
+import lombok.ToString;
7
+
8
+import java.io.Serializable;
9
+
10
+@Getter
11
+@Setter
12
+@ToString
13
+public class LoanMgntBaseInfoEntity implements Serializable {
14
+
15
+    @ApiModelProperty(value = "여신관리고유번호")
16
+    private String loanMgntUnqNo;
17
+    @ApiModelProperty(value = "매장아이디")
18
+    private String storeId;
19
+    @ApiModelProperty(value = "매장명")
20
+    private String storeNm;
21
+    @ApiModelProperty(value = "브랜드아이디")
22
+    private String brandId;
23
+    @ApiModelProperty(value = "브랜드명")
24
+    private String brandNm;
25
+    @ApiModelProperty(value = "계정코드")
26
+    private String acctCd;
27
+    @ApiModelProperty(value = "계좌번호")
28
+    private String acctNo;
29
+    @ApiModelProperty(value = "계좌잔액")
30
+    private long acctBal;
31
+    @ApiModelProperty(value = "여신구분")
32
+    private String loanDvsn;
33
+    @ApiModelProperty(value = "여신구분명")
34
+    private String loanDvsnNm;
35
+    @ApiModelProperty(value = "신용한도금액")
36
+    private long credtLimitAmt;
37
+    @ApiModelProperty(value = "충전한도금액")
38
+    private long chrgeLimitAmt;
39
+    @ApiModelProperty(value = "신용한도사용여부")
40
+    private String credtLimitUseYn;
41
+    @ApiModelProperty(value = "사용금액합계")
42
+    private long useAmtTotal;
43
+    @ApiModelProperty(value = "가수금액합계")
44
+    private long tmpRcvAcctTotal;
45
+    @ApiModelProperty(value = "사용여부")
46
+    private String useYn;
47
+    @ApiModelProperty(value = "사용여부명")
48
+    private String useYnNm;
49
+    @ApiModelProperty(value = "비고")
50
+    private String loanDesc;
51
+    @ApiModelProperty(value = "시스템등록일시")
52
+    private String sysRegDttm;
53
+    @ApiModelProperty(value = "시스템등록아이디")
54
+    private String sysRegId;
55
+    @ApiModelProperty(value = "시스템등록자")
56
+    private String sysRegNm;
57
+    @ApiModelProperty(value = "시스템변경일시")
58
+    private String sysChgDttm;
59
+    @ApiModelProperty(value = "시스템변경아이디")
60
+    private String sysChgId;
61
+    @ApiModelProperty(value = "시스템변경자")
62
+    private String sysChgNm;
63
+
64
+}

+ 74 - 0
src/main/java/com/oqpo/api/entity/loanmng/LoanMgntDsptProcEntity.java

@@ -0,0 +1,74 @@
1
+package com.oqpo.api.entity.loanmng;
2
+
3
+import io.swagger.annotations.ApiModelProperty;
4
+import lombok.Getter;
5
+import lombok.Setter;
6
+import lombok.ToString;
7
+
8
+import java.io.Serializable;
9
+
10
+@Getter
11
+@Setter
12
+@ToString
13
+public class LoanMgntDsptProcEntity implements Serializable {
14
+
15
+    @ApiModelProperty(value = "입금관리번호")
16
+    private String dsptMgntNo;
17
+    @ApiModelProperty(value = "요청일자")
18
+    private String reqDt;
19
+    @ApiModelProperty(value = "요청시각")
20
+    private String reqTm;
21
+    @ApiModelProperty(value = "입금금액")
22
+    private long dpstAmt;
23
+    @ApiModelProperty(value = "입금일자")
24
+    private String dpstDt;
25
+    @ApiModelProperty(value = "입금자명")
26
+    private String dpstNm;
27
+    @ApiModelProperty(value = "입금계좌번호")
28
+    private String rcvAcctNo;
29
+    @ApiModelProperty(value = "입금은행코드")
30
+    private String dpstBnkCd;
31
+    @ApiModelProperty(value = "입금은행명")
32
+    private String dpstBnkNm;
33
+    @ApiModelProperty(value = "입금상태코드")
34
+    private String dpstStCd;
35
+    @ApiModelProperty(value = "입금상태명")
36
+    private String dpstStNm;
37
+    @ApiModelProperty(value = "입금요청자아이디")
38
+    private String dpstReqId;
39
+    @ApiModelProperty(value = "입금요청자명")
40
+    private String dpstReqNm;
41
+    @ApiModelProperty(value = "입금승인자아이디")
42
+    private String dpstAuthId;
43
+    @ApiModelProperty(value = "입금승인자명")
44
+    private String dpstAuthNm;
45
+    @ApiModelProperty(value = "입금승인일자")
46
+    private String dpstAuthDt;
47
+    @ApiModelProperty(value = "입금승인시각")
48
+    private String dpstAuthTm;
49
+    @ApiModelProperty(value = "입금반려일자")
50
+    private String dsptRjctDt;
51
+    @ApiModelProperty(value = "입금반려시각")
52
+    private String dsptRjctTm;
53
+    @ApiModelProperty(value = "매장아이디")
54
+    private String storeId;
55
+    @ApiModelProperty(value = "매장명")
56
+    private String storeNm;
57
+    @ApiModelProperty(value = "브랜드아이디")
58
+    private String brandId;
59
+    @ApiModelProperty(value = "브랜드명")
60
+    private String brandNm;
61
+    @ApiModelProperty(value = "입금승인여부")
62
+    private String dpstAuthYn;
63
+    @ApiModelProperty(value = "입금반려사유")
64
+    private String dsptRjctRsn;
65
+    @ApiModelProperty(value = "시스템등록일시")
66
+    private String sysRegDttm;
67
+    @ApiModelProperty(value = "시스템등록아이디")
68
+    private String sysRegId;
69
+    @ApiModelProperty(value = "시스템변경일시")
70
+    private String sysChgDttm;
71
+    @ApiModelProperty(value = "시스템변경아이디")
72
+    private String sysChgId;
73
+
74
+}

+ 60 - 0
src/main/java/com/oqpo/api/entity/loanmng/LoanMgntDtlHstEntity.java

@@ -0,0 +1,60 @@
1
+package com.oqpo.api.entity.loanmng;
2
+
3
+import io.swagger.annotations.ApiModelProperty;
4
+import lombok.Getter;
5
+import lombok.Setter;
6
+import lombok.ToString;
7
+
8
+import java.io.Serializable;
9
+
10
+@Getter
11
+@Setter
12
+@ToString
13
+public class LoanMgntDtlHstEntity implements Serializable {
14
+
15
+    @ApiModelProperty(value = "여신관리고유번호")
16
+    private String loanMgntUnqNo;
17
+    @ApiModelProperty(value = "여신등록일자")
18
+    private String loanRegDt;
19
+    @ApiModelProperty(value = "여신등록시각")
20
+    private String loanRegTm;
21
+    @ApiModelProperty(value = "입금지급구분")
22
+    private String dpstPayDvsn;
23
+    @ApiModelProperty(value = "입금지급구분명")
24
+    private String dpstPayDvsnNm;
25
+    @ApiModelProperty(value = "거래금액")
26
+    private long trscAmt;
27
+    @ApiModelProperty(value = "거래전잔액")
28
+    private long trscBfBal;
29
+    @ApiModelProperty(value = "거래후잔액")
30
+    private long trscAfBal;
31
+    @ApiModelProperty(value = "매체구분")
32
+    private String mediaDvsn;
33
+    @ApiModelProperty(value = "매체구분명")
34
+    private String mediaDvsnNm;
35
+    @ApiModelProperty(value = "입금계좌번호")
36
+    private String rcvAcctNo;
37
+    @ApiModelProperty(value = "지급계좌번호")
38
+    private String paymAcctNo;
39
+    @ApiModelProperty(value = "입금일자")
40
+    private String dpstDt;
41
+    @ApiModelProperty(value = "입금자명")
42
+    private String dpstNm;
43
+    @ApiModelProperty(value = "입금은행코드")
44
+    private String dpstBnkCd;
45
+    @ApiModelProperty(value = "입금은행명")
46
+    private String dpstBnkNm;
47
+    @ApiModelProperty(value = "입금관리번호")
48
+    private String dsptMgntNo;
49
+    @ApiModelProperty(value = "비고")
50
+    private String loanDesc;
51
+    @ApiModelProperty(value = "시스템등록일시")
52
+    private String sysRegDttm;
53
+    @ApiModelProperty(value = "시스템등록아이디")
54
+    private String sysRegId;
55
+    @ApiModelProperty(value = "시스템변경일시")
56
+    private String sysChgDttm;
57
+    @ApiModelProperty(value = "시스템변경아이디")
58
+    private String sysChgId;
59
+
60
+}

+ 29 - 0
src/main/java/com/oqpo/api/mapper/loanmng/LoanStateMapper.java

@@ -0,0 +1,29 @@
1
+package com.oqpo.api.mapper.loanmng;
2
+
3
+
4
+import com.oqpo.api.entity.loanmng.LoanMgntBaseInfoEntity;
5
+import com.oqpo.api.entity.loanmng.LoanMgntDtlHstEntity;
6
+import com.oqpo.api.web.dto.request.GridRequest;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+
10
+import java.util.List;
11
+
12
+@Mapper
13
+public interface LoanStateMapper {
14
+
15
+    List<LoanMgntBaseInfoEntity> selectLoanStateGridList(@Param("sBrandId") String sBrandId, @Param("sStoreId") String sStoreId, @Param("sLoanDvsn") String sLoanDvsn, @Param("sUseYn") String sUseYn,
16
+                                                         GridRequest gridRequest) throws Exception;
17
+
18
+    int selectLoanStateGridCnt(@Param("sBrandId") String sBrandId, @Param("sStoreId") String sStoreId, @Param("sLoanDvsn") String sLoanDvsn, @Param("sUseYn") String sUseYn) throws Exception;
19
+
20
+    LoanMgntBaseInfoEntity selectLoanMgntBaseInfo(@Param("loanMgntUnqNo") String loanMgntUnqNo) throws Exception;
21
+
22
+    List<LoanMgntDtlHstEntity> selectLoanHistGridList(@Param("sLoanMgntUnqNo") String sLoanMgntUnqNo, @Param("sDpstPayDvsn") String sDpstPayDvsn,
23
+                                                      @Param("fromDt") String fromDt, @Param("toDt") String toDt,
24
+                                                      GridRequest gridRequest) throws Exception;
25
+
26
+    int selectLoanHistGridCnt(@Param("sLoanMgntUnqNo") String sLoanMgntUnqNo, @Param("sDpstPayDvsn") String sDpstPayDvsn,
27
+                              @Param("fromDt") String fromDt, @Param("toDt") String toDt) throws Exception;
28
+
29
+}

+ 122 - 0
src/main/java/com/oqpo/api/service/loanmng/LoanStateService.java

@@ -0,0 +1,122 @@
1
+package com.oqpo.api.service.loanmng;
2
+
3
+
4
+import com.oqpo.api.entity.loanmng.LoanMgntBaseInfoEntity;
5
+import com.oqpo.api.entity.loanmng.LoanMgntDtlHstEntity;
6
+import com.oqpo.api.entity.stockmng.StckCddMgntInfoEntity;
7
+import com.oqpo.api.entity.stockmng.StckMgntBaseInfoEntity;
8
+import com.oqpo.api.entity.stockmng.StckMgntDtlHistEntity;
9
+import com.oqpo.api.enums.ChgDvsn;
10
+import com.oqpo.api.enums.InOutCd;
11
+import com.oqpo.api.exception.GlobalException;
12
+import com.oqpo.api.mapper.loanmng.LoanStateMapper;
13
+import com.oqpo.api.mapper.stockmng.StockMngMapper;
14
+import com.oqpo.api.service.CommonService;
15
+import com.oqpo.api.web.dto.request.GridRequest;
16
+import com.oqpo.api.web.dto.request.stockmng.ProcStockRequest;
17
+import com.oqpo.api.web.dto.response.GridResponse;
18
+import com.oqpo.api.web.dto.response.loanmng.LoanHistListResponse;
19
+import com.oqpo.api.web.dto.response.loanmng.LoanMngInfoResponse;
20
+import com.oqpo.api.web.dto.response.loanmng.LoanStateListResponse;
21
+import com.oqpo.api.web.dto.response.stockmng.StockCddInfoResponse;
22
+import com.oqpo.api.web.dto.response.stockmng.StockHistListResponse;
23
+import com.oqpo.api.web.dto.response.stockmng.StockMngListResponse;
24
+import lombok.extern.slf4j.Slf4j;
25
+import org.apache.ibatis.annotations.Param;
26
+import org.springframework.beans.factory.annotation.Autowired;
27
+import org.springframework.stereotype.Service;
28
+import org.springframework.transaction.annotation.Transactional;
29
+
30
+import java.math.BigDecimal;
31
+import java.util.List;
32
+import java.util.stream.Collectors;
33
+
34
+@Service
35
+@Slf4j
36
+public class LoanStateService extends CommonService {
37
+
38
+    @Autowired
39
+    private LoanStateMapper loanStateMapper;
40
+
41
+    /*
42
+      여신현황 그리드 리스트 조회
43
+     */
44
+    public GridResponse selectLoanStateGridList(String sBrandId, String sStoreId, String sLoanDvsn, String sUseYn, GridRequest gridRequest) throws Exception {
45
+        int gridPage = gridRequest.getGridPage();
46
+        int gridSize = gridRequest.getGridSize();
47
+
48
+        int gridRecords = loanStateMapper.selectLoanStateGridCnt(sBrandId, sStoreId, sLoanDvsn, sUseYn);
49
+        int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
50
+        List<LoanMgntBaseInfoEntity> entities = loanStateMapper.selectLoanStateGridList(sBrandId, sStoreId, sLoanDvsn, sUseYn, gridRequest);
51
+        List<Object> gridRows = entities.stream()
52
+                .map(m -> LoanStateListResponse.builder()
53
+                        .viewCd("R")
54
+                        .loanMgntUnqNo(m.getLoanMgntUnqNo())
55
+                        .storeId(m.getStoreId())
56
+                        .storeNm(m.getStoreNm())
57
+                        .brandId(m.getBrandId())
58
+                        .brandNm(m.getBrandNm())
59
+                        .loanDvsn(m.getLoanDvsn())
60
+                        .loanDvsnNm(m.getLoanDvsnNm())
61
+                        .credtLimitAmt(m.getCredtLimitAmt())
62
+                        .chrgeLimitAmt(m.getChrgeLimitAmt())
63
+                        .credtLimitUseYn(m.getCredtLimitUseYn())
64
+                        .useAmtTotal(m.getUseAmtTotal())
65
+                        .tmpRcvAcctTotal(m.getTmpRcvAcctTotal())
66
+                        .useYn(m.getUseYn())
67
+                        .useYnNm(m.getUseYnNm())
68
+                        .sysChgDttm(m.getSysChgDttm())
69
+                        .sysChgId(m.getSysChgId())
70
+                        .sysChgNm(m.getSysChgNm())
71
+                        .build())
72
+                .collect(Collectors.toList());
73
+        return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
74
+    }
75
+
76
+    /* 여신관리 정보 */
77
+    public LoanMngInfoResponse selectLoanMngInfo(String loanMgntUnqNo) throws Exception {
78
+        LoanMgntBaseInfoEntity entity = loanStateMapper.selectLoanMgntBaseInfo(loanMgntUnqNo);
79
+        return LoanMngInfoResponse.toDTO(entity);
80
+    }
81
+
82
+    /*
83
+      여신이력 그리드 리스트 조회
84
+     */
85
+    public GridResponse selectLoanHistGridList(String sLoanMgntUnqNo, String sDpstPayDvsn, String fromDt, String toDt, GridRequest gridRequest) throws Exception {
86
+
87
+        int gridPage = gridRequest.getGridPage();
88
+        int gridSize = gridRequest.getGridSize();
89
+
90
+        fromDt = fromDt == null ? null : fromDt.replace(".", "");
91
+        toDt = toDt == null ? null : toDt.replace(".", "");
92
+
93
+        int gridRecords = loanStateMapper.selectLoanHistGridCnt(sLoanMgntUnqNo, sDpstPayDvsn, fromDt, toDt);
94
+        int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
95
+        List<LoanMgntDtlHstEntity> entities = loanStateMapper.selectLoanHistGridList(sLoanMgntUnqNo, sDpstPayDvsn, fromDt, toDt, gridRequest);
96
+        List<Object> gridRows = entities.stream()
97
+                .map(m -> LoanHistListResponse.builder()
98
+                        .viewCd("R")
99
+                        .loanMgntUnqNo(m.getLoanMgntUnqNo())
100
+                        .loanRegDt(m.getLoanRegDt())
101
+                        .loanRegTm(m.getLoanRegTm())
102
+                        .dpstPayDvsn(m.getDpstPayDvsn())
103
+                        .dpstPayDvsnNm(m.getDpstPayDvsnNm())
104
+                        .trscAmt(m.getTrscAmt())
105
+                        .trscBfBal(m.getTrscBfBal())
106
+                        .trscAfBal(m.getTrscAfBal())
107
+                        .mediaDvsn(m.getMediaDvsn())
108
+                        .mediaDvsnNm(m.getMediaDvsnNm())
109
+                        .rcvAcctNo(m.getRcvAcctNo())
110
+                        .paymAcctNo(m.getPaymAcctNo())
111
+                        .dpstDt(m.getDpstDt())
112
+                        .dpstNm(m.getDpstNm())
113
+                        .dpstBnkCd(m.getDpstBnkCd())
114
+                        .dpstBnkNm(m.getDpstBnkNm())
115
+                        .dsptMgntNo(m.getDsptMgntNo())
116
+                        .loanDesc(m.getLoanDesc())
117
+                        .build())
118
+                .collect(Collectors.toList());
119
+        return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
120
+    }
121
+
122
+}

+ 78 - 0
src/main/java/com/oqpo/api/web/controller/loanmng/LoanStateController.java

@@ -0,0 +1,78 @@
1
+package com.oqpo.api.web.controller.loanmng;
2
+
3
+import com.oqpo.api.service.loanmng.LoanStateService;
4
+import com.oqpo.api.web.dto.request.loanmng.LoanHistGridRequest;
5
+import com.oqpo.api.web.dto.request.loanmng.LoanStateGridRequest;
6
+import com.oqpo.api.web.dto.response.GridResponse;
7
+import com.oqpo.api.web.dto.response.loanmng.LoanMngInfoResponse;
8
+import io.swagger.annotations.ApiImplicitParam;
9
+import io.swagger.annotations.ApiImplicitParams;
10
+import io.swagger.annotations.ApiOperation;
11
+import lombok.extern.slf4j.Slf4j;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.http.ResponseEntity;
14
+import org.springframework.web.bind.annotation.*;
15
+
16
+import javax.validation.Valid;
17
+
18
+@Slf4j
19
+@RestController
20
+@RequestMapping("/api/loan/state")
21
+public class LoanStateController {
22
+
23
+    @Autowired
24
+    private LoanStateService loanStateService;
25
+
26
+    /**
27
+     * 설명 : 여신현황 그리드 리스트
28
+     *
29
+     * @param loanStateGridRequest
30
+     * @return
31
+     * @throws Exception
32
+     */
33
+    @ApiImplicitParams({
34
+            @ApiImplicitParam(name = "X-AUTH-TOKEN", value = "CONN-KEY", required = true, dataType = "String", paramType = "header")
35
+    })
36
+    @ApiOperation(value = "여신현황 그리드 리스트")
37
+    @PostMapping("/detail-grid-list")
38
+    public ResponseEntity<GridResponse> detailGridList(@RequestBody @Valid LoanStateGridRequest loanStateGridRequest) throws Exception {
39
+        return ResponseEntity.ok(loanStateService.selectLoanStateGridList(loanStateGridRequest.getSBrandId(), loanStateGridRequest.getSStoreId(),
40
+                loanStateGridRequest.getSLoanDvsn(), loanStateGridRequest.getSUseYn(), loanStateGridRequest.toDTO(loanStateGridRequest)));
41
+    }
42
+
43
+    /**
44
+     * 설명 : 여신관리 정보
45
+     *
46
+     * @param loanMgntUnqNo
47
+     * @return
48
+     * @throws Exception
49
+     */
50
+    @ApiImplicitParams({
51
+            @ApiImplicitParam(name = "X-AUTH-TOKEN", value = "CONN-KEY", required = true, dataType = "String", paramType = "header"),
52
+            @ApiImplicitParam(name = "loanMgntUnqNo", value = "여신관리고유번호", required = true, dataType = "String", paramType = "query")
53
+    })
54
+    @ApiOperation(value = "여신관리 정보")
55
+    @GetMapping("/info-loan-mng")
56
+    public ResponseEntity<LoanMngInfoResponse> infoWhs(@RequestParam(value = "loanMgntUnqNo") String loanMgntUnqNo) throws Exception {
57
+        return ResponseEntity.ok(loanStateService.selectLoanMngInfo(loanMgntUnqNo));
58
+    }
59
+
60
+    /**
61
+     * 설명 : 여신이력 그리드 리스트
62
+     *
63
+     * @param loanHistGridRequest
64
+     * @return
65
+     * @throws Exception
66
+     */
67
+    @ApiImplicitParams({
68
+            @ApiImplicitParam(name = "X-AUTH-TOKEN", value = "CONN-KEY", required = true, dataType = "String", paramType = "header")
69
+    })
70
+    @ApiOperation(value = "여신이력 그리드 리스트")
71
+    @PostMapping("/hist-grid-list")
72
+    public ResponseEntity<GridResponse> histGridList(@RequestBody @Valid LoanHistGridRequest loanHistGridRequest) throws Exception {
73
+        return ResponseEntity.ok(loanStateService.selectLoanHistGridList(loanHistGridRequest.getSLoanMgntUnqNo(), loanHistGridRequest.getSDpstPayDvsn(),
74
+                loanHistGridRequest.getFromDt(), loanHistGridRequest.getToDt(),
75
+                loanHistGridRequest.toDTO(loanHistGridRequest)));
76
+    }
77
+
78
+}

+ 25 - 0
src/main/java/com/oqpo/api/web/dto/request/loanmng/LoanHistGridRequest.java

@@ -0,0 +1,25 @@
1
+package com.oqpo.api.web.dto.request.loanmng;
2
+
3
+import com.oqpo.api.web.dto.request.GridRequest;
4
+import io.swagger.annotations.ApiModelProperty;
5
+import lombok.Getter;
6
+import lombok.Setter;
7
+
8
+
9
+@Getter
10
+@Setter
11
+public class LoanHistGridRequest extends GridRequest {
12
+
13
+    @ApiModelProperty(value = "여신관리고유번호")
14
+    private String sLoanMgntUnqNo;
15
+    @ApiModelProperty(value = "입금지급구분")
16
+    private String sDpstPayDvsn;
17
+    @ApiModelProperty(value = "시작일")
18
+    private String fromDt;
19
+    @ApiModelProperty(value = "종료일")
20
+    private String toDt;
21
+
22
+    protected LoanHistGridRequest(Integer gridSize, Integer gridPage, String sidx, String sord, Boolean pagingYn, Integer gridFirst) {
23
+        super(gridSize, gridPage, sidx, sord, pagingYn, gridFirst);
24
+    }
25
+}

+ 25 - 0
src/main/java/com/oqpo/api/web/dto/request/loanmng/LoanStateGridRequest.java

@@ -0,0 +1,25 @@
1
+package com.oqpo.api.web.dto.request.loanmng;
2
+
3
+import com.oqpo.api.web.dto.request.GridRequest;
4
+import io.swagger.annotations.ApiModelProperty;
5
+import lombok.Getter;
6
+import lombok.Setter;
7
+
8
+
9
+@Getter
10
+@Setter
11
+public class LoanStateGridRequest extends GridRequest {
12
+
13
+    @ApiModelProperty(value = "브랜드아이디")
14
+    private String sBrandId;
15
+    @ApiModelProperty(value = "매장아이디")
16
+    private String sStoreId;
17
+    @ApiModelProperty(value = "여신구분(정산타입)")
18
+    private String sLoanDvsn;
19
+    @ApiModelProperty(value = "사용여부")
20
+    private String sUseYn;
21
+
22
+    protected LoanStateGridRequest(Integer gridSize, Integer gridPage, String sidx, String sord, Boolean pagingYn, Integer gridFirst) {
23
+        super(gridSize, gridPage, sidx, sord, pagingYn, gridFirst);
24
+    }
25
+}

+ 55 - 0
src/main/java/com/oqpo/api/web/dto/response/loanmng/LoanHistListResponse.java

@@ -0,0 +1,55 @@
1
+package com.oqpo.api.web.dto.response.loanmng;
2
+
3
+import com.fasterxml.jackson.annotation.JsonInclude;
4
+import io.swagger.annotations.ApiModelProperty;
5
+import lombok.*;
6
+
7
+@Getter
8
+@Setter
9
+@Builder
10
+@AllArgsConstructor(access = AccessLevel.PROTECTED)
11
+@JsonInclude(JsonInclude.Include.ALWAYS)
12
+public class LoanHistListResponse {
13
+
14
+    @ApiModelProperty(value = "CRUD")
15
+    private String viewCd;
16
+
17
+    @ApiModelProperty(value = "여신관리고유번호")
18
+    private String loanMgntUnqNo;
19
+    @ApiModelProperty(value = "여신등록일자")
20
+    private String loanRegDt;
21
+    @ApiModelProperty(value = "여신등록시각")
22
+    private String loanRegTm;
23
+    @ApiModelProperty(value = "입금지급구분")
24
+    private String dpstPayDvsn;
25
+    @ApiModelProperty(value = "입금지급구분명")
26
+    private String dpstPayDvsnNm;
27
+    @ApiModelProperty(value = "매체구분")
28
+    private String mediaDvsn;
29
+    @ApiModelProperty(value = "매체구분명")
30
+    private String mediaDvsnNm;
31
+    @ApiModelProperty(value = "거래금액")
32
+    private long trscAmt;
33
+    @ApiModelProperty(value = "거래전잔액")
34
+    private long trscBfBal;
35
+    @ApiModelProperty(value = "거래후잔액")
36
+    private long trscAfBal;
37
+    @ApiModelProperty(value = "비고")
38
+    private String loanDesc;
39
+
40
+    @ApiModelProperty(value = "입금계좌번호")
41
+    private String rcvAcctNo;
42
+    @ApiModelProperty(value = "지급계좌번호")
43
+    private String paymAcctNo;
44
+    @ApiModelProperty(value = "입금일자")
45
+    private String dpstDt;
46
+    @ApiModelProperty(value = "입금자명")
47
+    private String dpstNm;
48
+    @ApiModelProperty(value = "입금은행코드")
49
+    private String dpstBnkCd;
50
+    @ApiModelProperty(value = "입금은행명")
51
+    private String dpstBnkNm;
52
+    @ApiModelProperty(value = "입금관리번호")
53
+    private String dsptMgntNo;
54
+
55
+}

+ 83 - 0
src/main/java/com/oqpo/api/web/dto/response/loanmng/LoanMngInfoResponse.java

@@ -0,0 +1,83 @@
1
+package com.oqpo.api.web.dto.response.loanmng;
2
+
3
+import com.fasterxml.jackson.annotation.JsonInclude;
4
+import com.oqpo.api.entity.loanmng.LoanMgntBaseInfoEntity;
5
+import io.swagger.annotations.ApiModelProperty;
6
+import lombok.*;
7
+
8
+
9
+@Getter
10
+@Setter
11
+@Builder
12
+@AllArgsConstructor(access = AccessLevel.PROTECTED)
13
+@JsonInclude(JsonInclude.Include.ALWAYS)
14
+public class LoanMngInfoResponse {
15
+
16
+    @ApiModelProperty(value = "여신관리고유번호")
17
+    private String loanMgntUnqNo;
18
+    @ApiModelProperty(value = "매장아이디")
19
+    private String storeId;
20
+    @ApiModelProperty(value = "매장명")
21
+    private String storeNm;
22
+    @ApiModelProperty(value = "브랜드아이디")
23
+    private String brandId;
24
+    @ApiModelProperty(value = "브랜드명")
25
+    private String brandNm;
26
+    @ApiModelProperty(value = "계정코드")
27
+    private String acctCd;
28
+    @ApiModelProperty(value = "계좌번호")
29
+    private String acctNo;
30
+    @ApiModelProperty(value = "계좌잔액")
31
+    private long acctBal;
32
+    @ApiModelProperty(value = "여신구분")
33
+    private String loanDvsn;
34
+    @ApiModelProperty(value = "여신구분명")
35
+    private String loanDvsnNm;
36
+    @ApiModelProperty(value = "신용한도금액")
37
+    private long credtLimitAmt;
38
+    @ApiModelProperty(value = "충전한도금액")
39
+    private long chrgeLimitAmt;
40
+    @ApiModelProperty(value = "신용한도사용여부")
41
+    private String credtLimitUseYn;
42
+    @ApiModelProperty(value = "사용금액합계")
43
+    private long useAmtTotal;
44
+    @ApiModelProperty(value = "가수금액합계")
45
+    private long tmpRcvAcctTotal;
46
+    @ApiModelProperty(value = "사용여부")
47
+    private String useYn;
48
+    @ApiModelProperty(value = "사용여부명")
49
+    private String useYnNm;
50
+    @ApiModelProperty(value = "비고")
51
+    private String loanDesc;
52
+    @ApiModelProperty(value = "시스템변경일시")
53
+    private String sysChgDttm;
54
+    @ApiModelProperty(value = "시스템변경아이디")
55
+    private String sysChgId;
56
+
57
+    public static LoanMngInfoResponse toDTO(LoanMgntBaseInfoEntity entity) {
58
+        if (entity == null) return null;
59
+        return LoanMngInfoResponse.builder()
60
+                .loanMgntUnqNo(entity.getLoanMgntUnqNo())
61
+                .storeId(entity.getStoreId())
62
+                .storeNm(entity.getStoreNm())
63
+                .brandId(entity.getBrandId())
64
+                .brandNm(entity.getBrandNm())
65
+                .acctCd(entity.getAcctCd())
66
+                .acctNo(entity.getAcctNo())
67
+                .acctBal(entity.getAcctBal())
68
+                .loanDvsn(entity.getLoanDvsn())
69
+                .loanDvsnNm(entity.getLoanDvsnNm())
70
+                .credtLimitAmt(entity.getCredtLimitAmt())
71
+                .chrgeLimitAmt(entity.getChrgeLimitAmt())
72
+                .credtLimitUseYn(entity.getCredtLimitUseYn())
73
+                .useAmtTotal(entity.getUseAmtTotal())
74
+                .tmpRcvAcctTotal(entity.getTmpRcvAcctTotal())
75
+                .useYn(entity.getUseYn())
76
+                .useYnNm(entity.getUseYnNm())
77
+                .loanDesc(entity.getLoanDesc())
78
+                .sysChgDttm(entity.getSysChgDttm())
79
+                .sysChgId(entity.getSysChgId())
80
+                .build();
81
+    }
82
+
83
+}

+ 54 - 0
src/main/java/com/oqpo/api/web/dto/response/loanmng/LoanStateListResponse.java

@@ -0,0 +1,54 @@
1
+package com.oqpo.api.web.dto.response.loanmng;
2
+
3
+import com.fasterxml.jackson.annotation.JsonInclude;
4
+import io.swagger.annotations.ApiModelProperty;
5
+import lombok.*;
6
+
7
+import java.math.BigDecimal;
8
+
9
+@Getter
10
+@Setter
11
+@Builder
12
+@AllArgsConstructor(access = AccessLevel.PROTECTED)
13
+@JsonInclude(JsonInclude.Include.ALWAYS)
14
+public class LoanStateListResponse {
15
+
16
+    @ApiModelProperty(value = "CRUD")
17
+    private String viewCd;
18
+
19
+    @ApiModelProperty(value = "여신관리고유번호")
20
+    private String loanMgntUnqNo;
21
+    @ApiModelProperty(value = "매장아이디")
22
+    private String storeId;
23
+    @ApiModelProperty(value = "매장명")
24
+    private String storeNm;
25
+    @ApiModelProperty(value = "브랜드아이디")
26
+    private String brandId;
27
+    @ApiModelProperty(value = "브랜드명")
28
+    private String brandNm;
29
+    @ApiModelProperty(value = "여신구분")
30
+    private String loanDvsn;
31
+    @ApiModelProperty(value = "여신구분명")
32
+    private String loanDvsnNm;
33
+    @ApiModelProperty(value = "신용한도금액")
34
+    private long credtLimitAmt;
35
+    @ApiModelProperty(value = "충전한도금액")
36
+    private long chrgeLimitAmt;
37
+    @ApiModelProperty(value = "신용한도사용여부")
38
+    private String credtLimitUseYn;
39
+    @ApiModelProperty(value = "사용금액합계")
40
+    private long useAmtTotal;
41
+    @ApiModelProperty(value = "가수금액합계")
42
+    private long tmpRcvAcctTotal;
43
+    @ApiModelProperty(value = "사용여부")
44
+    private String useYn;
45
+    @ApiModelProperty(value = "사용여부명")
46
+    private String useYnNm;
47
+    @ApiModelProperty(value = "시스템변경일시")
48
+    private String sysChgDttm;
49
+    @ApiModelProperty(value = "시스템변경아이디")
50
+    private String sysChgId;
51
+    @ApiModelProperty(value = "시스템변경자")
52
+    private String sysChgNm;
53
+
54
+}

+ 129 - 0
src/main/resources/mybatis/sqlmaps/loanmng/LoanState.xml

@@ -0,0 +1,129 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+
4
+<mapper namespace="com.oqpo.api.mapper.loanmng.LoanStateMapper">
5
+
6
+    <select id="selectLoanStateGridList" resultType="com.oqpo.api.entity.loanmng.LoanMgntBaseInfoEntity">
7
+        /* LoanStateMapper.selectLoanStateGridList */
8
+        SELECT A.loan_mgnt_unq_no, A.store_id, FN_STORE_NM(A.brand_id, A.store_id) AS store_nm,
9
+            A.brand_id, FN_BRAND_NM(A.brand_id) AS brand_nm, A.acct_cd, A.acct_no, A.acct_bal,
10
+            A.loan_dvsn, FN_CODE_NM('LOAN_DVSN', A.loan_dvsn) AS loan_dvsn_nm, A.credt_limit_amt,
11
+            A.chrge_limit_amt, A.credt_limit_use_yn, A.use_amt_total, A.tmp_rcv_acct_total,
12
+            A.use_yn, FN_CODE_NM('USE_YN', A.use_yn) AS use_yn_nm,
13
+            DATE_FORMAT(A.sys_chg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_chg_dttm, A.sys_chg_id, FN_USER_NM(A.sys_chg_id) AS sys_chg_nm
14
+        FROM loan_mgnt_base_info A
15
+        WHERE 1 = 1
16
+        <if test="sBrandId != null and sBrandId != ''">
17
+            AND A.brand_id = #{sBrandId}
18
+        </if>
19
+        <if test="sStoreId != null and sStoreId != ''">
20
+            AND A.store_id = #{sStoreId}
21
+        </if>
22
+        <if test="sLoanDvsn != null and sLoanDvsn != ''">
23
+            AND A.loan_dvsn = #{sLoanDvsn}
24
+        </if>
25
+        <if test="sUseYn != null and sUseYn != ''">
26
+            AND A.use_yn = #{sUseYn}
27
+        </if>
28
+        <choose>
29
+            <when test="gridRequest.sidx != null and gridRequest.sidx != ''">
30
+                <if test="gridRequest.sidx == 'VIEW_NUM'.toString()">
31
+                    <if test="gridRequest.sord == 'asc'.toString()">
32
+                        ORDER BY A.loan_mgnt_unq_no ASC
33
+                    </if>
34
+                    <if test="gridRequest.sord == 'desc'.toString()">
35
+                        ORDER BY A.loan_mgnt_unq_no DESC
36
+                    </if>
37
+                </if>
38
+            </when>
39
+            <otherwise>
40
+                ORDER BY A.loan_mgnt_unq_no ASC
41
+            </otherwise>
42
+        </choose>
43
+        <if test="gridRequest.pagingYn == true">
44
+            limit #{gridRequest.gridFirst}, #{gridRequest.gridSize}
45
+        </if>
46
+    </select>
47
+
48
+    <select id="selectLoanStateGridCnt" resultType="int">
49
+        /* LoanStateMapper.selectLoanStateGridCnt */
50
+        SELECT COUNT(*)
51
+        FROM loan_mgnt_base_info A
52
+        WHERE 1 = 1
53
+        <if test="sBrandId != null and sBrandId != ''">
54
+            AND A.brand_id = #{sBrandId}
55
+        </if>
56
+        <if test="sStoreId != null and sStoreId != ''">
57
+            AND A.store_id = #{sStoreId}
58
+        </if>
59
+        <if test="sLoanDvsn != null and sLoanDvsn != ''">
60
+            AND A.loan_dvsn = #{sLoanDvsn}
61
+        </if>
62
+        <if test="sUseYn != null and sUseYn != ''">
63
+            AND A.use_yn = #{sUseYn}
64
+        </if>
65
+    </select>
66
+
67
+    <select id="selectLoanMgntBaseInfo" resultType="com.oqpo.api.entity.loanmng.LoanMgntBaseInfoEntity">
68
+        /* LoanStateMapper.selectLoanMgntBaseInfo */
69
+        SELECT A.loan_mgnt_unq_no,
70
+            A.store_id, FN_STORE_NM(A.brand_id, A.store_id) AS store_nm,
71
+            A.brand_id, FN_BRAND_NM(A.brand_id) AS brand_nm,
72
+            A.acct_cd, A.acct_no, A.acct_bal, A.loan_dvsn, FN_CODE_NM('LOAN_DVSN', A.loan_dvsn) AS loan_dvsn_nm,
73
+            A.credt_limit_amt, A.chrge_limit_amt, A.credt_limit_use_yn, A.use_amt_total, A.tmp_rcv_acct_total,
74
+            A.use_yn, FN_CODE_NM('USE_YN', A.use_yn) AS use_yn_nm, A.loan_desc,
75
+            DATE_FORMAT(A.sys_reg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_reg_dttm, A.sys_reg_id,
76
+            DATE_FORMAT(A.sys_chg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_chg_dttm, A.sys_chg_id, FN_USER_NM(A.sys_chg_id) AS sys_chg_nm
77
+        FROM loan_mgnt_base_info A
78
+        WHERE A.loan_mgnt_unq_no = #{loanMgntUnqNo}
79
+    </select>
80
+
81
+    <select id="selectLoanHistGridList" resultType="com.oqpo.api.entity.loanmng.LoanMgntDtlHstEntity">
82
+        /* LoanStateMapper.selectLoanHistGridList */
83
+        SELECT A.loan_mgnt_unq_no, A.loan_reg_dt, A.loan_reg_tm,
84
+            A.dpst_pay_dvsn, FN_CODE_NM('DPST_PAY_DVSN', A.dpst_pay_dvsn) AS dpst_pay_dvsn_nm, A.trsc_amt, A.trsc_bf_bal,
85
+            A.trsc_af_bal, A.media_dvsn, FN_CODE_NM('MEDIA_DVSN', A.media_dvsn) AS media_dvsn_nm,
86
+            A.rcv_acct_no, A.paym_acct_no, A.dpst_dt, A.dpst_nm, A.dpst_bnk_cd, A.dspt_mgnt_no, A.loan_desc,
87
+            DATE_FORMAT(A.sys_reg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_reg_dttm, A.sys_reg_id, DATE_FORMAT(A.sys_chg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_chg_dttm, A.sys_chg_id
88
+        FROM loan_mgnt_dtl_hst A
89
+        WHERE A.loan_mgnt_unq_no = #{sLoanMgntUnqNo}
90
+        <if test="sDpstPayDvsn != null and sDpstPayDvsn != ''">
91
+            AND A.dpst_pay_dvsn = #{sDpstPayDvsn}
92
+        </if>
93
+        <if test="fromDt != null and fromDt != '' and toDt != null and toDt != '' ">
94
+        AND A.loan_reg_dt BETWEEN #{fromDt} AND #{toDt}
95
+        </if>
96
+        <choose>
97
+            <when test="gridRequest.sidx != null and gridRequest.sidx != ''">
98
+                <if test="gridRequest.sidx == 'VIEW_NUM'.toString()">
99
+                    <if test="gridRequest.sord == 'asc'.toString()">
100
+                        ORDER BY A.loan_reg_dt ASC, A.loan_reg_tm ASC
101
+                    </if>
102
+                    <if test="gridRequest.sord == 'desc'.toString()">
103
+                        ORDER BY A.loan_reg_dt DESC, A.loan_reg_tm DESC
104
+                    </if>
105
+                </if>
106
+            </when>
107
+            <otherwise>
108
+                ORDER BY A.loan_reg_dt ASC, A.loan_reg_tm ASC
109
+            </otherwise>
110
+        </choose>
111
+        <if test="gridRequest.pagingYn == true">
112
+            limit #{gridRequest.gridFirst}, #{gridRequest.gridSize}
113
+        </if>
114
+    </select>
115
+
116
+    <select id="selectLoanHistGridCnt" resultType="int">
117
+        /* LoanStateMapper.selectLoanHistGridCnt */
118
+        SELECT COUNT(*)
119
+        FROM loan_mgnt_dtl_hst A
120
+        WHERE A.loan_mgnt_unq_no = #{sLoanMgntUnqNo}
121
+        <if test="sDpstPayDvsn != null and sDpstPayDvsn != ''">
122
+            AND A.dpst_pay_dvsn = #{sDpstPayDvsn}
123
+        </if>
124
+        <if test="fromDt != null and fromDt != '' and toDt != null and toDt != '' ">
125
+            AND A.loan_reg_dt BETWEEN #{fromDt} AND #{toDt}
126
+        </if>
127
+    </select>
128
+
129
+</mapper>