Explorar el Código

공급사 수주내역 상세정보

dwkim hace 2 años
padre
commit
7808640a6d

+ 4 - 0
src/main/java/com/oqpo/api/mapper/pomng/PchOrdMapper.java

@@ -40,6 +40,10 @@ public interface PchOrdMapper {
40 40
     List<PchOdrBaseInfoEntity> selectSpplyPoGridList(@Param("sBrandId") String sBrandId, @Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("sSpplyId") String sSpplyId, @Param("sWhsId") String sWhsId,@Param("sPchOdrStCd") String sPchOdrStCd, @Param("sItemNm") String sItemNm, GridRequest gridRequest )throws Exception;
41 41
     int selectSpplyPoGridCnt(@Param("sBrandId") String sBrandId, @Param("fromDt") String fromDt, @Param("toDt") String toDt, @Param("sSpplyId") String sSpplyId, @Param("sWhsId") String sWhsId,@Param("sPchOdrStCd") String sPchOdrStCd, @Param("sItemNm") String sItemNm )throws Exception;
42 42
 
43
+    // 공급사 발주 정보
44
+    PchOdrBaseInfoEntity selectSpplyPchOdrInfo(@Param("brandId") String brandId, @Param("pchPodrUnqNo") String pchPodrUnqNo, @Param("spplyId") String spplyId);
45
+    List<PchOdrDtlPtclEntity> selectSpplyOdrDtlList(@Param("brandId") String brandId, @Param("pchPodrUnqNo") String pchPodrUnqNo, @Param("spplyId") String spplyId);
46
+
43 47
 
44 48
 
45 49
 }

+ 10 - 0
src/main/java/com/oqpo/api/service/pomng/PchOrdService.java

@@ -540,4 +540,14 @@ public class PchOrdService extends CommonService {
540 540
         return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
541 541
     }
542 542
 
543
+    /* 구매발주 정보 */
544
+
545
+    public SpplyPchOdrInfoResponse selectSpplyPchOdrInfo(String brandId, String  pchReqUnqNo, String spplyId) throws Exception {
546
+        PchOdrBaseInfoEntity entity = pchOrdMapper.selectSpplyPchOdrInfo(brandId, pchReqUnqNo, spplyId);
547
+        List<PchOdrDtlPtclEntity> dtlEntity = pchOrdMapper.selectSpplyOdrDtlList(brandId,  pchReqUnqNo, spplyId);
548
+
549
+        return SpplyPchOdrInfoResponse.toDTO(entity,dtlEntity);
550
+    }
551
+
552
+
543 553
 }

+ 28 - 4
src/main/java/com/oqpo/api/web/controller/pomng/PchOrdController.java

@@ -3,16 +3,14 @@ package com.oqpo.api.web.controller.pomng;
3 3
 import com.oqpo.api.entity.pomng.PchOdrBaseInfoEntity;
4 4
 import com.oqpo.api.enums.DataMessageCode;
5 5
 import com.oqpo.api.enums.SystemMessageCode;
6
+import com.oqpo.api.exception.GlobalException;
6 7
 import com.oqpo.api.service.pomng.PchOrdService;
7 8
 import com.oqpo.api.web.dto.request.GridRequest;
8 9
 import com.oqpo.api.web.dto.request.pomng.pchOrd.*;
9 10
 import com.oqpo.api.web.dto.response.DataResponse;
10 11
 import com.oqpo.api.web.dto.response.GridResponse;
11 12
 import com.oqpo.api.web.dto.response.SaveResponse;
12
-import com.oqpo.api.web.dto.response.pomng.pchOrd.PchOdrInfoResponse;
13
-import com.oqpo.api.web.dto.response.pomng.pchOrd.PchOrdInitInfoResponse;
14
-import com.oqpo.api.web.dto.response.pomng.pchOrd.PoOrdInitInfoResponse;
15
-import com.oqpo.api.web.dto.response.pomng.pchOrd.SpplyPoOdrSearchListResponse;
13
+import com.oqpo.api.web.dto.response.pomng.pchOrd.*;
16 14
 import com.oqpo.api.web.dto.response.pomng.pchReq.PchReqInfoResponse;
