浏览代码

품목 관련 오더퀸 연동 구현 중

marseyes 2 年之前
父节点
当前提交
42f271514a

+ 121 - 82
src/main/java/com/oqpo/api/service/stinfo/ItemService.java

@@ -1,6 +1,11 @@
1 1
 package com.oqpo.api.service.stinfo;
2 2
 
3 3
 
4
+import com.oqpo.api.client.oqlink.OqlinkClient;
5
+import com.oqpo.api.client.oqlink.dto.OqScmMenuModel;
6
+import com.oqpo.api.client.oqlink.dto.OqScmMenuRegReqModel;
7
+import com.oqpo.api.client.oqlink.dto.OqScmMenuRegResModel;
8
+import com.oqpo.api.client.oqlink.util.HmacUtil;
4 9
 import com.oqpo.api.constant.ApiConstants;
5 10
 import com.oqpo.api.entity.CodeEntity;
6 11
 import com.oqpo.api.entity.oper.FileEntity;
@@ -55,6 +60,9 @@ public class ItemService extends CommonService {
55 60
     @Autowired
56 61
     private SessionService sessionService;
57 62
 
63
+    @Autowired
64
+    private OqlinkClient oqlinkClient;
65
+
58 66
     /*
59 67
       팝업 품목 리스트 조회
60 68
      */
@@ -234,59 +242,19 @@ public class ItemService extends CommonService {
234 242
     @Transactional
235 243
     public void saveItemInfo(String userId, SaveItemInfolRequest saveItemInfolRequest) throws Exception {
236 244
         try {
237
-
238
-            ItemEntity entity = new ItemEntity();
239
-            entity.setBrandId(saveItemInfolRequest.getBrandId());
240
-            entity.setItemId(saveItemInfolRequest.getItemId());
241
-            entity.setItemNm(saveItemInfolRequest.getItemNm());
242
-            entity.setPchUnit(saveItemInfolRequest.getPchUnit());
243
-            entity.setWeight(saveItemInfolRequest.getWeight());
244
-            entity.setVolume(saveItemInfolRequest.getVolume());
245
-            entity.setWidth(saveItemInfolRequest.getWidth());
246
-            entity.setHeight(saveItemInfolRequest.getHeight());
247
-            entity.setHigh(saveItemInfolRequest.getHigh());
248
-            entity.setExpryYn(saveItemInfolRequest.getExpryYn());
249
-            entity.setExpryPeriod(saveItemInfolRequest.getExpryPeriod());
250
-            entity.setRtnDvsn(saveItemInfolRequest.getRtnDvsn());
251
-            entity.setImpDvsn(saveItemInfolRequest.getImpDvsn());
252
-            entity.setAssetInfo(saveItemInfolRequest.getAssetInfo());
253
-            entity.setStckUnit(saveItemInfolRequest.getStckUnit());
254
-            entity.setPodrPssblDvsn(saveItemInfolRequest.getPodrPssblDvsn());
255
-            entity.setPchItemYn(saveItemInfolRequest.getPchItemYn());
256
-            entity.setSaleItemYn(saveItemInfolRequest.getSaleItemYn());
257
-            entity.setItemStCd(saveItemInfolRequest.getItemStCd());
258
-            entity.setItemType(saveItemInfolRequest.getItemType());
259
-            entity.setSaleUnit(saveItemInfolRequest.getSaleUnit());
260
-            entity.setUnit(saveItemInfolRequest.getUnit());
261
-            entity.setRtnPssblYn(saveItemInfolRequest.getRtnPssblYn());
262
-            entity.setItemImageFileNo(saveItemInfolRequest.getItemImageFileNo());
263
-            entity.setOneBoxQty(saveItemInfolRequest.getOneBoxQty());
264
-            entity.setWeightUnit(saveItemInfolRequest.getWeightUnit());
265
-            entity.setVolumeUnit(saveItemInfolRequest.getVolumeUnit());
266
-            entity.setWidthUnit(saveItemInfolRequest.getWidthUnit());
267
-            entity.setHeightUnit(saveItemInfolRequest.getHeightUnit());
268
-            entity.setHighUnit(saveItemInfolRequest.getHighUnit());
269
-            entity.setOqBrandId(saveItemInfolRequest.getOqBrandId());
270
-            entity.setOqMenuCd(saveItemInfolRequest.getOqMenuCd());
271
-            entity.setBarcode(saveItemInfolRequest.getBarcode());
272
-            entity.setStoreDeliType(saveItemInfolRequest.getStoreDeliType());
273
-
245
+            ItemEntity entity = toItemEntity(saveItemInfolRequest);
274 246
             if ("C".equals(saveItemInfolRequest.getViewCd())) {
275
-
276 247
                 // 품목 아이디 부여  22  entity.setContentsNo(fnGetKeyNo(17));
277 248
                 //entity.setItemId(fnGetDealNo(26,""));  // 품목아이디 생성
278 249
                 itemMapper.insertItemInfo(userId, entity);
279 250
             } else if ("U".equals(saveItemInfolRequest.getViewCd())) {
280 251
                 itemMapper.updateItemInfo(userId, entity);
281
-
282 252
                 itemMapper.deleteItemClassInfo(entity.getItemId());
283 253
             }
284 254
 
285 255
             // 품목 class 정보 등록
286
-
287 256
             if (!"".toString().equals(saveItemInfolRequest.getItemClass1())) {
288 257
                 ItemClassEntity iClassEntity = new ItemClassEntity();
289
-
290 258
                 iClassEntity.setItemId(entity.getItemId());
291 259
                 iClassEntity.setItemNm(entity.getItemNm());
292 260
                 iClassEntity.setItemClass1(saveItemInfolRequest.getItemClass1());
@@ -299,6 +267,33 @@ public class ItemService extends CommonService {
299 267
                 itemMapper.insertItemClassInfo(userId, iClassEntity);
300 268
             }
301 269
 
270
+            // 오더퀸 연동
271
+            if (!StringUtil.isEmpty(entity.getOqBrandId()) && !StringUtil.isEmpty(entity.getOqMenuCd())) {
272
+                List<OqScmMenuModel> menuList = new ArrayList<>();
273
+                OqScmMenuModel menu = new OqScmMenuModel();
274
+                menu.setItemId(entity.getItemId()); // 품목아이디
275
+                menu.setItemNm(entity.getItemNm()); // 품목명
276
+                menu.setMenuCd(entity.getOqMenuCd()); // 메뉴코드
277
+                menu.setBarcodeNo(entity.getBarcode()); // 바코드번호
278
+                menu.setSupplyPrice(0); // TODO 공급가격
279
+                menu.setOrderUnitQty(0); // TODO 발주단위수량
280
+                menu.setOrderPossibleYn("PO01".equals(entity.getPodrPssblDvsn()) ? "Y" : "N"); // 발주가능여부
281
+                menuList.add(menu);
282
+
283
+                OqScmMenuRegReqModel req = new OqScmMenuRegReqModel();
284
+                req.setBrandCd(entity.getOqBrandId());
285
+                req.setMenuList(menuList);
286
+
287
+                OqScmMenuRegResModel res = null;
288
+                if ("C".equals(saveItemInfolRequest.getViewCd())) {
289
+                    res = oqlinkClient.regScmMenu(HmacUtil.makeHmacValue4OqLink(req), req);
290
+                } else if ("U".equals(saveItemInfolRequest.getViewCd())) {
291
+                    res = oqlinkClient.changeScmMenu(HmacUtil.makeHmacValue4OqLink(req), req);
292
+                }
293
+                if (SystemMessageCode.BO_IF_OK.getId() != Integer.parseInt(res.getCode())) {
294
+                    throw new GlobalException(SystemMessageCode.valueOf(Integer.valueOf(res.getCode())));
295
+                }
296
+            }
302 297
         } catch (GlobalException e) {
303 298
             e.getStackTrace();
304 299
             throw new GlobalException(e.getSystemMessageCode());
@@ -308,49 +303,60 @@ public class ItemService extends CommonService {
308 303
         }
309 304
     }
310 305
 
306
+    private ItemEntity toItemEntity(SaveItemInfolRequest saveItemInfolRequest) {
307
+        ItemEntity entity = new ItemEntity();
308
+        entity.setBrandId(saveItemInfolRequest.getBrandId());
309
+        entity.setItemId(saveItemInfolRequest.getItemId());
310
+        entity.setItemNm(saveItemInfolRequest.getItemNm());
311
+        entity.setPchUnit(saveItemInfolRequest.getPchUnit());
312
+        entity.setWeight(saveItemInfolRequest.getWeight());
313
+        entity.setVolume(saveItemInfolRequest.getVolume());
314
+        entity.setWidth(saveItemInfolRequest.getWidth());
315
+        entity.setHeight(saveItemInfolRequest.getHeight());
316
+        entity.setHigh(saveItemInfolRequest.getHigh());
317
+        entity.setExpryYn(saveItemInfolRequest.getExpryYn());
318
+        entity.setExpryPeriod(saveItemInfolRequest.getExpryPeriod());
319
+        entity.setRtnDvsn(saveItemInfolRequest.getRtnDvsn());
320
+        entity.setImpDvsn(saveItemInfolRequest.getImpDvsn());
321
+        entity.setAssetInfo(saveItemInfolRequest.getAssetInfo());
322
+        entity.setStckUnit(saveItemInfolRequest.getStckUnit());
323
+        entity.setPodrPssblDvsn(saveItemInfolRequest.getPodrPssblDvsn());
324
+        entity.setPchItemYn(saveItemInfolRequest.getPchItemYn());
325
+        entity.setSaleItemYn(saveItemInfolRequest.getSaleItemYn());
326
+        entity.setItemStCd(saveItemInfolRequest.getItemStCd());
327
+        entity.setItemType(saveItemInfolRequest.getItemType());
328
+        entity.setSaleUnit(saveItemInfolRequest.getSaleUnit());
329
+        entity.setUnit(saveItemInfolRequest.getUnit());
330
+        entity.setRtnPssblYn(saveItemInfolRequest.getRtnPssblYn());
331
+        entity.setItemImageFileNo(saveItemInfolRequest.getItemImageFileNo());
332
+        entity.setOneBoxQty(saveItemInfolRequest.getOneBoxQty());
333
+        entity.setWeightUnit(saveItemInfolRequest.getWeightUnit());
334
+        entity.setVolumeUnit(saveItemInfolRequest.getVolumeUnit());
335
+        entity.setWidthUnit(saveItemInfolRequest.getWidthUnit());
336
+        entity.setHeightUnit(saveItemInfolRequest.getHeightUnit());
337
+        entity.setHighUnit(saveItemInfolRequest.getHighUnit());
338
+        entity.setOqBrandId(saveItemInfolRequest.getOqBrandId());
339
+        entity.setOqMenuCd(saveItemInfolRequest.getOqMenuCd());
340
+        entity.setBarcode(saveItemInfolRequest.getBarcode());
341
+        entity.setStoreDeliType(saveItemInfolRequest.getStoreDeliType());
342
+        return entity;
343
+    }
344
+
311 345
     @Transactional
312 346
     public void saveItemList(String userId, SaveItemListRequest saveItemListRequest) throws Exception {
313 347
         try {
314 348
             List<SaveItemListData> list = saveItemListRequest.getList();
315 349
             for (SaveItemListData item : list) {
316
-                ItemEntity entity = new ItemEntity();
317
-                entity.setItemNm(item.getItemNm());
318
-                entity.setItemStCd("IS00"); // 사용
319
-                entity.setBrandId(saveItemListRequest.getBrandId());
320
-                entity.setUnit(DstrbtCostUnit.getCd(item.getUnitNm())); // 단위
321
-                // entity.setPchUnit(item.getPchUnit()); // 구매단위
322
-                // entity.setSaleUnit(item.getSaleUnit()); // 판매단위
323
-                // entity.setStckUnit(item.getStckUnit()); // 재고단위
324
-                entity.setWeight(item.getWeight());
325
-                entity.setWeightUnit(WeightUnit.getCd(item.getWeightUnitNm()));
326
-                entity.setVolume(item.getVolume());
327
-                entity.setVolumeUnit(VolumeUnit.getCd(item.getVolumeUnitNm()));
328
-                entity.setWidth(item.getWidth());
329
-                entity.setWidthUnit(WidthUnit.getCd(item.getWidthUnitNm()));
330
-                entity.setHeight(item.getHeight());
331
-                entity.setHeightUnit(HeightUnit.getCd(item.getHeightUnitNm()));
332
-                entity.setHigh(item.getHigh());
333
-                entity.setHighUnit(HighUnit.getCd(item.getHighUnitNm()));
334
-                entity.setPodrPssblDvsn(PodrPssblDvsn.getCd(item.getPodrPssblDvsnNm()));
335
-                entity.setRtnPssblYn(item.getRtnPssblYn());
336
-                entity.setExpryYn(item.getExpryYn());
337
-                entity.setExpryPeriod(item.getExpryPeriod());
338
-                entity.setRtnDvsn(RtnDvsn.getCd(item.getRtnDvsnNm()));
339
-                entity.setImpDvsn(ImpDvsn.getCd(item.getImpDvsnNm()));
340
-                entity.setPchItemYn(item.getPchItemYn());
341
-                entity.setSaleItemYn(item.getSaleItemYn());
342
-                entity.setItemType( ItemType.getCd( item.getItemTypeNm() )  );
343
-                entity.setBarcode(item.getBarcode());
344
-                entity.setStoreDeliTypeNm(item.getStoreDeliTypeNm());
345
-                entity.setStoreDeliType(item.getStoreDeliTypeNm()=="본사배송" ? "10":"20" );
346
-                entity.setSysRegId(userId);
347
-                entity.setSysChgId(userId);
350
+                ItemEntity entity = toItemEntity(userId, saveItemListRequest, item);
348 351
 
349 352
                 // 품목 아이디 부여  22  entity.setContentsNo(fnGetKeyNo(17));
350 353
                 // entity.setItemId(fnGetDealNo(26, ""));  // 품목아이디 생성
351 354
                 entity.setItemId(sessionService.getKeyInfo("It").getKeyData());  // 품목아이디 생성
352 355
                 itemMapper.insertItemInfo(userId, entity);
353 356
             }
357
+
358
+            // TODO 오더퀸 연동 - 오더퀸연동 정보가 없어 진행불가
359
+
354 360
         } catch (GlobalException e) {
355 361
             e.getStackTrace();
356 362
             throw new GlobalException(e.getSystemMessageCode());
@@ -360,6 +366,42 @@ public class ItemService extends CommonService {
360 366
         }
361 367
     }
362 368
 
369
+    private ItemEntity toItemEntity(String userId, SaveItemListRequest saveItemListRequest, SaveItemListData item) {
370
+        ItemEntity entity = new ItemEntity();
371
+        entity.setItemNm(item.getItemNm());
372
+        entity.setItemStCd("IS00"); // 사용
373
+        entity.setBrandId(saveItemListRequest.getBrandId());
374
+        entity.setUnit(DstrbtCostUnit.getCd(item.getUnitNm())); // 단위
375
+        // entity.setPchUnit(item.getPchUnit()); // 구매단위
376
+        // entity.setSaleUnit(item.getSaleUnit()); // 판매단위
377
+        // entity.setStckUnit(item.getStckUnit()); // 재고단위
378
+        entity.setWeight(item.getWeight());
379
+        entity.setWeightUnit(WeightUnit.getCd(item.getWeightUnitNm()));
380
+        entity.setVolume(item.getVolume());
381
+        entity.setVolumeUnit(VolumeUnit.getCd(item.getVolumeUnitNm()));
382
+        entity.setWidth(item.getWidth());
383
+        entity.setWidthUnit(WidthUnit.getCd(item.getWidthUnitNm()));
384
+        entity.setHeight(item.getHeight());
385
+        entity.setHeightUnit(HeightUnit.getCd(item.getHeightUnitNm()));
386
+        entity.setHigh(item.getHigh());
387
+        entity.setHighUnit(HighUnit.getCd(item.getHighUnitNm()));
388
+        entity.setPodrPssblDvsn(PodrPssblDvsn.getCd(item.getPodrPssblDvsnNm()));
389
+        entity.setRtnPssblYn(item.getRtnPssblYn());
390
+        entity.setExpryYn(item.getExpryYn());
391
+        entity.setExpryPeriod(item.getExpryPeriod());
392
+        entity.setRtnDvsn(RtnDvsn.getCd(item.getRtnDvsnNm()));
393
+        entity.setImpDvsn(ImpDvsn.getCd(item.getImpDvsnNm()));
394
+        entity.setPchItemYn(item.getPchItemYn());
395
+        entity.setSaleItemYn(item.getSaleItemYn());
396
+        entity.setItemType(ItemType.getCd(item.getItemTypeNm()));
397
+        entity.setBarcode(item.getBarcode());
398
+        entity.setStoreDeliTypeNm(item.getStoreDeliTypeNm());
399
+        entity.setStoreDeliType(item.getStoreDeliTypeNm() == "본사배송" ? "10" : "20");
400
+        entity.setSysRegId(userId);
401
+        entity.setSysChgId(userId);
402
+        return entity;
403
+    }
404
+
363 405
     //
364 406
     /*
365 407
        품목분류 리스트 조회
@@ -499,19 +541,17 @@ public class ItemService extends CommonService {
499 541
 
500 542
     /* 바코드 품목 정보 조회 */
501 543
     public BarcodeItemInfoResponse selectBarcodeItemMInfo(String sBrandId, String sStoreId, String sBarcode) throws Exception {
502
-        ItemUnitEntity entity = null ;
544
+        ItemUnitEntity entity = null;
503 545
 
504 546
         if (StringUtil.isEmpty(sStoreId)) {
505 547
             entity = itemUnitMapper.selectBarcodeItemBrandUnitInfo(sBrandId, sBarcode);
506 548
         } else {
507
-            entity = itemUnitMapper.selectBarcodeItemStoreUnitInfo(sBrandId, sStoreId,sBarcode);
549
+            entity = itemUnitMapper.selectBarcodeItemStoreUnitInfo(sBrandId, sStoreId, sBarcode);
508 550
         }
509
-          return BarcodeItemInfoResponse.toDTO(entity);
551
+        return BarcodeItemInfoResponse.toDTO(entity);
510 552
     }
511 553
 
512 554
 
513
-
514
-
515 555
     public StroeWishListResponse selectPopWishGridList(String sStoreId) throws Exception {
516 556
         List<ItemUnitEntity> entities = itemUnitMapper.selectPopWishGridList(sStoreId);
517 557
         return StroeWishListResponse.toDTO(entities);
@@ -529,7 +569,7 @@ public class ItemService extends CommonService {
529 569
 
530 570
         gridRecords = itemUnitMapper.selectPopItemStoreUnitWishGridCnt(sBrandId, sStoreId, sWishListMgntNo);
531 571
         gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
532
-        List<ItemUnitEntity>  entities = itemUnitMapper.selectPopItemStoreUnitWishGridList(sBrandId, sStoreId, sWishListMgntNo, gridRequest);
572
+        List<ItemUnitEntity> entities = itemUnitMapper.selectPopItemStoreUnitWishGridList(sBrandId, sStoreId, sWishListMgntNo, gridRequest);
533 573
 
534 574
         List<Object> gridRows = entities.stream()
535 575
                 .map(m -> ItemPopSearchResponse.builder()
@@ -554,7 +594,6 @@ public class ItemService extends CommonService {
554 594
     }
555 595
 
556 596
 
557
-
558 597
     /*
559 598
       팝업 품목 리스트 조회
560 599
      */
@@ -566,10 +605,10 @@ public class ItemService extends CommonService {
566 605
         int gridTotal = 0;
567 606
         List<ItemUnitEntity> entities = new ArrayList<ItemUnitEntity>();
568 607
 
569
-        int podrNum = ApiConstants.LACK_STOCK_PODR_NUM ;
608
+        int podrNum = ApiConstants.LACK_STOCK_PODR_NUM;
570 609
 
571 610
         if (StringUtil.isEmpty(sStoreId)) {
572
-            gridRecords = itemUnitMapper.selectPopBrandItemLackStockGridCnt(sBrandId,  sWhsId);
611
+            gridRecords = itemUnitMapper.selectPopBrandItemLackStockGridCnt(sBrandId, sWhsId);
573 612
             gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
574 613
             entities = itemUnitMapper.selectPopBrandItemLackStockGridList(sBrandId, sWhsId, podrNum, gridRequest);
575 614
         } else {

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

@@ -396,9 +396,9 @@ public class StoreBaseInfoService extends CommonService {
396 396
             StoreBaseInfoEntity infoEntity = storeBaseInfoMapper.selectStoreInfo(saveStoreInfolRequest.getBrandId(), saveStoreInfolRequest.getStoreId());
397 397
             if (!StringUtil.isEmpty(infoEntity.getOqBrandId()) && !StringUtil.isEmpty(infoEntity.getOqStoreId())) {
398 398
                 OqScmStoreChangeReqModel req = toOqScmStoreChangeReqModel(infoEntity);
399
-                OqScmStoreChangeResModel result = oqlinkClient.changeScmStore(HmacUtil.makeHmacValue4OqLink(req), req);
400
-                if (SystemMessageCode.BO_IF_OK.getId() != Integer.parseInt(result.getCode())) {
401
-                    throw new GlobalException(SystemMessageCode.valueOf(Integer.valueOf(result.getCode())));
399
+                OqScmStoreChangeResModel res = oqlinkClient.changeScmStore(HmacUtil.makeHmacValue4OqLink(req), req);
400
+                if (SystemMessageCode.BO_IF_OK.getId() != Integer.parseInt(res.getCode())) {
401
+                    throw new GlobalException(SystemMessageCode.valueOf(Integer.valueOf(res.getCode())));
402 402
                 }
403 403
             }
404 404
         } catch (GlobalException e) {