Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
SoSsDome
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
李炎
SoSsDome
Commits
93160438
继续操作前请注册或者登录。
提交
93160438
authored
12月 22, 2021
作者:
李炎
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
索斯
上级
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
28 个修改的文件
包含
2006 行增加
和
0 行删除
+2006
-0
.gitignore
.gitignore
+4
-0
pom.xml
pom.xml
+194
-0
Application.java
src/main/java/com/santos/iost/Application.java
+40
-0
ConvertUtils.java
src/main/java/com/santos/iost/ConvertUtils.java
+0
-0
Constant.java
...a/com/santos/iost/Exception/ConnectConstant/Constant.java
+7
-0
GlobalExceptionHandler.java
...ava/com/santos/iost/Exception/GlobalExceptionHandler.java
+35
-0
SoSsRequestException.java
.../java/com/santos/iost/Exception/SoSsRequestException.java
+30
-0
SynTimed.java
src/main/java/com/santos/iost/TimeTask/SynTimed.java
+32
-0
CommonConstant.java
src/main/java/com/santos/iost/common/CommonConstant.java
+308
-0
WebApi.java
src/main/java/com/santos/iost/controller/WebApi.java
+107
-0
SoSsDao.java
src/main/java/com/santos/iost/dao/SoSsDao.java
+51
-0
Result.java
src/main/java/com/santos/iost/dto/Result.java
+154
-0
SoSsRequestData.java
src/main/java/com/santos/iost/dto/SoSsRequestData.java
+13
-0
SoSsResponseDate.java
src/main/java/com/santos/iost/dto/SoSsResponseDate.java
+15
-0
SoSsMaterialServer.java
...main/java/com/santos/iost/service/SoSsMaterialServer.java
+17
-0
SpSsSalesOrderService.java
...n/java/com/santos/iost/service/SpSsSalesOrderService.java
+9
-0
SoSsMaterialServerImpl.java
.../com/santos/iost/service/impl/SoSsMaterialServerImpl.java
+127
-0
SpSsSalesOrderServiceImpl.java
...m/santos/iost/service/impl/SpSsSalesOrderServiceImpl.java
+210
-0
HttpUtil.java
src/main/java/com/santos/iost/utils/HttpUtil.java
+0
-0
HttpUtils.java
src/main/java/com/santos/iost/utils/HttpUtils.java
+257
-0
JsonUtil.java
src/main/java/com/santos/iost/utils/JsonUtil.java
+173
-0
ListUtil.java
src/main/java/com/santos/iost/utils/ListUtil.java
+15
-0
StringUtil.java
src/main/java/com/santos/iost/utils/StringUtil.java
+36
-0
SoSsRequestVo.java
src/main/java/com/santos/iost/vo/SoSsRequestVo.java
+40
-0
application.yml
src/main/resources/application.yml
+9
-0
commons-logging.jar
src/main/resources/lib/commons-logging.jar
+0
-0
k3cloud-webapi-client.jar
src/main/resources/lib/k3cloud-webapi-client.jar
+0
-0
JintaiDomeApplicationTests.java
...test/java/com/santos/iost/JintaiDomeApplicationTests.java
+123
-0
没有找到文件。
.gitignore
0 → 100644
浏览文件 @
93160438
/target
/.idea
/.idea/libraries
/*.iml
pom.xml
0 → 100644
浏览文件 @
93160438
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.5.1
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.santos
</groupId>
<artifactId>
SoSsDome
</artifactId>
<packaging>
jar
</packaging>
<version>
0.0.1-SNAPSHOT
</version>
<name>
SoSsDome
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
<exclusions>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- SpringBootText注解依赖 -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<!-- Junit依赖 -->
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
<version>
3.4.3
</version>
</dependency>
<!--开发时使用spring boot 内嵌tomacata调试,生产使用外部tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>-->
<!--打包用:声名所有第三方jar包-->
<dependency>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
<scope>
system
</scope>
<version>
1.0
</version>
<systemPath>
${project.basedir}/src/main/resources/lib/commons-logging.jar
</systemPath>
</dependency>
<dependency>
<groupId>
client
</groupId>
<artifactId>
k3cloud-webapi-client
</artifactId>
<scope>
system
</scope>
<version>
1.0
</version>
<systemPath>
${project.basedir}/src/main/resources/lib/k3cloud-webapi-client.jar
</systemPath>
</dependency>
<!--<dependency>-->
<!--<groupId>httpmime</groupId>-->
<!--<artifactId>httpmime-4.1.1</artifactId>-->
<!--<scope>system</scope>-->
<!--<version>1.0</version>-->
<!--<systemPath>${project.basedir}/src/main/resources/lib/httpmime-4.1.1.jar</systemPath>-->
<!--</dependency>-->
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpmime
</artifactId>
<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>
org.apache.httpcomponents
</groupId>
<artifactId>
httpcore
</artifactId>
<version>
4.3.1
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.72
</version>
</dependency>
<dependency>
<groupId>
com.hikvision.ga
</groupId>
<artifactId>
artemis-http-client
</artifactId>
<version>
1.1.3
</version>
</dependency>
<!-- Swagger API文档 -->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
2.9.2
</version>
<exclusions>
<exclusion>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-annotations
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-models
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.9.2
</version>
</dependency>
<dependency>
<groupId>
com.github.xiaoymin
</groupId>
<artifactId>
swagger-bootstrap-ui
</artifactId>
<version>
1.9.6
</version>
</dependency>
<!-- # 增加两个配置解决 NumberFormatException -->
<dependency>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-annotations
</artifactId>
<version>
1.5.22
</version>
</dependency>
<dependency>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-models
</artifactId>
<version>
1.5.22
</version>
</dependency>
<dependency>
<groupId>
net.sf.json-lib
</groupId>
<artifactId>
json-lib
</artifactId>
<version>
2.2.3
</version>
<classifier>
jdk15
</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
2.0.5.RELEASE
</version>
<!--加入下面两项配置后,maven打包时才会把第三方jar包一起打入-->
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>
true
</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
</project>
src/main/java/com/santos/iost/Application.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
;
import
lombok.extern.slf4j.Slf4j
;
//import org.mybatis.spring.annotation.MapperScan;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.boot.web.servlet.support.SpringBootServletInitializer
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.core.env.Environment
;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
@SpringBootApplication
@Slf4j
@EnableAutoConfiguration
(
exclude
={
DataSourceAutoConfiguration
.
class
})
public
class
Application
extends
SpringBootServletInitializer
{
@Override
protected
SpringApplicationBuilder
configure
(
SpringApplicationBuilder
application
)
{
return
application
.
sources
(
Application
.
class
);
}
public
static
void
main
(
String
[]
args
)
throws
UnknownHostException
{
ConfigurableApplicationContext
application
=
SpringApplication
.
run
(
Application
.
class
,
args
);
Environment
env
=
application
.
getEnvironment
();
String
ip
=
InetAddress
.
getLocalHost
().
getHostAddress
();
String
port
=
env
.
getProperty
(
"server.port"
);
String
path
=
ConvertUtils
.
getString
(
env
.
getProperty
(
"server.servlet.context-path"
));
log
.
info
(
"\n----------------------------------------------------------\n\t"
+
"Application wmssystem is running! Access URLs:\n\t"
+
"Local: \t\thttp://localhost:"
+
port
+
path
+
"/\n\t"
+
"External: \thttp://"
+
ip
+
":"
+
port
+
path
+
"/\n\t"
+
"----------------------------------------------------------"
);
}
}
src/main/java/com/santos/iost/ConvertUtils.java
0 → 100644
浏览文件 @
93160438
差异被折叠。
点击展开。
src/main/java/com/santos/iost/Exception/ConnectConstant/Constant.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
Exception
.
ConnectConstant
;
public
interface
Constant
{
String
URL
=
"连接的服务器地址异常"
;
String
PORT
=
"连接服务器的端口异常"
;
}
src/main/java/com/santos/iost/Exception/GlobalExceptionHandler.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
Exception
;
import
com.santos.iost.dto.Result
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.servlet.http.HttpServletRequest
;
@ControllerAdvice
public
class
GlobalExceptionHandler
{
/*索斯异常*/
@ResponseBody
@ExceptionHandler
(
SoSsRequestException
.
class
)
public
Result
soSsRequestException
(
HttpServletRequest
req
,
SoSsRequestException
e
)
{
/* Result r=new Result();
r.setResult(e.getResult());*/
return
Result
.
fail
(
e
.
getMessage
(),
e
.
getResult
(),
e
.
getCode
());
}
// /*索斯异常*/
// @ResponseBody
// @ExceptionHandler(RuntimeException.class)
// public Result RuntimeException(HttpServletRequest req, RuntimeException e)
// {
// /* Result r=new Result();
// r.setResult(e.getResult());*/
// return Result.fail(e.getMessage(),e.get,e.getCode());
// }
}
src/main/java/com/santos/iost/Exception/SoSsRequestException.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
Exception
;
import
lombok.Data
;
/*索斯访问异常异常*/
@Data
public
class
SoSsRequestException
extends
RuntimeException
{
public
String
result
;
public
String
code
;
public
SoSsRequestException
(
String
message
,
String
result
,
String
code
)
{
super
(
message
);
this
.
result
=
result
;
this
.
code
=
code
;
}
public
String
getResult
()
{
return
result
;
}
public
void
setResult
(
String
result
)
{
this
.
result
=
result
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
}
src/main/java/com/santos/iost/TimeTask/SynTimed.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
TimeTask
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.santos.iost.dao.SoSsDao
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.text.ParseException
;
@Slf4j
@Component
@EnableScheduling
public
class
SynTimed
{
@Autowired
SoSsDao
soSsDao
;
/*自动登录定时任务40分钟执行一次*/
@Scheduled
(
fixedDelay
=
1000
*
60
*
30
)
public
void
timed
()
throws
IOException
,
ParseException
{
System
.
out
.
println
(
"更新token"
);
soSsDao
.
init
();
}
//可以使用页面上的任务来控制方法
}
src/main/java/com/santos/iost/common/CommonConstant.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
common
;
public
interface
CommonConstant
{
/**
* 正常状态
*/
public
static
final
Integer
STATUS_NORMAL
=
0
;
/**
* 禁用状态
*/
public
static
final
Integer
STATUS_DISABLE
=
-
1
;
/**
* 删除标志
*/
public
static
final
Integer
DEL_FLAG_1
=
1
;
/**
* 未删除
*/
public
static
final
Integer
DEL_FLAG_0
=
0
;
/**
* 系统日志类型: 登录
*/
public
static
final
int
LOG_TYPE_1
=
1
;
/**
* 系统日志类型: 操作
*/
public
static
final
int
LOG_TYPE_2
=
2
;
/**
* 操作日志类型: 查询
*/
public
static
final
int
OPERATE_TYPE_1
=
1
;
/**
* 操作日志类型: 添加
*/
public
static
final
int
OPERATE_TYPE_2
=
2
;
/**
* 操作日志类型: 更新
*/
public
static
final
int
OPERATE_TYPE_3
=
3
;
/**
* 操作日志类型: 删除
*/
public
static
final
int
OPERATE_TYPE_4
=
4
;
/**
* 操作日志类型: 倒入
*/
public
static
final
int
OPERATE_TYPE_5
=
5
;
/**
* 操作日志类型: 导出
*/
public
static
final
int
OPERATE_TYPE_6
=
6
;
/** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */
public
static
final
Integer
SC_INTERNAL_SERVER_ERROR_500
=
500
;
/** {@code 200 OK} (HTTP/1.0 - RFC 1945) */
public
static
final
Integer
SC_OK_200
=
200
;
/**访问权限认证未通过 510*/
public
static
final
Integer
SC_JEECG_NO_AUTHZ
=
510
;
/** 登录用户Shiro权限缓存KEY前缀 */
public
static
String
PREFIX_USER_SHIRO_CACHE
=
"shiro:cache:org.jeecg.config.shiro.ShiroRealm.authorizationCache:"
;
/** 登录用户Token令牌缓存KEY前缀 */
public
static
final
String
PREFIX_USER_TOKEN
=
"prefix_user_token_"
;
/** Token缓存时间:3600秒即一小时 */
public
static
final
int
TOKEN_EXPIRE_TIME
=
3600
;
/**
* 0:一级菜单
*/
public
static
final
Integer
MENU_TYPE_0
=
0
;
/**
* 1:子菜单
*/
public
static
final
Integer
MENU_TYPE_1
=
1
;
/**
* 2:按钮权限
*/
public
static
final
Integer
MENU_TYPE_2
=
2
;
/**通告对象类型(USER:指定用户,ALL:全体用户)*/
public
static
final
String
MSG_TYPE_UESR
=
"USER"
;
public
static
final
String
MSG_TYPE_ALL
=
"ALL"
;
/**发布状态(0未发布,1已发布,2已撤销)*/
public
static
final
String
NO_SEND
=
"0"
;
public
static
final
String
HAS_SEND
=
"1"
;
public
static
final
String
HAS_CANCLE
=
"2"
;
/**阅读状态(0未读,1已读)*/
public
static
final
String
HAS_READ_FLAG
=
"1"
;
public
static
final
String
NO_READ_FLAG
=
"0"
;
/**优先级(L低,M中,H高)*/
public
static
final
String
PRIORITY_L
=
"L"
;
public
static
final
String
PRIORITY_M
=
"M"
;
public
static
final
String
PRIORITY_H
=
"H"
;
/**
* 短信模板方式 0 .登录模板、1.注册模板、2.忘记密码模板
*/
public
static
final
String
SMS_TPL_TYPE_0
=
"0"
;
public
static
final
String
SMS_TPL_TYPE_1
=
"1"
;
public
static
final
String
SMS_TPL_TYPE_2
=
"2"
;
/**
* 状态(0无效1有效)
*/
public
static
final
String
STATUS_0
=
"0"
;
public
static
final
String
STATUS_1
=
"1"
;
/**
* 同步工作流引擎1同步0不同步
*/
public
static
final
Integer
ACT_SYNC_1
=
1
;
public
static
final
Integer
ACT_SYNC_0
=
0
;
/**
* 消息类型1:通知公告2:系统消息
*/
public
static
final
String
MSG_CATEGORY_1
=
"1"
;
public
static
final
String
MSG_CATEGORY_2
=
"2"
;
/**
* 是否配置菜单的数据权限 1是0否
*/
public
static
final
Integer
RULE_FLAG_0
=
0
;
public
static
final
Integer
RULE_FLAG_1
=
1
;
/**
* 是否用户已被冻结 1正常(解冻) 2冻结
*/
public
static
final
Integer
USER_UNFREEZE
=
1
;
public
static
final
Integer
USER_FREEZE
=
2
;
/**字典翻译文本后缀*/
public
static
final
String
DICT_TEXT_SUFFIX
=
"_dictText"
;
/**
* 表单设计器主表类型
*/
public
static
final
Integer
DESIGN_FORM_TYPE_MAIN
=
1
;
/**
* 表单设计器子表表类型
*/
public
static
final
Integer
DESIGN_FORM_TYPE_SUB
=
2
;
/**
* 表单设计器URL授权通过
*/
public
static
final
Integer
DESIGN_FORM_URL_STATUS_PASSED
=
1
;
/**
* 表单设计器URL授权未通过
*/
public
static
final
Integer
DESIGN_FORM_URL_STATUS_NOT_PASSED
=
2
;
/**
* 表单设计器新增 Flag
*/
public
static
final
String
DESIGN_FORM_URL_TYPE_ADD
=
"add"
;
/**
* 表单设计器修改 Flag
*/
public
static
final
String
DESIGN_FORM_URL_TYPE_EDIT
=
"edit"
;
/**
* 表单设计器详情 Flag
*/
public
static
final
String
DESIGN_FORM_URL_TYPE_DETAIL
=
"detail"
;
/**
* 表单设计器复用数据 Flag
*/
public
static
final
String
DESIGN_FORM_URL_TYPE_REUSE
=
"reuse"
;
/**
* 表单设计器编辑 Flag (已弃用)
*/
public
static
final
String
DESIGN_FORM_URL_TYPE_VIEW
=
"view"
;
/**
* online参数值设置(是:Y, 否:N)
*/
public
static
final
String
ONLINE_PARAM_VAL_IS_TURE
=
"Y"
;
public
static
final
String
ONLINE_PARAM_VAL_IS_FALSE
=
"N"
;
/**
* 文件上传类型(本地:local,Minio:minio,阿里云:alioss)
*/
public
static
final
String
UPLOAD_TYPE_LOCAL
=
"local"
;
public
static
final
String
UPLOAD_TYPE_MINIO
=
"minio"
;
public
static
final
String
UPLOAD_TYPE_OSS
=
"alioss"
;
/**
* 文档上传自定义桶名称
*/
public
static
final
String
UPLOAD_CUSTOM_BUCKET
=
"eoafile"
;
/**
* 文档上传自定义路径
*/
public
static
final
String
UPLOAD_CUSTOM_PATH
=
"eoafile"
;
/**
* 文件外链接有效天数
*/
public
static
final
Integer
UPLOAD_EFFECTIVE_DAYS
=
1
;
/**
* 员工身份 (1:普通员工 2:上级)
*/
public
static
final
Integer
USER_IDENTITY_1
=
1
;
public
static
final
Integer
USER_IDENTITY_2
=
2
;
/** sys_user 表 username 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_SYS_USER_USERNAME
=
"uniq_sys_user_username"
;
/** sys_user 表 work_no 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_SYS_USER_WORK_NO
=
"uniq_sys_user_work_no"
;
/** sys_user 表 phone 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_SYS_USER_PHONE
=
"uniq_sys_user_phone"
;
/** sys_user 表 email 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_SYS_USER_EMAIL
=
"uniq_sys_user_email"
;
/** sys_quartz_job 表 job_class_name 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_JOB_CLASS_NAME
=
"uniq_job_class_name"
;
/** sys_position 表 code 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_CODE
=
"uniq_code"
;
/** sys_role 表 code 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_SYS_ROLE_CODE
=
"uniq_sys_role_role_code"
;
/** sys_depart 表 code 唯一键索引 */
public
static
final
String
SQL_INDEX_UNIQ_DEPART_ORG_CODE
=
"uniq_depart_org_code"
;
/**
* 在线聊天 是否为默认分组
*/
public
static
final
String
IM_DEFAULT_GROUP
=
"1"
;
/**
* 在线聊天 图片文件保存路径
*/
public
static
final
String
IM_UPLOAD_CUSTOM_PATH
=
"imfile"
;
/**
* 在线聊天 用户状态
*/
public
static
final
String
IM_STATUS_ONLINE
=
"online"
;
/**
* 在线聊天 SOCKET消息类型
*/
public
static
final
String
IM_SOCKET_TYPE
=
"chatMessage"
;
/**
* 在线聊天 是否开启默认添加好友 1是 0否
*/
public
static
final
String
IM_DEFAULT_ADD_FRIEND
=
"1"
;
/**
* 在线聊天 用户好友缓存前缀
*/
public
static
final
String
IM_PREFIX_USER_FRIEND_CACHE
=
"im_prefix_user_friend_"
;
/**
* 考勤补卡业务状态 (1:同意 2:不同意)
*/
public
static
final
String
SIGN_PATCH_BIZ_STATUS_1
=
"1"
;
public
static
final
String
SIGN_PATCH_BIZ_STATUS_2
=
"2"
;
/**
* 公文文档上传自定义路径
*/
public
static
final
String
UPLOAD_CUSTOM_PATH_OFFICIAL
=
"officialdoc"
;
/**
* 公文文档下载自定义路径
*/
public
static
final
String
DOWNLOAD_CUSTOM_PATH_OFFICIAL
=
"officaldown"
;
/**
* WPS存储值类别(1 code文号 2 text(WPS模板还是公文发文模板))
*/
public
static
final
String
WPS_TYPE_1
=
"1"
;
public
static
final
String
WPS_TYPE_2
=
"2"
;
public
final
static
String
X_ACCESS_TOKEN
=
"X-Access-Token"
;
/**
* 多租户 请求头
*/
public
final
static
String
TENANT_ID
=
"tenant_id"
;
/**
* 微服务读取配置文件属性 服务地址
*/
public
final
static
String
CLOUD_SERVER_KEY
=
"spring.cloud.nacos.discovery.server-addr"
;
/**
* 第三方登录 验证密码/创建用户 都需要设置一个操作码 防止被恶意调用
*/
public
final
static
String
THIRD_LOGIN_CODE
=
"third_login_code"
;
}
src/main/java/com/santos/iost/controller/WebApi.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.parser.Feature
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
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.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.util.TextUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
* @Description: 第三方通用接口
* @Author: jeecg-boot
* @Date: 2021-12-02
* @Version: V1.0
*/
@RestController
//@RequestMapping("/api")
@Slf4j
public
class
WebApi
{
@Autowired
SoSsMaterialServer
materialServer
;
@Autowired
SpSsSalesOrderService
salesOrderService
;
@ApiOperation
(
value
=
"查询通用接口"
,
notes
=
"查询通用接口"
)
@GetMapping
(
value
=
"/queryMasterBatch"
)
public
Result
<?>
GetData
(
SoSsRequestVo
soSsRequestVo
)
throws
Exception
{
checkRequest
(
soSsRequestVo
);
Result
result
=
new
Result
();
try
{
if
(
null
==
soSsRequestVo
.
getObjAPIName
())
{
return
Result
.
fail
(
"操作失败"
,
"apiName不可为空"
,
"500"
);
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
SoSsMaterialServer
.
apiName
))
{
result
=
materialServer
.
getData
(
soSsRequestVo
);
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
SpSsSalesOrderService
.
apiName
))
{
result
=
salesOrderService
.
getData
(
soSsRequestVo
);
}
else
{
return
Result
.
fail
(
"操作失败"
,
soSsRequestVo
.
getObjAPIName
()
+
"不存在"
,
"406"
);
}
}
finally
{
}
return
result
;
}
//检查ERM日期是否可用作过滤条件
void
checkRequest
(
SoSsRequestVo
soSsRequestVo
)
{
// 时间字段检查
if
(
null
==
soSsRequestVo
.
getStartTime
()
&&
null
==
soSsRequestVo
.
getEndTime
())
{
}
else
if
(
null
==
soSsRequestVo
.
getStartTime
()
||
null
==
soSsRequestVo
.
getEndTime
())
{
throw
new
SoSsRequestException
(
"操作失败!"
,
"起止时间为空"
,
"500"
);
}
else
if
(
StringUtil
.
isNumber
(
soSsRequestVo
.
getStartTime
())
&&
StringUtil
.
isNumber
(
soSsRequestVo
.
getEndTime
()))
{
if
(
Integer
.
parseInt
(
soSsRequestVo
.
getStartTime
())
>
Integer
.
parseInt
(
soSsRequestVo
.
getEndTime
()))
throw
new
SoSsRequestException
(
"操作失败!"
,
"开始时间大于结束时间"
,
"500"
);
}
else
{
throw
new
SoSsRequestException
(
"操作失败!"
,
"startTime以及endTime字段请使用 unix 时间戳填写,单位毫秒"
,
"500"
);
}
//分页用字段检查
if
(
null
==
soSsRequestVo
.
getLimit
())
{
throw
new
SoSsRequestException
(
"操作失败!"
,
"limit不允许为空"
,
"201"
);
}
if
(
soSsRequestVo
.
getLimit
()
<=
0
)
{
throw
new
SoSsRequestException
(
"操作失败!"
,
"limit不可小于或等于0"
,
"201"
);
}
}
public
static
String
TimeStamp2Date
(
String
timestampString
,
String
formats
)
{
if
(
TextUtils
.
isEmpty
(
formats
))
formats
=
"yyyy-MM-dd HH:mm:ss"
;
Long
timestamp
=
Long
.
parseLong
(
timestampString
)
*
1000
;
String
date
=
new
SimpleDateFormat
(
formats
,
Locale
.
CHINA
).
format
(
new
Date
(
timestamp
));
return
date
;
}
/*List<Map<String,Object>>转换Map<String,Object>*/
public
Map
<
String
,
Object
>
change
(
List
<
Map
<
String
,
Object
>>
data
)
{
Map
<
String
,
Object
>
maps
=
new
HashMap
<>();
for
(
Map
<
String
,
Object
>
datum
:
data
)
{
for
(
String
s
:
datum
.
keySet
())
{
maps
.
put
(
s
,
datum
.
get
(
s
));
}
}
return
maps
;
}
}
src/main/java/com/santos/iost/dao/SoSsDao.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
dao
;
import
com.alibaba.fastjson.JSON
;
import
com.santos.iost.utils.HttpUtil
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
java.io.IOException
;
import
java.util.HashMap
;
import
java.util.Map
;
@Component
public
class
SoSsDao
{
public
String
getTokenUrl
=
"http://123.58.109.39:86/K3API/Token/Create?authorityCode=606d25b51be50949e768241934225bc05bfd6db0bae63e82"
;
String
requestUrl
=
"http://123.58.109.39:86"
;
public
static
String
token
;
Map
<
String
,
String
>
hreader
=
new
HashMap
<>();
// @PostConstruct
public
void
init
()
throws
IOException
{
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
);
this
.
token
=
mapDate
.
get
(
"Token"
).
toString
();
System
.
out
.
println
(
token
);
}
public
SoSsDao
()
throws
Exception
{
this
.
hreader
.
put
(
"Content-Type"
,
"application/json"
);
}
//请求主体
public
String
requestK3Api
(
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
{
System
.
out
.
println
(
"====Detail====="
+
paramsMap
+
"====Detail===="
);
String
post
=
HttpUtil
.
post
(
requestUrl
+
getMaterialUrl
+
"?token="
+
token
,
paramsMap
,
hreader
);
// System.out.println(token);
// System.out.println("================response=============="+post+"=================response===================");
return
post
;
}
}
src/main/java/com/santos/iost/dto/Result.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
dto
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.santos.iost.common.CommonConstant
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* 接口返回数据格式
* @author scott
* @email jeecgos@163.com
* @date 2019年1月19日
*/
@Data
@ApiModel
(
value
=
"接口返回对象"
,
description
=
"接口返回对象"
)
public
class
Result
<
T
>
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 返回代码
*/
@ApiModelProperty
(
value
=
"返回代码"
)
private
String
code
;
/**
* 返回处理消息
*/
@ApiModelProperty
(
value
=
"返回处理消息"
)
private
String
message
=
"操作成功!"
;
/**
* 返回数据对象 data
*/
@ApiModelProperty
(
value
=
"返回数据对象"
)
private
T
data
;
/**
* 时间戳
*/
@ApiModelProperty
(
value
=
"时间戳"
)
private
long
timestamp
=
System
.
currentTimeMillis
();
public
Result
()
{
}
public
Result
<
T
>
success
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_OK_200
.
toString
();
return
this
;
}
@Deprecated
public
static
Result
<
Object
>
ok
()
{
Result
<
Object
>
r
=
new
Result
<
Object
>();
r
.
setCode
(
CommonConstant
.
SC_OK_200
.
toString
());
r
.
setMessage
(
"成功"
);
return
r
;
}
@Deprecated
public
static
Result
<
Object
>
ok
(
String
msg
)
{
Result
<
Object
>
r
=
new
Result
<
Object
>();
r
.
setCode
(
CommonConstant
.
SC_OK_200
.
toString
());
r
.
setMessage
(
msg
);
return
r
;
}
@Deprecated
public
static
Result
<
Object
>
ok
(
Object
data
)
{
Result
<
Object
>
r
=
new
Result
<
Object
>();
r
.
setCode
(
CommonConstant
.
SC_OK_200
.
toString
());
r
.
setData
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
()
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
CommonConstant
.
SC_OK_200
.
toString
());
r
.
setMessage
(
"成功"
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
(
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
CommonConstant
.
SC_OK_200
.
toString
());
r
.
setData
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OKMSG
(
String
msg
,
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
CommonConstant
.
SC_OK_200
.
toString
());
r
.
setMessage
(
msg
);
r
.
setData
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
fail
(
String
msg
,
T
data
,
String
Code
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
Code
);
r
.
setMessage
(
msg
);
r
.
setData
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
(
T
data
,
String
code
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
code
);
r
.
setMessage
(
"操作成功"
);
r
.
setData
(
data
);
return
r
;
}
public
static
Result
<
Object
>
error
(
String
msg
)
{
return
error
(
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
.
toString
(),
msg
);
}
public
static
Result
<
Object
>
error
(
String
code
,
String
msg
)
{
Result
<
Object
>
r
=
new
Result
<
Object
>();
r
.
setCode
(
code
);
r
.
setMessage
(
msg
);
return
r
;
}
public
Result
<
T
>
error500
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
.
toString
();
return
this
;
}
public
Result
<
T
>
SoSsOk
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
.
toString
();
return
this
;
}
/**
* 无权限访问返回结果
*/
public
static
Result
<
Object
>
noauth
(
String
msg
)
{
return
error
(
CommonConstant
.
SC_JEECG_NO_AUTHZ
.
toString
(),
msg
);
}
@JsonIgnore
private
String
onlTable
;
}
\ No newline at end of file
src/main/java/com/santos/iost/dto/SoSsRequestData.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
dto
;
import
lombok.Data
;
@Data
public
class
SoSsRequestData
{
String
Top
;
String
PageSize
;
String
PageIndex
;
String
Filter
;
String
OrderBy
;
String
Fields
;
}
src/main/java/com/santos/iost/dto/SoSsResponseDate.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
dto
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
SoSsResponseDate
{
public
String
StatusCode
;
public
String
Message
;
public
Object
Data
;
}
src/main/java/com/santos/iost/service/SoSsMaterialServer.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
service
;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
public
interface
SoSsMaterialServer
{
String
apiName
=
"Material"
;
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
);
}
src/main/java/com/santos/iost/service/SpSsSalesOrderService.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
service
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.vo.SoSsRequestVo
;
public
interface
SpSsSalesOrderService
{
String
apiName
=
"SO"
;
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
);
}
src/main/java/com/santos/iost/service/impl/SoSsMaterialServerImpl.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.parser.Feature
;
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.utils.JsonUtil
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
jdk.nashorn.internal.codegen.CompilerConstants
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
public
class
SoSsMaterialServerImpl
implements
SoSsMaterialServer
{
@Autowired
SoSsDao
soSsDao
;
String
Url
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String
fields
;
//需要查询出的字段
/**
* 请求字段
*/
String
FNumber
=
"FNumber"
;
String
FName
=
"FName"
;
String
F_101
=
"F_101"
;
String
FSalePrice
=
"FSalePrice"
;
String
FUnitID
=
"FUnitID"
;
String
FUnitID_FName
=
"FUnitID_FName"
;
String
FUnitID_FNumber
=
"FUnitID_FNumber"
;
String
FTypeID
=
"FTypeID"
;
String
FTypeID_FID
=
"FTypeID_FID"
;
String
FTypeID_FName
=
"FTypeID_FName"
;
public
SoSsMaterialServerImpl
()
{
// this.apiName = "Material";
this
.
Url
=
"/K3API/Material/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
)
{
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
);
//
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"
,
""
);
//过滤条件
}
Data
.
put
(
"OrderBy"
,
"FNumber asc"
);
//排序规则
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
;
}
/*转换*/
public
Result
changeResponse
(
SoSsResponseDate
soSsRequestVo
)
{
Map
<
Object
,
Object
>
map
=
new
HashMap
<>();
Result
result
=
new
Result
();
try
{
//字段转换-变化soSsRequestVo的data参数格式 为CRM规定格式
List
dataList
=
new
ArrayList
<>();
Map
data
=
(
Map
)
soSsRequestVo
.
getData
();
Object
data1
=
data
.
get
(
"Data"
);
List
list
=
JSON
.
parseObject
(
data1
.
toString
(),
List
.
class
,
Feature
.
OrderedField
);
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"productCode"
,
listDateMap
.
get
(
FNumber
));
//产品编码
masterFieldVal
.
put
(
"productName"
,
listDateMap
.
get
(
FName
));
//产品名称
masterFieldVal
.
put
(
"remarks"
,
listDateMap
.
get
(
F_101
));
//备注
masterFieldVal
.
put
(
"company"
,
listDateMap
.
get
(
FUnitID_FNumber
));
//单位
masterFieldVal
.
put
(
"standardPrice"
,
listDateMap
.
get
(
FSalePrice
));
//标准价格
masterFieldVal
.
put
(
"classification"
,
listDateMap
.
get
(
FTypeID_FID
));
//分类
masterField
.
put
(
"masterFieldVal"
,
masterFieldVal
);
dataList
.
add
(
masterField
);
}
map
.
put
(
"totalNum"
,
data
.
get
(
"RowCount"
));
map
.
put
(
"dataList"
,
dataList
);
soSsRequestVo
.
setData
(
map
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
//将ERP格式变换为CRM格式
result
.
setMessage
(
soSsRequestVo
.
getMessage
());
result
.
setCode
(
soSsRequestVo
.
getStatusCode
());
result
.
setData
(
soSsRequestVo
.
getData
());
return
result
;
}
}
src/main/java/com/santos/iost/service/impl/SpSsSalesOrderServiceImpl.java
0 → 100644
浏览文件 @
93160438
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.SpSsSalesOrderService
;
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
SpSsSalesOrderServiceImpl
implements
SpSsSalesOrderService
{
@Autowired
SoSsDao
soSsDao
;
String
Url
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String
includeDetailUrl
;
String
fields
;
//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String
FCustID_DSPName
=
"FCustID_DSPName"
;
//客户名称
String
FHeadSelfS0166
=
"FHeadSelfS0166"
;
//整单价税合计
String
FBillNo
=
"FBillNo"
;
//编号
String
FHeadSelfS0157
=
"FHeadSelfS0157"
;
//客户订单编号
String
Fdate
=
"Fdate"
;
//日期
/**
* K3金蝶方请求字段-明细字段
*/
String
FItemID
=
"FItemID"
;
//产品代码
String
Fauxqty
=
"Fauxqty"
;
//数量
String
FEntrySelfS0170
=
"FEntrySelfS0170"
;
//运输方式
String
FAdviceConsignDate
=
"FAdviceConsignDate"
;
//建议交货日期
String
FDate1
=
"FDate1"
;
//交货日期
String
FEntrySelfS0163
=
"FEntrySelfS0163"
;
//中文描述
String
FUnitID
=
"FUnitID"
;
//单位
String
FAuxPriceDiscount
=
"FAuxPriceDiscount"
;
//实际含税单价
String
FAllAmount
=
"FAllAmount"
;
//价税合计
public
SpSsSalesOrderServiceImpl
()
{
this
.
Url
=
"/K3API/SO/GetList"
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this
.
includeDetailUrl
=
"/K3API/SO/GetDetail"
;
this
.
fields
=
"FHeadSelfS0166,FHeadSelfS0157,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"
,
"100"
);
//返回行数
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
"["
+
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
(
FCustID_DSPName
));
//客户名称
masterFieldVal
.
put
(
"salesOrderAmount"
,
listDateMap
.
get
(
FHeadSelfS0166
));
//销售订单金额
masterFieldVal
.
put
(
"erpSystemNumber"
,
listDateMap
.
get
(
FBillNo
));
//erp系统编号
masterFieldVal
.
put
(
"customerOrderNumber"
,
listDateMap
.
get
(
FHeadSelfS0157
));
//客户订单编号
masterFieldVal
.
put
(
"orderDate"
,
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
(
FCustID_DSPName
));
//客户名称
masterFieldVal
.
put
(
"salesOrderAmount"
,
listDateMap
.
get
(
FHeadSelfS0166
));
//销售订单金额
masterFieldVal
.
put
(
"erpSystemNumber"
,
listDateMap
.
get
(
FBillNo
));
//erp系统编号
masterFieldVal
.
put
(
"customerOrderNumber"
,
listDateMap
.
get
(
FHeadSelfS0157
));
//客户订单编号
masterFieldVal
.
put
(
"orderDate"
,
listDateMap
.
get
(
Fdate
));
//下单日期
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
(
"productNumber"
,
JSONObject
.
fromObject
(
listDateMap
.
get
(
FItemID
)).
get
(
"FNumber"
));
//产品编号
map
.
put
(
"quantity"
,
listDateMap
.
get
(
Fauxqty
));
//数量
map
.
put
(
"transportTypeNumber"
,
JSONObject
.
fromObject
(
listDateMap
.
get
(
FEntrySelfS0170
)).
get
(
"FNumber"
));
//运输方式
map
.
put
(
"suggestedDeliveryDate"
,
listDateMap
.
get
(
FAdviceConsignDate
));
//建议交货日期
map
.
put
(
"deliveryDate"
,
listDateMap
.
get
(
FDate1
));
//交货日期
map
.
put
(
"chineseDescription"
,
listDateMap
.
get
(
FEntrySelfS0163
));
//中文描述
map
.
put
(
"companyNumber"
,
JSONObject
.
fromObject
(
listDateMap
.
get
(
FUnitID
)).
get
(
"FNumber"
));
//单位
map
.
put
(
"actualUnitPriceIncludingTax"
,
listDateMap
.
get
(
FAuxPriceDiscount
));
//实际含税单价
map
.
put
(
"totalPriceAndTax"
,
listDateMap
.
get
(
FAllAmount
));
//价税合计
returnDate
.
put
(
apiName
+
i
,
new
ArrayList
<
Map
>()
{{
add
(
map
);
}});
i
++;
}
}
else
{
}
}
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
;
}
}
src/main/java/com/santos/iost/utils/HttpUtil.java
0 → 100644
浏览文件 @
93160438
差异被折叠。
点击展开。
src/main/java/com/santos/iost/utils/HttpUtils.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
utils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.ParseException
;
import
org.apache.http.client.ClientProtocolException
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.config.ConnectionConfig
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.config.SocketConfig
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.LayeredConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLContexts
;
import
org.apache.http.conn.ssl.TrustStrategy
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.apache.http.message.BasicHeader
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.apache.http.util.EntityUtils
;
import
javax.net.ssl.SSLContext
;
import
java.io.IOException
;
import
java.nio.charset.Charset
;
import
java.security.KeyManagementException
;
import
java.security.KeyStore
;
import
java.security.KeyStoreException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.cert.CertificateException
;
import
java.security.cert.X509Certificate
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map.Entry
;
/**
* <p>类名: HttpUtils</p>
* <p>描述: http请求工具类</p>
* <p>修改时间: 2019年04月30日 上午10:12:35</p>
*
* @author lidongyang
*/
public
class
HttpUtils
{
public
static
String
defaultEncoding
=
"utf-8"
;
/**
* 发送http post请求,并返回响应实体
*
* @param url 请求地址
* @return url响应实体
*/
public
static
String
postRequest
(
String
url
)
{
return
postRequest
(
url
,
null
,
null
);
}
/**
* <p>方法名: postRequest</p>
* <p>描述: 发送httpPost请求</p>
*
* @param url
* @param params
* @return
*/
public
static
String
postRequest
(
String
url
,
Map
<
String
,
Object
>
params
)
{
return
postRequest
(
url
,
null
,
params
);
}
/**
* 发送http post请求,并返回响应实体
*
* @param url 访问的url
* @param headers 请求需要添加的请求头
* @param params 请求参数
* @return
*/
public
static
String
postRequest
(
String
url
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
Object
>
params
)
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
buildHttpClient
();
HttpPost
httpPost
=
new
HttpPost
(
url
);
if
(
null
!=
headers
&&
headers
.
size
()
>
0
)
{
for
(
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
String
key
=
entry
.
getKey
();
String
value
=
entry
.
getValue
();
httpPost
.
addHeader
(
new
BasicHeader
(
key
,
value
));
}
}
if
(
null
!=
params
&&
params
.
size
()
>
0
)
{
List
<
NameValuePair
>
pairList
=
new
ArrayList
<
NameValuePair
>(
params
.
size
());
for
(
Entry
<
String
,
Object
>
entry
:
params
.
entrySet
())
{
NameValuePair
pair
=
new
BasicNameValuePair
(
entry
.
getKey
(),
entry
.
getValue
().
toString
());
pairList
.
add
(
pair
);
}
httpPost
.
setEntity
(
new
UrlEncodedFormEntity
(
pairList
,
Charset
.
forName
(
defaultEncoding
)));
}
try
{
CloseableHttpResponse
response
=
httpClient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
if
(
entity
!=
null
)
{
result
=
EntityUtils
.
toString
(
entity
,
Charset
.
forName
(
defaultEncoding
));
}
}
finally
{
response
.
close
();
}
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
result
;
}
/**
* 发送http get请求
*
* @param url 请求url
* @return url返回内容
*/
public
static
String
getRequest
(
String
url
)
{
return
getRequest
(
url
,
null
);
}
/**
* 发送http get请求
*
* @param url 请求的url
* @param params 请求的参数
* @return
*/
public
static
String
getRequest
(
String
url
,
Map
<
String
,
Object
>
params
)
{
return
getRequest
(
url
,
null
,
params
);
}
/**
* 发送http get请求
*
* @param url 请求的url
* @param headersMap 请求头
* @param params 请求的参数
* @return
*/
public
static
String
getRequest
(
String
url
,
Map
<
String
,
String
>
headersMap
,
Map
<
String
,
Object
>
params
)
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
buildHttpClient
();
try
{
String
apiUrl
=
url
;
if
(
null
!=
params
&&
params
.
size
()
>
0
)
{
StringBuffer
param
=
new
StringBuffer
();
int
i
=
0
;
for
(
String
key
:
params
.
keySet
())
{
if
(
i
==
0
)
param
.
append
(
"?"
);
else
param
.
append
(
"&"
);
param
.
append
(
key
).
append
(
"="
).
append
(
params
.
get
(
key
));
i
++;
}
apiUrl
+=
param
;
}
HttpGet
httpGet
=
new
HttpGet
(
apiUrl
);
if
(
null
!=
headersMap
&&
headersMap
.
size
()
>
0
)
{
for
(
Entry
<
String
,
String
>
entry
:
headersMap
.
entrySet
())
{
String
key
=
entry
.
getKey
();
String
value
=
entry
.
getValue
();
httpGet
.
addHeader
(
new
BasicHeader
(
key
,
value
));
}
}
CloseableHttpResponse
response
=
httpClient
.
execute
(
httpGet
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
if
(
null
!=
entity
)
{
result
=
EntityUtils
.
toString
(
entity
,
defaultEncoding
);
}
}
finally
{
response
.
close
();
}
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
result
;
}
/**
* 创建httpclient
*
* @return
*/
public
static
CloseableHttpClient
buildHttpClient
()
{
try
{
RegistryBuilder
<
ConnectionSocketFactory
>
builder
=
RegistryBuilder
.
create
();
ConnectionSocketFactory
factory
=
new
PlainConnectionSocketFactory
();
builder
.
register
(
"http"
,
factory
);
KeyStore
trustStore
=
KeyStore
.
getInstance
(
KeyStore
.
getDefaultType
());
SSLContext
context
=
SSLContexts
.
custom
().
useTLS
()
.
loadTrustMaterial
(
trustStore
,
new
TrustStrategy
()
{
public
boolean
isTrusted
(
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
return
true
;
}
}).
build
();
LayeredConnectionSocketFactory
sslFactory
=
new
SSLConnectionSocketFactory
(
context
,
SSLConnectionSocketFactory
.
ALLOW_ALL_HOSTNAME_VERIFIER
);
builder
.
register
(
"https"
,
sslFactory
);
Registry
<
ConnectionSocketFactory
>
registry
=
builder
.
build
();
PoolingHttpClientConnectionManager
manager
=
new
PoolingHttpClientConnectionManager
(
registry
);
ConnectionConfig
connConfig
=
ConnectionConfig
.
custom
()
.
setCharset
(
Charset
.
forName
(
defaultEncoding
)).
build
();
SocketConfig
socketConfig
=
SocketConfig
.
custom
()
.
setSoTimeout
(
100000
).
build
();
manager
.
setDefaultConnectionConfig
(
connConfig
);
manager
.
setDefaultSocketConfig
(
socketConfig
);
return
HttpClientBuilder
.
create
().
setConnectionManager
(
manager
)
.
build
();
}
catch
(
KeyStoreException
e
)
{
e
.
printStackTrace
();
}
catch
(
KeyManagementException
e
)
{
e
.
printStackTrace
();
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
}
\ No newline at end of file
src/main/java/com/santos/iost/utils/JsonUtil.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
utils
;
import
java.beans.IntrospectionException
;
import
java.beans.Introspector
;
import
java.beans.PropertyDescriptor
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* 把不同的数据类型转化成json类型字符串
*/
public
class
JsonUtil
{
public
static
String
Objectjson
(
Object
obj
)
{
StringBuilder
json
=
new
StringBuilder
();
if
(
obj
==
null
)
{
json
.
append
(
"\"\""
);
}
else
if
(
obj
instanceof
String
||
obj
instanceof
Integer
||
obj
instanceof
Float
||
obj
instanceof
Boolean
||
obj
instanceof
Short
||
obj
instanceof
Double
||
obj
instanceof
Long
||
obj
instanceof
BigDecimal
||
obj
instanceof
BigInteger
||
obj
instanceof
Byte
)
{
json
.
append
(
"\""
).
append
(
Stringjson
(
obj
.
toString
())).
append
(
"\""
);
}
else
if
(
obj
instanceof
Object
[])
{
json
.
append
(
array2json
((
Object
[])
obj
));
}
else
if
(
obj
instanceof
List
)
{
json
.
append
(
Listjson
((
List
<?>)
obj
));
}
else
if
(
obj
instanceof
Map
)
{
json
.
append
(
Mapjson
((
Map
<?,
?>)
obj
));
}
else
if
(
obj
instanceof
Set
)
{
json
.
append
(
Setjson
((
Set
<?>)
obj
));
}
else
{
json
.
append
(
bean2json
(
obj
));
}
return
json
.
toString
();
}
public
static
String
Stringjson
(
String
s
)
{
if
(
s
==
null
)
return
""
;
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
s
.
length
();
i
++)
{
char
ch
=
s
.
charAt
(
i
);
switch
(
ch
)
{
case
'"'
:
sb
.
append
(
"\\\""
);
break
;
case
'\\'
:
sb
.
append
(
"\\\\"
);
break
;
case
'\b'
:
sb
.
append
(
"\\b"
);
break
;
case
'\f'
:
sb
.
append
(
"\\f"
);
break
;
case
'\n'
:
sb
.
append
(
"\\n"
);
break
;
case
'\r'
:
sb
.
append
(
"\\r"
);
break
;
case
'\t'
:
sb
.
append
(
"\\t"
);
break
;
case
'/'
:
sb
.
append
(
"\\/"
);
break
;
default
:
if
(
ch
>=
'\u0000'
&&
ch
<=
'\
u001F
'
)
{
String
ss
=
Integer
.
toHexString
(
ch
);
sb
.
append
(
"\\u"
);
for
(
int
k
=
0
;
k
<
4
-
ss
.
length
();
k
++)
{
sb
.
append
(
'0'
);
}
sb
.
append
(
ss
.
toUpperCase
());
}
else
{
sb
.
append
(
ch
);
}
}
}
return
sb
.
toString
();
}
public
static
String
array2json
(
Object
[]
array
)
{
StringBuilder
json
=
new
StringBuilder
();
json
.
append
(
"["
);
if
(
array
!=
null
&&
array
.
length
>
0
)
{
for
(
Object
obj
:
array
)
{
json
.
append
(
Objectjson
(
obj
));
json
.
append
(
","
);
}
json
.
setCharAt
(
json
.
length
()
-
1
,
']'
);
}
else
{
json
.
append
(
"]"
);
}
return
json
.
toString
();
}
public
static
String
Listjson
(
List
<?>
list
)
{
StringBuilder
json
=
new
StringBuilder
();
json
.
append
(
"["
);
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
for
(
Object
obj
:
list
)
{
json
.
append
(
Objectjson
(
obj
));
json
.
append
(
","
);
}
json
.
setCharAt
(
json
.
length
()
-
1
,
']'
);
}
else
{
json
.
append
(
"]"
);
}
return
json
.
toString
();
}
public
static
String
Mapjson
(
Map
<?,
?>
map
)
{
StringBuilder
json
=
new
StringBuilder
();
json
.
append
(
"{"
);
if
(
map
!=
null
&&
map
.
size
()
>
0
)
{
for
(
Object
key
:
map
.
keySet
())
{
json
.
append
(
Objectjson
(
key
));
json
.
append
(
":"
);
json
.
append
(
Objectjson
(
map
.
get
(
key
)));
json
.
append
(
","
);
}
json
.
setCharAt
(
json
.
length
()
-
1
,
'}'
);
}
else
{
json
.
append
(
"}"
);
}
return
json
.
toString
();
}
public
static
String
Setjson
(
Set
<?>
set
)
{
StringBuilder
json
=
new
StringBuilder
();
json
.
append
(
"["
);
if
(
set
!=
null
&&
set
.
size
()
>
0
)
{
for
(
Object
obj
:
set
)
{
json
.
append
(
Objectjson
(
obj
));
json
.
append
(
","
);
}
json
.
setCharAt
(
json
.
length
()
-
1
,
']'
);
}
else
{
json
.
append
(
"]"
);
}
return
json
.
toString
();
}
public
static
String
bean2json
(
Object
bean
)
{
StringBuilder
json
=
new
StringBuilder
();
json
.
append
(
"{"
);
PropertyDescriptor
[]
props
=
null
;
try
{
props
=
Introspector
.
getBeanInfo
(
bean
.
getClass
(),
Object
.
class
).
getPropertyDescriptors
();
}
catch
(
IntrospectionException
e
)
{}
if
(
props
!=
null
)
{
for
(
int
i
=
0
;
i
<
props
.
length
;
i
++)
{
try
{
String
name
=
Objectjson
(
props
[
i
].
getName
());
String
value
=
Objectjson
(
props
[
i
].
getReadMethod
().
invoke
(
bean
));
json
.
append
(
name
);
json
.
append
(
":"
);
json
.
append
(
value
);
json
.
append
(
","
);
}
catch
(
Exception
e
)
{}
}
json
.
setCharAt
(
json
.
length
()
-
1
,
'}'
);
}
else
{
json
.
append
(
"}"
);
}
return
json
.
toString
();
}
}
\ No newline at end of file
src/main/java/com/santos/iost/utils/ListUtil.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
utils
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
public
class
ListUtil
{
public
static
void
reduplicate
(
List
list
){
LinkedHashSet
set
=
new
LinkedHashSet
(
list
);
//把List集合所有元素清空
list
.
clear
();
//把HashSet对象添加至List集合
list
.
addAll
(
set
);
}
}
src/main/java/com/santos/iost/utils/StringUtil.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
utils
;
import
org.apache.http.util.TextUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Locale
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
public
class
StringUtil
{
// 根据阿里巴巴代码规范,将Pattern设置为全局常量
// 通过 -?[0-9]+(\\\\.[0-9]+)? 进行匹配是否为数字
private
static
Pattern
pattern
=
Pattern
.
compile
(
"-?[0-9]+(\\\\.[0-9]+)?"
);
/**
* 通过正则表达式判断字符串是否为数字
* @param str
* @return
*/
public
static
boolean
isNumber
(
String
str
)
{
// 通过Matcher进行字符串匹配
Matcher
m
=
pattern
.
matcher
(
str
);
// 如果正则匹配通过 m.matches() 方法返回 true ,反之 false
return
m
.
matches
();
}
public
static
String
TimeStamp2Date
(
String
timestampString
,
String
formats
)
{
if
(
TextUtils
.
isEmpty
(
formats
))
formats
=
"yyyy-MM-dd HH:mm:ss"
;
Long
timestamp
=
Long
.
parseLong
(
timestampString
)
*
1000
;
String
date
=
new
SimpleDateFormat
(
formats
,
Locale
.
CHINA
).
format
(
new
Date
(
timestamp
));
return
date
;
}
}
\ No newline at end of file
src/main/java/com/santos/iost/vo/SoSsRequestVo.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
/**
* 接口请求数据格式Vo对象
*/
@Data
@ApiModel
(
value
=
"接口请求数据格式Vo对象"
,
description
=
"接口请求数据格式Vo对象"
)
public
class
SoSsRequestVo
{
@ApiModelProperty
(
value
=
"查询 ERP 对象的 APIName"
)
private
String
objAPIName
;
//
@ApiModelProperty
(
value
=
"数据变更的开始时间"
)
// @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private
String
startTime
;
@ApiModelProperty
(
value
=
"数据变更的结束时间"
)
// @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private
String
endTime
;
@ApiModelProperty
(
value
=
"是否获取明细"
)
private
Boolean
includeDetail
;
@ApiModelProperty
(
value
=
"获取记录的偏移"
)
private
Integer
offset
;
@ApiModelProperty
(
value
=
"当前请求记录条数"
)
private
Integer
limit
;
}
src/main/resources/application.yml
0 → 100644
浏览文件 @
93160438
spring
:
mvc
:
servlet
:
load-on-startup
:
100
server
:
servlet
:
context-path
:
/santos
port
:
8090
\ No newline at end of file
src/main/resources/lib/commons-logging.jar
0 → 100644
浏览文件 @
93160438
File added
src/main/resources/lib/k3cloud-webapi-client.jar
0 → 100644
浏览文件 @
93160438
File added
src/test/java/com/santos/iost/JintaiDomeApplicationTests.java
0 → 100644
浏览文件 @
93160438
package
com
.
santos
.
iost
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.parser.Feature
;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.SoSsRequestData
;
import
com.santos.iost.dto.SoSsResponseDate
;
import
com.santos.iost.utils.HttpUtil
;
import
com.santos.iost.utils.HttpUtils
;
import
com.santos.iost.utils.JsonUtil
;
import
com.santos.iost.utils.StringUtil
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
kingdee.bos.webapi.client.K3CloudApiClient
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.util.TextUtils
;
import
org.junit.jupiter.api.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
//
//@SpringBootTest
//@Slf4j
//@RunWith(SpringJUnit4ClassRunner.class)
@EnableScheduling
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
;
@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
);
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
);
// 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
++;
}
}
}
@Test
void
asd
()
throws
Exception
{
System
.
out
.
println
(
SoSsDao
.
token
);
System
.
out
.
println
(
StringUtil
.
isNumber
(
"1473048265"
));
System
.
out
.
println
(
TimeStamp2Date
(
"1609499999"
,
"yyyy-MM-dd HH:mm:ss"
));
System
.
out
.
println
(
TimeStamp2Date
(
"1609999999"
,
"yyyy-MM-dd HH:mm:ss"
));
}
public
static
String
TimeStamp2Date
(
String
timestampString
,
String
formats
)
{
if
(
TextUtils
.
isEmpty
(
formats
))
formats
=
"yyyy-MM-dd HH:mm:ss"
;
Long
timestamp
=
Long
.
parseLong
(
timestampString
)
*
1000
;
String
date
=
new
SimpleDateFormat
(
formats
,
Locale
.
CHINA
).
format
(
new
Date
(
timestamp
));
return
date
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论