Sfoglia il codice sorgente

매장정보 저장 오더퀸 연동

marseyes 2 anni fa
parent
commit
b9ecda89df

+ 13 - 4
src/main/java/com/oqpo/api/client/oqlink/OqlinkClient.java

@@ -14,15 +14,24 @@ public interface OqlinkClient {
14 14
     @ResponseBody
15 15
     OqScmBrandInfoResModel getScmBrandInfo(@RequestHeader("Hmac") String hmac, @RequestBody OqScmBrandInfoReqModel model);
16 16
 
17
-    @PostMapping("/orderqueen_link/oq/scm/menu/reg")
17
+    @PostMapping("/orderqueen_link/oq/scm/store/info")
18 18
     @ResponseBody
19
-    OqScmMenuRegResModel regScmMenu(@RequestHeader("Hmac") String hmac, @RequestBody OqScmMenuRegReqModel model);
19
+    OqScmStoreInfoResModel getScmStoreInfo(@RequestHeader("Hmac") String hmac, @RequestBody OqScmStoreInfoReqModel model);
20 20
 
21 21
     @PostMapping("/orderqueen_link/oq/scm/store/change")
22 22
     @ResponseBody
23 23
     OqScmStoreChangeResModel changeScmStore(@RequestHeader("Hmac") String hmac, @RequestBody OqScmStoreChangeReqModel model);
24 24
 
25
-    @PostMapping("/orderqueen_link/oq/scm/store/info")
25
+    @PostMapping("/orderqueen_link/oq/scm/menu/reg")
26 26
     @ResponseBody
27
-    OqScmStoreInfoResModel getScmStoreInfo(@RequestHeader("Hmac") String hmac, @RequestBody OqScmStoreInfoReqModel model);
27
+    OqScmMenuRegResModel regScmMenu(@RequestHeader("Hmac") String hmac, @RequestBody OqScmMenuRegReqModel model);
28
+
29
+    @PostMapping("/orderqueen_link/oq/scm/menu/change")
30
+    @ResponseBody
31
+    OqScmMenuRegResModel changeScmMenu(@RequestHeader("Hmac") String hmac, @RequestBody OqScmMenuRegReqModel model);
32
+
33
+    @PostMapping("/orderqueen_link/oq/scm/store/price/change")
34
+    @ResponseBody
35
+    OqScmStorePriceChangeResModel changeScmStorePrice(@RequestHeader("Hmac") String hmac, @RequestBody OqScmStorePriceChangeReqModel model);
36
+
28 37
 }

+ 19 - 0
src/main/java/com/oqpo/api/client/oqlink/dto/OqScmStorePriceChangeReqModel.java

@@ -0,0 +1,19 @@
1
+package com.oqpo.api.client.oqlink.dto;
2
+
3
+import java.util.List;
4
+
5
+import io.swagger.annotations.ApiModel;
6
+import io.swagger.annotations.ApiModelProperty;
7
+import lombok.Data;
8
+
9
+@ApiModel(description = "매장 단가 변경 요청")
10
+@Data
11
+public class OqScmStorePriceChangeReqModel {
12
+
13
+	@ApiModelProperty(value = "브랜드코드", required = true)
14
+	private String brandCd;
15
+	@ApiModelProperty(value = "매장번호", required = true)
16
+	private String storeNo;
17
+	@ApiModelProperty(value = "메뉴 리스트", required = true)
18
+	private List<OqScmMenuModel> menuList;
19
+}

+ 22 - 0
src/main/java/com/oqpo/api/client/oqlink/dto/OqScmStorePriceChangeResModel.java

@@ -0,0 +1,22 @@
1
+package com.oqpo.api.client.oqlink.dto;
2
+
3
+import java.util.List;
4
+
5
+import io.swagger.annotations.ApiModel;
6
+import io.swagger.annotations.ApiModelProperty;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+
10
+@ApiModel(description = "매장 단가 변경 응답")
11
+@Data
12
+@EqualsAndHashCode(callSuper = false)
13
+public class OqScmStorePriceChangeResModel extends OqScmApiResModel{
14
+
15
+	@ApiModelProperty(value = "브랜드코드", required = true)
16
+	private String brandCd;
17
+	@ApiModelProperty(value = "매장번호", required = true)
18
+	private String storeNo;
19
+	@ApiModelProperty(value = "메뉴 리스트", required = true)
20
+	private List<OqScmMenuModel> menuList;
21
+	
22
+}

+ 61 - 0
src/main/java/com/oqpo/api/client/oqlink/dto/StoreMenuInboundModel.java

@@ -0,0 +1,61 @@
1
+package com.oqpo.api.client.oqlink.dto;
2
+
3
+import java.util.List;
4
+
5
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
6
+
7
+import io.swagger.annotations.ApiModelProperty;
8
+import lombok.Data;
9
+import lombok.EqualsAndHashCode;
10
+
11
+@Data
12
+@EqualsAndHashCode(callSuper = false)
13
+public class StoreMenuInboundModel {
14
+
15
+	@ApiModelProperty(value = "입고번호", required = true)
16
+	private String inboundNo;
17
+	@ApiModelProperty(value = "브랜드코드", required = true)
18
+	private String brandCd;
19
+	@ApiModelProperty(value = "매장번호", required = true)
20
+	private String storeNo;
21
+	private String storeNm;
22
+	@ApiModelProperty(value = "메뉴코드", required = true)
23
+	private String menuCd;
24
+	@ApiModelProperty(value = "메뉴명", required = false)
25
+	private String menuNm;
26
+	@ApiModelProperty(value = "입고유형(10:입고,20:재고수량수정)", required = true)
27
+	private String inboundType;
28
+	private String inboundTypeNm;
29
+	@ApiModelProperty(value = "입고수량", required = true)
30
+	private String inboundCnt;
31
+	@ApiModelProperty(value = "조정수량", required = true)
32
+	private String adjustCnt;	
33
+	@ApiModelProperty(value = "입고가", required = true)
34
+	private String inboundPrice;
35
+	@ApiModelProperty(value = "판매가", required = true)
36
+	private String salePrice;
37
+	@ApiModelProperty(value = "판매수량", required = true)
38
+	private String saleCnt;
39
+	@ApiModelProperty(value = "비고", required = false)
40
+	private String note;
41
+	@ApiModelProperty(value = "발주요청번호", required = false)
42
+	private String orderReqNo;
43
+	@ApiModelProperty(value = "판매완료여부", required = false)
44
+	private String saleEndYn;
45
+
46
+	@ApiModelProperty(value = "알림최소수량(안전재고)", required = false)
47
+	private String notifyMinCnt;
48
+
49
+	@ApiModelProperty(value = "이력순번", required = false)
50
+	private String hstSeq;
51
+	
52
+	private String schStoreNo;
53
+	private String schClassCd;
54
+	private String barcodeNo;
55
+	private String schSDate;
56
+	private String schEDate;
57
+	private String delYn;
58
+	private String regId;
59
+	private String editId;
60
+
61
+}

+ 77 - 0
src/main/java/com/oqpo/api/client/oqlink/dto/StoreMenuInventModel.java

