Commit 52b6e5b1 authored by 韩桐桐's avatar 韩桐桐

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents 24483c95 52770027

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

package com.yeejoin.amos.boot.module.cas.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* Dto
*
* @author duanwei
* @date 2022-09-14
*/
@Data
public class IdxBizXnzsDto implements Serializable {
private static final long serialVersionUID = 1L;
private String axisData;
private double one;
private double two;
private double three;
private double four;
}
package com.yeejoin.amos.boot.module.cas.api.dto;
import lombok.Data;
import java.util.List;
@Data
public class ResultDto {
List<List<Double>> seriesData;
List<String> axisData;
}
package com.yeejoin.amos.boot.module.cas.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
*
*
* @author duanwei
* @date 2022-09-14
*/
@Data
//@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="IdxBizXnzs对象", description="")
public class IdxBizXnzs implements Serializable {
private static final long serialVersionUID = 1L;
private Boolean valid;
private String record;
private LocalDateTime date;
private String creator;
@TableField("creatorName")
private String creatorName;
private String status;
@TableField("instanceId")
private String instanceId;
@ApiModelProperty(value = "年份")
private Integer cNf;
@ApiModelProperty(value = "季度")
private String cJd;
@ApiModelProperty(value = "地市")
private String cDs;
@ApiModelProperty(value = "季度代码")
private Integer cJddm;
@ApiModelProperty(value = "政务大类")
private String cZwdl;
@ApiModelProperty(value = "政务大类代码")
private String cZwdldm;
@ApiModelProperty(value = "政务子类")
private String cZwzl;
@ApiModelProperty(value = "政务子类代码")
private String cZwzldm;
@ApiModelProperty(value = "效能指数")
private Double cXnzs;
@ApiModelProperty(value = "季度权重")
private Integer cJdqz;
@ApiModelProperty(value = "地市权重")
private Integer cDsqz;
@ApiModelProperty(value = "报表权重")
private Integer cBbqz;
}
package com.yeejoin.amos.boot.module.cas.api.mapper;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
* Mapper 接口
*
* @author duanwei
* @date 2022-09-14
*/
public interface IdxBizXnzsMapper extends BaseMapper<IdxBizXnzs> {
List<IdxBizXnzsDto> select();
List<IdxBizXnzsDto> selectZwdl();
}
package com.yeejoin.amos.boot.module.cas.api.service;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.dto.ResultDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 服务类
*
* @author duanwei
* @date 2022-09-14
*/
public interface IIdxBizXnzsService extends IService<IdxBizXnzs> {
JSONObject select();
JSONObject selectZwdl();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.cas.api.mapper.IdxBizXnzsMapper">
<select id="select" resultType="com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto">
SELECT
a.c_ds as `axisData`,
a.`one`,
b.`two`,
c.`three`,
d.`four`
FROM
(
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "one"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 0, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS a
LEFT JOIN (
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "two"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 1, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS b ON b.c_ds = a.c_ds
LEFT JOIN (
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "three"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 2, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS c ON c.c_ds = a.c_ds
LEFT JOIN (
SELECT
c_ds,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "four"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 3, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_ds
) AS d ON d.c_ds = a.c_ds
</select>
<select id="selectZwdl" resultType="com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto">
SELECT
a.c_zwdl as `axisData`,
a.`one`,
b.`two`,
c.`three`,
d.`four`
FROM
(
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "one"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 0, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS a
LEFT JOIN (
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "two"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 1, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS b ON b.c_zwdl = a.c_zwdl
LEFT JOIN (
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "three"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 2, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS c ON c.c_zwdl = a.c_zwdl
LEFT JOIN (
SELECT
c_zwdl,
round( SUM(((( `b`.`c_xnzs` * `b`.`c_jdqz` ) * `b`.`c_dsqz` ) * `b`.`c_bbqz` )), 2 ) AS "four"
FROM
idx_biz_xnzs AS b,
( SELECT c_jd, c_nf, c_jddm FROM idx_biz_xnzs GROUP BY c_jd, c_nf ORDER BY c_nf DESC, c_jddm DESC LIMIT 3, 1 ) AS a
WHERE
a.c_nf = b.c_nf
AND a.c_jddm = b.c_jddm
GROUP BY
c_zwdl
) AS d ON d.c_zwdl = a.c_zwdl
</select>
</mapper>
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>amos-boot-system-cas</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-cas-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-cas-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-common-biz</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-cas-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
import com.yeejoin.amos.boot.biz.common.utils.oConvertUtils;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.net.InetAddress;
/**
* <pre>
* 特种设备服务启动类
* </pre>
*
* @author DELL
*/
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties
@ServletComponentScan
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@EnableEurekaClient
@EnableScheduling
@MapperScan({ "org.typroject.tyboot.demo.face.orm.dao*", "org.typroject.tyboot.face.*.orm.dao*",
"org.typroject.tyboot.core.auth.face.orm.dao*", "org.typroject.tyboot.component.*.face.orm.dao*",
"com.yeejoin.amos.boot.module.**.api.mapper", "com.yeejoin.amos.boot.biz.common.dao.mapper","com.yeejoin.amos.boot.module.common.biz.*" })
@ComponentScan(basePackages = { "org.typroject", "com.yeejoin.amos" })
public class AmosCasApplication {
private static final Logger logger = LoggerFactory.getLogger(AmosCasApplication.class);
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(AmosCasApplication.class, args);
Environment env = context.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
logger.info("\n----------------------------------------------------------\n\t"
+ "Application Amos-Biz-Boot is running! Access URLs:\n\t" + "Swagger文档: \thttp://" + ip + ":" + port
+ path + "/doc.html\n" + "----------------------------------------------------------");
}
}
package com.yeejoin.amos.boot.module.cas.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.cas.api.dto.IdxBizXnzsDto;
import com.yeejoin.amos.boot.module.cas.api.dto.ResultDto;
import com.yeejoin.amos.boot.module.cas.api.entity.IdxBizXnzs;
import com.yeejoin.amos.boot.module.cas.api.mapper.IdxBizXnzsMapper;
import com.yeejoin.amos.boot.module.cas.api.service.IIdxBizXnzsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import springfox.documentation.spring.web.json.Json;
import java.text.DecimalFormat;
import java.util.*;
/**
* 服务实现类
*
* @author wanglong
* @date 2022-09-14
*/
@Service
public class IdxBizXnzsServiceImpl extends BaseService<IdxBizXnzsDto, IdxBizXnzs,IdxBizXnzsMapper> implements IIdxBizXnzsService {
@Autowired
private IdxBizXnzsMapper idxBizXnzsMapper;
private static final Logger log = LoggerFactory.getLogger(IdxBizXnzsServiceImpl.class);
@Override
public JSONObject select() {
/**
* 预返回数据
*/
JSONObject message = new JSONObject();
List<IdxBizXnzsDto> xnzsDtoList = idxBizXnzsMapper.select();
List<String> axisData = new ArrayList<>();
// List<List<Double>> seriesDataList=new ArrayList<>();
List<JSONObject> seriesDataList = new ArrayList<>();
String [] borderColor = {"#5966e6","#e7533b","#00c190","#8f57da","#f59c59","#19d3f3","#ff6692","#b6e880","#413a68","#f5c551","#4857c2","#ed553b","#01bb8d","#a561f3" };
String [] color = {"#354599","#7b393a","#047569","#584099","#835f4a","#15a7c7","#834166","#5e825c","#835a9c","#a18a49","#354599","#7b393b","#037569","#6f4ab4"};
int i = 0;
for(IdxBizXnzsDto bizXnzsDto : xnzsDtoList){
// List<Double> list=new ArrayList<>();
JSONObject firstJson = new JSONObject();
JSONObject secondJson = new JSONObject();
JSONObject thirdly = new JSONObject();
axisData.add(bizXnzsDto.getAxisData());
JSONArray json = new JSONArray();
Double[] doubles = {bizXnzsDto.getOne(),bizXnzsDto.getTwo(),bizXnzsDto.getThree(),bizXnzsDto.getFour()};
thirdly.put("borderWidth","2");
thirdly.put("borderColor",borderColor[i]);
thirdly.put("color",color[i]);
secondJson.put("normal",thirdly);
i = i+1;
Arrays.sort(doubles);
/**
* 添加箱线图数据
*/
DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.String
json.add( decimalFormat.format(doubles[0]));
json.add(decimalFormat.format((doubles[0]+doubles[1])/2));
System.out.println("---------------------------------"+Double.valueOf((doubles[0]+doubles[1])/2));
json.add(decimalFormat.format((doubles[1]+doubles[2])/2));
json.add(decimalFormat.format((doubles[2]+doubles[3])/2));
json.add(decimalFormat.format(doubles[3]));
firstJson.put("value",json);
firstJson.put("itemStyle",secondJson);
seriesDataList.add(firstJson);
// seriesDataList.add(list);
}
message.put("axisData",axisData);
message.put("seriesData",seriesDataList);
return message;
}
/**
* 查询政务大列
* @return
*/
@Override
public JSONObject selectZwdl() {
/**
* 预返回数据
*/
JSONObject message = new JSONObject();
List<String> axisData=new ArrayList<>();
// List<List<Double>> seriesDataList=new ArrayList<>();
List<JSONObject> seriesDataList = new ArrayList<>();
/**
* 颜色
*/
String [] borderColor = {"#5966e6","#e7533b","#00c190","#8f57da","#f59c59","#19d3f3","#ff6692","#b6e880","#413a68","#f5c551","#4857c2","#ed553b","#01bb8d","#a561f3" };
String [] color = {"#354599","#7b393a","#047569","#584099","#835f4a","#15a7c7","#834166","#5e825c","#835a9c","#a18a49","#354599","#7b393b","#037569","#6f4ab4"};
int i =0;
/**
* 获取政务大列数据
*/
List<IdxBizXnzsDto> zwdlDto = idxBizXnzsMapper.selectZwdl();
/**
* 组装返回数据
*/
for(IdxBizXnzsDto idxBizXnzsDto : zwdlDto ) {
/**
* 子数据
*/
JSONObject firstJson = new JSONObject();
JSONObject secondJson = new JSONObject();
JSONObject thirdly = new JSONObject();
//预返回箱线图数据
// List<Double> list = new ArrayList<>();
JSONArray json = new JSONArray();
//添加政务大类
axisData.add(idxBizXnzsDto.getAxisData());
//添加最近四季度
Double[] ottf = {idxBizXnzsDto.getOne(),idxBizXnzsDto.getTwo(),idxBizXnzsDto.getThree(), idxBizXnzsDto.getFour()};
thirdly.put("borderWidth","2");
thirdly.put("borderColor",borderColor[i]);
thirdly.put("color",color[i]);
secondJson.put("normal",thirdly);
i = i+1;
//排序(从小到大)
Arrays.sort(ottf);
/**
* 添加箱线图数据
*/
DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.String
json.add( decimalFormat.format(ottf[0]));
json.add(decimalFormat.format((ottf[0]+ottf[1])/2));
json.add(decimalFormat.format((ottf[1]+ottf[2])/2));
json.add(decimalFormat.format((ottf[2]+ottf[3])/2));
json.add(decimalFormat.format(ottf[3]));
firstJson.put("value",json);//format 返回的是字符串
firstJson.put("itemStyle",secondJson);
seriesDataList.add(firstJson);
}
message.put("seriesData",seriesDataList);
message.put("axisData",axisData);
return message;
}
}
#DB properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.16.10.210:3306/amos_idx_biz?allowMultiQueries=true&serverTimezone=GMT%2B8\
&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=Yeejoin@2020
##eureka properties:
eureka.client.service-url.defaultZone =http://172.16.10.210:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.99:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.99:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.99:${server.port}${server.servlet.context-path}/swagger-ui.html
#redis properties:
spring.redis.database=1
spring.redis.host=172.16.10.210
spring.redis.port=6379
spring.redis.password=yeejoin@2020
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
spring.redis.expire.time=300
spring.application.name=CAS
server.servlet.context-path=/cas
server.port=12000
spring.profiles.active=dev
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
logging.config=classpath:logback-${spring.profiles.active}.xml
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
redis.cache.failure.time=10800
##liquibase
spring.liquibase.change-log = classpath:/db/changelog/changelog-master.xml
spring.liquibase.enabled= true
## DB properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=25
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
## eureka properties:
eureka.client.registry-fetch-interval-seconds=5
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.lease-expiration-duration-in-seconds=10
eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}${server.servlet.context-path}/doc.html
## redis properties:
spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
spring.redis.expire.time=300
## emqx properties:
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.90:1883
emqx.user-name=super
emqx.password=123456
fire-rescue=123
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<!-- <changeSet author="xl" id="2022-06-27-01">-->
<!-- <preConditions onFail="MARK_RAN">-->
<!-- <tableExists tableName="tz_task"/>-->
<!-- </preConditions>-->
<!-- <comment>modify table tz_task add task_type columns</comment>-->
<!-- <sql>-->
<!-- ALTER TABLE `tz_task` add task_type varchar(255) DEFAULT NULL COMMENT '任务类型';-->
<!-- </sql>-->
<!-- </changeSet>-->
</databaseChangeLog>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<include file="cas-1.0.0.0.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %-50.50logger{50} - %msg [%file:%line] %n" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/tzs.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="org.mybatis" level="INFO" />
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.apache.activemq" level="INFO"/>
<logger name="org.typroject" level="INFO"/>
<logger name="com.yeejoin" level="INFO"/>
<!-- 日志输出级别 -->
<root level="DEBUG">
<!-- <appender-ref ref="FILE" /> -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-system-cas</artifactId>
<parent>
<artifactId>amos-biz-boot</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<packaging>pom</packaging>
<modules>
<module>amos-boot-module-cas-api</module>
<module>amos-boot-module-cas-biz</module>
</modules>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-biz-common</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <parent>
<artifactId>amos-boot-biz-common</artifactId> <artifactId>amos-boot-biz</artifactId>
<packaging>jar</packaging> <groupId>com.amosframework.boot</groupId>
<version>1.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-biz-common</artifactId>
<packaging>jar</packaging>
<parent> <dependencies>
<artifactId>amos-biz-boot</artifactId> <dependency>
<groupId>com.amosframework.boot</groupId> <groupId>com.yeejoin</groupId>
<version>1.0.0</version> <artifactId>amos-component-security</artifactId>
</parent> <version>1.7.13-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-core-rdbms</artifactId>
<version>${tyboot-version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</exclusion>
<exclusion>
<artifactId>mysql-connector-java</artifactId>
<groupId>mysql</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<artifactId>mysql-connector-java</artifactId>
<groupId>mysql</groupId>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-core-restful</artifactId>
<version>${tyboot-version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</exclusion>
<exclusion>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-core-auth</artifactId>
<version>${tyboot-version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependencies> <dependency>
<dependency> <groupId>org.javassist</groupId>
<groupId>com.yeejoin</groupId> <artifactId>javassist</artifactId>
<artifactId>amos-component-security</artifactId> <version>3.21.0-GA</version>
<version>1.7.13-SNAPSHOT</version> </dependency>
</dependency> <dependency>
<dependency> <groupId>cn.afterturn</groupId>
<groupId>org.typroject</groupId> <artifactId>easypoi-base</artifactId>
<artifactId>tyboot-core-rdbms</artifactId> <version>4.0.0</version>
<version>${tyboot-version}</version> </dependency>
<exclusions> <dependency>
<exclusion> <groupId>cn.afterturn</groupId>
<groupId>org.typroject</groupId> <artifactId>easypoi-web</artifactId>
<artifactId>*</artifactId> <version>3.0.3</version>
</exclusion> </dependency>
<exclusion> <dependency>
<groupId>com.baomidou</groupId> <groupId>cn.afterturn</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId> <artifactId>easypoi-annotation</artifactId>
</exclusion> <version>3.0.3</version>
<exclusion> </dependency>
<artifactId>mysql-connector-java</artifactId> <!-- itext pdf相关 -->
<groupId>mysql</groupId> <dependency>
</exclusion> <groupId>com.itextpdf</groupId>
</exclusions> <artifactId>itextpdf</artifactId>
</dependency> <version>5.5.13</version>
<dependency> </dependency>
<artifactId>mysql-connector-java</artifactId> <!-- itext asian 字体相关 -->
<groupId>mysql</groupId> <dependency>
</dependency> <groupId>com.itextpdf</groupId>
<dependency> <artifactId>itext-asian</artifactId>
<groupId>org.typroject</groupId> <version>5.2.0</version>
<artifactId>tyboot-core-restful</artifactId> </dependency>
<version>${tyboot-version}</version> <dependency>
<exclusions> <groupId>com.google.zxing</groupId>
<exclusion> <artifactId>core</artifactId>
<groupId>org.typroject</groupId> <version>3.3.0</version>
<artifactId>*</artifactId> <scope>compile</scope>
</exclusion> </dependency>
<exclusion> <dependency>
<groupId>io.springfox</groupId> <groupId>com.github.pagehelper</groupId>
<artifactId>springfox-swagger-ui</artifactId> <artifactId>pagehelper</artifactId>
</exclusion> <version>5.1.10</version>
<exclusion> </dependency>
<groupId>io.springfox</groupId> <dependency>
<artifactId>springfox-swagger2</artifactId> <groupId>org.postgresql</groupId>
</exclusion> <artifactId>postgresql</artifactId>
<exclusion> <scope>runtime</scope>
<groupId>org.springframework.boot</groupId> </dependency>
<artifactId>spring-boot-starter-undertow</artifactId> </dependencies>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-core-auth</artifactId>
<version>${tyboot-version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.21.0-GA</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.0.3</version>
</dependency>
<!-- itext pdf相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<!-- itext asian 字体相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</project> </project>
package com.yeejoin.amos.boot.core.config; package com.yeejoin.amos.boot.biz.config;
import java.util.ArrayList;
import java.util.List;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
...@@ -18,6 +14,10 @@ import springfox.documentation.service.Parameter; ...@@ -18,6 +14,10 @@ import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.util.ArrayList;
import java.util.List;
/** /**
* @Author lichenglong * @Author lichenglong
*/ */
......
package org.typroject.tyboot.core.restful.doc;
/**
* 此类是为了覆盖原有类,为空,不用写具体实现
* @author lichenglong
*
*/
public class Swagger2 {
}
This diff is collapsed.
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-core</artifactId>
<packaging>jar</packaging>
<parent>
<artifactId>amos-biz-boot</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<dependencies>
</dependencies>
</project>
package com.yeejoin.amos.boot.core.restTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
// @Bean
// public RestTemplate restTemplate(){
// SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
// factory.setConnectTimeout(15000);
// factory.setReadTimeout(5000);
// return new RestTemplate(factory);
// }
}
package com.yeejoin.amos.boot.core.restTemplate;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
/**
* @program: api
* @description:
* @author: lll
* @create: 2021-09-1 18:00
*/
public class WxMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
public WxMappingJackson2HttpMessageConverter(){
List<MediaType> mediaTypes=new ArrayList<>();
//添加text/html类型的支持
mediaTypes.add(MediaType.TEXT_HTML);
//添加text/plain类型的支持.微信接口会用到
mediaTypes.add(MediaType.TEXT_PLAIN);
setSupportedMediaTypes(mediaTypes);
}
}
package com.yeejoin.amos.boot.core.utils;
import java.util.List;
import java.util.Map;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.util.concurrent.ListenableFutureCallback;
import org.springframework.web.client.AsyncRestTemplate;
import org.springframework.web.client.RestTemplate;
import com.yeejoin.amos.boot.core.restTemplate.WxMappingJackson2HttpMessageConverter;
/**
* @program: api
* @description:
* @author: lll
* @create: 2021-09-1 18:00
*/
public class RestTemplateUtil {
/**
* 发送表单参数的post请求
*
* @param url 请求url
* @param param 参数
* @param respType 返回类型
* @return T
*/
public static <T> T postForm(String url, Map<String, List<Object>> param, Class<T> respType) {
return getRestInstance().postForEntity(url, getHttpEntity(param, false), respType).getBody();
}
/**
* 发送表单参数的异步post请求
*
* @param url 请求url
* @param callback 回调接口
* @param respType 返回类型
*/
public static <T> void asyncPostForm(String url, Map<String, List<Object>> param,
Class<T> respType, ListenableFutureCallback<ResponseEntity<T>> callback) {
getAsyncRestInstance().postForEntity(url, getHttpEntity(param, false), respType).addCallback(callback);
}
/**
* 发送表单有参数get请求
*
* @param url 请求url
* @param param 参数对象
* @param respType 返回类型
* @return T
*/
public static <T> T getForm(String url, Class<T> respType, Map<String,String> param) {
return getRestInstance().getForEntity(url, respType, param).getBody();
}
/**
* @Description: 发送表单无参数的get请求
* @Param: [url, param, respType]
* @return: T
* @Author: tonyzhang
* @Date: 2019-01-18 17:23
*/
public static <T> T getForm(String url, Class<T> respType) {
return getRestInstance().getForObject(url, respType);
}
/**
* 获取HttpEntity实例对象
*
* @param param 参数对象
* @param isJson true 发送json请求,false发送表单请求
* @return HttpEntity
*/
private static <P> HttpEntity<P> getHttpEntity(P param, boolean isJson) {
HttpHeaders headers = new HttpHeaders();
if (isJson) {
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
} else {
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
}
return new HttpEntity<>(param, headers);
}
/*-----------------生产单例对象,方便自定义如何构造对象------------------*/
private static RestTemplate restInit() {
//设置连接超时和读取超时时间
SimpleClientHttpRequestFactory factory=new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(5000);
factory.setReadTimeout(5000);
RestTemplate restTemplate = new RestTemplate(factory);
FormHttpMessageConverter fastConverter = new FormHttpMessageConverter();
WxMappingJackson2HttpMessageConverter wmc=new WxMappingJackson2HttpMessageConverter();
restTemplate.getMessageConverters().add(fastConverter);
restTemplate.getMessageConverters().add(wmc);
return restTemplate;
}
private static AsyncRestTemplate asyncRestInit() {
return new AsyncRestTemplate();
}
public static RestTemplate getRestInstance() {
return RestSingle.INSTANCE;
}
private static AsyncRestTemplate getAsyncRestInstance() {
return AsyncRestSingle.INSTANCE;
}
private static class RestSingle {
private static final RestTemplate INSTANCE = restInit();
}
private static class AsyncRestSingle {
private static final AsyncRestTemplate INSTANCE = asyncRestInit();
}
}
\ No newline at end of file
package org.typroject.tyboot.core.restful.doc;
/**
* 此类是为了覆盖原有类,为空,不用写具体实现
* @author lichenglong
*
*/
public class Swagger2 {
}
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.amosframework.boot</groupId> <groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-data</artifactId> <artifactId>amos-boot-data</artifactId>
<version>1.0.0</version> <version>1.0.1</version>
</parent> </parent>
<artifactId>amos-boot-data-accessapi</artifactId> <artifactId>amos-boot-data-accessapi</artifactId>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<parent> <parent>
<artifactId>amos-boot-data</artifactId> <artifactId>amos-boot-data</artifactId>
<groupId>com.amosframework.boot</groupId> <groupId>com.amosframework.boot</groupId>
<version>1.0.0</version> <version>1.0.1</version>
</parent> </parent>
<artifactId>amos-boot-data-common</artifactId> <artifactId>amos-boot-data-common</artifactId>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<parent> <parent>
<artifactId>amos-boot-data</artifactId> <artifactId>amos-boot-data</artifactId>
<groupId>com.amosframework.boot</groupId> <groupId>com.amosframework.boot</groupId>
<version>1.0.0</version> <version>1.0.1</version>
</parent> </parent>
<artifactId>amos-boot-data-openapi</artifactId> <artifactId>amos-boot-data-openapi</artifactId>
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<artifactId>amos-biz-boot</artifactId> <artifactId>amos-boot-biz</artifactId>
<groupId>com.amosframework.boot</groupId> <groupId>com.amosframework.boot</groupId>
<version>1.0.0</version> <version>1.0.1</version>
</parent> </parent>
<artifactId>amos-boot-data</artifactId> <artifactId>amos-boot-data</artifactId>
......
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>amos-boot-module</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="target/generated-sources/annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>amos-boot-module-cloud-gateway</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.processAnnotations=enabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>amos-boot-module</artifactId>
<groupId>com.amosframework.boot</groupId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-cloud-gateway</artifactId>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-jcs-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.amosframework.boot</groupId>-->
<!-- <artifactId>amos-boot-module-tzs-api</artifactId>-->
<!-- <version>${amos-biz-boot.version}</version>-->
<!-- </dependency>-->
<!-- spring-cloud网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--Spring Webflux-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- 熔断、降级 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<!--健康监控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 限流Redis实现 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>
<!--springboot2.X默认使用lettuce连接池,需要引入commons-pool2-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!--server-api-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
package com.yeejoin.amos;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class AmosBizGatewayApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(AmosBizGatewayApplication.class, args);
String userName = applicationContext.getEnvironment().getProperty("jeecg.test");
System.err.println("user name :" +userName);
}
}
package com.yeejoin.amos.server.gateway.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.web.cors.reactive.CorsUtils;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Mono;
import static org.springframework.web.cors.CorsConfiguration.ALL;
@Configuration
public class Cors {
private static final String MAX_AGE = "18000L";
@Bean
public CorsResponseHeaderFilter corsResponseHeaderFilter() {
return new CorsResponseHeaderFilter();
}
@Bean
public WebFilter corsFilter() {
return (ServerWebExchange ctx, WebFilterChain chain) -> {
ServerHttpRequest request = ctx.getRequest();
if (!CorsUtils.isCorsRequest(request)) {
return chain.filter(ctx);
}
HttpHeaders requestHeaders = request.getHeaders();
ServerHttpResponse response = ctx.getResponse();
HttpMethod requestMethod = requestHeaders.getAccessControlRequestMethod();
HttpHeaders headers = response.getHeaders();
headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "*");
headers.addAll(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, requestHeaders.getAccessControlRequestHeaders());
if (requestMethod != null) {
headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, requestMethod.name());
}
headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, ALL);
headers.add(HttpHeaders.ACCESS_CONTROL_MAX_AGE, MAX_AGE);
if (request.getMethod() == HttpMethod.OPTIONS) {
response.setStatusCode(HttpStatus.OK);
return Mono.empty();
}
return chain.filter(ctx);
};
}
}
package com.yeejoin.amos.server.gateway.config;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.cloud.gateway.filter.NettyWriteResponseFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
import java.util.ArrayList;
public class CorsResponseHeaderFilter implements GlobalFilter, Ordered{
@Override
public int getOrder() {
// 指定此过滤器位于NettyWriteResponseFilter之后
// 即待处理完响应体后接着处理响应头
return NettyWriteResponseFilter.WRITE_RESPONSE_FILTER_ORDER + 1;
}
@Override
@SuppressWarnings("serial")
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//过滤相同的ACCESS_CONTROL_ALLOW_ORIGIN 和 ACCESS_CONTROL_ALLOW_CREDENTIALS
return chain.filter(exchange).then(Mono.defer(() -> {
exchange.getResponse().getHeaders().entrySet().stream()
.filter(kv -> (kv.getValue() != null && kv.getValue().size() > 1))
.filter(kv -> (kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)
|| kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)))
.forEach(kv ->
{
kv.setValue(new ArrayList<String>() {{add(kv.getValue().get(0));}});
});
return chain.filter(exchange);
}));
}
}
package com.yeejoin.amos.server.gateway.config;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
public class CustomeGatewayFilter implements GatewayFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
return null;
}
}
package com.yeejoin.amos.server.gateway.config;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.factory.StripPrefixGatewayFilterFactory;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class GatewayInfo {
static StripPrefixGatewayFilterFactory stripPrefixGatewayFilterFactory = new StripPrefixGatewayFilterFactory();
static GatewayFilter gatewayFilter;
static {
StripPrefixGatewayFilterFactory.Config config = new StripPrefixGatewayFilterFactory.Config();
config.setParts(1);
gatewayFilter = stripPrefixGatewayFilterFactory.apply(config);
}
// @Value("${elecfire_converter_statton_service}")
// private String elecfire_converter_statton_service;
//
// @Value("${elecfire_converter_statton_patrol}")
// private String elecfire_converter_statton_patrol;
//
// @Value("${elecfire_converter_statton_3dservice}")
// private String elecfire_converter_statton_3dservice;
//
// @Value("${elecfire_converter_statton_duty}")
// private String DUTY_ERUKA_NAME;
//
//
// @Value("${elecfire_converter_statton_aixah}")
// private String AI_XAH_JD;
//
// @Value("${elecfire_converter_statton_equipmanage}")
// private String AMOS_EQUIPMANAGE;
//
// @Value("${visual_morphic}")
// private String visual_morphic;
//
// @Value("${elecfire_converter_statton_intelligentbox}")
// private String AMOS_API_INTELLIGENTBOX;
/**
*
* @param builder
* @return
*/
@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {
return builder.routes().route(p -> p.path("/privilege/**").uri("lb://AMOS-API-PRIVILEGE"))
.route(p -> p.path("/systemctl/**").uri("lb://AMOS-API-SYSTEMCTL"))
.route(p -> p.path("/urule/**").uri("lb://AMOS-API-RULE"))
// .route(p -> p.path("/fireAutoSys/**").uri("lb://" + elecfire_converter_statton_service))
//
// .route(p -> p.path("/patrol/**").uri("lb://" + elecfire_converter_statton_patrol))
//
// // 值班
// .route(p -> p.path("/duty/**").uri("lb://" + DUTY_ERUKA_NAME))
// .route(p -> p.path("/api/common/user/list/**").uri("lb://" + DUTY_ERUKA_NAME))
// // AI消安盒
// .route(p -> p.path("/intelligentbox/**").uri("lb://" + AMOS_API_INTELLIGENTBOX))
// .route(p -> p.path("/tsioservice/**").uri(AI_XAH_JD))
// //队站-装备信息系统
// .route(p -> p.path("/equip/**").uri("lb://" + AMOS_EQUIPMANAGE))
//// .route(p -> p.path("/equip-1225/**").uri("lb://" + AMOS_EQUIPMANAGE))
// //组态
// .route(p -> p.path("/morphic/**").uri("lb://" + visual_morphic))
.build();
}
}
package com.yeejoin.amos.server.gateway.face.model;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 过滤器模型
* zhuyu 2019-01-17
*/
public class GatewayFilterDefinition {
//Filter Name
private String name;
//对应的路由规则
private Map<String, String> args = new LinkedHashMap<>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map<String, String> getArgs() {
return args;
}
public void setArgs(Map<String, String> args) {
this.args = args;
}
}
package com.yeejoin.amos.server.gateway.face.model;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 路由断言模型
* zhuyu 2019-01-17
*/
public class GatewayPredicateDefinition {
//断言对应的Name
private String name;
//配置的断言规则
private Map<String, String> args = new LinkedHashMap<>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map<String, String> getArgs() {
return args;
}
public void setArgs(Map<String, String> args) {
this.args = args;
}
}
package com.yeejoin.amos.server.gateway.face.model;
import java.util.ArrayList;
import java.util.List;
/**
* 路由模型
* zhuyu 2019-01-17
*/
public class GatewayRouteDefinition {
//路由的Id
private String id;
//路由断言集合配置
private List<GatewayPredicateDefinition> predicates = new ArrayList<>();
//路由过滤器集合配置
private List<GatewayFilterDefinition> filters = new ArrayList<>();
//路由规则转发的目标uri
private String uri;
//路由执行的顺序
private int order = 0;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<GatewayPredicateDefinition> getPredicates() {
return predicates;
}
public void setPredicates(List<GatewayPredicateDefinition> predicates) {
this.predicates = predicates;
}
public List<GatewayFilterDefinition> getFilters() {
return filters;
}
public void setFilters(List<GatewayFilterDefinition> filters) {
this.filters = filters;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
}
package com.yeejoin.amos.server.gateway.face.service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 默认降级处理
*/
@RestController
public class DefaultHystrixController {
@RequestMapping("/defaultfallback")
public Map<String,String> defaultfallback(){
System.out.println("降级操作...");
Map<String,String> map = new HashMap<>();
map.put("resultCode","fail");
map.put("resultMessage","服务异常");
map.put("resultObj","null");
return map;
}
}
package com.yeejoin.amos.server.gateway.face.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.event.RefreshRoutesEvent;
import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.cloud.gateway.route.RouteDefinitionWriter;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
/**
* 动态路由服务
*/
@Service
public class DynamicRouteServiceImpl implements ApplicationEventPublisherAware{
@Autowired
private RouteDefinitionWriter routeDefinitionWriter;
private ApplicationEventPublisher publisher;
@Override
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
this.publisher = applicationEventPublisher;
}
//增加路由
public String add(RouteDefinition definition) {
routeDefinitionWriter.save(Mono.just(definition)).subscribe();
this.publisher.publishEvent(new RefreshRoutesEvent(this));
return "success";
}
// //更新路由
// public String update(RouteDefinition definition) {
// try {
// delete(definition.getId());
// } catch (Exception e) {
// return "update fail,not find route routeId: "+definition.getId();
// }
// try {
// routeDefinitionWriter.save(Mono.just(definition)).subscribe();
// this.publisher.publishEvent(new RefreshRoutesEvent(this));
// return "success";
// } catch (Exception e) {
// return "update route fail";
// }
// }
// //删除路由
// public Mono<ResponseEntity<Object>> delete(String id) {
// return this.routeDefinitionWriter.delete(Mono.just(id)).then(Mono.defer(() -> {
// return Mono.just(ResponseEntity.ok().build());
// })).onErrorResume((t) -> {
// return t instanceof NotFoundException;
// }, (t) -> {
// return Mono.just(ResponseEntity.notFound().build());
// });
// }
}
package com.yeejoin.amos.server.gateway.face.service;
import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import reactor.core.publisher.Mono;
/**
* 路由限流配置
* @author zhuyu
* @date 2019/1/15
*/
@Configuration
public class RateLimiterConfig {
@Bean(value = "remoteAddrKeyResolver")
public KeyResolver remoteAddrKeyResolver() {
return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getAddress().getHostAddress());
}
}
\ No newline at end of file
# REDIS (RedisProperties)
spring.redis.database=0
spring.redis.host=172.16.10.85
spring.redis.port=6379
spring.redis.password=amos2019Redis
spring.redis.timeout=0
##服务注册
eureka.client.service-url.defaultZone =http://172.16.10.72:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://localhost:${server.port}/actuator/health
eureka.instance.metadata-map.management.context-path=/actuator
eureka.instance.status-page-url=http://localhost:${server.port}/actuator/info
#服务跟踪
spring.zipkin.base-url=http://172.16.10.72:10002
spring.zipkin.service.name=${spring.application.name}
spring.sleuth.sampler.probability=1.0
elecfire_converter_statton_service=AMOS-AUTOSYS
elecfire_converter_statton_patrol=AMOS-PATROL
elecfire_converter_statton_3dservice=AMOS-SAFETY3D
elecfire_converter_statton_duty=AMOS-DUTY
elecfire_converter_statton_equipmanage=AMOS-EQUIPMANAGE
visual_morphic = VISUAL-API-MORPHIC
elecfire_converter_statton_intelligentbox=AMOS-API-INTELLIGENTBOX
elecfire_converter_statton_aixah=http://172.16.10.102:9089/
##服务注册
eureka.client.service-url.defaultZone =http://amos-eurka:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://amos-gateway:${server.port}/actuator/health
eureka.instance.metadata-map.management.context-path=/actuator
eureka.instance.status-page-url=http://amos-gateway:${server.port}/actuator/info
#服务跟踪
spring.zipkin.base-url=http://amos-tracking:10002
spring.zipkin.service.name=${spring.application.name}
spring.sleuth.sampler.probability=1.0
elecfire_converter_statton_service=AMOS-AUTOSYS
elecfire_converter_statton_patrol=AMOS-PATROL
elecfire_converter_statton_3dservice=AMOS-SAFETY3D
elecfire_converter_statton_duty=AMOS-DUTY
elecfire_converter_statton_equipmanage=AMOS-EQUIPMANAGE
visual_morphic = VISUAL-API-MORPHIC
\ No newline at end of file
##服务注册
eureka.client.service-url.defaultZone =http://localhost:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://localhost:${server.port}/actuator/health
eureka.instance.metadata-map.management.context-path=/actuator
eureka.instance.status-page-url=http://localhost:${server.port}/actuator/info
#服务跟踪
spring.zipkin.base-url=http://localhost:10002
spring.zipkin.service.name=${spring.application.name}
spring.sleuth.sampler.probability=1.0
elecfire_converter_statton_service=AMOS-AUTOSYS
elecfire_converter_statton_patrol=AMOS-PATROL
elecfire_converter_statton_3dservice=AMOS-SAFETY3D
elecfire_converter_statton_duty=AMOS-DUTY
elecfire_converter_statton_equipmanage=AMOS-EQUIPMANAGE
visual_morphic = VISUAL-API-MORPHIC
\ No newline at end of file
server.port=20005
server.http2.enabled=true
spring.profiles.active=dev
spring.application.name=amos-biz-gateway
logging.config=classpath:logback-dev.xml
spring.cloud.gateway.discovery.locator.enabled=true
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="com.baomidou" level="INFO"/>
<logger name="org.tycloud" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<!--日志异步到数据库 -->
<!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">-->
<!--&lt;!&ndash;日志异步到数据库 &ndash;&gt;-->
<!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">-->
<!--&lt;!&ndash;连接池 &ndash;&gt;-->
<!--<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">-->
<!--<driverClass>com.mysql.jdbc.Driver</driverClass>-->
<!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>-->
<!--<user>root</user>-->
<!--<password>root</password>-->
<!--</dataSource>-->
<!--</connectionSource>-->
<!--</appender>-->
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="/opt/amos/log" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/amos_biz_gateway.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>30mb</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="org.mybatis" level="INFO" />
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.typroject" level="INFO"/>
<logger name="com.yeejoin" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="/opt/log/qa" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/amos_biz_gateway.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>30mb</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="INFO"/>
<logger name="org.mybatis" level="INFO" />
<logger name="java.sql.Connection" level="INFO"/>
<logger name="java.sql.Statement" level="INFO"/>
<logger name="java.sql.PreparedStatement" level="INFO"/>
<logger name="com.baomidou.mybatisplus" level="INFO"/>
<logger name="org.typroject" level="INFO"/>
<logger name="com.yeejoin" level="INFO"/>
<logger name="org.springframework" level="INFO"/>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>amos-boot-module-api</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.7
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-api</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-module-avic-api</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
<scope>system</scope>
<systemPath>${basedir}/lib/commons-io-2.4.jar</systemPath>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.5.2</version>
<scope>system</scope>
<systemPath>${basedir}/lib/mailapi-1.5.2.jar</systemPath>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>smtp</artifactId>
<version>1.5.2</version>
<scope>system</scope>
<systemPath>${basedir}/lib/smtp-1.5.2.jar</systemPath>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.yeejoin.amos.avic.face.model;
import java.io.Serializable;
import java.util.Date;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Data
@XmlRootElement(name="AvicCustomPathModel")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {"id","agencyCode", "pathName", "path", "pathDesc", "sequenceNbr", "recDate", "recUserId"})
public class AvicCustomPathModel implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6756323320498708828L;
private Long sequenceNbr;
private Date recDate;
private String recUserId;
private String agencyCode;
private String pathName;
private String path;
/**
* 分类编码
*/
private String pathDesc;
private String id;
}
package com.yeejoin.amos.avic.face.model;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Data
public class AvicEMailModel {
private String template;
private String id;
private long enabled;
}
package com.yeejoin.amos.avic.face.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Data
@TableName("idx_biz_send_recode")
public class AvicSenderRecordModel {
@TableField("id")
private String id;
@TableField("attachment")
private String attachment;
}
package com.yeejoin.amos.avic.face.model;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import lombok.Data;
@Data
@Component
//@ConfigurationProperties(prefix = "avic.email")
public class EMailModel {
String host;
int port;
String username;
String password;
boolean valipwd;
boolean enabledStarttls;
}
package com.yeejoin.amos.avic.face.model;
import lombok.Data;
@Data
public class FileItem {
private String uid;
private String name;
private String status;
private String reponse;
private String url;
}
package com.yeejoin.amos.avic.face.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.activation.DataSource;
public class InputStreamDataSource implements DataSource{
private InputStream inputStream;
public InputStreamDataSource(InputStream inputStream) {
this.inputStream = inputStream;
}
@Override
public InputStream getInputStream() throws IOException {
return inputStream;
}
@Override
public OutputStream getOutputStream() throws IOException {
return parse(inputStream);
}
private ByteArrayOutputStream parse(final InputStream in) throws IOException {
final ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
int ch;
while ((ch = in.read()) != -1) {
swapStream.write(ch);
}
return swapStream;
}
@Override
public String getContentType() {
return "application/octet-stream";
}
@Override
public String getName() {
return "InputStreamDataSource";
}
}
package com.yeejoin.amos.avic.face.model;
import java.util.List;
import lombok.Data;
@Data
public class TransferModel extends UploadFileModel{
private List<FileItem> files;
private String taskId;
private String bizId;
private String processDefinitionId;
private String result;
private String comment;
private Boolean autoConfirm = false;
}
package com.yeejoin.amos.avic.face.model;
import lombok.Data;
@Data
public class UploadFileModel {
String path;
String avicCode;
}
package com.yeejoin.amos.avic.face.orm.dao;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.avic.face.orm.entity.AvicCustomPath;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Mapper
public interface AvicCustomPathMapper extends BaseMapper<AvicCustomPath> {
}
\ No newline at end of file
package com.yeejoin.amos.avic.face.orm.dao;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.avic.face.orm.entity.AvicCustomPath;
import com.yeejoin.amos.avic.face.orm.entity.AvicEMail;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Mapper
public interface AvicEMailMapper extends BaseMapper<AvicEMail> {
}
\ No newline at end of file
package com.yeejoin.amos.avic.face.orm.dao;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.avic.face.orm.entity.AvicSenderRecord;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Mapper
public interface AvicSendRecodelMapper extends BaseMapper<AvicSenderRecord> {
}
\ No newline at end of file
package com.yeejoin.amos.avic.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("idx_biz_c82t")
public class AvicCustomPath extends BaseEntity {
@TableField("AGENCY_CODE")
private String agencyCode;
@TableField("PATH_NAME")
private String pathName;
@TableField("PATH")
private String path;
/**
* 分类编码
*/
@TableField("PATH_DESC")
private String pathDesc;
@TableField("id")
private String id;
}
package com.yeejoin.amos.avic.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Data
@TableName("idx_biz_email")
public class AvicEMail {
@TableField("TEMPLATE")
private String template;
@TableField("id")
private String id;
@TableField("ENABLED")
private long enabled;
}
package com.yeejoin.amos.avic.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Data
@TableName("idx_biz_send_recode")
public class AvicSenderRecord {
@TableField("id")
private String id;
@TableField("attachment")
private String attachment;
}
package com.yeejoin.amos.avic.face.service;
import java.util.List;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.annotation.Condition;
import org.typroject.tyboot.core.rdbms.annotation.Operator;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.avic.face.model.AvicCustomPathModel;
import com.yeejoin.amos.avic.face.orm.dao.AvicCustomPathMapper;
import com.yeejoin.amos.avic.face.orm.entity.AvicCustomPath;
/**
* <p>
* 服务类
* </p>
*
* @author 子杨
* @since 2022-03-28
*/
@Component
public class AvicCustomPathService extends BaseService<AvicCustomPathModel,AvicCustomPath,AvicCustomPathMapper> {
/**
* 分页查询
* @param string
*/
public Page<AvicCustomPathModel> queryForAvicCustomPathPage(Page<AvicCustomPathModel> page, @Condition(Operator.like) String pathName, String agencyCode) {
return this.queryForPage(page, null, false, pathName, agencyCode);
}
/**
* 列表查询 示例
*/
public List<AvicCustomPathModel> queryForAvicCustomPathList(String agencyCode) {
return this.queryForList("" , false, agencyCode);
}
public AvicCustomPath queryForAvicCustomPathBySequenceNbr(String path) {
return null;
}
}
package com.yeejoin.amos.avic.face.service;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.yeejoin.amos.avic.face.model.AvicSenderRecordModel;
import com.yeejoin.amos.avic.face.orm.dao.AvicSendRecodelMapper;
import com.yeejoin.amos.avic.face.orm.entity.AvicSenderRecord;
@Component
public class EMailSenderRecodeService extends BaseService<AvicSenderRecordModel,AvicSenderRecord, AvicSendRecodelMapper>{
}
package com.yeejoin.amos.avic.face.service;
import java.io.File;
import java.io.FileOutputStream;
import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.UUID;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.sun.mail.util.MailSSLSocketFactory;
import com.yeejoin.amos.avic.face.model.AvicEMailModel;
import com.yeejoin.amos.avic.face.model.EMailModel;
import com.yeejoin.amos.avic.face.orm.dao.AvicEMailMapper;
import com.yeejoin.amos.avic.face.orm.entity.AvicEMail;
@Component
@DependsOn("systemctl")
public class EMailSenderService extends BaseService<AvicEMailModel,AvicEMail, AvicEMailMapper>{
private Transport transport;
@Autowired
private EMailModel eMailModel;
public EMailSenderService() throws Exception {
//初始化该类拿不到配置文件里的东西
//init(eMailModel.getHost(), eMailModel.getPort(), eMailModel.getUsername(), eMailModel.getPassword(), eMailModel.isValipwd(), eMailModel.isEnabledStarttls());
}
public void start(List<DictionarieValueModel> result) throws Exception{
eMailModel.setHost(result.get(0).getDictDataValue());
eMailModel.setPort(Integer.parseInt(result.get(1).getDictDataValue()));
eMailModel.setUsername(result.get(2).getDictDataValue());
eMailModel.setPassword(result.get(3).getDictDataValue());
init(eMailModel.getHost(), eMailModel.getPort(), eMailModel.getUsername(), eMailModel.getPassword(), eMailModel.isValipwd(), eMailModel.isEnabledStarttls());
}
public void init(String host, int port, final String username, final String password, boolean valipwd , boolean enabledStarttls) throws Exception {
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
if (enabledStarttls) {
MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
} catch (GeneralSecurityException e) {
throw e;
}
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.socketFactory", sf);
props.put("mail.smtp.starttls.enable", "true");
}
if (valipwd) {
props.put("mail.smtp.auth", true);
} else {
props.put("mail.smtp.auth", false);
}
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
URLName urlName = new URLName("smtp",host,port,null,null,null);
this.transport = session.getTransport(urlName);
}
private void doSend(MimeMessage mimeMessage, Address[] addresses) throws MessagingException {
transport.connect();
transport.sendMessage(mimeMessage, addresses);
transport.close();
}
public void send(String avicCode, String targetAddress, String text, String file) throws Exception {
MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new Properties()));
mimeMessage.setFrom(new InternetAddress(targetAddress));
mimeMessage.setRecipients(Message.RecipientType.TO, new Address[]{
new InternetAddress(targetAddress, avicCode)
});
mimeMessage.setSubject(11111111 + UUID.randomUUID().toString());
mimeMessage.setSentDate(new Date());
mimeMessage.setHeader("X-Mailer", "LOTONtechEmail");
mimeMessage.setHeader("usercode_header", "xUnMI9FGtWvuFYjHZAlWdmjh58sWfyZOOJNa+HwaJfELrqMvJg3iuIjRAhpuccf5");
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(text);
Multipart mp = new MimeMultipart();
mimeMessage.setContent(mp);
mimeMessage.writeTo(new FileOutputStream(new File("D:\\temp.eml")));
for (int i = 0; i < 1; i++) {
doSend(mimeMessage, new Address[]{
new InternetAddress("ccc<user4@test.com>"),
});
}
}
public String getEmailTemplate() {
List<AvicEMailModel> list = this.queryForList(null, false);
for (AvicEMailModel model : list) {
if (model.getEnabled() == 1) {
return model.getTemplate();
}
}
return "";
}
}
package com.yeejoin.amos.avic.face.utils;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class StringUtils {
public static String format(String content, HashMap<String, Object> variables) {
StringTemplateLoader stringLoader = new StringTemplateLoader();
Configuration cfg = new Configuration();
cfg.setTemplateLoader(stringLoader);
String template = "content";
stringLoader.putTemplate(template, content);
try {
Template templateCon = cfg.getTemplate(template);
StringWriter writer = new StringWriter();
templateCon.process(variables, writer);
return writer.toString();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
return null;
}
}
package com.yeejoin.amos.avic.face.webservice;
import javax.activation.DataHandler;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlMimeType;
import com.yeejoin.amos.avic.face.model.AvicCustomPathModel;
@WebService(targetNamespace = "http://service.avic.amos.yeejoin.com")
public interface FileFransferService {
/**
* 利用中航码传输文件
* @param handler
* @param fileName
* @param path
*/
@WebMethod
public void useCodetransferFile(
@WebParam(name = "dataHandler")
@XmlMimeType(value = "application/octet-stream") DataHandler handler,
@WebParam(name = "fileName") String fileName,
@WebParam(name = "path") String path,
@WebParam(name = "code") String code) throws Exception;
/**
* 传输文件
* @param handler
* @param fileName
* @param path
*/
@WebMethod
public void transferFile(
@WebParam(name = "dataHandler")
@XmlMimeType(value = "application/octet-stream") DataHandler handler,
@WebParam(name = "fileName") String fileName,
@WebParam(name = "path") String path);
/**
* 传输目录配置
* @param name
* @param path
* @param desc
*/
@WebMethod
public void transferPathConfig(@WebParam(name="model") AvicCustomPathModel model);
}
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-api</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>amos-boot-module-ccs-api</artifactId>
</project>
\ No newline at end of file
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 公共dto类
*
* @author DELL
*/
@Data
public class BaseDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "创建日期")
private Date createDate;
@ApiModelProperty(value = "同步日期")
private Date synDate;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
/**
* 电力设备资产
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentDto", description = "电力设备资产")
public class EquipmentDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "站点编码")
private String stationCode;
@ApiModelProperty(value = "站点名称")
private String stationName;
@ApiModelProperty(value = "电力设备唯一标识")
private String mrid;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "所属区域mrid")
private String areaMrid;
@ApiModelProperty(value = "所属区域")
private String workArea;
@ApiModelProperty(value = "所属建筑mrid")
private String buildMrid;
@ApiModelProperty(value = "所属建筑")
private String buildName;
@ApiModelProperty(value = "所属楼层mrid")
private String floorMrid;
@ApiModelProperty(value = "所属楼层")
private String floorName;
@ApiModelProperty(value = "所属房间mrid")
private String roomMrid;
@ApiModelProperty(value = "所属房间")
private String roomName;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "设备图片,多条以,隔开")
private List<String> img;
@ApiModelProperty(value = " 电源负荷图,多条以,隔开")
private List<String> powerImg;
@ApiModelProperty(value = " 封堵图,多条以,隔开")
private List<String> pluggingImg;
@ApiModelProperty(value = "行车路线图,多条以,隔开")
private List<String> routeImg;
@ApiModelProperty(value = "取水图,多条以,隔开")
private List<String> fetchWaterImg;
@ApiModelProperty(value = "责任部门")
private String chargeDept;
@ApiModelProperty(value = "责任人")
private String chargeUser;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 消防建筑表
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "FireBuildingDto", description = "消防建筑表")
public class FireBuildingDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "站点编码")
private String stationCode;
@ApiModelProperty(value = "站点名称")
private String stationName;
@ApiModelProperty(value = "消防建筑唯一标识")
private String mrid;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "建筑类别")
private String classify;
@ApiModelProperty(value = "楼层数量")
private String floorNumber;
@ApiModelProperty(value = "包含装备数量")
private String equipmentNumber;
@ApiModelProperty(value = "父级mrid")
private String parentMrid;
@ApiModelProperty(value = "树形mrids,包括自己,冗余用于树形查询")
private String treeMrids;
@ApiModelProperty(value = "类型(建筑、楼层、房间)")
private String type;
@ApiModelProperty(value = "建筑图片")
private String photoUrl;
@ApiModelProperty(value = "经度")
private String lng;
@ApiModelProperty(value = "纬度")
private String lat;
@ApiModelProperty(value = "位置")
private String position;
@ApiModelProperty(value = "属性信息")
private String attribute;
@ApiModelProperty(value = "子节点")
private List<FireBuildingDto> children;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 换流站隐患日统计
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "FireDangerDayStatisticsDto", description = "换流站隐患日统计")
public class FireDangerDayStatisticsDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "站点编码")
private String stationCode;
@ApiModelProperty(value = "站点名称")
private String stationName;
@ApiModelProperty(value = "统计日期")
private Date collectDate;
@ApiModelProperty(value = "报警次数")
private Integer dangerTimes;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 消防设备资产
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "FireEquipmentDto", description = "消防设备资产")
public class FireEquipmentDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "站点编码")
private String stationCode;
@ApiModelProperty(value = "站点名称")
private String stationName;
@ApiModelProperty(value = "实物id")
private String mrid;
@ApiModelProperty(value = "设备名称")
private String name;
@ApiModelProperty(value = "设备编码")
private String code;
@ApiModelProperty(value = "设备类别名称")
private String categoryName;
@ApiModelProperty(value = "设备类别编码")
private String categoryCode;
@ApiModelProperty(value = "设备图片")
private String img;
@ApiModelProperty(value = "设备物联编码")
private String iotCode;
@ApiModelProperty(value = "所属区域")
private String workArea;
@ApiModelProperty(value = "所在建筑id")
private String buildMrid;
@ApiModelProperty(value = "所属消防系统ids")
private String fightingSystemMrids;
@ApiModelProperty(value = "位置")
private String position;
@ApiModelProperty(value = "使用日期")
private Date inUseDate;
@ApiModelProperty(value = "是否为物联设备:0-否;1-是")
private Boolean isIot;
@ApiModelProperty(value = "状态")
private String status;
@ApiModelProperty(value = "使用状态")
private String inUseState;
@ApiModelProperty(value = "修改时间")
private Date updateDate;
@ApiModelProperty(value = "建筑名称")
private String buildName;
@ApiModelProperty(value = "物理区域id")
private String areaMrid;
@ApiModelProperty(value = "经度")
private String lng;
@ApiModelProperty(value = "纬度")
private String lat;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 消防资产参数信息
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "FireEquipmentInfoDto", description = "消防资产参数信息")
public class FireEquipmentInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "消防资产id")
private String fireEquipmentMrid;
@ApiModelProperty(value = "字段名(英文)")
private String fieldName;
@ApiModelProperty(value = "中文名")
private String fieldLabel;
@ApiModelProperty(value = "属性值")
private String value;
@ApiModelProperty(value = "数据类型")
private String dataType;
@ApiModelProperty(value = "计量单位")
private String measureUnit;
@ApiModelProperty(value = "是否必填")
private Boolean isMust;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "修改时间")
private Date updateDate;
}
package com.yeejoin.amos.boot.module.ccs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 设备报警信息表
*
* @author system_generator
* @date 2021-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "FireEquipmentSignalDto", description = "设备报警信息表")
public class FireEquipmentSignalDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "站点名称")
private String stationName;
@ApiModelProperty(value = "站点编码")
private String stationCode;
private String fireEquipmentName;
@ApiModelProperty(value = "消防设备id")
private String fireEquipmentMrid;
@ApiModelProperty(value = "设备编码")
private String iotCode;
@ApiModelProperty(value = "指标名称")
private String fireEquipmentIndexName;
@ApiModelProperty(value = "指标编码")
private String fireEquipmentIndexKey;
@ApiModelProperty(value = "报警值")
private String fireEquipmentIndexValue;
@ApiModelProperty(value = "发生频次")
private Integer frequency;
@ApiModelProperty(value = "报警状态:1报警0恢复")
private Boolean status;
@ApiModelProperty(value = "报警类型:alarm_type_fire(火灾报警)/alarm_type_trouble(故障告警)")
private String type;
@ApiModelProperty(value = "更新时间")
private Date updateDate;
@ApiModelProperty(value = "告警恢复时间")
private Date recoveryDate;
@ApiModelProperty(value = "装备所属消防系统code")
private String systemMrids;
@ApiModelProperty(value = "装备定义code(冗余字段)")
private String equipmentDefinitionMrid;
@ApiModelProperty(value = "装备定义名称")
private String equipmentDefinitionName;
@ApiModelProperty(value = "设备位置")
private String location;
@ApiModelProperty(value = "经度")
private String lng;
@ApiModelProperty(value = "纬度")
private String lat;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment