Browse Source

바코드 품목검색

dwkim 2 years ago
parent
commit
55615f45a8

+ 4 - 0
src/main/java/com/oqpo/api/mapper/stinfo/ItemUnitMapper.java

@@ -40,4 +40,8 @@ public interface ItemUnitMapper {
40 40
     int insertItemUnitInfo(@Param("userId") String userId, ItemUnitEntity entity) throws Exception;
41 41
     int updateItemUnitInfo(@Param("userId") String userId, ItemUnitEntity entity) throws Exception;
42 42
 
43
+
44
+    ItemUnitEntity selectBarcodeItemBrandUnitInfo(@Param("sBrandId") String sBrandId,@Param("sBarcode") String sBarcode)throws Exception;
45
+    ItemUnitEntity selectBarcodeItemStoreUnitInfo(@Param("sBrandId") String sBrandId,@Param("sStoreId") String sStoreId,@Param("sBarcode") String sBarcode)throws Exception;
46
+
43 47
 }

+ 15 - 0
src/main/java/com/oqpo/api/service/stinfo/ItemService.java

@@ -5,6 +5,7 @@ import com.oqpo.api.entity.CodeEntity;
5 5
 import com.oqpo.api.entity.oper.FileEntity;
6 6
 import com.oqpo.api.entity.oper.UserMngEntity;
7 7
 import com.oqpo.api.entity.stinfo.*;
8
+import com.oqpo.api.entity.stockmng.StckMgntBaseInfoEntity;
8 9
 import com.oqpo.api.enums.*;
9 10
 import com.oqpo.api.exception.GlobalException;
10 11
 import com.oqpo.api.mapper.FileMapper;
@@ -26,6 +27,7 @@ import com.oqpo.api.web.dto.response.stinfo.brand.BrandInfoResponse;
26 27
 import com.oqpo.api.web.dto.response.stinfo.brand.BrandSearchListResponse;
27 28
 import com.oqpo.api.web.dto.response.stinfo.brand.BrandSearchResponse;
28 29
 import com.oqpo.api.web.dto.response.stinfo.item.*;
30
+import com.oqpo.api.web.dto.response.stockmng.BarcodeWhsItemInfoResponse;
29 31
 import lombok.extern.slf4j.Slf4j;
30 32
 import org.springframework.beans.factory.annotation.Autowired;
31 33
 import org.springframework.security.crypto.password.PasswordEncoder;
@@ -488,4 +490,17 @@ public class ItemService extends CommonService {
488 490
         List<ItemClassMngEntity> entities = itemMapper.selectItemLevelList(sBrandId, sItemLevel, sItemClass1, sItemClass2, sItemClass3);
489 491
         return ItemClassLevelResponse.toDTO(entities);
490 492
     }
493
+
494
+
495
+    /* 바코드 품목 정보 조회 */
496
+    public BarcodeItemInfoResponse selectBarcodeItemMInfo(String sBrandId, String sStoreId, String sBarcode) throws Exception {
497
+        ItemUnitEntity entity = null ;
498
+
499
+        if (StringUtil.isEmpty(sStoreId)) {
500
+            entity = itemUnitMapper.selectBarcodeItemBrandUnitInfo(sBrandId, sBarcode);
501
+        } else {
502
+            entity = itemUnitMapper.selectBarcodeItemStoreUnitInfo(sBrandId, sStoreId,sBarcode);
503
+        }
504
+          return BarcodeItemInfoResponse.toDTO(entity);
505
+    }
491 506
 }

+ 22 - 0
src/main/java/com/oqpo/api/web/controller/stinfo/ItemController.java

@@ -11,10 +11,12 @@ import com.oqpo.api.web.dto.request.stinfo.spply.SpplyPopGridRequest;
11 11
 import com.oqpo.api.web.dto.response.GridResponse;
12 12
 import com.oqpo.api.web.dto.response.SaveResponse;
13 13
 import com.oqpo.api.web.dto.response.code.CodeSearchListResponse;
14
+import com.oqpo.api.web.dto.response.stinfo.item.BarcodeItemInfoResponse;
14 15
 import com.oqpo.api.web.dto.response.stinfo.item.ItemClassLevelResponse;
15 16
 import com.oqpo.api.web.dto.response.stinfo.item.ItemClassMngInfoResponse;
16 17
 import com.oqpo.api.web.dto.response.stinfo.item.ItemInfoResponse;
17 18
 import com.oqpo.api.web.dto.response.stinfo.spply.SpplyInfoResponse;
