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; }