|
@@ -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 {
|