19
+import com.oqpo.api.web.dto.response.stockmng.BarcodeWhsItemInfoResponse;
18 20
 import io.swagger.annotations.Api;
19 21
 import io.swagger.annotations.ApiImplicitParam;
20 22
 import io.swagger.annotations.ApiImplicitParams;
@@ -266,4 +268,24 @@ public class ItemController {
266 268
                                                                  @RequestParam(value = "sItemClass3", required = false) String sItemClass3) throws Exception {
267 269
         return ResponseEntity.ok(itemService.searchItemClassList(sBrandId, sItemLevel, sItemClass1, sItemClass2, sItemClass3));
268 270
     }
271
+
272
+    /**
273
+     * 설명 : 바코드를 통한 창고 품목 정보조회
274
+     *
275
+     * @param brandId
276
+     * @param whsId
277
+     * @return
278
+     * @throws Exception
279
+     */
280
+    @ApiImplicitParams({
281
+            @ApiImplicitParam(name = "X-AUTH-TOKEN", value = "CONN-KEY", required = true, dataType = "String", paramType = "header"),
282
+            @ApiImplicitParam(name = "sBrandId", value = "브랜드아이디", required = true, dataType = "String", paramType = "query"),
283
+            @ApiImplicitParam(name = "sStoreId", value = "매장아이디", required = false, dataType = "String", paramType = "query"),
284
+            @ApiImplicitParam(name = "sBarcode", value = "바코드", required = true, dataType = "String", paramType = "query")
285
+    })
286
+    @ApiOperation(value = "바코드를 통한 창고 품목 정보조회")
287
+    @GetMapping("/info-barcode-item")
288
+    public ResponseEntity<BarcodeItemInfoResponse> infoBarcodeStock(@RequestParam(value = "sBrandId") String sBrandId, @RequestParam(value = "sStoreId", required = false) String sStoreId, @RequestParam(value = "sBarcode") String sBarcode) throws Exception {
289
+        return ResponseEntity.ok(itemService.selectBarcodeItemMInfo(sBrandId, sStoreId, sBarcode));
290
+    }
269 291
 }

+ 77 - 0
src/main/java/com/oqpo/api/web/dto/response/stinfo/item/BarcodeItemInfoResponse.java

@@ -0,0 +1,77 @@
1
+package com.oqpo.api.web.dto.response.stinfo.item;
2
+
3
+import com.fasterxml.jackson.annotation.JsonInclude;
4
+import com.oqpo.api.entity.stinfo.ItemUnitEntity;
5
+import com.oqpo.api.entity.stockmng.StckMgntBaseInfoEntity;
6
+import io.swagger.annotations.ApiModelProperty;
7
+import lombok.*;
8
+
9
+@Getter
10
+@Setter
11
+@Builder
12
+@AllArgsConstructor(access = AccessLevel.PROTECTED)
13
+@JsonInclude(JsonInclude.Include.ALWAYS)
14
+public class BarcodeItemInfoResponse {
15
+
16
+    @ApiModelProperty(value = "품목아이디")
17
+    private String itemId;
18
+
19
+    @ApiModelProperty(value = "품목명")
20
+    private String itemNm;
21
+
22
+    @ApiModelProperty(value = "발주가능구분코드")
23
+    private String podrPssblDvsn;
24
+
25
+    @ApiModelProperty(value = "발주가능구분명")
26
+    private String podrPssblDvsnNm;
27
+
28
+    @ApiModelProperty(value = "단위")
29
+    private String unit;
30
+
31
+    @ApiModelProperty(value = "단위명")
32
+    private String unitNm;
33
+
34
+    @ApiModelProperty(value = "기준수량")
35
+    private Integer stddQty;
36
+
37
+    @ApiModelProperty(value = "단가금액")
38
+    private Integer unitAmt;
39
+
40
+    @ApiModelProperty(value = "출고가능수량")
41
+    private Integer whsPassQty;
42
+
43
+    @ApiModelProperty(value = "공급사아이디")
44
+    private String spplyId;
45
+
46
+    @ApiModelProperty(value = "공급사명")
47
+    private String spplyNm;
48
+
49
+    @ApiModelProperty(value = "브래드/매장 단가 구분")
50
+    private String unitGubun;
51
+
52
+    @ApiModelProperty(value = "브랜드단가공유번호")
53
+    private String brandUnitUnqNo;
54
+
55
+    @ApiModelProperty(value = "매장단가고유번호")
56
+    private String storeUnitUnqNo;
57
+
58
+    public static BarcodeItemInfoResponse toDTO(ItemUnitEntity entity) {
59
+        if (entity == null) return null;
60
+        return BarcodeItemInfoResponse.builder()
61
+                .itemId(entity.getItemId())
62
+                .itemNm(entity.getItemNm())
63
+                .podrPssblDvsn(entity.getPodrPssblDvsn())
64
+                .podrPssblDvsnNm(entity.getPodrPssblDvsnNm())
65
+                .unit(entity.getUnit())
66
+                .unitNm(entity.getUnitNm())
67
+                .unitAmt(entity.getUnitAmt())
68
+                .stddQty(entity.getStddQty() == null ? 0 : entity.getStddQty())
69
+                .unitGubun(entity.getUnitGubun())
70
+                .spplyId(entity.getSpplyId())
71
+                .spplyNm(entity.getSpplyNm() == null ? "" : entity.getSpplyNm())
72
+                .brandUnitUnqNo(entity.getBrandUnitUnqNo())
73
+                .storeUnitUnqNo(entity.getStoreUnitUnqNo() == null ? "" : entity.getStoreUnitUnqNo())
74
+                .whsPassQty(entity.getWhsPassQty() == null ? 0 : entity.getWhsPassQty())
75
+                .build();
76
+    }
77
+}