17 15
 import io.swagger.annotations.Api;
18 16
 import io.swagger.annotations.ApiImplicitParam;
@@ -184,4 +182,30 @@ public class PchOrdController {
184 182
     public ResponseEntity<GridResponse> selectSpplyPoGridList(@RequestBody @Valid SpplyOdrPoGridRequest spplyOdrPoGridRequest) throws Exception {
185 183
         return ResponseEntity.ok(pchOrdService.selectSpplyPoGridList(spplyOdrPoGridRequest.getSBrandId(), spplyOdrPoGridRequest.getFromDt(), spplyOdrPoGridRequest.getToDt(), spplyOdrPoGridRequest.getSSpplyId(), spplyOdrPoGridRequest.getSWhsId(), spplyOdrPoGridRequest.getSPchOdrStCd(),  spplyOdrPoGridRequest.getSItemNm(),  spplyOdrPoGridRequest.toDTO(spplyOdrPoGridRequest)));
186 184
     }
185
+
186
+    /**
187
+     * 설명 : 공급사 수주상세 정보
188
+     *
189
+     * @param
190
+     * @return
191
+     * @throws Exception
192
+     */
193
+    @ApiImplicitParams({
194
+            @ApiImplicitParam(name = "X-AUTH-TOKEN", value = "CONN-KEY", required = true, dataType = "String", paramType = "header"),
195
+            @ApiImplicitParam(name = "brandId", value = "브랜드아이디", required = true, dataType = "String", paramType = "query"),
196
+            @ApiImplicitParam(name = "spplyId", value = "공급사아이디", required = true, dataType = "String", paramType = "query"),
197
+            @ApiImplicitParam(name = "pchPodrUnqNo", value = "구매발주번호", required = true, dataType = "String", paramType = "query")
198
+
199
+    })
200
+    @ApiOperation(value = "구매발주 정보")
201
+    @GetMapping("/info-spply-pchOdr")
202
+    public ResponseEntity<SpplyPchOdrInfoResponse> infoSpplyPchReq(@RequestParam(value = "brandId") String brandId, @RequestParam(value = "pchPodrUnqNo") String pchPodrUnqNo, @RequestParam(value = "spplyId") String spplyId) throws Exception {
203
+
204
+        //System.out.println("============================>" +authTpCd );
205
+        //if ("60".equals(authTpCd)  && !spplyId1.equals(spplyId)) {
206
+        //    throw new GlobalException(SystemMessageCode.ERR_NONSTOREID);
207
+        //}
208
+
209
+        return ResponseEntity.ok(pchOrdService.selectSpplyPchOdrInfo(brandId, pchPodrUnqNo, spplyId));
210
+    }
187 211
 }

+ 89 - 0
src/main/java/com/oqpo/api/web/dto/response/pomng/pchOrd/SpplyPchOdrInfoResponse.java

