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

新增业务

上级 9cd31049
...@@ -20,5 +20,5 @@ services: ...@@ -20,5 +20,5 @@ services:
- /data/config:/sosssystem/config - /data/config:/sosssystem/config
- /data/storage:/sosssystem/storage - /data/storage:/sosssystem/storage
ports: ports:
- 8090:8090 - 8808:8090
...@@ -95,24 +95,24 @@ ...@@ -95,24 +95,24 @@
<version>4.1.1</version> <version>4.1.1</version>
</dependency> </dependency>
<dependency> <!--<dependency>-->
<groupId>commons-httpclient</groupId> <!--<groupId>commons-httpclient</groupId>-->
<artifactId>commons-httpclient</artifactId> <!--<artifactId>commons-httpclient</artifactId>-->
<version>3.1</version> <!--<version>3.1</version>-->
</dependency> <!--</dependency>-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.1</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.apache.httpcomponents</groupId>-->
<!--<artifactId>httpcore</artifactId>-->
<!--<version>4.3.1</version>-->
<!--</dependency>-->
<!-- httpclient -->
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId> <artifactId>httpclient</artifactId>
<version>4.3.1</version> <version>4.5.6</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <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; ...@@ -8,13 +8,21 @@ import com.santos.iost.Exception.SoSsRequestException;
import com.santos.iost.dao.SoSsDao; import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result; import com.santos.iost.dto.Result;
import com.santos.iost.dto.SoSsResponseDate; 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.service.SpSsSalesOrderService;
import com.santos.iost.utils.HttpUtil; import com.santos.iost.utils.HttpUtil;
import com.santos.iost.utils.StringUtil; import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsRequestVo; import com.santos.iost.vo.SoSsRequestVo;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; 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.apache.http.util.TextUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
...@@ -36,9 +44,11 @@ import java.util.*; ...@@ -36,9 +44,11 @@ import java.util.*;
@Slf4j @Slf4j
public class WebApi { public class WebApi {
@Autowired @Autowired
SoSsMaterialServer materialServer; SoSsMaterialService materialService;
@Autowired @Autowired
SpSsSalesOrderService salesOrderService; SpSsSalesOrderService salesOrderService;
@Autowired
SoSsSalesDeliveryService salesDeliveryService;
@ApiOperation(value = "查询通用接口", notes = "查询通用接口") @ApiOperation(value = "查询通用接口", notes = "查询通用接口")
@GetMapping(value = "/queryMasterBatch") @GetMapping(value = "/queryMasterBatch")
...@@ -46,12 +56,14 @@ public class WebApi { ...@@ -46,12 +56,14 @@ public class WebApi {
checkRequest(soSsRequestVo); checkRequest(soSsRequestVo);
Result result = new Result(); Result result = new Result();
try { try {
if (null==soSsRequestVo.getObjAPIName()) { if (null == soSsRequestVo.getObjAPIName()) {
return Result.fail("操作失败", "objAPIName不可为空", "500"); return Result.fail("操作失败", "objAPIName不可为空", "500");
} else if (soSsRequestVo.getObjAPIName().equals(SoSsMaterialServer.apiName)) { } else if (soSsRequestVo.getObjAPIName().equals(SoSsMaterialService.apiName)) {
result = materialServer.getData(soSsRequestVo); result = materialService.getData(soSsRequestVo);//产品
} else if (soSsRequestVo.getObjAPIName().equals(SpSsSalesOrderService.apiName)) { } 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 { } else {
return Result.fail("操作失败", soSsRequestVo.getObjAPIName() + "不存在", "406"); return Result.fail("操作失败", soSsRequestVo.getObjAPIName() + "不存在", "406");
} }
...@@ -104,4 +116,23 @@ public class WebApi { ...@@ -104,4 +116,23 @@ public class WebApi {
} }
return maps; 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; ...@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public interface SoSsMaterialServer { public interface SoSsMaterialService {
String apiName ="Material"; String apiName ="Material";
public Result getData(SoSsRequestVo soSsRequestVo); 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; ...@@ -6,7 +6,7 @@ import com.santos.iost.Exception.SoSsRequestException;
import com.santos.iost.dao.SoSsDao; import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.Result; import com.santos.iost.dto.Result;
import com.santos.iost.dto.SoSsResponseDate; 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.utils.JsonUtil;
import com.santos.iost.vo.SoSsRequestVo; import com.santos.iost.vo.SoSsRequestVo;
import jdk.nashorn.internal.codegen.CompilerConstants; import jdk.nashorn.internal.codegen.CompilerConstants;
...@@ -15,9 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,9 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
//客户
@Service @Service
public class SoSsMaterialServerImpl implements SoSsMaterialServer { public class SoSsMaterialServiceImpl implements SoSsMaterialService {
@Autowired @Autowired
SoSsDao soSsDao; SoSsDao soSsDao;
...@@ -38,8 +38,7 @@ public class SoSsMaterialServerImpl implements SoSsMaterialServer { ...@@ -38,8 +38,7 @@ public class SoSsMaterialServerImpl implements SoSsMaterialServer {
String FTypeID_FID = "FTypeID_FID"; String FTypeID_FID = "FTypeID_FID";
String FTypeID_FName = "FTypeID_FName"; String FTypeID_FName = "FTypeID_FName";
public SoSsMaterialServerImpl() { public SoSsMaterialServiceImpl() {
// this.apiName = "Material";
this.Url = "/K3API/Material/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token}) this.Url = "/K3API/Material/GetList";//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this.fields = "FNumber,FName,F_101,FUnitID,FSalePrice,FTypeID";//需要查询出的字段 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; ...@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
//订单
@Service @Service
public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService { public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
@Autowired @Autowired
......
...@@ -4,6 +4,7 @@ package com.santos.iost; ...@@ -4,6 +4,7 @@ package com.santos.iost;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.parser.Feature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.santos.iost.dao.SoSsDao; import com.santos.iost.dao.SoSsDao;
import com.santos.iost.dto.SoSsRequestData; import com.santos.iost.dto.SoSsRequestData;
import com.santos.iost.dto.SoSsResponseDate; import com.santos.iost.dto.SoSsResponseDate;
...@@ -14,6 +15,15 @@ import com.santos.iost.utils.StringUtil; ...@@ -14,6 +15,15 @@ import com.santos.iost.utils.StringUtil;
import com.santos.iost.vo.SoSsRequestVo; import com.santos.iost.vo.SoSsRequestVo;
import kingdee.bos.webapi.client.K3CloudApiClient; import kingdee.bos.webapi.client.K3CloudApiClient;
import lombok.extern.slf4j.Slf4j; 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.apache.http.util.TextUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -22,6 +32,8 @@ import org.springframework.boot.test.context.SpringBootTest; ...@@ -22,6 +32,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.io.IOException;
import java.net.URI;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
...@@ -118,6 +130,7 @@ class JintaiDomeApplicationTests { ...@@ -118,6 +130,7 @@ class JintaiDomeApplicationTests {
return date; return date;
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论