@@ -0,0 +1,77 @@
1
+package com.oqpo.api.client.oqlink.dto;
2
+
3
+import io.swagger.annotations.ApiModelProperty;
4
+import lombok.Data;
5
+import lombok.EqualsAndHashCode;
6
+
7
+@Data
8
+@EqualsAndHashCode(callSuper = false)
9
+public class StoreMenuInventModel {
10
+
11
+	@ApiModelProperty(value = "브랜드코드", required = true)
12
+	private String brandCd;
13
+	@ApiModelProperty(value = "매장번호", required = true)
14
+	private String storeNo;
15
+	@ApiModelProperty(value = "메뉴코드", required = true)
16
+	private String menuCd;
17
+	@ApiModelProperty(value = "메뉴명", required = true)
18
+	private String menuNm;
19
+	@ApiModelProperty(value = "판매일자", required = true)
20
+	private String saleDate;
21
+	@ApiModelProperty(value = "기초재고수량", required = true)
22
+	private String baseInventCnt;
23
+	@ApiModelProperty(value = "입고수량", required = true)
24
+	private String inboundCnt;
25
+	@ApiModelProperty(value = "조정수량", required = true)
26
+	private String adjustCnt;
27
+	@ApiModelProperty(value = "판매수량", required = true)
28
+	private String saleCnt;
29
+	@ApiModelProperty(value = "반납수량", required = true)
30
+	private String returnCnt;
31
+	@ApiModelProperty(value = "폐기수량", required = true)
32
+	private String disuseCnt;
33
+
34
+	@ApiModelProperty(value = "재고수량", required = true)
35
+	private String inventCnt;
36
+	@ApiModelProperty(value = "재고변경일시", required = false)
37
+	private String inventChgDtm;
38
+	@ApiModelProperty(value = "비고", required = false)
39
+	private String note;
40
+
41
+	@ApiModelProperty(value = "알림최소수량(안전재고)", required = false)
42
+	private String notifyMinCnt;
43
+
44
+	@ApiModelProperty(value = "공급가격", required = false)
45
+	private String supplyPrice;
46
+	@ApiModelProperty(value = "이벤트가격", required = false)
47
+	private String eventPrice;
48
+
49
+	@ApiModelProperty(value = "발주단위수량", required = false)
50
+	private String orderUnitQty;
51
+	@ApiModelProperty(value = "판매여부", required = false)
52
+	private String useYn;
53
+	@ApiModelProperty(value = "발주가능여부", required = true)
54
+	private String orderPossibleYn;
55
+
56
+	private String schStoreNo;
57
+	private String schClassCd;
58
+	private String barcodeNo;
59
+	private String schSDate;
60
+	private String schEDate;
61
+	private String schSortType;
62
+	private String schUseYn;
63
+	
64
+	private String excelFullPath; // 엑셀전체경로
65
+	private String normalYn = "Y"; // 정상여부
66
+	private String errorMsg; // 오류 메시지
67
+	private String storeMenuOrderYn; // 매장수발주관리여부
68
+
69
+	private String schDate; // 조회일자
70
+	private String schYear; // 조회년
71
+	private String schMonth; // 조회월
72
+	private String schType; // 조회구분(D:일,M:월)
73
+	private String yyyyMm; // 분할테이블
74
+
75
+	private String regId;
76
+	private String editId;
77
+}

+ 52 - 0
src/main/java/com/oqpo/api/enums/StoreDvsn.java

@@ -0,0 +1,52 @@
1
+package com.oqpo.api.enums;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+
6
+public enum StoreDvsn {
7
+
8
+    DIRECT("S01", "직영", "1"), //
9
+    FRANCHISEE("S02", "가맹", "2"), //
10
+    SINGLE("S03", "단독", "3"), //
11
+    ;
12
+    // 1:체인직영,2:체인가맹,3:단독매장
13
+
14
+    StoreDvsn(String cd, String nm, String oqValue) {
15
+        this.cd = cd;
16
+        this.name = nm;
17
+        this.oqValue = oqValue;
18
+    }
19
+
20
+    @Getter
21
+    @Setter
22
+    private String cd;
23
+
24
+    @Getter
25
+    @Setter
26
+    private String name;
27
+
28
+    @Getter
29
+    @Setter
30
+    private String oqValue;
31
+
32
+    public static String getOqValue(String ccd) {
33
+        StoreDvsn[] values = StoreDvsn.values();
34
+        for (StoreDvsn icd : values) {
35
+            if (icd.cd.equals(ccd)) {
36
+                return icd.oqValue;
37
+            }
38
+        }
39
+        return ccd;
40
+    }
41
+
42
+    public static String getName(String ccd) {
43
+        StoreDvsn[] values = StoreDvsn.values();
44
+        for (StoreDvsn icd : values) {
45
+            if (icd.cd.equals(ccd)) {
46
+                return icd.name;
47
+            }
48
+        }
49
+        return ccd;
50
+    }
51
+
52
+}

+ 51 - 0
src/main/java/com/oqpo/api/enums/StoreStCd.java