@@ -0,0 +1,89 @@
1
+package com.oqpo.api.web.dto.response.pomng.pchOrd;
2
+
3
+import com.fasterxml.jackson.annotation.JsonInclude;
4
+import com.oqpo.api.entity.pomng.PchOdrBaseInfoEntity;
5
+import com.oqpo.api.entity.pomng.PchOdrDtlPtclEntity;
6
+import io.swagger.annotations.ApiModelProperty;
7
+import lombok.*;
8
+
9
+import java.util.List;
10
+import java.util.stream.Collectors;
11
+
12
+
13
+@Getter
14
+@Setter
15
+@Builder
16
+@AllArgsConstructor(access = AccessLevel.PROTECTED)
17
+@JsonInclude(JsonInclude.Include.ALWAYS)
18
+public class SpplyPchOdrInfoResponse {
19
+
20
+    @ApiModelProperty(value = "브랜드아이디") private String brandId;
21
+    @ApiModelProperty(value = "브랜드명") private String brandNm;
22
+    @ApiModelProperty(value = "구매발주고유번호") private String pchPodrUnqNo;
23
+    @ApiModelProperty(value = "구매발주상태코드") private String pchOdrStCd;
24
+    @ApiModelProperty(value = "구매발주상태명") private String pchOdrStNm;
25
+    @ApiModelProperty(value = "공급사아이디") private String spplyId;
26
+    @ApiModelProperty(value = "공급사명") private String spplyNm;
27
+    @ApiModelProperty(value = "발주일자") private String podrDt;
28
+    @ApiModelProperty(value = "납품창고") private String whsDvsnNm;
29
+    @ApiModelProperty(value = "발주합계금액") private Integer podrTotalAmt;
30
+    @ApiModelProperty(value = "발주품목수량") private Integer podrItemQty;
31
+    @ApiModelProperty(value = "발주담당자명") private String podrMgrNm;
32
+    @ApiModelProperty(value = "발주담당자전화번호") private String podrMgrTelNo;
33
+    @ApiModelProperty(value = "납품요청일") private String dlvReqDt;
34
+    @ApiModelProperty(value = "매장아이디") private String storeId;
35
+
36
+    @ApiModelProperty(value = "구매발주 품목 정보")
37
+    private List<SpplyPchOdrInfoResponse.PchOrdPoDtlInfo> pchOdrDtlList;
38
+
39
+    public static SpplyPchOdrInfoResponse toDTO(PchOdrBaseInfoEntity entity, List<PchOdrDtlPtclEntity>  dtlEntityList) {
40
+        if (entity == null) return null;
41
+        return SpplyPchOdrInfoResponse.builder()
42
+                .brandId(entity.getBrandId() == null ? "" : entity.getBrandId())
43
+                .brandNm(entity.getBrandNm() == null ? "" : entity.getBrandNm())
44
+                .pchPodrUnqNo(entity.getPchPodrUnqNo() == null ? "" : entity.getPchPodrUnqNo())
45
+                .pchOdrStCd(entity.getPchOdrStCd() == null ? "" : entity.getPchOdrStCd())
46
+                .pchOdrStNm(entity.getPchOdrStNm() == null ? "" : entity.getPchOdrStNm())
47
+                .spplyId(entity.getSpplyId() == null ? "" : entity.getSpplyId())
48
+                .spplyNm(entity.getSpplyNm() == null ? "" : entity.getSpplyNm())
49
+                .podrDt(entity.getPodrDt() == null ? "" : entity.getPodrDt())
50
+                .whsDvsnNm(entity.getWhsDvsnNm() == null ? "" : entity.getWhsDvsnNm() + "-" + entity.getLocationNm())
51
+                .podrTotalAmt(entity.getPodrTotalAmt() == null ? 0 : entity.getPodrTotalAmt())
52
+                .podrItemQty(entity.getPodrItemQty() == null ? 0 : entity.getPodrItemQty())
53
+                .podrMgrNm(entity.getPodrMgrNm() == null ? "" : entity.getPodrMgrNm())
54
+                .podrMgrTelNo(entity.getPodrMgrTelNo() == null ? "" : entity.getPodrMgrTelNo())
55
+                .dlvReqDt(entity.getDlvReqDt() == null ? "" : entity.getDlvReqDt())
56
+                .storeId(entity.getStoreId() == null ? "" : entity.getStoreId())
57
+                .pchOdrDtlList(dtlEntityList.stream()
58
+                        .map(m -> PchOrdPoDtlInfo.builder()
59
+                                .pchPodrUnqNo(m.getPchPodrUnqNo())
60
+                                .pchPodrDtlNo(m.getPchPodrDtlNo())
61
+                                .itemId(m.getItemId() == null ? "" : m.getItemId())
62
+                                .itemNm(m.getItemNm() == null ? "" : m.getItemNm())
63
+                                .podrQty(m.getPodrQty() == null ? 0 : m.getPodrQty())
64
+                                .podrAmt(m.getPodrAmt() == null ? 0 : m.getPodrAmt())
65
+                                .unit(m.getUnit() == null ? "" : m.getUnit())
66
+                                .unitAmt(m.getUnitAmt() == null ? 0 : m.getUnitAmt())
67
+                                .podrDtlStCd(m.getPodrDtlStCd() == null ? "" : m.getPodrDtlStCd())
68
+                                .podrDtlStNm(m.getPodrDtlStNm() == null ? "" : m.getPodrDtlStNm())
69
+                                .build())
70
+                        .collect(Collectors.toList()))
71
+                .build();
72
+    }
73
+
74
+    @Getter
75
+    @Builder
76
+    @AllArgsConstructor(access = AccessLevel.PROTECTED)
77
+    static class PchOrdPoDtlInfo {
78
+        @ApiModelProperty(value = "구매발주고유번호") private String pchPodrUnqNo;
79
+        @ApiModelProperty(value = "구매발주상세번호") private String pchPodrDtlNo;
80
+        @ApiModelProperty(value = "품목아이디") private String itemId;
81
+        @ApiModelProperty(value = "품목명") private String itemNm;
82
+        @ApiModelProperty(value = "발주수량") private Integer podrQty;
83
+        @ApiModelProperty(value = "발주금액") private Integer podrAmt;
84
+        @ApiModelProperty(value = "단위") private String unit;
85
+        @ApiModelProperty(value = "단가금액") private Integer unitAmt;
86
+        @ApiModelProperty(value = "발주상세코드") private String podrDtlStCd;
87
+        @ApiModelProperty(value = "발주상세명") private String podrDtlStNm;
88
+    }
89
+}

