• 远程调用将返回的结果转化成本地实体类字段


    package com.kakarote.crm.controller.sap;
    import cn.hutool.core.util.ObjectUtil;
    import com.alibaba.fastjson.JSONObject;
    import com.kakarote.core.common.Result;
    import com.kakarote.core.entity.BasePage;
    import com.kakarote.crm.constant.SapConstant;
    import com.kakarote.crm.entity.sap.*;
    import com.kakarote.crm.utils.HttpUtil;
    import com.kakarote.crm.utils.SapUtil;
    import io.swagger.annotations.Api;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    /**
     * @author 
     * 
     */
    @Slf4j
    @RestController
    @RequestMapping("/crmSapProduct")
    @Api(tags = "查询sap产品")
    public class SapProductController {
        @PostMapping("/getSapProduct")
        public Result<BasePage<SapProduct>> getSapProduct(@RequestBody Map<String,Object>map) {
            BasePage<SapProduct> base=new  BasePage<SapProduct>();
            log.info("查询sap产品map==================="+map);
            SapProduct searches=JSONObject.parseObject(JSONObject.toJSONString(map),SapProduct.class);
            log.info("转换后的查询参数searches======="+searches);
            Map<String,Object>infoTo=new HashMap<>();
            infoTo.put("pageNo",searches.getPageNo());
            infoTo.put("pageSize",searches.getPageSize());
            log.info("查询sap传入的参数infoTo================="+JSONObject.toJSONString(infoTo));
            Map<String, Object> mapInfo=new HashMap<>();
            Map<String,Object> resultMap=new HashMap<>();
            String url = SapConstant.API_CRM_ITEM_STOCK;
            log.info("url==========="+url+"----token====="+ SapUtil.getReadToken());
            String res = HttpUtil.doJsonPost(url,JSONObject.toJSONString(infoTo),SapUtil.getReadToken());
            log.info("Sap返回数据res==================="+res);
            log.info("res==========="+res);
            SapResult result = JSONObject.parseObject(res, SapResult.class);
            log.info("查询字段列表============result====="+result);
            List<SapProduct>list=new ArrayList<>();
            Integer pageSize=0;
            Integer pageNo=0;
            Integer pageTotal=0;
            Integer dataTotal=0;
            if(!ObjectUtil.isNull(result)){
                if(!ObjectUtil.isNull(result.getData())){
                    if(!ObjectUtil.isNull(result.getData().getStock())){
                        List<SapStock> sapStockList=result.getData().getStock();
                        for(SapStock info:sapStockList){
                            SapProduct productInfo=JSONObject.parseObject(JSONObject.toJSONString(info),SapProduct.class);
                            list.add(productInfo);
                        }
                    }
                    if(!ObjectUtil.isNull(result.getData().getPage())){
                        pageSize=result.getData().getPage().getPageSize();
                        pageNo=result.getData().getPage().getPageNo();
                        pageTotal=result.getData().getPage().getPageTotal();
                        dataTotal=result.getData().getPage().getDataTotal();
                    }
                }
            }
            log.info("查询sap产品list============"+list);
            base.setList(list);
            base.setSize(pageSize);
            base.setTotal(dataTotal);
            base.setPageNumber(pageNo);
            Result resultInfo =new Result();
            resultInfo.setData(base);
            resultInfo.setCode(0);
            resultInfo.setMsg("success");
            log.info("查询sap产品resultInfo========"+resultInfo);
           return resultInfo;
        }
    
    }
    

      //实体类

    package com.kakarote.crm.entity.sap;
    import com.alibaba.fastjson.annotation.JSONField;
    import lombok.Data;
    import java.io.Serializable;
    @Data
    public class SapProduct implements Serializable {
       /**
        * 账套
        */
       @JSONField(name="company")
       private  String name;
       /**
        * 物料名称
        */
       @JSONField(name="itemName")
       private String unit;
       /**
        * 物料编码
        */
       @JSONField(name="itemCode")
       private String num;
       /**
        * 物料描述
        */
       @JSONField(name="frgnName")
       private String price;
       /**
        * 规格
        */
       @JSONField(name="u_Z20_SPEC")
       private String description;
       /**
        * 分类
        */
       @JSONField(name="u_I002")
       private String fliedWuggiv;
       /**
        * 保质期
        */
       @JSONField(name="u_I008")
       private String fliedMjgjau;
       /**
        * 分类名称
        */
       @JSONField(name="itmsGrpNam")
       private String fliedQsdslb;
       /**
        * 仓库
        */
       @JSONField(name="whsName")
       private String fliedYhbwdy;
       /**
        * 仓库编码
        */
       @JSONField(name="whsCode")
       private String fliedXmfxag;
       /**
        * 现存量
        */
       @JSONField(name="onHand")
       private Integer fliedStizdr;
       /**
        * 已承诺
        */
       @JSONField(name="isCommited")
       private Integer fliedYkdjhk;
       /**
        * 已订购
        */
       @JSONField(name="onOrder")
       private Integer fliedZegxtm;
       /**
        * 可用量
        */
       @JSONField(name="quantifiable")
       private Integer fliedWqihzd;
       //===查询参数
       @JSONField(name="page")
       private Integer pageNo;
       @JSONField(name="limit")
       private Integer pageSize;
    
    
    
    }
    

      

  • 相关阅读:
    计算某一日期是在一年中第几周
    动态生成web表-asp.net table
    sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据
    循环取月的三位英语名 Jan Feb
    Python面向对象编程
    算法
    UDP Sockets in C#
    C++ 11
    GNU Make
    C++ 11
  • 原文地址:https://www.cnblogs.com/xianz666/p/14209743.html
Copyright © 2020-2023  润新知