@@ -0,0 +1,51 @@
1
+package com.oqpo.api.enums;
2
+
3
+import lombok.Getter;
4
+import lombok.Setter;
5
+
6
+public enum StoreStCd {
7
+
8
+    OPEN("ST01", "오픈", "1"), //
9
+    HOLD("ST02", "보류", "2"), //
10
+    CLOSE("ST03", "폐점", "9"), //
11
+    ;
12
+
13
+    StoreStCd(String cd, String nm, String oqValue) {
14
+        this.cd = cd;
15
+        this.name = nm;
16
+        this.oqValue = oqValue;
17
+    }
18
+
19
+    @Getter
20
+    @Setter
21
+    private String cd;
22
+
23
+    @Getter
24
+    @Setter
25
+    private String name;
26
+
27
+    @Getter
28
+    @Setter
29
+    private String oqValue;
30
+
31
+    public static String getOqValue(String ccd) {
32
+        StoreStCd[] values = StoreStCd.values();
33
+        for (StoreStCd icd : values) {
34
+            if (icd.cd.equals(ccd)) {
35
+                return icd.oqValue;
36
+            }
37
+        }
38
+        return ccd;
39
+    }
40
+
41
+    public static String getName(String ccd) {
42
+        StoreStCd[] values = StoreStCd.values();
43
+        for (StoreStCd icd : values) {
44
+            if (icd.cd.equals(ccd)) {
45
+                return icd.name;
46
+            }
47
+        }
48
+        return ccd;
49
+    }
50
+
51
+}

+ 32 - 53
src/main/java/com/oqpo/api/service/stinfo/StoreBaseInfoService.java

@@ -10,6 +10,8 @@ import com.oqpo.api.entity.stinfo.StoreBaseInfoEntity;
10 10
 import com.oqpo.api.entity.stockmng.WhsMgntBaseInfoEntity;
11 11
 import com.oqpo.api.entity.stockmng.WhsMgntBaseLocEntity;
12 12
 import com.oqpo.api.enums.IfCode;
13
+import com.oqpo.api.enums.StoreDvsn;
14
+import com.oqpo.api.enums.StoreStCd;
13 15
 import com.oqpo.api.exception.GlobalException;
14 16
 import com.oqpo.api.mapper.loan.LoanMgntMapper;
15 17
 import com.oqpo.api.mapper.oper.UserMngMapper;
@@ -17,6 +19,7 @@ import com.oqpo.api.mapper.stinfo.BrandMapper;
17 19
 import com.oqpo.api.mapper.stinfo.StoreBaseInfoMapper;
18 20
 import com.oqpo.api.service.CommonService;
19 21
 import com.oqpo.api.service.stockmng.WhsMngService;
22
+import com.oqpo.api.util.StringUtil;
20 23
 import com.oqpo.api.web.dto.request.GridRequest;
21 24
 import com.oqpo.api.web.dto.request.ifmng.BoStoreChgInfoRequest;
22 25
 import com.oqpo.api.web.dto.request.stinfo.store.SaveStoreInfolRequest;
@@ -86,7 +89,6 @@ public class StoreBaseInfoService extends CommonService {
86 89
         return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
87 90
     }
88 91
 
89
-
90 92
     /*
91 93
       매장 그리드 리스트 조회
92 94
      */
@@ -389,57 +391,9 @@ public class StoreBaseInfoService extends CommonService {
389 391
             }
390 392
 
391 393
             // TODO 백오피스 연동 (store_base_info 테이블 참조)
