提交 4f1ebad1 authored 作者: 李炎's avatar 李炎

客户

上级 564fb4de
......@@ -22,7 +22,8 @@ public class SynTimed {
/*自动登录定时任务40分钟执行一次*/
@Scheduled(fixedDelay = 1000*60*30)
public void timed() throws IOException, ParseException {
public void timed() throws IOException {
System.out.println("更新token");
soSsDao.init();
}
......
......@@ -8,11 +8,10 @@ import com.santos.iost.Exception.SoSsRequestException;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result;
import com.santos.iost.dto.SoSsResponseDate;
import com.santos.iost.service.SoSsMaterialService;
import com.santos.iost.service.SoSsSalesDeliveryService;
import com.santos.iost.service.SpSsSalesOrderService;
import com.santos.iost.service.*;
import com.santos.iost.utils.HttpUtil;
import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsCreateVo;
import com.santos.iost.vo.SoSsRequestVo;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -49,6 +48,31 @@ public class WebApi {
SpSsSalesOrderService salesOrderService;
@Autowired
SoSsSalesDeliveryService salesDeliveryService;
@Autowired
SoSsSalesInvoiceService salesInvoiceService;
@Autowired
SoSsReceiptService receiptService;
@Autowired
SoSsCustomerService customerService;
@ApiOperation(value = "查询通用接口", notes = "查询通用接口")
@PostMapping(value = "/create")
public Result<?> SetData(SoSsCreateVo soSsCreateVo) throws Exception {
Result result = new Result();
try {
if (null == soSsCreateVo.getObjAPIName()) {
return Result.fail("操作失败", "objAPIName不可为空", "500");
} else if (soSsCreateVo.getObjAPIName().equals(customerService.apiName)) {
result = customerService.setData(soSsCreateVo);//产品
} else {
return Result.fail("操作失败", soSsCreateVo.getObjAPIName() + "不存在", "406");
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@ApiOperation(value = "查询通用接口", notes = "查询通用接口")
@GetMapping(value = "/queryMasterBatch")
......@@ -58,22 +82,23 @@ public class WebApi {
try {
if (null == soSsRequestVo.getObjAPIName()) {
return Result.fail("操作失败", "objAPIName不可为空", "500");
} else if (soSsRequestVo.getObjAPIName().equals(SoSsMaterialService.apiName)) {
} else if (soSsRequestVo.getObjAPIName().equals(materialService.apiName)) {
result = materialService.getData(soSsRequestVo);//产品
} else if (soSsRequestVo.getObjAPIName().equals(SpSsSalesOrderService.apiName)) {
} else if (soSsRequestVo.getObjAPIName().equals(salesOrderService.apiName)) {
result = salesOrderService.getData(soSsRequestVo);//订单
} else if (soSsRequestVo.getObjAPIName().equals(SoSsSalesDeliveryService.apiName)) {
} else if (soSsRequestVo.getObjAPIName().equals(salesDeliveryService.apiName)) {
result = salesDeliveryService.getData(soSsRequestVo);//发货单
} else if (soSsRequestVo.getObjAPIName().equals(salesInvoiceService.apiName)) {
result = salesInvoiceService.getData(soSsRequestVo);//开票
} else if (soSsRequestVo.getObjAPIName().equals(receiptService.apiName)) {
result = receiptService.getData(soSsRequestVo);//回款
} else {
return Result.fail("操作失败", soSsRequestVo.getObjAPIName() + "不存在", "406");
}
} finally {
}
return result;
}
//检查ERM日期是否可用作过滤条件
......
......@@ -11,7 +11,7 @@ import java.util.Map;
@Component
public class SoSsDao {
public String getTokenUrl = "http://123.58.109.39:86/K3API/Token/Create?authorityCode=606d25b51be50949e768241934225bc05bfd6db0bae63e82";
public String getTokenUrl = "http://123.58.109.39:86/K3API/Token/Create?authorityCode=635e8cd049f1407db2b25b97738d02c7d686307e003c6213";
String requestUrl = "http://123.58.109.39:86";
public static String token;
......@@ -39,6 +39,14 @@ public class SoSsDao {
// System.out.println("================response=============="+post+"=================response===================");
return post;
}
//请求主体
public String setK3Api(String getMaterialUrl, String paramsMap) throws Exception {
System.out.println("====head====="+paramsMap+"====head====");
String post = HttpUtil.post(requestUrl + getMaterialUrl + "?token=" + token, paramsMap, hreader);
System.out.println(token);
// System.out.println("================response=============="+post+"=================response===================");
return post;
}
//请求主体
public String requestK3ApiDetail(String getMaterialUrl, String paramsMap) throws Exception {
......
package com.santos.iost.service;
import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsCreateVo;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsCustomerService {
String apiName ="Customer";
public Result setData(SoSsCreateVo soSsRequestVo) throws Exception;
}
......@@ -4,7 +4,7 @@ import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsInventoryService {
String apiName ="Inventory";
String apiName ="Bill1001004";
public Result getData(SoSsRequestVo soSsRequestVo);
}
package com.santos.iost.service;
import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsReceiptService {
String apiName ="Bill1000005";
public Result getData(SoSsRequestVo soSsRequestVo);
}
......@@ -3,7 +3,7 @@ package com.santos.iost.service;
import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsSalesInvoice {
public interface SoSsSalesInvoiceService {
String apiName ="Sales_Invoice_VAT";
public Result getData(SoSsRequestVo soSsRequestVo);
}
package com.santos.iost.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result;
import com.santos.iost.dto.SoSsResponseDate;
import com.santos.iost.service.SoSsCustomerService;
import com.santos.iost.utils.JsonUtil;
import com.santos.iost.vo.SoSsCreateVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class SoSsCustomerServiceImpl implements SoSsCustomerService {
@Autowired
SoSsDao soSsDao;
String Url;//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
/**
* 请求字段
*/
String FNumber = "FNumber";//代码
String FName = "FName";//名称
String FAddress = "FAddress";//地址
String FRegionID = "FRegionID";//区域
String FContact = "FContact";//联系人
String FPhone = "FPhone";//联系人电话
String Femployee = "Femployee";//专营业务员
public SoSsCustomerServiceImpl() {
this.Url = "/K3API/Customer/Save";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
}
@Override
public Result setData(SoSsCreateVo soSsRequestVo) throws Exception {
Map params = new HashMap<>();
Map<Object, Object> Data = new LinkedHashMap<>();
Map masterFieldVal = soSsRequestVo.getMasterFieldVal();
Data.put(FNumber, masterFieldVal.get("ERPNumber"));
Data.put(FName, masterFieldVal.get("customerName"));
Data.put(FAddress, masterFieldVal.get("detailedAddress"));
Data.put(FRegionID, new HashMap(){{put("FID",masterFieldVal.get("customerLevel"));}});//二级结构
Data.put(FContact, masterFieldVal.get("contacts"));
Data.put(FPhone, masterFieldVal.get("phone"));
Data.put(Femployee, new HashMap(){{put("FNumber",masterFieldVal.get("personCharge"));}});//二级结构
params.put("Data", Data);
String s = soSsDao.setK3Api(Url, JsonUtil.Mapjson(params));
SoSsResponseDate soSsResponseDate = JSON.parseObject(s, SoSsResponseDate.class, Feature.OrderedField);
Result result = changeResponse(soSsResponseDate);//
return result;
}
/*转换*/
public Result changeResponse(SoSsResponseDate soSsRequestVo) {
Map<Object, Object> map = new HashMap<>();
Result result = new Result();
//将ERP格式变换为CRM格式
result.setMessage(soSsRequestVo.getMessage());
result.setCode(soSsRequestVo.getStatusCode());
result.setData(soSsRequestVo.getData());
return result;
}
}
package com.santos.iost.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result;
import com.santos.iost.dto.SoSsResponseDate;
import com.santos.iost.service.SoSsReceiptService;
import com.santos.iost.utils.JsonUtil;
import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsRequestVo;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
//回款
@Service
public class SoSsReceiptServiceImpl implements SoSsReceiptService {
@Autowired
SoSsDao soSsDao;
String Url;//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String includeDetailUrl;
String fields;//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String FCustomer = "FCustomer";//核算项目
String FAmountFor = "FAmountFor";//单据金额
String FDate = "FDate";//单据日期
String FBillNo = "FBillNo";
String FNumber = "FNumber";
/**
* K3金蝶方请求字段-明细字段
*/
String FEntryOrderNo = "FEntryOrderNo";//订单单号
String FSettleAmountFor_3 = "FSettleAmountFor_3";//结算实收金额
public SoSsReceiptServiceImpl() {
this.Url = "/K3API/Bill1000005/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this.includeDetailUrl = "/K3API/Bill1000005/GetDetail";
this.fields = "Fcustomer,FAmountFor,FDate";//需要查询出的字段
}
@Override
public Result getData(SoSsRequestVo soSsRequestVo) {
String s = new String();
Map map = changeGeta(soSsRequestVo);
try {
s = soSsDao.requestK3Api(Url, JsonUtil.Mapjson(map));
} catch (Exception e) {
e.printStackTrace();
}
SoSsResponseDate soSsResponseDate = JSON.parseObject(s, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
Result result = changeResponse(soSsResponseDate, soSsRequestVo);//转换返回的数据格式
return result;
}
/*转换请求参数*/
public Map changeGeta(SoSsRequestVo soSsRequestVo) {
Map paramsMap = new HashMap();
Map Data = new LinkedHashMap();
Data.put("Top", soSsRequestVo.getLimit());//返回行数
Data.put("PageSize", soSsRequestVo.getLimit());//每页行数
Data.put("PageIndex", soSsRequestVo.getOffset());//第几页
if (checkFilter(soSsRequestVo)) {
Data.put("Filter", setFilter(soSsRequestVo));//过滤条件
}
Data.put("OrderBy", "[FNumber] asc");//排序规则
Data.put("SelectPage", "1");//表体索引,文档默认为2
Data.put("Fields", fields);//查询字段
paramsMap.put("Data", Data);
return paramsMap;
}
//检查ERM日期是否可用作过滤条件
boolean checkFilter(SoSsRequestVo soSsRequestVo) {
if (null == soSsRequestVo.getStartTime() && null == soSsRequestVo.getEndTime()) {
return false;
}
return true;
}
//配置过滤条件
String setFilter(SoSsRequestVo soSsRequestVo) {
String startTime = StringUtil.TimeStamp2Date(soSsRequestVo.getStartTime(), null);
String endTime = StringUtil.TimeStamp2Date(soSsRequestVo.getEndTime(), null);
return "[" + FDate + "] >= '" + startTime + "' and [" + FDate + "] < '" + endTime + "'";
}
List includeDetailFalse(List list) {
List dataList = new ArrayList<>();
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
Map masterField = new LinkedHashMap<>();
Map masterFieldVal = new LinkedHashMap<>();
masterFieldVal.put("customerName", listDateMap.get(FCustomer));//客户名称
masterFieldVal.put("MSBsTotalAmount", listDateMap.get(FAmountFor));//本次回款总金额
masterFieldVal.put("MSBsDate", listDateMap.get(FDate));//回款日期
masterField.put("masterFieldVal", masterFieldVal);
dataList.add(masterField);
}
return dataList;
}
List includeDetailTrue(List list) {
List dataList = new ArrayList<>();
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
Map masterField = new LinkedHashMap<>();
Map masterFieldVal = new LinkedHashMap<>();
masterFieldVal.put("customerName", listDateMap.get(FCustomer));//客户名称
masterFieldVal.put("MSBsTotalAmount", listDateMap.get(FAmountFor));//本次回款总金额
masterFieldVal.put("MSBsDate", listDateMap.get(FDate));//回款日期
masterField.put("masterFieldVal", masterFieldVal);
masterField.put("detailFieldVals", getDetail(listDateMap.get(FNumber).toString()));
dataList.add(masterField);
}
return dataList;
}
Map getDetail(String code) {//获取明细并且转换为需要的格式
Map returnDate = new LinkedHashMap();
Map paramsMap = new HashMap();
Map requestData = new HashMap();
requestData.put(FBillNo, code);
paramsMap.put("Data", requestData);
try {
String s = soSsDao.requestK3ApiDetail(includeDetailUrl, JsonUtil.Mapjson(paramsMap));
SoSsResponseDate soSsResponseDate = JSON.parseObject(s, SoSsResponseDate.class);//转换数据类型
if (null != soSsResponseDate.getStatusCode() && soSsResponseDate.getStatusCode().equals("200")) {
Map Data = JSON.parseObject(soSsResponseDate.getData().toString(), Map.class);//转换数据类型
List list = JSON.parseObject(Data.get("Page3").toString(), List.class, Feature.OrderedField);
int i = 1;
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class);
Map<String, Object> map = new LinkedHashMap();
map.put("salesOrderNo", listDateMap.get(FEntryOrderNo));//销售订单编号
map.put("currentRemittanceAmount", listDateMap.get(FSettleAmountFor_3));//本次汇款金额
returnDate.put(apiName + i, new ArrayList<Map>() {{
add(map);
}});
i++;
}
} else {
Map<String, Object> map = new LinkedHashMap();
map.put("message", soSsResponseDate.getMessage());
map.put("data", soSsResponseDate.getData());
returnDate.put("error", new ArrayList<Map>() {{
add(map);
}});
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return returnDate;
}
/*转换*/
public Result changeResponse(SoSsResponseDate ResponseDate, SoSsRequestVo RequestVo) {
Map<Object, Object> map = new HashMap<>();
Result result = new Result();
try {//字段转换-变化soSsRequestVo的data参数格式 为CRM规定格式
List dataList = new ArrayList<>();
Map data = (Map) ResponseDate.getData();
Object data1 = data.get("DATA");
List list = JSON.parseObject(data1.toString(), List.class, Feature.OrderedField);
if (null == RequestVo.getIncludeDetail() || false == RequestVo.getIncludeDetail()) {
dataList = includeDetailFalse(list);
} else if (null != RequestVo.getIncludeDetail() && true == RequestVo.getIncludeDetail()) {
dataList = includeDetailTrue(list);
}
map.put("totalNum", data.get("ROWCOUNT"));
map.put("dataList", dataList);
ResponseDate.setData(map);
} catch (Exception e) {
e.printStackTrace();
}
//将ERP格式变换为CRM格式
result.setMessage(ResponseDate.getMessage());
result.setCode(ResponseDate.getStatusCode());
result.setData(ResponseDate.getData());
return result;
}
}
......@@ -74,7 +74,7 @@ public class SoSsSalesDeliveryServiceImpl implements SoSsSalesDeliveryService {
public Map changeGeta(SoSsRequestVo soSsRequestVo) {
Map paramsMap = new HashMap();
Map Data = new LinkedHashMap();
Data.put("Top", "100");//返回行数
Data.put("Top",soSsRequestVo.getLimit());//返回行数
Data.put("PageSize", soSsRequestVo.getLimit());//每页行数
Data.put("PageIndex", soSsRequestVo.getOffset());//第几页
if (checkFilter(soSsRequestVo)) {
......
package com.santos.iost.service.impl;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result;
import com.santos.iost.service.SoSsSalesInvoice;
import com.santos.iost.vo.SoSsRequestVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
//开票
@Service
public class SoSsSalesInvoiceImpl implements SoSsSalesInvoice {
@Autowired
SoSsDao soSsDao;
String Url;//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String includeDetailUrl;
String fields;//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String FCustID = "FCustID";//
// String FCustID = "FCustID";//
// String FCustID = "FCustID";//
// String FCustID = "FCustID";//
/**
* K3金蝶方请求字段-明细字段
*/
String FItemID = "FItemID";//产品代码
public SoSsSalesInvoiceImpl() {
this.Url = "/K3API/Sales_Invoice_VAT/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this.includeDetailUrl = "/K3API/Sales_Invoice_VAT/GetDetail";
this.fields = "FCustID,SJKPRQ80,FHeadSelfI0471";//需要查询出的字段
}
@Override
public Result getData(SoSsRequestVo soSsRequestVo) {
return null;
}
}
package com.santos.iost.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result;
import com.santos.iost.dto.SoSsResponseDate;
import com.santos.iost.service.SoSsSalesInvoiceService;
import com.santos.iost.utils.JsonUtil;
import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsRequestVo;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
//开票
@Service
public class SoSsSalesInvoiceServiceImpl implements SoSsSalesInvoiceService {
@Autowired
SoSsDao soSsDao;
String Url;//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String includeDetailUrl;
String fields;//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String FCustID = "FCustID";//购货单位
String SJKPRQ80 = "SJKPRQ80";//实际开票日期
String Fdate = "Fdate";//日期
String FBillNo = "FBillNo";//FBillNo
String FHeadSelfI0471 = "FHeadSelfI0471";//出库单编号
/**
* K3金蝶方请求字段-明细字段
*/
String FItemID = "FItemID";//产品代码
String Fauxqty = "Fauxqty";//数量
String FAuxPriceDiscount="FAuxPriceDiscount";//实际含税单价
String FAllAmount="FAllAmount";//价税合计
public SoSsSalesInvoiceServiceImpl() {
this.Url = "/K3API/Sales_Invoice_VAT/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this.includeDetailUrl = "/K3API/Sales_Invoice_VAT/GetDetail";
this.fields = "FCustID,SJKPRQ80,FHeadSelfI0471";//需要查询出的字段
}
@Override
public Result getData(SoSsRequestVo soSsRequestVo) {
String s = new String();
Map map = changeGeta(soSsRequestVo);
try {
s = soSsDao.requestK3Api(Url, JsonUtil.Mapjson(map));
} catch (Exception e) {
e.printStackTrace();
}
SoSsResponseDate soSsResponseDate = JSON.parseObject(s, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
Result result = changeResponse(soSsResponseDate, soSsRequestVo);//转换返回的数据格式
return result;
}
/*转换请求参数*/
public Map changeGeta(SoSsRequestVo soSsRequestVo) {
Map paramsMap = new HashMap();
Map Data = new LinkedHashMap();
Data.put("Top", soSsRequestVo.getLimit());//返回行数
Data.put("PageSize", soSsRequestVo.getLimit());//每页行数
Data.put("PageIndex", soSsRequestVo.getOffset());//第几页
if (checkFilter(soSsRequestVo)) {
Data.put("Filter", setFilter(soSsRequestVo));//过滤条件
}
Data.put("OrderBy", "[FBillNo] asc");//排序规则
Data.put("SelectPage", "1");//表体索引,文档默认为2
Data.put("Fields", fields);//查询字段
paramsMap.put("Data", Data);
return paramsMap;
}
//检查ERM日期是否可用作过滤条件
boolean checkFilter(SoSsRequestVo soSsRequestVo) {
if (null == soSsRequestVo.getStartTime() && null == soSsRequestVo.getEndTime()) {
return false;
}
return true;
}
//配置过滤条件
String setFilter(SoSsRequestVo soSsRequestVo) {
String startTime = StringUtil.TimeStamp2Date(soSsRequestVo.getStartTime(), null);
String endTime = StringUtil.TimeStamp2Date(soSsRequestVo.getEndTime(), null);
return "[" + SJKPRQ80 + "] >= '" + startTime + "' and [" + SJKPRQ80 + "] < '" + endTime + "'";
}
List includeDetailFalse(List list) {
List dataList = new ArrayList<>();
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
Map masterField = new LinkedHashMap<>();
Map masterFieldVal = new LinkedHashMap<>();
masterFieldVal.put("customerName", listDateMap.get(FCustID));//客户名称
masterFieldVal.put("billingDate", listDateMap.get(SJKPRQ80));//开票日期
// masterFieldVal.put("billingDate", listDateMap.get(Fdate));//开票日期
masterFieldVal.put("invoiceNumber", listDateMap.get(FBillNo));//发票号码
masterFieldVal.put("shipmentNo", listDateMap.get(FHeadSelfI0471));//发货单号
masterField.put("masterFieldVal", masterFieldVal);
dataList.add(masterField);
}
return dataList;
}
List includeDetailTrue(List list) {
List dataList = new ArrayList<>();
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
Map masterField = new LinkedHashMap<>();
Map masterFieldVal = new LinkedHashMap<>();
masterFieldVal.put("customerName", listDateMap.get(FCustID));//客户名称
masterFieldVal.put("billingDate", listDateMap.get(SJKPRQ80));//开票日期
// masterFieldVal.put("billingDate", listDateMap.get(Fdate));//开票日期
masterFieldVal.put("invoiceNumber", listDateMap.get(FBillNo));//发票号码
masterFieldVal.put("shipmentNo", listDateMap.get(FHeadSelfI0471));//发货单号
masterField.put("masterFieldVal", masterFieldVal);
masterField.put("detailFieldVals", getDetail(listDateMap.get(FBillNo).toString()));
dataList.add(masterField);
}
return dataList;
}
Map getDetail(String code) {//获取明细并且转换为需要的格式
Map returnDate = new LinkedHashMap();
Map paramsMap = new HashMap();
Map requestData = new HashMap();
requestData.put(FBillNo, code);
paramsMap.put("Data", requestData);
try {
String s = soSsDao.requestK3ApiDetail(includeDetailUrl, JsonUtil.Mapjson(paramsMap));
SoSsResponseDate soSsResponseDate = JSON.parseObject(s, SoSsResponseDate.class);//转换数据类型
if (null != soSsResponseDate.getStatusCode() && soSsResponseDate.getStatusCode().equals("200")) {
Map Data = JSON.parseObject(soSsResponseDate.getData().toString(), Map.class);//转换数据类型
List list = JSON.parseObject(Data.get("Page2").toString(), List.class, Feature.OrderedField);
int i = 1;
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class);
Map<String,Object> map = new LinkedHashMap();
map.put("productCode", JSONObject.fromObject(listDateMap.get(FItemID)).get("FNumber"));//产品编码
map.put("quantity", listDateMap.get(Fauxqty));//数量
map.put("salesUnitPrice", listDateMap.get(FAuxPriceDiscount));//销售单价
map.put("thisInvoicingSubtotal", listDateMap.get(FAllAmount));//本次开票小计
returnDate.put(apiName + i, new ArrayList<Map>() {{
add(map);
}});
i++;
}
} else {
Map<String,Object> map = new LinkedHashMap();
map.put("message",soSsResponseDate.getMessage());
map.put("data",soSsResponseDate.getData());
returnDate.put("error", new ArrayList<Map>() {{
add(map);
}});
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return returnDate;
}
/*转换*/
public Result changeResponse(SoSsResponseDate ResponseDate, SoSsRequestVo RequestVo) {
Map<Object, Object> map = new HashMap<>();
Result result = new Result();
try {//字段转换-变化soSsRequestVo的data参数格式 为CRM规定格式
List dataList = new ArrayList<>();
Map data = (Map) ResponseDate.getData();
Object data1 = data.get("DATA");
List list = JSON.parseObject(data1.toString(), List.class, Feature.OrderedField);
if (null == RequestVo.getIncludeDetail() || false == RequestVo.getIncludeDetail()) {
dataList = includeDetailFalse(list);
} else if (null != RequestVo.getIncludeDetail() && true == RequestVo.getIncludeDetail()) {
dataList = includeDetailTrue(list);
}
map.put("totalNum", data.get("ROWCOUNT"));
map.put("dataList", dataList);
ResponseDate.setData(map);
} catch (Exception e) {
e.printStackTrace();
}
//将ERP格式变换为CRM格式
result.setMessage(ResponseDate.getMessage());
result.setCode(ResponseDate.getStatusCode());
result.setData(ResponseDate.getData());
return result;
}
}
......@@ -27,7 +27,7 @@ public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
/**
* K3金蝶方请求字段
*/
String FCustID_DSPName = "FCustID_DSPName";//客户名称
String FCustID = "FCustID";//客户名称
String FHeadSelfS0166 = "FHeadSelfS0166";//整单价税合计
String FBillNo = "FBillNo";//编号
String FHeadSelfS0157 = "FHeadSelfS0157";//客户订单编号
......@@ -105,7 +105,7 @@ public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
Map masterField = new LinkedHashMap<>();
Map masterFieldVal = new LinkedHashMap<>();
masterFieldVal.put("customerName", listDateMap.get(FCustID_DSPName));//客户名称
masterFieldVal.put("customerName", listDateMap.get(FCustID));//客户名称
masterFieldVal.put("salesOrderAmount", listDateMap.get(FHeadSelfS0166));//销售订单金额
masterFieldVal.put("erpSystemNumber", listDateMap.get(FBillNo));//erp系统编号
masterFieldVal.put("customerOrderNumber", listDateMap.get(FHeadSelfS0157));//客户订单编号
......@@ -122,7 +122,7 @@ public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
Map masterField = new LinkedHashMap<>();
Map masterFieldVal = new LinkedHashMap<>();
masterFieldVal.put("customerName", listDateMap.get(FCustID_DSPName));//客户名称
masterFieldVal.put("customerName", listDateMap.get(FCustID));//客户名称
masterFieldVal.put("salesOrderAmount", listDateMap.get(FHeadSelfS0166));//销售订单金额
masterFieldVal.put("erpSystemNumber", listDateMap.get(FBillNo));//erp系统编号
masterFieldVal.put("customerOrderNumber", listDateMap.get(FHeadSelfS0157));//客户订单编号
......
package com.santos.iost.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
/**
* 接口请求数据格式Vo对象
*/
@Data
@ApiModel(value = "接口请求数据格式Vo对象-创建用", description = "接口请求数据格式Vo对象-创建用")
public class SoSsCreateVo {
@ApiModelProperty(value = "查询 ERP 对象的 APIName")
private String objAPIName ;
@ApiModelProperty(value = "主体字段值")
private Map masterFieldVal;
}
......@@ -52,66 +52,66 @@ class JintaiDomeApplicationTests {
@Test
void contextLoads() throws Exception {
String s = HttpUtil.get(getTokenUrl);
Map map = JSON.parseObject(s, Map.class);
String D = map.get("Data").toString();
Map mapDate = JSON.parseObject(D, Map.class);
token = mapDate.get("Token").toString();
// System.out.println(token);
Map paramsMap = new HashMap();
Map Data = new LinkedHashMap();
Data.put("Top", "100");
Data.put("PageSize", "17");
Data.put("PageIndex", "1");
// Data.put("Filter","FNumber like '%003%' ");
Data.put("OrderBy", "FNumber asc");
Data.put("Fields", "FNumber,FName,F_101,FUnitID,FSalePrice");
paramsMap.put("Data", Data);
Map<String, String> hreader = new HashMap<>();
hreader.put("Content-Type", "application/json");
String post = HttpUtil.post(getGetMaterialUrl + token, JsonUtil.Mapjson(paramsMap), hreader);
// String s = HttpUtil.get(getTokenUrl);
// Map map = JSON.parseObject(s, Map.class);
// String D = map.get("Data").toString();
// Map mapDate = JSON.parseObject(D, Map.class);
// token = mapDate.get("Token").toString();
//// System.out.println(token);
// Map paramsMap = new HashMap();
// Map Data = new LinkedHashMap();
// Data.put("Top", "100");
// Data.put("PageSize", "17");
// Data.put("PageIndex", "1");
//// Data.put("Filter","FNumber like '%003%' ");
// Data.put("OrderBy", "FNumber asc");
// Data.put("Fields", "FNumber,FName,F_101,FUnitID,FSalePrice");
// paramsMap.put("Data", Data);
//
// Map<String, String> hreader = new HashMap<>();
// hreader.put("Content-Type", "application/json");
//
// String post = HttpUtil.post(getGetMaterialUrl + token, JsonUtil.Mapjson(paramsMap), hreader);
// System.out.println(post);
}
@Test
void dsads() throws Exception {
String s = HttpUtil.get(getTokenUrl);
Map map = JSON.parseObject(s, Map.class);
String D = map.get("Data").toString();
Map mapDate = JSON.parseObject(D, Map.class);
token = mapDate.get("Token").toString();
// System.out.println(token);
Map paramsMap = new HashMap();
Map Data = new LinkedHashMap();
Data.put("FBillNo", "1220200102001");
paramsMap.put("Data", Data);
Map<String, String> hreader = new HashMap<>();
hreader.put("Content-Type", "application/json");
// System.out.println(JsonUtil.Mapjson(paramsMap));
String post = HttpUtil.post(includeDetailUrl + token, JsonUtil.Mapjson(paramsMap), hreader);
//
// String s = HttpUtil.get(getTokenUrl);
// Map map = JSON.parseObject(s, Map.class);
// String D = map.get("Data").toString();
// Map mapDate = JSON.parseObject(D, Map.class);
// token = mapDate.get("Token").toString();
//// System.out.println(token);
// Map paramsMap = new HashMap();
// Map Data = new LinkedHashMap();
// Data.put("FBillNo", "1220200102001");
// paramsMap.put("Data", Data);
//
// Map<String, String> hreader = new HashMap<>();
// hreader.put("Content-Type", "application/json");
//// System.out.println(JsonUtil.Mapjson(paramsMap));
// String post = HttpUtil.post(includeDetailUrl + token, JsonUtil.Mapjson(paramsMap), hreader);
//// SoSsResponseDate soSsResponseDate = JSON.parseObject(post, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
//// System.out.println(soSsResponseDate);
// SoSsResponseDate soSsResponseDate = JSON.parseObject(post, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
// System.out.println(soSsResponseDate);
SoSsResponseDate soSsResponseDate = JSON.parseObject(post, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
String statusCode = soSsResponseDate.getStatusCode();
// System.out.println(soSsResponseDate.getStatusCode().equals("200"));
// System.out.println(soSsResponseDate);
if (null != soSsResponseDate.getStatusCode() && soSsResponseDate.getStatusCode().equals("200")) {
Map Datas = JSON.parseObject(soSsResponseDate.getData().toString(), Map.class, Feature.OrderedField);//转换数据类型
List list = JSON.parseObject(Datas.get("Page2").toString(), List.class, Feature.OrderedField);
int i = 1;
for (Object o : list) {
Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
// System.out.println(listDateMap);
// returnDate.put(apiName + i, new ArrayList<Map>() {{
// add(listDateMap);
// }});
i++;
}
}
// String statusCode = soSsResponseDate.getStatusCode();
//// System.out.println(soSsResponseDate.getStatusCode().equals("200"));
//// System.out.println(soSsResponseDate);
// if (null != soSsResponseDate.getStatusCode() && soSsResponseDate.getStatusCode().equals("200")) {
// Map Datas = JSON.parseObject(soSsResponseDate.getData().toString(), Map.class, Feature.OrderedField);//转换数据类型
// List list = JSON.parseObject(Datas.get("Page2").toString(), List.class, Feature.OrderedField);
// int i = 1;
// for (Object o : list) {
// Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
//// System.out.println(listDateMap);
//// returnDate.put(apiName + i, new ArrayList<Map>() {{
//// add(listDateMap);
//// }});
// i++;
// }
// }
}
@Test
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论