+ 31 - 0
src/main/resources/mybatis/sqlmaps/pomng/PchOrd.xml

@@ -375,4 +375,35 @@
375 375
             and (ptcl.item_id like concat('%', #{sItemNm}, '%') or ptcl.item_nm like concat('%', #{sItemNm}, '%')))))
376 376
         </if>
377 377
     </select>
378
+
379
+    <select id="selectSpplyPchOdrInfo" resultType="com.oqpo.api.entity.pomng.PchOdrBaseInfoEntity">
380
+        select base.brand_id, fn_brand_nm(base.brand_id) as brand_nm, base.pch_podr_unq_no
381
+            , base.pch_odr_st_cd, fn_code_nm(upper('pch_odr_st_cd'), base.pch_odr_st_cd) as pch_odr_st_nm
382
+            , base.spply_id, fn_spply_nm(base.spply_id) as spply_nm, date_format(base.podr_dt, '%Y.%m.%d') as podr_dt
383
+            , fn_whs_nm(base.brand_id, base.whs_id) as whs_nm
384
+            , fn_whs_location_nm(base.brand_id, base.whs_id, base.location) as location_nm
385
+            , fn_whs_nm(base.brand_id, base.shmt_whs_id) as shmt_whs_nm
386
+            , fn_whs_location_nm(base.brand_id, base.shmt_whs_id, base.shmt_location) as shmt_location_nm
387
+            , base.podr_total_amt, base.podr_item_qty, base.podr_mgr_nm, base.podr_mgr_tel_no
388
+            , fn_code_nm(upper('dlv_dvsn'),base.dlv_dvsn) as dlv_dvsn_nm,  date_format(base.dlv_req_dt, '%y.%m.%d') as dlv_req_dt
389
+            , base.store_id
390
+        from pch_odr_base_info base
391
+        where 1 = 1
392
+        and base.brand_id = #{brandId}
393
+        and base.pch_podr_unq_no = #{pchPodrUnqNo}
394
+        and base.spply_id = #{spplyId}
395
+    </select>
396
+
397
+    <select id="selectSpplyOdrDtlList" resultType="com.oqpo.api.entity.pomng.PchOdrDtlPtclEntity">
398
+        select ptcl.pch_podr_dtl_no, ptcl.item_id, ptcl.item_nm
399
+            , ptcl.unit_amt, ptcl.unit, ptcl.podr_qty, ptcl.podr_amt
400
+            , ptcl.podr_dtl_st_cd
401
+            , fn_code_nm(upper('podr_dtl_st_cd'),ptcl.podr_dtl_st_cd ) as podr_dtl_st_nm
402
+        from  pch_odr_base_info base
403
+        join  pch_odr_dtl_ptcl ptcl on base.pch_podr_unq_no = ptcl.pch_podr_unq_no
404
+        where 1 = 1
405
+        and base.brand_id = #{brandId}
406
+        and ptcl.pch_podr_unq_no = #{pchPodrUnqNo}
407
+        and base.spply_id = #{spplyId}
408
+    </select>
378 409
 </mapper>