392
-            OqScmStoreChangeReqModel req = new OqScmStoreChangeReqModel();
393
-
394
-            /*
395
-            * @ApiModelProperty(value = "브랜드코드", required = true)
396
-	private String brandCd;
397
-	@ApiModelProperty(value = "매장번호", required = true)
398
-	private String storeNo;
399
-	@ApiModelProperty(value = "브랜드아이디", required = true)
400
-	private String brandId;
401
-	@ApiModelProperty(value = "매장아이디", required = true)
402
-	private String storeId;
403
-	@ApiModelProperty(value = "매장형태 (1:체인직영,2:체인가맹,3:단독매장)", required = true)
404
-	private String storeType;
405
-	@ApiModelProperty(value = "매장상태 (1:오픈,2:보류,9:폐점)", required = true)
406
-	private String storeStatus;
407
-	@ApiModelProperty(value = "매장명", required = true)
408
-	private String storeNm;
409
-	@ApiModelProperty(value = "사업자번호", required = true)
410
-	private String bizNo;
411
-	@ApiModelProperty(value = "업태", required = true)
412
-	private String bizCat;
413
-	@ApiModelProperty(value = "업종", required = true)
414
-	private String bizCon;
415
-	@ApiModelProperty(value = "대표자", required = true)
416
-	private String ownerNm;
417
-	@ApiModelProperty(value = "전화번호", required = true)
418
-	private String tel;
419
-	@ApiModelProperty(value = "휴대번호", required = true)
420
-	private String cell;
421
-	@ApiModelProperty(value = "팩스", required = true)
422
-	private String fax;
423
-	@ApiModelProperty(value = "이메일", required = true)
424
-	private String email;
425
-	@ApiModelProperty(value = "우편번호", required = true)
426
-	private String zipno;
427
-	@ApiModelProperty(value = "주소1", required = true)
428
-	private String addr1;
429
-	@ApiModelProperty(value = "주소2", required = true)
430
-	private String addr2;
431
-	@ApiModelProperty(value = "지역코드", required = true)
432
-	private String areaCd;
433
-	@ApiModelProperty(value = "오픈일", required = true)
434
-	private String openDate;
435
-	@ApiModelProperty(value = "폐점일", required = true)
436
-	private String closeDate;
437
-	@ApiModelProperty(value = "사용여부", required = true)
438
-	private String useYn;
439
-            *
440
-            * */
441
-
442
-            // oqlinkClient.changeScmStore(HmacUtil.makeHmacValue4OqLink(req), req);
394
+            StoreBaseInfoEntity infoEntity = storeBaseInfoMapper.selectStoreInfo(saveStoreInfolRequest.getBrandId(), saveStoreInfolRequest.getStoreId());
395
+            OqScmStoreChangeReqModel req = toOqScmStoreChangeReqModel(infoEntity);
396
+            oqlinkClient.changeScmStore(HmacUtil.makeHmacValue4OqLink(req), req);
443 397
         } catch (GlobalException e) {
444 398
             e.printStackTrace();
445 399
             throw new GlobalException(e.getSystemMessageCode());
@@ -449,6 +403,32 @@ public class StoreBaseInfoService extends CommonService {
449 403
         }
450 404
     }
451 405
 
406
+    private OqScmStoreChangeReqModel toOqScmStoreChangeReqModel(StoreBaseInfoEntity infoEntity) {
407
+        OqScmStoreChangeReqModel req = new OqScmStoreChangeReqModel();
408
+        req.setBrandCd(infoEntity.getOqBrandId()); // 브랜드코드
409
+        req.setStoreNo(infoEntity.getOqStoreId()); // 매장번호
410
+        req.setBrandId(infoEntity.getBrandId()); // 브랜드아이디
411
+        req.setStoreId(infoEntity.getStoreId()); // 매장아이디
412
+        req.setStoreType(StoreDvsn.getOqValue(infoEntity.getStoreDvsn())); // 매장형태 (1:체인직영,2:체인가맹,3:단독매장)
413
+        req.setStoreStatus(StoreStCd.getOqValue(infoEntity.getStoreStCd())); // 매장상태 (1:오픈,2:보류,9:폐점)
414
+        req.setStoreNm(infoEntity.getStoreNm()); // 매장명
415
+        req.setBizNo(infoEntity.getBsnsRegNo()); // 사업자번호
416
+        req.setBizCat(infoEntity.getBsnsCndt()); // 업태
417
+        req.setBizCon(infoEntity.getCtgrBsns()); // 업종
418
+        req.setOwnerNm(infoEntity.getOwnerNm()); // 대표자
419
+        req.setTel(infoEntity.getTelNo()); // 전화번호
420
+        req.setCell(infoEntity.getMblNo()); // 휴대번호
421
+        req.setFax(infoEntity.getFaxNo()); // 팩스
422
+        req.setEmail(infoEntity.getEmalAddr()); // 이메일
423
+        req.setZipno(infoEntity.getZipNo()); // 우편번호
424
+        req.setAddr1(infoEntity.getAddr1()); // 주소1
425
+        req.setAddr2(infoEntity.getAddr2()); // 주소2
426
+        req.setAreaCd(infoEntity.getAreaCd()); // 지역코드
427
+        req.setOpenDate(infoEntity.getOpenDt()); // 오픈일
428
+        req.setCloseDate(infoEntity.getCloseDt()); // 폐점일
429
+        req.setUseYn("Y".equals(infoEntity.getDelYn()) ? "N" : "Y"); // 사용여부
430
+        return req;
431
+    }
452 432
 
453 433
     /*
454 434
    매장 로그인 pw 초기화
@@ -470,7 +450,6 @@ public class StoreBaseInfoService extends CommonService {
470 450
         }
471 451
     }
472 452
 
473
-
474 453
     /*
475 454
    오피스 매장변경 정보 수신
476 455
    */