+ 32 - 0
src/main/resources/mybatis/sqlmaps/stinfo/ItemUnit.xml

@@ -449,4 +449,36 @@
449 449
         </if>
450 450
     </select>
451 451
 
452
+
453
+    <select id="selectBarcodeItemBrandUnitInfo" resultType="com.oqpo.api.entity.stinfo.ItemUnitEntity">
454
+        select  /* selectBarcodeItemBrandUnitInfo */
455
+            iInfo.item_id,iInfo.item_nm,iInfo.podr_pssbl_dvsn, fn_code_nm('PODR_PSSBL_DVSN',iInfo.podr_pssbl_dvsn) AS podr_pssbl_dvsn_nm
456
+            ,bInfo.unit, fn_code_nm('DSTRBT_COST_UNIT', bInfo.unit) as unit_nm, bInfo.stdd_qty, bInfo.unit_amt, bInfo.brand_unit_unq_no
457
+            ,'B' as unit_gubun, bInfo.spply_id, fn_spply_nm(bInfo.spply_id) as spplyNm
458
+            ,0 as whs_pass_qty
459
+        from item_base_info iInfo
460
+        join brand_item_unit_info bInfo on iInfo.brand_id = bInfo.brand_id and iInfo.item_id = bInfo.item_id and date_format(now(),'%Y%m%d') between bInfo.cont_stt_dt and bInfo.cont_end_dt
461
+        where iInfo.brand_id = #{sBrandId}
462
+        and   iInfo.barcode = #{sBarcode}
463
+        AND   iInfo.item_st_cd = 'IS00'
464
+        and   iInfo.podr_pssbl_dvsn = 'PO01'
465
+    </select>
466
+
467
+
468
+    <select id="selectBarcodeItemStoreUnitInfo" resultType="com.oqpo.api.entity.stinfo.ItemUnitEntity">
469
+        select  /* selectBarcodeItemStoreUnitInfo */
470
+                iInfo.item_id,iInfo.item_nm,iInfo.podr_pssbl_dvsn, fn_code_nm('PODR_PSSBL_DVSN',iInfo.podr_pssbl_dvsn) AS podr_pssbl_dvsn_nm
471
+                ,sInfo.unit, fn_code_nm('DSTRBT_COST_UNIT', sInfo.unit) as unit_nm, sInfo.stdd_qty, sInfo.unit_amt, sInfo.store_unit_unq_no
472
+                ,'S' as unit_gubun, sInfo.brand_unit_unq_no
473
+                , 0 as whs_pass_qty, '' as spply_id
474
+        from item_base_info iInfo
475
+        join store_base_info store on iInfo.brand_id = store.brand_id   and store.store_id = #{sStoreId}
476
+        join store_item_unit_info sInfo on iInfo.brand_id = sInfo.brand_id and iInfo.item_id = sInfo.item_id and sInfo.unit_target_cd = 'Y'
477
+        and store.store_id = sInfo.store_id  and sInfo.store_id =  #{sStoreId}
478
+        and date_format(now(),'%Y%m%d') between sInfo.cont_stt_dt and sInfo.cont_end_dt
479
+        where iInfo.brand_id =  #{sBrandId}
480
+        and   iInfo.barcode = #{sBarcode}
481
+        AND   iInfo.item_st_cd = 'IS00'
482
+        and   iInfo.podr_pssbl_dvsn = 'PO01'
483
+    </select>
452 484
 </mapper>