远程调用将返回的结果转化成本地实体类字段
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;
}

浙公网安备 33010602011771号