提交 564fb4de authored 作者: 李炎's avatar 李炎

新增业务

上级 9cd31049
......@@ -20,5 +20,5 @@ services:
- /data/config:/sosssystem/config
- /data/storage:/sosssystem/storage
ports:
- 8090:8090
- 8808:8090
......@@ -95,24 +95,24 @@
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.1</version>
</dependency>
<!--<dependency>-->
<!--<groupId>commons-httpclient</groupId>-->
<!--<artifactId>commons-httpclient</artifactId>-->
<!--<version>3.1</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>org.apache.httpcomponents</groupId>-->
<!--<artifactId>httpcore</artifactId>-->
<!--<version>4.3.1</version>-->
<!--</dependency>-->
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.1</version>
<artifactId>httpclient</artifactId>
<version>4.5.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
......
package com.santos.iost.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.SoSsResponseDate;
import com.santos.iost.utils.HttpUtil;
import com.santos.iost.utils.JsonUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicHeaderElementIterator;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.TextUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.*;
//
//@SpringBootTest
//@Slf4j
//@RunWith(SpringJUnit4ClassRunner.class)
//@EnableScheduling
@RestController
//@RequestMapping("/api")
@Slf4j
class JintaiDomeApplicationTests {
String getTokenUrl = "http://123.58.109.39:86/K3API/Token/Create?authorityCode=606d25b51be50949e768241934225bc05bfd6db0bae63e82";
String getGetMaterialUrl = "http://123.58.109.39:86/K3API/Material/GetList?token=";
String includeDetailUrl = "http://123.58.109.39:86/K3API/SO/GetDetail?token=";
String token;
@Autowired
SoSsDao soSsDao;
public void sd() {
ConnectionKeepAliveStrategy myStrategy = new ConnectionKeepAliveStrategy() {
@Override
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
HeaderElementIterator it = new BasicHeaderElementIterator
(response.headerIterator(HTTP.CONN_KEEP_ALIVE));
while (it.hasNext()) {
HeaderElement he = it.nextElement();
String param = he.getName();
String value = he.getValue();
if (value != null && param.equalsIgnoreCase
("timeout")) {
return Long.parseLong(value) * 1000;
}
}
return 60 * 1000;//如果没有约定,则默认定义时长为60s
}
};
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(500);
connectionManager.setDefaultMaxPerRoute(50);//例如默认每路由最高50并发,具体依据业务来定
HttpClient httpClient = HttpClients.custom()
.setConnectionManager(connectionManager)
.setKeepAliveStrategy(myStrategy)
.setDefaultRequestConfig(RequestConfig.custom().setStaleConnectionCheckEnabled(true).build())
.build();
}
@GetMapping(value = "/test")
String 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);
// System.out.println(post);
return post;
}
}
......@@ -8,13 +8,21 @@ 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.SoSsMaterialServer;
import com.santos.iost.service.SoSsMaterialService;
import com.santos.iost.service.SoSsSalesDeliveryService;
import com.santos.iost.service.SpSsSalesOrderService;
import com.santos.iost.utils.HttpUtil;
import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsRequestVo;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.HttpResponse;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.message.BasicHeaderElementIterator;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.TextUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
......@@ -36,9 +44,11 @@ import java.util.*;
@Slf4j
public class WebApi {
@Autowired
SoSsMaterialServer materialServer;
SoSsMaterialService materialService;
@Autowired
SpSsSalesOrderService salesOrderService;
@Autowired
SoSsSalesDeliveryService salesDeliveryService;
@ApiOperation(value = "查询通用接口", notes = "查询通用接口")
@GetMapping(value = "/queryMasterBatch")
......@@ -46,12 +56,14 @@ public class WebApi {
checkRequest(soSsRequestVo);
Result result = new Result();
try {
if (null==soSsRequestVo.getObjAPIName()) {
if (null == soSsRequestVo.getObjAPIName()) {
return Result.fail("操作失败", "objAPIName不可为空", "500");
} else if (soSsRequestVo.getObjAPIName().equals(SoSsMaterialServer.apiName)) {
result = materialServer.getData(soSsRequestVo);
} else if (soSsRequestVo.getObjAPIName().equals(SoSsMaterialService.apiName)) {
result = materialService.getData(soSsRequestVo);//产品
} else if (soSsRequestVo.getObjAPIName().equals(SpSsSalesOrderService.apiName)) {
result = salesOrderService.getData(soSsRequestVo);
result = salesOrderService.getData(soSsRequestVo);//订单
} else if (soSsRequestVo.getObjAPIName().equals(SoSsSalesDeliveryService.apiName)) {
result = salesDeliveryService.getData(soSsRequestVo);//发货单
} else {
return Result.fail("操作失败", soSsRequestVo.getObjAPIName() + "不存在", "406");
}
......@@ -104,4 +116,23 @@ public class WebApi {
}
return maps;
}
ConnectionKeepAliveStrategy myStrategy = new ConnectionKeepAliveStrategy() {
@Override
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
HeaderElementIterator it = new BasicHeaderElementIterator
(response.headerIterator(HTTP.CONN_KEEP_ALIVE));
while (it.hasNext()) {
HeaderElement he = it.nextElement();
String param = he.getName();
String value = he.getValue();
if (value != null && param.equalsIgnoreCase
("timeout")) {
return Long.parseLong(value) * 1000;
}
}
return 60 * 1000;//如果没有约定,则默认定义时长为60s
}
};
}
package com.santos.iost.service;
import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsInventoryService {
String apiName ="Inventory";
public Result getData(SoSsRequestVo soSsRequestVo);
}
......@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
public interface SoSsMaterialServer {
public interface SoSsMaterialService {
String apiName ="Material";
public Result getData(SoSsRequestVo soSsRequestVo);
......
package com.santos.iost.service;
import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsSalesDeliveryService {
String apiName ="Sales_Delivery";
public Result getData(SoSsRequestVo soSsRequestVo);
}
package com.santos.iost.service;
import com.santos.iost.dto.Result;
import com.santos.iost.vo.SoSsRequestVo;
public interface SoSsSalesInvoice {
String apiName ="Sales_Invoice_VAT";
public Result getData(SoSsRequestVo soSsRequestVo);
}
package com.santos.iost.service.impl;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result;
import com.santos.iost.service.SoSsInventoryService;
import com.santos.iost.vo.SoSsRequestVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
//库存
@Service
public class SoSsInventoryServiceImpl implements SoSsInventoryService {
@Autowired
SoSsDao soSsDao;
String Url;//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String fields;//需要查询出的字段
public SoSsInventoryServiceImpl() {
this.Url = "/K3API/Bill1001004/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this.fields = "FNumber,FName,F_101,FUnitID,FSalePrice,FTypeID";//需要查询出的字段
}
@Override
public Result getData(SoSsRequestVo soSsRequestVo) {
return null;
}
}
......@@ -6,7 +6,7 @@ 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.SoSsMaterialServer;
import com.santos.iost.service.SoSsMaterialService;
import com.santos.iost.utils.JsonUtil;
import com.santos.iost.vo.SoSsRequestVo;
import jdk.nashorn.internal.codegen.CompilerConstants;
......@@ -15,9 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
//客户
@Service
public class SoSsMaterialServerImpl implements SoSsMaterialServer {
public class SoSsMaterialServiceImpl implements SoSsMaterialService {
@Autowired
SoSsDao soSsDao;
......@@ -38,8 +38,7 @@ public class SoSsMaterialServerImpl implements SoSsMaterialServer {
String FTypeID_FID = "FTypeID_FID";
String FTypeID_FName = "FTypeID_FName";
public SoSsMaterialServerImpl() {
// this.apiName = "Material";
public SoSsMaterialServiceImpl() {
this.Url = "/K3API/Material/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this.fields = "FNumber,FName,F_101,FUnitID,FSalePrice,FTypeID";//需要查询出的字段
}
......
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;
}
}
......@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
//订单
@Service
public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
@Autowired
......
......@@ -4,6 +4,7 @@ package com.santos.iost;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.SoSsRequestData;
import com.santos.iost.dto.SoSsResponseDate;
......@@ -14,6 +15,15 @@ import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsRequestVo;
import kingdee.bos.webapi.client.K3CloudApiClient;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.*;
import org.apache.http.util.TextUtils;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
......@@ -22,6 +32,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.io.IOException;
import java.net.URI;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -118,6 +130,7 @@ class JintaiDomeApplicationTests {
return date;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论