Commit a0b1c60a authored by duanruiming's avatar duanruiming

修改HttpRestUtils调用方式通过以openFeign远程调用utcService

parent 1ecddeb2
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
<module>identity-client-starter</module> <module>identity-client-starter</module>
<module>signal-utc-service</module> <module>signal-utc-service</module>
<module>signal-control-service</module> <module>signal-control-service</module>
<module>signal-feign-service</module>
<module>wj-common</module> <module>wj-common</module>
<module>wj-databus</module> <module>wj-databus</module>
<module>wj-identity</module> <module>wj-identity</module>
<module>wj-portal</module> <module>wj-portal</module>
<module>signal-feign-service</module>
</modules> </modules>
<!-- 依赖版本 --> <!-- 依赖版本 -->
...@@ -51,11 +51,17 @@ ...@@ -51,11 +51,17 @@
<pagehelper.boot.version>1.3.1</pagehelper.boot.version> <pagehelper.boot.version>1.3.1</pagehelper.boot.version>
<jersey.version>2.23.2</jersey.version> <jersey.version>2.23.2</jersey.version>
<artemis.version>1.1.7</artemis.version> <artemis.version>1.1.7</artemis.version>
<validator-version>6.0.1.Final</validator-version>
</properties> </properties>
<!-- 依赖声明 --> <!-- 依赖声明 -->
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${validator-version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId> <artifactId>spring-cloud-dependencies</artifactId>
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<dependency> <dependency>
<groupId>net.wanji</groupId> <groupId>net.wanji</groupId>
<artifactId>signal-feign-service</artifactId> <artifactId>signal-feign-service</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-REALSE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -93,7 +93,6 @@ ...@@ -93,7 +93,6 @@
<dependency> <dependency>
<groupId>org.hibernate</groupId> <groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId> <artifactId>hibernate-validator</artifactId>
<version>6.0.1.Final</version>
</dependency> </dependency>
<!-- apache commons--> <!-- apache commons-->
<dependency> <dependency>
......
package net.wanji.web.common;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
public final class Constants {
/*记录当前用户*/
public static ThreadLocal<String> current_user_id = ThreadLocal.withInitial(() -> "");
//gisc-develop 工作流事务全局标识,默认不开启
public static ThreadLocal<Boolean> OPEN_GLOBAL_TRANSACTION = ThreadLocal.withInitial(() -> Boolean.FALSE);
//gisc-develop D2A事务实现,db操作临时conn存放
public static ThreadLocal<List<Connection>> DB_CONNS = ThreadLocal.withInitial(ArrayList::new);
//日志消息名称关键字
public static final String BP_LOG = "log";
//数据扩展表关键字
public static final String TABLE_RELATION="_relation";
public final class MessageES{
public static final String MESSAGE_HISTORY = "message_history";
public static final String MESSAGE_CONSUME_HISTORY = "message_consume_history";
public static final String MESSAGE_FILTER_HISTORY = "message_filter_history";
}
public final class WebsocketMessage{
public static final String NEW_UNREAD_MESSAGE = "";
public static final String GET_UNREAD_COUNT="";
public static final String GET_READ_MESSAGE="";
public static final String GET_UNREAD_MESSAGE="";
}
public final class igniteCacheName {
//bp design 模块缓存名称
public static final String BP_DESIGN_CACHE = "gisc-portal-cache-name";
public static final String BP_GATEWAY_CACHE = "gisc-gateway-cache-name";
public static final String GATEWAY_CACHE = "gatewayCache";
public static final String API_RESTFUL_CACHE = "apiRestfulCache";
public static final String A2A_RESTFUL_CACHE = "a2aRestfulCache";
public static final String D2A_TABLE_RESTFUL_CACHE = "d2aTableRestfulCache";
public static final String BP_ROADNET_CACHE = "gisc-roadnet-cache-name";
}
public final class Env {
public static final String BASE_HOME = "";
public static final String WORKFLOW_HOME = "configs/workflow/";
}
// RepoModuleType 分类
public final class RepoModuleTypeType {
public static final String RULE = "rule";
public static final String COMMON = "common";
public static final String APPLICATION = "application";
}
public final class MqTopic {
public static final String JAVA_MODULE_OFFLINE_TOPIC = "javaModuleOffline";
public static final String JAVA_MODULE_ONLINE_TOPIC = "javaModuleOnline";
}
public final class MqKey {
}
public final class ImportExport {
public static final String IMPORT = "import";
public static final String EXPORT = "export";
}
public final class DevExport {
public static final String MAN_DEV_APP = "MAN_DEV_APP.csv";
public static final String MAN_DEV_APPTHEME = "MAN_DEV_APPTHEME.csv";
public static final String MAN_APP_TYPE = "MAN_APP_TYPE.csv";
public static final String MAN_GW_D2A_DATABASE = "MAN_GW_D2A_DATABASE.csv";
public static final String MAN_DEV_API_RESTFUL = "MAN_DEV_API_RESTFUL.csv";
public static final String MAN_GW_D2A_TABLE_RESTFUL = "MAN_GW_D2A_TABLE_RESTFUL.csv";
public static final String MAN_DEV_RESTFUL = "MAN_DEV_RESTFUL.csv";
public static final String MAN_GW_D2A_TABLE = "MAN_GW_D2A_TABLE.csv";
public static final String MAN_GW_D2A_TABLE_FIELDS = "MAN_GW_D2A_TABLE_FIELDS.csv";
public static final String MAN_DEV_DATA_DICT_CONTENT = "MAN_DEV_DATA_DICT_CONTENT.csv";
public static final String MAN_DEV_DATA_DICT_TYPE = "MAN_DEV_DATA_DICT_TYPE.csv";
public static final String MAN_GW_M2A_MAIL = "MAN_GW_M2A_MAIL.csv";
public static final String MAN_REPO_MODULE_TYPE = "MAN_REPO_MODULE_TYPE.csv";
public static final String MAN_REPO_MODULE = "MAN_REPO_MODULE.csv";
public static final String MAN_DEV_MODULE = "MAN_DEV_MODULE.csv";
public static final String MAN_MSG_TOPIC = "MAN_MSG_TOPIC.csv";
public static final String MAN_MSG_ROUTE = "MAN_MSG_ROUTE.csv";
public static final String MAN_MSG_SUBSCRIBE = "MAN_MSG_SUBSCRIBE.csv";
public static final String MAN_MSG_FILTER_ITEM = "MAN_MSG_FILTER_ITEM.csv";
public static final String CLI_IC_APP_BUSINESS_ACCOUNT = "CLI_IC_APP_BUSINESS_ACCOUNT.csv";
public static final String CLI_IC_ORGANIZATION = "CLI_IC_ORGANIZATION.csv";
public static final String CLI_IC_ROLE = "CLI_IC_ROLE.csv";
public static final String CLI_IC_ROLE_BUSINESSACCOUNT_RLAT = "CLI_IC_ROLE_BUSINESSACCOUNT_RLAT.csv";
public static final String CLI_DEV_MENU = "CLI_DEV_MENU.csv";
public static final String MAN_MSG_TOPIC_FILTER_ITEM_RLAT= "MAN_MSG_TOPIC_FILTER_ITEM_RLAT.csv";
public static final String MAN_DEV_PLUGIN_PARAM="MAN_DEV_PLUGIN_PARAM.csv";
}
public final class BpmExport {
//导出流程定义表
public static final String WORKFLOW = "MAN_BPM_WORKFLOW.csv";
//导出流程实例表
public static final String WORKFLOW_INST = "MAN_BPM_WORKFLOW_INST.csv";
//导出流程任务表
public static final String WORKFLOW_INST_TASK = "MAN_BPM_WORKFLOW_TASK.csv";
//导出流程任务处理人表
public static final String WORKFLOW_INST_TASK_PERSON = "MAN_BPM_WORKFLOW_TASK_PERSON.csv";
//导出流程任务会签表
public static final String WORKFLOW_INST_TASK_SIGN = "MAN_BPM_WORKFLOW_TASK_COUNTERSIGN.csv";
//导出流程通知表
public static final String WORKFLOW_NOTICE = "MAN_BPM_WORKFLOW_NOTICE.csv";
//导出流程分类表
public static final String WORKFLOW_TYPE = "MAN_BPM_WORKFLOW_TYPE.csv";
//导出流程参数表
public static final String WORKFLOW_BPM_VAR = "MAN_BPM_VAR.csv";
//导出流程规则表
public static final String WORKFLOW_BPM_RULE = "MAN_BPM_RULE.csv";
//导出流程节点表
public static final String WORKFLOW_BPM_PLUGIN_PARAM = "MAN_BPM_PLUGIN_PARAM.csv";
//导出流程邮件日志表
public static final String WORKFLOW_MAIL_LOG = "MAN_BPM_MAIL_LOG.csv";
//导出流程原因表
public static final String WORKFLOW_LEAVE_INFO = "MAN_BPM_LEAVE_INFO.csv";
//导出流程form表单表
public static final String WORKFLOW_BPM_FORM = "MAN_BPM_FORM.csv";
//导出页面表
public static final String PAGE_WEB = "CLI_DEV_WEB_PAGE.csv";
//导出组件表
public static final String COMPONENT = "CLI_DEV_COMPONENT.csv";
//导出组件组表
public static final String COMPONENT_GROUP = "CLI_DEV_COMPONENT_GROUP.csv";
//导出组件版本表
public static final String COMPONENT_VERSION = "CLI_DEV_COMPONENT_VERSION.csv";
}
/**
* 系统基础服务路径
*/
public final class RestPathPrefix {
public static final String PREFIX = "bp/";
public static final String DEVELOP_PREFIX = "develop/";
public static final String LOG_PREFIX = "log/";
public static final String DESIGN_PREFIX = "design/";
public static final String MODEL_CONSOLE = "design/console/";
public static final String MODEL_IDENTITYAUTH = "bp/auth/";
public static final String MODEL_RESTFUL = "develop/restful/";
public static final String MODEL_IDENTITY = "bp/identity/";
public static final String MODEL_MSP = "bp/msp/";
public static final String MODEL_DATAMANAGE = "design/datamanage/";
public static final String MODEL_SGW = "design/sgw/";
public static final String MODEL_DISPLAYCENTER = "design/displaycenter/";
public static final String MODEL_TASKSCHEDULE = "design/taskschedule/";
public static final String MODEL_WEB = "design/web/";
public static final String FRONT_DEVELOP = "design/frontdevelop/";
public static final String MODEL_BPM_MANAGER = "design/bpm/";
public static final String MODEL_COMMON = "design/common/";
public static final String MODEL_PROCESS_QUERY = "develop/processquery/";
public static final String MODEL_MESSAGECENTER = "design/messagecenter/";
public static final String MODEL_DEV = "design/develop/";
public static final String MODEL_RULE = "design/rule/";
public static final String MODEL_DATA_CHECK = "design/datacheck/";
public static final String MODEL_TOOLS = "design/tools/";
public static final String MODEL_CONFIG_CENTER = "design/configcenter/";
public static final String MODEL_APPMANAGE = "design/appmanage/";
public static final String MODEL_COMPONENT = "design/component/";
public static final String MODEL_PORTAL = "design/portal/";
public static final String MODEL_LOG = "log/logcenter/";
public static final String MODEL_OPERATION_MONITOR = "design/operationmonitor/";
public static final String MODEL_SYSTEM_SETTING = "design/systemsetting/";
public static final String MODEL_STATISTICS = "bp/statistics/";
public static final String MODEL_IM = "bp/im/";
public static final String MODEL_DEVICE = "bp/things/";
public static final String MODEL_IM_USER = "bp/user/";
public static final String MODEL_IM_MESSAGE = "bp/message/";
public static final String MODEL_IM_GROUP = "bp/group/";
public static final String MODEL_IM_CHANNEL = "bp/channel/";
public static final String MODEL_IM_ORGANIZATION = "bp/organization/";
public static final String MODEL_IM_ORGAN_USER = "bp/organuser/";
public static final String MODEL_IM_STATISTICS = "bp/statistics";
public static final String MODEL_IM_TASK = "bp/task/";
//数据源
public static final String MODEL_DATASOURCE = "develop/datasource/";
//数据资源
public static final String MODEL_RESOURCE = "develop/resource/";
//数据资源管理
public static final String MODEL_RESOURCE_DATA = "develop/resourcedata/";
//基础数据
public static final String MODEL_BASE_DATA = "design/basedata/";
//服务接口
public static final String MODEL_DEV_SERVICE="develop/service/";
//基础设置
public static final String MODEL_CONFIG_DATA = "design/config/";
//MSP
public static final String MODEL_MSP_STYLECONFIG = "bp/msp/config/";
//geoServer
public static final String GEOSERVER = "geoserver/";
/**
* msp相关path定义
*/
public static final String MODEL_MSP_SERVICE = "bp/msp/service/";
public static final String MODEL_MSP_RESOURCE = "bp/msp/resource/";
public static final String MODEL_MSP_CONFIG = "bp/msp/config/";
public static final String MODEL_MSP_TOOL = "bp/msp/tool/";
public static final String MODEL_MSP_SCENSE = "bp/msp/sense/";
/***
* 路网api定义
*/
public static final String ROADNET_API = "api/roadnet/";
/**
* 设备信息
*/
public static final String DEVICE_API = "api/device/";
}
public final class ServiceDevPathPrefix{
/**
* 数据库接口
*/
public static final String DEV_DB_INTERFACE = "sgw/dbInterface";
/**
* 服务接口接口
*
*/
public static final String DEV_API_INTERFACE="sgw/apiInterface";
/**
* dev 注册服务
*/
public static final String DEV_SGW_SERVICE = "develop/sgw/serviceInterface/";
/**
* vt 矢量栅格服务
*/
public static final String DEV_VT_SERVICE="develop/vt/";
}
/**
* 数据能力标签,元数据驱动的核心代码
*/
public final class DataTag{
/**
* geometry
* 空间表
* --
* export
* 导出
* --
* nest
* 套和
* --
* hook
* 挂接
* --
* cache
* 缓存
* --
* publish
* 发布
* --
* edit
*/
public static final String DATA_TAG_EXPORT="export";
public static final String DATA_TAG_GEOMETRY="geometry";
public static final String DATA_TAG_NEST="nest";
public static final String DATA_TAG_HOOK="hook";
public static final String DATA_TAG_CACHE="cache";
public static final String DATA_TAG_PUBLISH="publish";
public static final String DATA_TAG_EDIT="edit";
}
/**
* Restful 对外的静态变量
*/
public final class JsonView {
public static final String STATUS_SUCCESS = "success";
public static final String STATUS_FAIL = "fail";
public static final String MESSAGE_FAIL = "操作失败";
public static final String MESSAGE_SUCCESS = "操作成功";
public static final String MESSAGE_PARAM_ERROR = "参数错误";
public static final String MESSAGE_FROMAT_ERROR = "请求格式错误";
public static final String MESSAGE_GET_PARAM_ERROR = "GET请求参数错误,注:暂不支持对象嵌套及数组";
public static final String MESSAGE_LOGIN_SUCCESS = "登录成功";
public static final String DELETE_ERROR_MSG = "表单【%s】已被流程【%s】使用";
}
/**
* 接口服务参数
*/
public static class ServiceConstants {
public static final String API_URL = "url";
public static final String API_ACCESS_METHOD = "method";
public static final String API_ACCESS_GET = "get";
public static final String API_ACCESS_POST = "post";
public static final String API_ACCESS_PUT = "put";
public static final String API_ACCESS_DELETE = "delete";
public static final String API_BODY = "body";
public static final String API_HEADER = "header";
public static final String API_QUERY = "query";
public static final String API_PATH = "pathParam";
}
/**
* @Description: 网关表,类型相关参数
* @return
* @Author mapabc8
* @Date 2020/2/14 10:10
**/
public static class ServiceType {
public static final String SERVICE_D2A = "d2a";
public static final String SERVICE_A2A = "a2a";
public static final String SERVICE_WEB_SERVICE = "webservice";
public static final String SERVICE_M2A = "m2a";
public static final String SERVICE_ORCHESTRATION = "orchestration";
public static final String SERVICE_DEVELOP = "develop";
public static final String SERVICE_BASIC = "basic";
public static final String SERVICE_BUSINESS = "business";
}
public static class AppType {
public static final String APP_REPOSITORY = "repository";
public static final String APP_EXTERNAL = "external";
public static final String APP_ORCHESTRATION = "orchestration";
public static final String APP_DEVELOP = "develop";
public static final String APP_INTERNAL = "internal";
}
/*
* apiType
* api 类型
*/
public static class RestfulApiType {
//内部系统
public static final String SERVICE_INSIDE = "inside";
//外部系统
public static final String SERVICE_OUTSIDE = "outside";
}
/*
* apiParam
* api 参数
*/
public static class ApiParam {
// mock
public static final String MOCK = "mock";
public static final String UNMOCK = "unmock";
}
/*
* spring application name
*/
public static class applicationName {
public static final String BP_RESTFUL = "gisc-restful";
public static final String BP_GATEWAY = "gisc-gateway";
public static final String BP_DESIGN = "gisc-portal";
public static final String BP_DEVELOP = "gisc-develop";
public static final String BP_IDENTITY = "gisc-identity";
public static final String BP_MSP = "gisc-msp";
}
/**
* 缓存名称
*/
public final class Cache {
public static final String USER = "user";
public static final String ONLINE_USER = "online_user";
public static final String ONLINE_MOBILE_USER = "online_mobile_user";
public static final String SYSTEM_SESSION = "system_session";
public static final String LOGIN_CACHE = "login_cache";
public static final String ETL_CACHE = "etl_workflow_cache";
public static final String RE_CACHE = "re_workflow_cache";
public static final String RE_CACHE_TOPIC = "re_workflow_cache_topic";
}
public final static class SystemParam {
/**
* 逗号分隔符
*/
public static String COMMA_SPLIT = ",";
/**
* 冒号分隔符
*/
public static String COLON_SPLIT = ":";
/**
* 空Json串
*/
public static String BLANK_JSON_STRING = "{}";
}
/**
* mysql 的字段类型
*/
public final static class MysqlColumn {
public final static String YEAR = "YEAR";
public final static String DATE = "DATE";
public final static String DATETIME = "DATETIME";
public final static String TIMESTAMP = "TIMESTAMP";
public final static String BINARY = "BINARY";
public final static String VARBINARY = "VARBINARY";
public final static String TINYINT = "TINYINT";
public final static String SMALLINT = "SMALLINT";
public final static String MEDIUMINT = "MEDIUMINT";
public final static String INT = "INT";
public final static String BIGINT = "BIGINT";
public final static String BIT = "BIT";
public final static String CHAR = "CHAR";
public final static String VARCHAR = "VARCHAR";
public final static String TEXT = "TEXT";
public final static String LONGTEXT = "LONGTEXT";
public final static String DECIMAL = "DECIMAL";
public final static String DOUBLE = "DOUBLE";
public final static String FLOAT = "FLOAT";
}
/**
* postgresql 的字段类型
*/
public final static class PostGreSqlColumn {
public final static String TEXT = "text"; // string
public final static String BPCHAR = "char"; // string
public final static String VARCHAR = "varchar"; // string
public final static String INT4 = "int4"; // integer
public final static String INT2 = "int2"; // integer
public final static String FLOAT4 = "float4"; // float
public final static String FLOAT8 = "float8"; // double
public final static String MONEY = "money"; // double
public final static String BIT = "bit"; // boolean
public final static String NUMERIC = "numeric"; // BigDecimal
public final static String BOOL = "bool"; // boolean
public final static String INT8 = "int8"; // long
public final static String TIMESTAMP = "timestamp"; // timestamp
public final static String TIME = "time"; // time
public final static String DATE = "date"; // time
public final static String BYTEA = "bytea"; // ?
public final static String BOX = "box"; // object
public final static String CIDR = "cidr"; // object
public final static String INET = "inet"; // object
public final static String MACADDR = "macaddr"; // object
public final static String VARBIT = "varbit"; // object
public final static String CIRCLE = "circle"; // object
public final static String INTERVAL = "interval"; // object
public final static String LINE = "line"; // object
public final static String LSEG = "lseg"; // object
public final static String POLYGON = "polygon"; // object
public final static String POINT = "point"; // object
public final static String PATH = "path"; // object
}
/**
* oracle 的字段类型
*/
public final static class OracleColumn {
public final static String VARCHAR2 = "VARCHAR2";
public final static String VARCHAR = "VARCHAR";
public final static String ORACLE_CHAR = "CHAR";
public final static String TIMESTAMP = "TIMESTAMP";
public final static String DATE = "DATE";
public final static String RAW = "RAW";
public final static String NVARCHAR2 = "NVARCHAR2";
public final static String TIMESTAMP_WITH_LOCAL_TIME_ZONE = "TIMESTAMP_WITH_LOCAL_TIME_ZONE";
public final static String TIMESTAMP_WITH_TIME_ZONE = "TIMESTAMP_WITH_TIME_ZONE";
public final static String INTERVAL_DAY_TO_SECOND = "INTERVAL_DAY_TO_SECOND";
public final static String INTERVAL_YEAR_TO_MONTH = "INTERVAL_YEAR_TO_MONTH";
public final static String NUMBER = "NUMBER";
public final static String FLOAT = "FLOAT";
}
/**
* @Description: sqlserver 的字段类型
* @return
* @Author mapabc8
* @Date 2020/3/12 17:47
**/
public final static class SqlServerColumn {
// Character 字符串
public final static String CHAR = "char";
public final static String VARCHAR = "varchar";
public final static String TEXT = "text";
// Number 类型
public final static String TINYINT = "tinyint";
public final static String SMALLINT = "smallint";
public final static String INT = "int";
public final static String BIGINT = "bigint";
public final static String FLOAT = "float";
// Binary类型
public final static String BIT = "bit";
public final static String BINARY = "binary";
public final static String VARBINARY = "varbinary";
// Date 类型
public final static String DATETIME = "datetime";
public final static String DATETIME2 = "datetime2";
public final static String TIMESTAMP = "timestamp";
}
/**
* 数据表相关
*/
public final static class TableInfo {
public static final String COLUMN_NAME = "COLUMN_NAME";
public static final String TYPE_NAME = "TYPE_NAME";
public static final String COLUMN_SIZE = "COLUMN_SIZE";
public static final String IS_PK = "IS_PK";
public static final String ISNULL = "ISNULL";
public static final String IS_BUSINESS_PK = "IS_BUSINESS_PK";
public static final String NULLABLE = "NULLABLE";
public static final String COLUMN_DEF = "COLUMN_DEF";
public static final String DECIMAL_DIGITS = "DECIMAL_DIGITS";
}
/**
* 数据库
*/
public final static class DataBase {
public static final String MYSQL = "mysql";
public static final String ORACLE = "oracle";
public static final String BEYONDB = "beyondb";
public static final String POSTGRESQL = "postgresql";
public static final String SQLSERVER="sqlserver";
}
/**
* 数据源的驱动
*/
public static final class DbDriver {
public static final String MYSQL = "com.mysql.jdbc.Driver";
public static final String ORACLE = "oracle.jdbc.driver.OracleDriver";
public static final String BEYONDB = "org.postgresql.Driver";
public static final String IMPALA = "com.cloudera.impala.jdbc41.Driver";
public static final String SQLSERVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public static final String POSTGRESQL = "org.postgresql.Driver";
}
private static final String DATE_FORMAT_DAY = "yyyy-MM-dd";
private static final String DATE_FORMAT_HOUR = "yyyy-MM-dd HH";
private static final String DATE_FORMAT_MINUTE = "yyyy-MM-dd HH:mm";
private static final String DATE_FORMAT_SECOND = "yyyy-MM-dd HH:mm:ss";
private static final String DATE_FORMAT_MILLIS = "yyyy-MM-dd HH:mm:ss.SSS";
private static final String DATE_FORMAT_TIME = "HH:mm:ss";
private static final String DATE_FORMAT_WEEKDAY = "EEEE";
public enum DATE_FORMAT {
// 平台指定的时间格式字符串
E_DATE_FORMAT_DAY(DATE_FORMAT_DAY),
E_DATE_FORMAT_HOUR(DATE_FORMAT_HOUR),
E_DATE_FORMAT_MINUTE(DATE_FORMAT_MINUTE),
E_DATE_FORMAT_SECOND(DATE_FORMAT_SECOND),
E_DATE_FORMAT_MILLIS(DATE_FORMAT_MILLIS),
E_DATE_FORMAT_TIME(DATE_FORMAT_TIME),
E_DATE_FORMAT_WEEKDAY(DATE_FORMAT_WEEKDAY);
private final String strFormat;
DATE_FORMAT(String strFormat) {
this.strFormat = strFormat;
}
public String getStrFormat() {
return strFormat;
}
}
public static final class ServicePluginParamArea {
public static final String GLOBAL = "global";
public static final String PARAM = "param";
public static final String OUTPUT = "output";
}
/*流程服务封装公用变量定义*/
public final class ProcessService {
public static final String ERROR_PARAM = "参数错误";
public static final String NO_PROCESS_OPERATE = "参数错误,无对应流程操作";
public static final String OPERATE_FAILD = "操作失败";
public static final String DEPLOY_SUCCESS = "部署成功";
public static final String DEPLOY_FAILD = "部署失败";
public static final String UNDEPLOY_SUCCESS = "取消部署成功";
public static final String UNDEPLOY_FAILD = "取消部署失败";
public static final String SUCCEED_COUNT = "成功条数";
public static final String FAILED_COUNT = "失败条数";
public static final String FAILED_USER_ID = "失败用户id";
public static final String START_ROWNUM = "startRowNum";
public static final String PAGE_SIZE = "pageSize";
public static final String PARAM_ERROR = "参数错误: processId=%s, userId=%s";
public static final String NODE_CONFIG_ERROR = "节点配置错误";
public static final String CANNOT_DEAL = "无法处理此任务,用户无对应操作权限或流程被暂停";
public static final String COMMENT_TYPE_PASS = "PASS";
public static final String COMMENT_TYPE_NO_PASS = "NO_PASS";
public static final String NR_OF_INSTANCES_VAR_NAME = "nrOfInstances";
public static final String NR_OF_ACTIVE_INSTANCES_VAR_NAME = "nrOfActiveInstances";
public static final String APPROVED_COUNTER_VAR_NAME = "approvedCounter";
public static final String COMMENT_BACK = "驳回";
public static final String COMMENT_TYPE_BACK = "BACK";
public static final String PAUSE_PROCESS = "流程已暂停,无法操作";
public static final String ADMIN_ID = "admin";
public static final String ALREADY_ACTIVE = "流程已激活,请勿重复操作";
public static final String ALREADY_ASSIGNED = "任务已分配到指定用户,无需重复操作";
public static final String COMMENT_ASSIGNE = "委派处理";
public static final String REJECT_ASSIGNE = "驳回处理";
public static final String COMMENT_TYPE_DEFAULT = "comment";
public static final String PROCESS_START_EVENT = "start";
public static final String PROCESS_END_EVENT = "end";
public static final String START_USER_ID = "startUserId";
public static final String PROCESS_INSTANCE_NAME = "processInstanceName";
public static final String NEED_EMAIL_VAR_NAME = "needEmail";
public static final String EMAIL_SERVICE_BEAN_NAME = "emailService";
public static final String CANDIDATE_USERS_VAR_NAME = "candidateUsers";
public static final String NOTICE_TYPE_START = "start";
public static final String NOTICE_TYPE_NEXT = "next";
/*流程表单保存在流程变量中的名称*/
public static final String FORM_DATA_USER_DEFINED_VAR_NAME = "formDataUserDefined";
public static final String START_FORM_DATA_USER_DEFINED_VAR_NAME = "startFormDataUserDefined";
/*流程是否通过流程变量*/
public static final String IS_APPROVED_VAR_NAME = "isApproved";
}
/*流程操作,枚举常量*/
public enum ProcessOperateType {
/*启动流程*/
start,
//审批,通过-不通过,通过变量控制
approve,
//驳回,到指定节点
back,
//委派
transfer,
//暂停
suspend,
//激活
active,
//作废
delete,
//抄送标记为已读
readCopyTo,
//抄送标记为未读
unReadCopyTo;
}
/*流程节点权限计算,枚举常量*/
public enum AUTH_CALCULATE_TYPE {
//根据指定企业
withCompany,
//根据指定部门
withDepartment,
//根据岗位
withStation,
//根据角色
withRole,
//根据企业用户
withCompanyUser,
//求并集
withUnion,
//求交集
withIntersection;
}
/**
* 流程定义bpmn20.xml生成字符属性
*/
public final static class Process {
public static final String DEFAULT_CHARSET = "UTF-8"; //编码格式utf-8定义
public static final String BPMN_XML_SUFFIX = ".bpmn20.xml"; //编码格式utf-8定义
/*bpmn20.xml节点定义 start*/
public static final String BPMN_DEFINITIONS = "definitions";
public static final String BPMN_XMLNS = "xmlns";
public static final String BPMN_XMLNS_CONTENT = "http://www.omg.org/spec/BPMN/20100524/MODEL";
public static final String BPMN_XMLNS_ACTIVITI = "xmlns:activiti";
public static final String BPMN_XMLNS_ACTIVITI_CONTENT = "http://activiti.org/bpmn";
public static final String BPMN_TARGET_NAMESPACE = "targetNamespace";
public static final String BPMN_TARGET_NAMESPACE_CONTENT = "http://activiti.org/bpmn20";
public static final String BPMN_XMLNS_XSI = "xmlns:xsi";
public static final String BPMN_XMLNS_XSI_CONTENT = "http://www.w3.org/2001/XMLSchema-instance";
public static final String BPMN_PROCESS = "process";
public static final String BPMN_ID = "id";
public static final String BPMN_PROCESS_ID = "processId";
public static final String BPMN_NAME = "name";
public static final String BPMN_SOURCE_REF = "sourceRef";
public static final String BPMN_TARGET_REF = "targetRef";
public static final String BPMN_CALLED_ELEMENT = "calledElement";
public static final String BPMN_EXTENSION_ELEMENTS = "extensionElements";
public static final String BPMN_SOURCE = "source";
public static final String BPMN_TARGET = "target";
public static final String BPMN_ACTIVITI_IN = "activiti:in";
public static final String BPMN_ACTIVITI_OUT = "activiti:out";
public static final String BPMN_CONDITION_EXPRESSION = "conditionExpression";
public static final String BPMN_XSI_TYPE = "xsi:type";
public static final String BPMN_FORMAL_EXPRESSION = "tFormalExpression";
public static final String BPMN_ACTIVITI_TASKLISTENER = "activiti:taskListener";
public static final String BPMN_EVENT = "event";
public static final String BPMN_CREATE = "create";
public static final String BPMN_CLASS = "class";
public static final String BPMN_ACTIVITI_CLASS = "activiti:class";
public static final String BPMN_ACTIVITI_EXECUTION_LISTENER = "activiti:executionListener";
public static final String BPMN_START = "start";
public static final String BPMN_END = "end";
public static final String BPMN_COMPLETE = "complete";
public static final String BPMN_EXPRESSION = "expression";
public static final String BPMN_COMPLETE_EXPRESSION_METHOD = "${userTaskHandler.postComplete(execution)}";
public static final String BPMN_START_EXPRESSION_METHOD = "${userTaskHandler.preStart(execution)}";
public static final String BPMN_ACTIVITI_CANDIDATE_USERS = "activiti:candidateUsers";
public static final String BPMN_ACTIVITI_CANDIDATE_USERS_VALUE = "${candidates}";
public static final String BPMN_MULTI_INSTANCE_LOOP_CHARACTERISTICS = "multiInstanceLoopCharacteristics";
public static final String BPMN_IS_SEQUENTIAL = "isSequential";
public static final String BPMN_IS_SEQUENTIAL_VALUE = "false";
public static final String BPMN_ACTIVITI_COLLECTION = "activiti:collection";
public static final String BPMN_ACTIVITI_COLLECTION_METHOD_NAME = "${userTaskHandler.getActorUser(execution)}";
public static final String BPMN_ACTIVITI_ELEMENT_VARIABLE = "activiti:elementVariable";
public static final String BPMN_CANDIDATES = "candidates";
public static final String BPMN_COMPLETION_CONDITION = "completionCondition";
public static final String BPMN_COMPLETION_CONDITION_CONTENT = "${userTaskHandler.dealComplete(execution)}";
public static final String BPMN_PROCESS_EXECUTION_LISTENER_NAME = "net.wanji.design.engine.operate.impl.ProcessExecutionListener";
public static final String BPMN_ACTIVITI_CLASS_NAME = "net.wanji.design.engine.operate.impl.AutoNodeServiceTask";
/*bpmn20.xml节点定义 end*/
/*流程设计器元素类型常量定义 start*/
public static final String START_NODE = "startNode";
public static final String END_NODE = "endNode";
public static final String APPROVAL_NODE = "approvalNode";
public static final String CONDITION_LINE = "conditionLine";
public static final String FORK_NODE = "forkNode";
public static final String CALL_ACTIVITY_NODE = "callActivityNode";
public static final String AUTO_NODE = "autoNode";
/*流程设计器元素类型常量定义 end*/
/*xml创建节点类型,枚举常量*/
public enum NodeType {
START("startEvent"),
END("endEvent"),
USERTASK("userTask"),
CONDITION("inclusiveGateway"),
FLOW("sequenceFlow"),
AUTO_NODE("serviceTask"),
CALL_ACTIVITY("callActivity");
private String value;
NodeType(String value) {
this.value = value;
}
@Override
public String toString() {
return this.value;
}
}
/*审批节点类型*/
public enum ApprovalNodeType {
SINGLE_INSTANCE, //非会签节点
MULTI_INSTANCE, //会签节点
COPY_TO; //抄送节点, 通过任务接收人实现, 用权限控制
}
}
/* 消息类型 */
public enum MessageType {
// 工作流消息
BPM_MESSAGE_LOG("bpm_log");
private String value;
MessageType(String value) {
this.value = value;
}
public static MessageType getEnumByValue(String value) {
for (MessageType msgType : MessageType.values()) {
if (msgType.toString().equals(value)) {
return msgType;
}
}
return null;
}
@Override
public String toString() {
return this.value;
}
}
/*日志保存操作类型*/
public enum LogType {
//接口日志 D2A
D2A_INTERFACE_API_LOG("d2a_interface_api_log"),
//接口日志 A2A
A2A_INTERFACE_API_LOG("a2a_interface_api_log"),
//接口日志 webservice
WEBSERVICE_INTERFACE_API_LOG("webservice_interface_api_log"),
//接口日志 基础接口
BASE_INTERFACE_API_LOG("base_interface_api_log"),
//接口日志 业务接口
BUSINESS_INTERFACE_API_LOG("business_interface_api_log"),
//接口日志 集成接口
INTEGRATION_INTERFACE_API_LOG("integration_interface_api_log"),
//接口日志 服务编排接口
SGW_INTERFACE_API_LOG("sgw_interface_api_log"),
//接口日志 邮件接口
MAIL_INTERFACE_API_LOG("mail_interface_api_log"),
//调度日志 d2a接口
SCHEDULE_D2A_INTERFACE_API_LOG("schedule_d2a_interface_api_log"),
//调度日志 A2A接口
SCHEDULE_A2A_INTERFACE_API_LOG("schedule_a2a_interface_api_log"),
//调度日志 基础接口
MICROSERVICE_BASE_INTERFACE_API_LOG("microservice_base_interface_api_log"),
//调度日志 业务接口
MICROSERVICE_BUSINESS_INTERFACE_API_LOG("microservice_business_interface_api_log"),
//调度日志 集成接口
MICROSERVICE_INTEGRATION_INTERFACE_API_LOG("microservice_integration_interface_api_log"),
//调度日志 服务编排
MICROSERVICE_ORCHESTRATION_INTERFACE_API_LOG("microservice_orchestration_interface_api_log"),
//调度日志 系统日志
SYSTEM_TASK_LOG("system_task_log"),
// 授权日志
AUTH_LOG("auth_log"),
//网关日志 基础接口日志
GATEWAY_BASE_INTERFACE_API_LOG("gateway_base_interface_api_log"),
//网关日志 业务接口日志
GATEWAY_BUSINESS_INTERFACE_API_LOG("gateway_business_interface_api_log"),
//网关日志 集成接口日志
GATEWAY_INTEGRATION_INTERFACE_API_LOG("gateway_integration_interface_api_log"),
//网关日志 a2a
GATEWAY_A2A_INTERFACE_API_LOG("gateway_a2a_interface_api_log"),
//网关日志 d2a
GATEWAY_D2A_INTERFACE_API_LOG("gateway_d2a_interface_api_log"),
//网关日志 服务编排
GATEWAY_ORCHESTRATION_INTERFACE_API_LOG("gateway_orchestration_interface_api_log"),
//服务开发插件日志
DEV_SERVICE_PLUGIN_LOG("dev_service_plugin_log"),
//服务开发流程日志
DEV_SERVICE_FLOW_LOG("dev_service_flow_log"),
//服务编排任务调度日志
DEV_SCHEDULE_LOG("dev_schedule_log"),
//服务编排发布日志
SGW_SERVICE_PUBLISH_LOG("sgw_service_publish_log"),
//服务编排插件日志
SGW_SERVICE_PLUGIN_LOG("sgw_service_plugin_log"),
//服务编排流程日志
SGW_SERVICE_FLOW_LOG("sgw_service_flow_log"),
//服务网关D2A日志
SGW_D2A_SERVICE_LOG("sgw_d2a_service_log"),
// 操作日志
OPERATION_LOG("operation_log"),
// 登录日志
LOGIN_LOG("login_log");
private String value;
LogType(String value) {
this.value = value;
}
public static LogType getEnumByValue(String value) {
for (LogType logType : LogType.values()) {
if (logType.toString().equals(value)) {
return logType;
}
}
return null;
}
@Override
public String toString() {
return this.value;
}
}
/**
* 重构移植 重新划分模块后,把之前bp-domain下的constants移植过来 start 20200514
*/
public static class ConsoleConstants {
public static final class User {
public static final String USER = "user";
public static final String SYS_USER = "sysUser";
public static final String TOKEN = "token";
}
}
public static class FunctionManageConstants {
public static final class FunctionJar {
public static final String DOWNLOAD_PATH_KEY = "folder";
}
}
public static class ServiceDevelopConstants {
public static final class TableOperationLogConst {
public static final String RES_TYPE = "table";
// 业务表的操作类型。
public static final String CREATE_TABLE_OPERATION = "new";
public static final String DELETE_TABLE_OPERATION = "delete";
public static final String UPDATE_TABLE_OPERATION = "update";
public static final String IMPORT_TABLE_OPERATION = "import";
}
}
public static class ServiceGateWayConstants {
public static final class D2ADataBase {
public static final String DB_MYSQL = "mysql";
public static final String DB_ORACLE = "oracle";
public static final String DB_SQLSERVER = "sqlserver";
public static final String DB_BEYONDB = "beyondb";
public static final String DB_POSTGRESQL = "postgresql";
}
public static final class DataSource {
public static final String DB_ELASTICSEARCH = "elasticsearch";
public static final String DB_KAFKA = "kafka";
public static final String DB_RABBITMQ = "rabbitmq";
public static final String DB_REDIS = "redis";
public static final String DB_WEBSOCKET = "websocket";
public static final String DB_WEBSERVICE = "webservice";
public static final String DB_MONGODB="mongo";
}
public static final class TableRestfulConstants {
public final static String INTERFACE_CODE_BY_PAGE = "findByPage";
public final static String INTERFACE_CODE_BY_CONDITION = "findByWhere";
public final static String INTERFACE_CODE_BY_ID = "findById";
public final static String INTERFACE_CODE_INSERT = "insert";
public final static String INTERFACE_CODE_UPDATE = "update";
public final static String INTERFACE_CODE_DELETE = "delete";
public final static String INTERFACE_CODE_BY_SQL = "multiTable";//bySql
}
}
public static class ServicePublishConstants {
public final class SqlConstants {
public static final String BLANK = " ";
public static final String FIELD_NAME_EN = "fieldNameEn";
public static final String FIELD_TYPE = "type";
public static final String FIELD_VALUE = "value";
public static final String FIELD_FLAG = "flag";
public static final String OPERATIONS = "operations";
public static final String CONDITION_COLUMNS = "condition_columns";
public static final String TYPES_AND_VALUES = "typesAndValues";
public static final String CONDITION = "condition";
public static final String SET = "set";
public static final String OPERATION = "operation";
public static final String BETWEEN_OPERATION = "between";
public static final String PAGE_SIZE = "pageSize";
public static final String PAGE_NUM = "pageNum";
public static final String ORDER="order";
public static final String IN_OPERATION="in";
public static final String DESC_OPERATION="DESC";
public static final String ASC_OPERATION="ASC";
public static final String LIKE_OPERATION="like";
}
/**
* 数据库类型常量定义
*/
public final class DBType {
public final static String MYSQL = "mysql";
public final static String ORACLE = "oracle";
public final static String SQLSERVER = "sqlserver";
public final static String BEYONDB = "beyondb";
}
}
public static class TaskScheduleConstants {
public static class ScheduleStatus {
public static final String STOP = "0";
public static final String START = "1";
}
}
public static class StatisticalConstants {
public static class UserTrends {
public static final String LOGIN_TIME = "loginTime";
public static final String START_DATE = "startDate";
public static final String END_DATE = "endDate";
public static final String CHART_DATA = "chartData";
public static final String DAILY_ACTIVE_USER = "dailyActiveUser";
public static final String DAILY_NEW_USER = "dailyNewUser";
public static final String DAILY_OLD_USER = "dailyOldUser";
public static final String DAILY_USER_VISITS = "dailyUserVisits";
public static final String DEDICATED_HOSTING_IP = "dedicatedHostingIp";
public static final String DAILY_UPDATE_USER = "dailyUpdateUser";
public static final String DAILY_NEWANDUPDATE_USER = "dailyNewAndUpdateUser";
public static final String DAILY_STARTUP = "dailyStartup";
}
}
/**
* IM类型
*/
public final class IM {
public static final String IM_CLIENT_ID = "IMClientId";
public static final String IM_PLATFORM = "IMPlatform";
public static final String IM_USER = "IMUser";
public static final String IM_TOKEN = "IMToken";
}
public final class Idnetity {
public static final String UNI_USER_AGENT = "X-Uni-User-Agent";
}
/**重构移植 end 20200514*/
/**
* 空间数据表
*/
public final class tableNameConstants {
public static final String RID_RID = "rid_rid";
public static final String RID_CROSS = "rid_cross";
public static final String RID_LANE_OBJ = "rid_lane_obj";
public static final String RID_AXF_THREE = "rid_axf_three";
public static final String ROAD_SEGMENT = "data_roadsegment";
}
/**
* 路网数据更新状态
*/
public final class DataConstants {
// 数据状态 0继承,1删除,2增加,3修改
public final static String DATA_MODE_EXTENTD = "0";
public final static String DATA_MODE_DELETE = "1";
public final static String DATA_MODE_ADD = "2";
public final static String DATA_MODE_EDIT = "3";
}
}
\ No newline at end of file
package net.wanji.web.common.entity;
import net.wanji.web.common.Constants;
import net.wanji.web.common.enums.HttpCode;
import lombok.Data;
import java.io.Serializable;
//没有get set方法会导致feign 接口调用时,无法使用JsonViewObject作为返回值
@Data
public class JsonViewObject implements Serializable {
private Object content;
private String message;
private String status;
private Integer code;
private Long timestamp;
public Object getContent() {
return content;
}
public String getMessage() {
return message;
}
public String getStatus() {
return status;
}
private JsonViewObject() {
}
public static JsonViewObject newInstance() {
return new JsonViewObject();
}
public JsonViewObject success() {
return success((Object) "");
}
public JsonViewObject success(Object content) {
return success(content, "");
}
public JsonViewObject success(String message) {
return success("", message);
}
public JsonViewObject success(Object content, String message) {
return pack(content, message, Constants.JsonView.STATUS_SUCCESS);
}
public JsonViewObject fail() {
return fail("", "");
}
public JsonViewObject fail(Exception e) {
String message = e.getMessage();
int index = message.indexOf(":");
return fail(index == -1 ? message : message.substring(index + 1));
}
public JsonViewObject fail(String errMsg) {
return fail("", errMsg);
}
public JsonViewObject fail(Object content, String message) {
return pack(content, message, Constants.JsonView.STATUS_FAIL);
}
private JsonViewObject pack(Object content, String message, String status) {
this.content = content;
this.message = message;
this.status = status;
//增加服务返回状态码,后期待完善
this.code=(status.equals(Constants.JsonView.STATUS_SUCCESS) ? HttpCode.SUCCESS.value():HttpCode.INTERNAL_SERVER_ERROR.value());
return this;
}
}
\ No newline at end of file
package net.wanji.web.common.entity;
import net.wanji.web.common.enums.StatusCode;
/**
* HTTP响应类
*
* @author Kent HAN
* @date 2022/10/26 15:48
*/
public class Result<T> {
private String status;
private String msg;
private T data;
private Result(T data) {
this.status = StatusCode.SUCCESS.getStatus();
this.msg = StatusCode.SUCCESS.getMsg();
this.data = data;
}
private Result(StatusCode statusCode) {
if (statusCode == null) {
return;
}
this.status = statusCode.getStatus();
this.msg = statusCode.getMsg();
}
private Result(StatusCode statusCode, String msg) {
if (statusCode == null) {
return;
}
this.status = statusCode.getStatus();
this.msg = statusCode.getMsg() + "--" + msg;
}
/**
* 成功时候的调用
*/
public static <T> Result<T> success(T data) {
return new Result<T>(data);
}
/**
* 成功,不需要传入参数
*/
@SuppressWarnings("unchecked")
public static <T> Result<T> success() {
return (Result<T>) success("");
}
/**
* 失败时候的调用
*/
public static <T> Result<T> error(StatusCode statusCode) {
return new Result<T>(statusCode);
}
/**
* 失败时候的调用,扩展消息参数
*/
public static <T> Result<T> error(StatusCode statusCode, String msg) {
return new Result<T>(statusCode, msg);
}
public T getData() {
return data;
}
public String getStatus() {
return status;
}
public String getMsg() {
return msg;
}
}
\ No newline at end of file
package net.wanji.web.common.exception; package net.wanji.web.common.exception;
import net.wanji.web.common.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
......
package net.wanji.web.controller; package net.wanji.web.controller;
import net.wanji.web.common.entity.JsonViewObject; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.web.service.SignalEvaluateService; import net.wanji.web.service.SignalEvaluateService;
import net.wanji.web.vo.signalEvaluate.FlowQueueInVO; import net.wanji.web.vo.signalEvaluate.FlowQueueInVO;
import net.wanji.web.vo.signalEvaluate.FlowQueueOutVO; import net.wanji.web.vo.signalEvaluate.FlowQueueOutVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
......
package net.wanji.web.controller; package net.wanji.web.controller;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.wanji.web.common.Result; import net.wanji.feign.pojo.result.Result;
import net.wanji.web.util.HttpRestUtil; import net.wanji.feign.pojo.vo.*;
import net.wanji.web.vo.signalservice.*; import net.wanji.feign.service.UtcFeignClients;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -29,51 +25,44 @@ import java.util.Objects; ...@@ -29,51 +25,44 @@ import java.util.Objects;
public class SignalServiceController { public class SignalServiceController {
@Autowired @Autowired
private HttpRestUtil httpRestUtil; private UtcFeignClients utcFeignClients;
@Value("${utcServiceUrl}")
private String utcServiceUrl;
@ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发") @ApiOperation(value = "信号机方案下发-基础方案下发", notes = "信号机方案下发-基础方案下发")
@PostMapping("/schemeSend") @PostMapping("/schemeSend")
public <T> Result<T> schemeSend(HttpServletRequest httpServletRequest, @RequestBody SchemeSendVO schemeSendVO) { public <T> Result<T> schemeSend(@RequestBody SchemeSendVO schemeSendVO) {
String param = JSONObject.toJSONString(schemeSendVO); Result result = utcFeignClients.schemeSend(schemeSendVO);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "信号机方案下发-基础方案下发UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
@ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息") @ApiOperation(value = "计划下发-计划信息、时段信息", notes = "计划下发-计划信息、时段信息")
@PostMapping("/planSend") @PostMapping("/planSend")
public <T> Result<T> planSend(HttpServletRequest httpServletRequest, @RequestBody PlanSendVO planSendVO) throws Exception { public <T> Result<T> planSend(@RequestBody PlanSendVO planSendVO) throws Exception {
String param = JSONObject.toJSONString(planSendVO); Result result = utcFeignClients.planSend(planSendVO);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "计划下发-计划信息、时段信息UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
@ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息") @ApiOperation(value = "时间表下发-时间表信息", notes = "时间表下发-时间表信息")
@PostMapping("/scheduleSend") @PostMapping("/scheduleSend")
public <T> Result<T> scheduleSend(HttpServletRequest httpServletRequest, @RequestBody ScheduleSendVO scheduleSendVO) throws Exception { public <T> Result<T> scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO) throws Exception {
String param = JSONObject.toJSONString(scheduleSendVO); Result result = utcFeignClients.scheduleSend(scheduleSendVO);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "时间表下发-时间表信息UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
@ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)") @ApiOperation(value = "相位配时下发-(下发相位参数)", notes = "相位配时下发-(下发相位参数)")
@PostMapping("/phaseTimingSend") @PostMapping("/phaseTimingSend")
public <T> Result<T> phaseTimingSend(HttpServletRequest httpServletRequest, @RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception { public <T> Result<T> phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO) throws Exception {
String param = JSONObject.toJSONString(phaseTimingSendVO); Result result = utcFeignClients.phaseTimingSend(phaseTimingSendVO);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "相位配时下发-(下发相位参数)UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
...@@ -82,20 +71,18 @@ public class SignalServiceController { ...@@ -82,20 +71,18 @@ public class SignalServiceController {
@PostMapping("/lampStateControl") @PostMapping("/lampStateControl")
public <T> Result<T> allRedControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception { public <T> Result<T> allRedControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
Integer controlType = commandVO.getControlType(); Integer controlType = commandVO.getControlType();
String uri = ""; Result result = new Result();
if (1 == controlType) { if (1 == controlType) {
uri = "/controlCommand/allRedControl"; result = utcFeignClients.allRedControl(commandVO);
} }
if (2 == controlType) { if (2 == controlType) {
uri = "/controlCommand/yellowLightControl"; result = utcFeignClients.yellowLightControl(commandVO);
} }
if (3 == controlType) { if (3 == controlType) {
uri = "/controlCommand/closeLightControl"; result = utcFeignClients.closeLightControl(commandVO);
} }
String param = JSONObject.toJSONString(commandVO);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(uri), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(uri))); return Result.error(result.getState(), "灯态控制UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
...@@ -107,38 +94,32 @@ public class SignalServiceController { ...@@ -107,38 +94,32 @@ public class SignalServiceController {
@ApiImplicitParam(name = "stepNum", value = "0 顺序步进 n 跳过n个相位", paramType = "query", required = true, dataType = "int"), @ApiImplicitParam(name = "stepNum", value = "0 顺序步进 n 跳过n个相位", paramType = "query", required = true, dataType = "int"),
}) })
@PostMapping("/stepControl") @PostMapping("/stepControl")
public <T> Result<T> stepControl(HttpServletRequest httpServletRequest, @RequestParam String code, public <T> Result<T> stepControl(@RequestParam String code,
@RequestParam Integer command, @RequestParam Integer command,
@RequestParam int stepNum) throws Exception { @RequestParam int stepNum) throws Exception {
Map<String, Object> map = new HashMap<String, Object>(); Result result = utcFeignClients.stepControl(code, command, stepNum);
map.put("code", code);
map.put("command", command);
map.put("stepNum", stepNum);
String param = JSONObject.toJSONString(map);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "步进控制-步进控制/恢复UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
@ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行") @ApiOperation(value = "恢复时间表-恢复路口时间表执行", notes = "恢复时间表-恢复路口时间表执行")
@PostMapping("/recoverSchedule") @PostMapping("/recoverSchedule")
public <T> Result<T> recoverSchedule(HttpServletRequest httpServletRequest, @RequestParam String code) throws Exception { public <T> Result<T> recoverSchedule(@RequestParam String code) throws Exception {
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, code, Result.class); Result result = utcFeignClients.recoverSchedule(code);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "恢复时间表-恢复路口时间表执行UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
@ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁") @ApiOperation(value = "锁定控制-相位锁定/解锁", notes = "锁定控制-相位锁定/解锁")
@PostMapping("/lockControl") @PostMapping("/lockControl")
public <T> Result<T> lockControl(HttpServletRequest httpServletRequest, @RequestBody @Validated ControlCommandVO commandVO) throws Exception { public <T> Result<T> lockControl(@RequestBody @Validated ControlCommandVO commandVO) throws Exception {
String param = JSONObject.toJSONString(commandVO); Result result = utcFeignClients.lockControl(commandVO);
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, param, Result.class);
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "锁定控制-相位锁定/解锁UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
...@@ -146,15 +127,11 @@ public class SignalServiceController { ...@@ -146,15 +127,11 @@ public class SignalServiceController {
@ApiOperation(value = "相位差下发", notes = "相位差下发") @ApiOperation(value = "相位差下发", notes = "相位差下发")
@PostMapping("/phaseDiffSend") @PostMapping("/phaseDiffSend")
public <T> Result<T> phaseDiffSend(HttpServletRequest httpServletRequest) { public <T> Result<T> phaseDiffSend(HttpServletRequest httpServletRequest) {
Result result = httpRestUtil.doPost(utcServiceUrl.concat(getRemoteUri(httpServletRequest)), null, null, Result.class); Result result = utcFeignClients.phaseDiffSend();
if (Objects.isNull(result) || result.getState() != 200) { if (Objects.isNull(result) || result.getState() != 200) {
return Result.error(result.getState(), "远程服务调用异常url".concat(utcServiceUrl.concat(getRemoteUri(httpServletRequest)))); return Result.error(result.getState(), "相位差下发UTC服务调用异常");
} }
return Result.success("success"); return Result.success("success");
} }
public static String getRemoteUri(HttpServletRequest httpServletRequest) {
String requestURI = httpServletRequest.getRequestURI().substring(4);
return requestURI;
}
} }
...@@ -2,7 +2,7 @@ package net.wanji.web.controller; ...@@ -2,7 +2,7 @@ package net.wanji.web.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.wanji.web.common.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.web.service.SituationDetectionService; import net.wanji.web.service.SituationDetectionService;
import net.wanji.web.vo.situationDetection.*; import net.wanji.web.vo.situationDetection.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
package net.wanji.web.controller; package net.wanji.web.controller;
import net.wanji.web.common.entity.JsonViewObject;
import net.wanji.web.common.exception.CrossRelationException;
import net.wanji.web.service.SpecialServiceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.web.common.exception.CrossRelationException;
import net.wanji.web.service.SpecialServiceService;
import net.wanji.web.vo.specialService.*; import net.wanji.web.vo.specialService.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
......
...@@ -3,7 +3,7 @@ package net.wanji.web.controller; ...@@ -3,7 +3,7 @@ package net.wanji.web.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.wanji.web.common.Result; import net.wanji.feign.pojo.result.Result;
import net.wanji.web.po.AreaTreePO; import net.wanji.web.po.AreaTreePO;
import net.wanji.web.po.CrossInfoPO; import net.wanji.web.po.CrossInfoPO;
import net.wanji.web.po.PageResultPO; import net.wanji.web.po.PageResultPO;
......
...@@ -4,7 +4,7 @@ import io.swagger.annotations.Api; ...@@ -4,7 +4,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import net.wanji.web.common.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.web.common.exception.LightLaneConflictException; import net.wanji.web.common.exception.LightLaneConflictException;
import net.wanji.web.dto.CrossIdDTO; import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.SaveLaneInfoDTO; import net.wanji.web.dto.SaveLaneInfoDTO;
......
...@@ -3,7 +3,7 @@ package net.wanji.web.controller.scheme; ...@@ -3,7 +3,7 @@ package net.wanji.web.controller.scheme;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import net.wanji.web.common.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.web.dto.CrossIdDTO; import net.wanji.web.dto.CrossIdDTO;
import net.wanji.web.dto.SaveLightsInfoDTO; import net.wanji.web.dto.SaveLightsInfoDTO;
import net.wanji.web.service.scheme.impl.LightsConfigServiceImpl; import net.wanji.web.service.scheme.impl.LightsConfigServiceImpl;
......
...@@ -4,7 +4,7 @@ import io.swagger.annotations.Api; ...@@ -4,7 +4,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import net.wanji.web.common.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.web.dto.LaneIdDTO; import net.wanji.web.dto.LaneIdDTO;
import net.wanji.web.dto.LightIdDTO; import net.wanji.web.dto.LightIdDTO;
import net.wanji.web.dto.SaveSchemeConfigDTO; import net.wanji.web.dto.SaveSchemeConfigDTO;
......
...@@ -2,9 +2,8 @@ package net.wanji.web.exception; ...@@ -2,9 +2,8 @@ package net.wanji.web.exception;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.wanji.web.common.BaseInfoInterface; import net.wanji.feign.feignEnum.BaseInfoInterface;
import net.wanji.feign.feignEnum.ResultEnum;
import static net.wanji.web.common.ResultEnum.INTERNAL_SERVER_ERROR;
/** /**
* @author wuxiaokai * @author wuxiaokai
...@@ -25,7 +24,7 @@ public class CrossException extends RuntimeException { ...@@ -25,7 +24,7 @@ public class CrossException extends RuntimeException {
protected String errorMsg; protected String errorMsg;
public CrossException() { public CrossException() {
this(INTERNAL_SERVER_ERROR.getResultCode(), INTERNAL_SERVER_ERROR.getResultMsg()); this(ResultEnum.INTERNAL_SERVER_ERROR.getResultCode(), ResultEnum.INTERNAL_SERVER_ERROR.getResultMsg());
} }
public CrossException(BaseInfoInterface errorInfoInterface) { public CrossException(BaseInfoInterface errorInfoInterface) {
...@@ -41,7 +40,7 @@ public class CrossException extends RuntimeException { ...@@ -41,7 +40,7 @@ public class CrossException extends RuntimeException {
} }
public CrossException(String errorMsg) { public CrossException(String errorMsg) {
this(INTERNAL_SERVER_ERROR.getResultCode(), errorMsg); this(ResultEnum.INTERNAL_SERVER_ERROR.getResultCode(), errorMsg);
} }
public CrossException(Integer errorCode, String errorMsg) { public CrossException(Integer errorCode, String errorMsg) {
......
package net.wanji.web.handler; package net.wanji.web.handler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.web.common.Result; import net.wanji.feign.feignEnum.ResultEnum;
import net.wanji.feign.pojo.result.Result;
import net.wanji.web.exception.CrossException; import net.wanji.web.exception.CrossException;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MethodArgumentNotValidException;
...@@ -10,8 +11,6 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; ...@@ -10,8 +11,6 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import static net.wanji.web.common.ResultEnum.INTERNAL_SERVER_ERROR;
/** /**
* @author wuxiaokai * @author wuxiaokai
* @date 2022/11/21 9:06:40 * @date 2022/11/21 9:06:40
...@@ -36,7 +35,7 @@ public class GlobalExceptionHandler { ...@@ -36,7 +35,7 @@ public class GlobalExceptionHandler {
public Result<String> exceptionHandler(HttpServletRequest req, NullPointerException e) { public Result<String> exceptionHandler(HttpServletRequest req, NullPointerException e) {
String errorMessage = e.getCause().getMessage(); String errorMessage = e.getCause().getMessage();
log.error("发生空指针异常!原因是:{}", errorMessage); log.error("发生空指针异常!原因是:{}", errorMessage);
return Result.error(INTERNAL_SERVER_ERROR.getResultCode(), "发生空指针异常!原因是:" + errorMessage); return Result.error(ResultEnum.INTERNAL_SERVER_ERROR.getResultCode(), "发生空指针异常!原因是:" + errorMessage);
} }
/** /**
...@@ -45,12 +44,12 @@ public class GlobalExceptionHandler { ...@@ -45,12 +44,12 @@ public class GlobalExceptionHandler {
@ExceptionHandler(value = MethodArgumentNotValidException.class) @ExceptionHandler(value = MethodArgumentNotValidException.class)
public Result<String> exceptionHandler(HttpServletRequest req, MethodArgumentNotValidException e) { public Result<String> exceptionHandler(HttpServletRequest req, MethodArgumentNotValidException e) {
FieldError fieldError = e.getBindingResult().getFieldError(); FieldError fieldError = e.getBindingResult().getFieldError();
String errorMessage = INTERNAL_SERVER_ERROR.getResultMsg(); String errorMessage = ResultEnum.INTERNAL_SERVER_ERROR.getResultMsg();
if (fieldError != null) { if (fieldError != null) {
errorMessage = fieldError.getDefaultMessage(); errorMessage = fieldError.getDefaultMessage();
} }
log.error("发生参数异常!原因是:{}", errorMessage); log.error("发生参数异常!原因是:{}", errorMessage);
return Result.error(INTERNAL_SERVER_ERROR.getResultCode(), "发生参数异常!原因是:" + errorMessage); return Result.error(ResultEnum.INTERNAL_SERVER_ERROR.getResultCode(), "发生参数异常!原因是:" + errorMessage);
} }
/** /**
...@@ -66,6 +65,6 @@ public class GlobalExceptionHandler { ...@@ -66,6 +65,6 @@ public class GlobalExceptionHandler {
errorMessage = e.getMessage(); errorMessage = e.getMessage();
} }
log.error("未知异常!原因是:{}", errorMessage); log.error("未知异常!原因是:{}", errorMessage);
return Result.error(INTERNAL_SERVER_ERROR.getResultCode(), "未知异常!原因是:" + errorMessage); return Result.error(ResultEnum.INTERNAL_SERVER_ERROR.getResultCode(), "未知异常!原因是:" + errorMessage);
} }
} }
package net.wanji.web.service; package net.wanji.web.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.wanji.web.common.Result; import net.wanji.feign.pojo.result.Result;
import net.wanji.web.common.enums.CrossTypeEnum; import net.wanji.web.common.enums.CrossTypeEnum;
import net.wanji.web.entity.TBaseAreaInfo; import net.wanji.web.entity.TBaseAreaInfo;
import net.wanji.web.entity.TBaseCrossInfo; import net.wanji.web.entity.TBaseCrossInfo;
......
...@@ -3,17 +3,16 @@ package net.wanji.web.task; ...@@ -3,17 +3,16 @@ package net.wanji.web.task;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.web.common.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.common.util.StringUtils; import net.wanji.web.common.util.StringUtils;
import net.wanji.web.entity.TBaseCrossInfo; import net.wanji.web.entity.TBaseCrossInfo;
import net.wanji.web.entity.TDeviceStatusInfo; import net.wanji.web.entity.TDeviceStatusInfo;
import net.wanji.web.mapper.TDeviceStatusMapper; import net.wanji.web.mapper.TDeviceStatusMapper;
import net.wanji.web.service.SituationDetectionService; import net.wanji.web.service.SituationDetectionService;
import net.wanji.web.util.HttpRestUtil;
import net.wanji.web.vo.situationDetection.CommonEventAlarmOutVo; import net.wanji.web.vo.situationDetection.CommonEventAlarmOutVo;
import net.wanji.web.websocket.CommonEventWarnWebSocketServer; import net.wanji.web.websocket.CommonEventWarnWebSocketServer;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -28,8 +27,6 @@ import java.util.Map; ...@@ -28,8 +27,6 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import static net.wanji.web.util.HttpRestUtil.buildHeader;
/** /**
* @author duanruiming * @author duanruiming
* @date 2023/01/06 10:45 * @date 2023/01/06 10:45
...@@ -39,12 +36,7 @@ import static net.wanji.web.util.HttpRestUtil.buildHeader; ...@@ -39,12 +36,7 @@ import static net.wanji.web.util.HttpRestUtil.buildHeader;
public class CommonEventWarnTask { public class CommonEventWarnTask {
@Autowired @Autowired
private HttpRestUtil httpRestUtil; private UtcFeignClients utcFeignClients;
@Value("${utcServiceUrl}")
private String utcServiceUrl;
@Value("${syncDeviceSatusUrn}")
private String syncDeviceSatusUrl;
@Autowired @Autowired
private SituationDetectionService situationDetectionService; private SituationDetectionService situationDetectionService;
...@@ -94,10 +86,9 @@ public class CommonEventWarnTask { ...@@ -94,10 +86,9 @@ public class CommonEventWarnTask {
*/ */
private JsonViewObject getSignalWarnData() { private JsonViewObject getSignalWarnData() {
List<CommonEventAlarmOutVo> results = new ArrayList<>(); List<CommonEventAlarmOutVo> results = new ArrayList<>();
Map<String, String> header = buildHeader(); JsonViewObject jsonViewObject = utcFeignClients.runningStatusAlarm();
JsonViewObject jsonViewObject = httpRestUtil.doPost(utcServiceUrl.concat(syncDeviceSatusUrl), header, "", JsonViewObject.class);
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("远程服务调用异常".concat(utcServiceUrl.concat(syncDeviceSatusUrl))); return jsonViewObject.fail("信号机告警UTC服务调用异常!");
} }
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String formatNow = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(now); String formatNow = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(now);
......
package net.wanji.web.task; package net.wanji.web.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.feign.service.UtcFeignClients; import net.wanji.feign.service.UtcFeignClients;
import net.wanji.web.entity.TDeviceStatusInfo; import net.wanji.web.entity.TDeviceStatusInfo;
import net.wanji.web.mapper.TDeviceStatusMapper; import net.wanji.web.mapper.TDeviceStatusMapper;
import net.wanji.web.util.HttpRestUtil; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -20,51 +23,40 @@ import java.util.Objects; ...@@ -20,51 +23,40 @@ import java.util.Objects;
@Slf4j @Slf4j
public class SignalStatusTask { public class SignalStatusTask {
@Autowired
private HttpRestUtil httpRestUtil;
@Value("${utcServiceUrl}")
private String utcServiceUrl;
@Value("${syncDeviceSatusUrn}")
private String syncDeviceSatusUrl;
@Autowired @Autowired
private UtcFeignClients utcFeignClients; private UtcFeignClients utcFeignClients;
@Autowired @Autowired
private TDeviceStatusMapper tDeviceStatusMapper; private TDeviceStatusMapper tDeviceStatusMapper;
@Scheduled(fixedRate = 5 * 60 * 1000) @Scheduled(fixedRate = 1 * 60 * 1000)
public void syncSignalStatus() { public void syncSignalStatus() {
net.wanji.feign.entity.JsonViewObject jsonViewObject1 = utcFeignClients.runningStatusAlarm(); try {
System.out.println(jsonViewObject1); JsonViewObject jsonViewObject = utcFeignClients.runningStatusAlarm();
// try { if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
// // 远程通过UTC服务获取信号机状态 log.error("定时任务同步信号机设备状态utcService调用异常");
// JsonViewObject jsonViewObject = httpRestUtil.doPost(utcServiceUrl.concat(syncDeviceSatusUrl), null, "", JsonViewObject.class); return;
// if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) { }
// log.error("定时任务同步信号机设备状态远程utcService调用异常,url:".concat(utcServiceUrl.concat("/signalStatus/runningStatusAlarm"))); List<Map<String, Object>> content = (List<Map<String, Object>>) jsonViewObject.getContent();
// return; Map<String, Object> result = content.get(0);
// } String signalId = (String) result.get("signalId");
// List<Map<String, Object>> content = (List<Map<String, Object>>) jsonViewObject.getContent(); Integer currentSignalStatus = result.get("status") == null ? 0 : (Integer) result.get("status");
// Map<String, Object> result = content.get(0); Integer currentFaultType = result.get("faultType") == null ? 0 : (Integer) result.get("faultType");
// String signalId = (String) result.get("signalId");
// Integer currentSignalStatus = result.get("status") == null ? 0 : (Integer) result.get("status"); // 当前服务数据库状态
// Integer currentFaultType = result.get("faultType") == null ? 0 : (Integer) result.get("faultType"); LambdaQueryWrapper<TDeviceStatusInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
// if (StringUtils.isNotEmpty(signalId)) {
// // 当前服务数据库状态 lambdaQueryWrapper.eq(TDeviceStatusInfo::getCode, signalId);
// LambdaQueryWrapper<TDeviceStatusInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>(); TDeviceStatusInfo tDeviceStatusInfo = tDeviceStatusMapper.selectOne(lambdaQueryWrapper);
// if (StringUtils.isNotEmpty(signalId)) { if (isExucuteUpdate(currentSignalStatus, currentFaultType, tDeviceStatusInfo)) {
// lambdaQueryWrapper.eq(TDeviceStatusInfo::getCode, signalId); tDeviceStatusInfo.setStatus(currentSignalStatus);
// TDeviceStatusInfo tDeviceStatusInfo = tDeviceStatusMapper.selectOne(lambdaQueryWrapper); tDeviceStatusInfo.setFaultType(currentFaultType);
// if (isExucuteUpdate(currentSignalStatus, currentFaultType, tDeviceStatusInfo)) { tDeviceStatusMapper.updateById(tDeviceStatusInfo);
// tDeviceStatusInfo.setStatus(currentSignalStatus); }
// tDeviceStatusInfo.setFaultType(currentFaultType); }
// tDeviceStatusMapper.updateById(tDeviceStatusInfo); } catch (Exception e) {
// } log.error("定时任务同步信号机设备状态远程utcService调用异常", e);
// } }
// } catch (Exception e) {
// log.error("定时任务同步信号机设备状态远程utcService调用异常", e);
// }
} }
private static boolean isExucuteUpdate(Integer currentSignalStatus, Integer currentFaultType, TDeviceStatusInfo tDeviceStatusInfo) { private static boolean isExucuteUpdate(Integer currentSignalStatus, Integer currentFaultType, TDeviceStatusInfo tDeviceStatusInfo) {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</parent> </parent>
<artifactId>signal-feign-service</artifactId> <artifactId>signal-feign-service</artifactId>
<name>signal-feign-service</name> <name>signal-feign-service</name>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-REALSE</version>
<dependencies> <dependencies>
<dependency> <dependency>
...@@ -23,5 +23,18 @@ ...@@ -23,5 +23,18 @@
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
package net.wanji.feign.config; package net.wanji.feign.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
/** /**
* @author duanruiming * @author duanruiming
* @date 2023/01/09 15:23 * @date 2023/01/09 15:23
*/ */
@Configuration @Configuration(value = "FeignClientsConfig")
@EnableFeignClients(basePackages = "net.wanji.feign.service") @EnableFeignClients(basePackages = "net.wanji.feign.service")
public class FeignClientsConfig { public class FeignClientsConfig {
@Value("${utc.service.url}")
private String url;
@Bean
public void testUrl() {
System.err.println("===========feign url:" + url);
}
} }
package net.wanji.web.common; package net.wanji.feign.feignEnum;
/** /**
* @author wuxiaokai * @author wuxiaokai
...@@ -15,4 +15,4 @@ public interface BaseInfoInterface { ...@@ -15,4 +15,4 @@ public interface BaseInfoInterface {
* 错误描述 * 错误描述
*/ */
String getResultMsg(); String getResultMsg();
} }
\ No newline at end of file
package net.wanji.web.common; package net.wanji.feign.feignEnum;
/** /**
* @author wuxiaokai * @author wuxiaokai
......
package net.wanji.web.common; package net.wanji.feign.pojo.result;
import java.io.Serializable; import net.wanji.feign.feignEnum.ResultEnum;
import static net.wanji.web.common.ResultEnum.INTERNAL_SERVER_ERROR; import java.io.Serializable;
import static net.wanji.web.common.ResultEnum.SUCCESS;
/** /**
...@@ -59,14 +58,14 @@ public class Result<T> implements Serializable { ...@@ -59,14 +58,14 @@ public class Result<T> implements Serializable {
} }
public static <T> Result<T> success() { public static <T> Result<T> success() {
return Result.response(SUCCESS.getResultCode(), SUCCESS.getResultMsg(), null); return Result.response(ResultEnum.SUCCESS.getResultCode(), ResultEnum.SUCCESS.getResultMsg(), null);
} }
public static <T> Result<T> success(String message) { public static <T> Result<T> success(String message) {
return Result.response(SUCCESS.getResultCode(), message, null); return Result.response(ResultEnum.SUCCESS.getResultCode(), message, null);
} }
public static <T> Result<T> success(T content) { public static <T> Result<T> success(T content) {
return Result.response(SUCCESS.getResultCode(), SUCCESS.getResultMsg(), content); return Result.response(ResultEnum.SUCCESS.getResultCode(), ResultEnum.SUCCESS.getResultMsg(), content);
} }
public static <T> Result<T> error(Integer state, String message, T content) { public static <T> Result<T> error(Integer state, String message, T content) {
...@@ -78,11 +77,11 @@ public class Result<T> implements Serializable { ...@@ -78,11 +77,11 @@ public class Result<T> implements Serializable {
} }
public static <T> Result<T> error(Integer state) { public static <T> Result<T> error(Integer state) {
return Result.response(state, INTERNAL_SERVER_ERROR.getResultMsg(), null); return Result.response(state, ResultEnum.INTERNAL_SERVER_ERROR.getResultMsg(), null);
} }
public static <T> Result<T> error() { public static <T> Result<T> error() {
return error(INTERNAL_SERVER_ERROR); return error(ResultEnum.INTERNAL_SERVER_ERROR);
} }
public static <T> Result<T> error(ResultEnum resultEnum, String message) { public static <T> Result<T> error(ResultEnum resultEnum, String message) {
...@@ -94,6 +93,6 @@ public class Result<T> implements Serializable { ...@@ -94,6 +93,6 @@ public class Result<T> implements Serializable {
} }
public static <T> Result<T> error(String message) { public static <T> Result<T> error(String message) {
return Result.response(INTERNAL_SERVER_ERROR.getResultCode(), message, null); return Result.response(ResultEnum.INTERNAL_SERVER_ERROR.getResultCode(), message, null);
} }
} }
package net.wanji.web.vo.signalservice; package net.wanji.feign.pojo.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package net.wanji.web.vo.signalservice; package net.wanji.feign.pojo.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package net.wanji.web.vo.signalservice; package net.wanji.feign.pojo.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package net.wanji.web.vo.signalservice; package net.wanji.feign.pojo.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package net.wanji.web.vo.signalservice; package net.wanji.feign.pojo.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package net.wanji.feign.service; package net.wanji.feign.service;
import net.wanji.feign.entity.JsonViewObject; import net.wanji.feign.pojo.entity.JsonViewObject;
import net.wanji.feign.pojo.result.Result;
import net.wanji.feign.pojo.vo.*;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* @author duanruiming * @author duanruiming
* @date 2023/01/09 15:29 * @date 2023/01/09 15:29
*/ */
@FeignClient(name = "UtcFeignClients", url = "${utcServiceUrl}") @FeignClient(name = "UtcFeignClients", url = "${utc.service.url}")
public interface UtcFeignClients { public interface UtcFeignClients {
@PostMapping("/signalStatus/runningStatusAlarm") @PostMapping("/signalStatus/runningStatusAlarm")
JsonViewObject runningStatusAlarm(); JsonViewObject runningStatusAlarm();
@PostMapping("/controlCommand/schemeSend")
Result schemeSend(@RequestBody SchemeSendVO schemeSendVO);
@PostMapping("/controlCommand/planSend")
Result planSend(@RequestBody PlanSendVO planSendVO);
@PostMapping("/controlCommand/scheduleSend")
Result scheduleSend(@RequestBody ScheduleSendVO scheduleSendVO);
@PostMapping("/controlCommand/phaseTimingSend")
Result phaseTimingSend(@RequestBody PhaseTimingSendVO phaseTimingSendVO);
@PostMapping("/controlCommand/allRedControl")
Result allRedControl(@RequestBody ControlCommandVO commandVO);
@PostMapping("/controlCommand/yellowLightControl")
Result yellowLightControl(@RequestBody ControlCommandVO commandVO);
@PostMapping("/controlCommand/closeLightControl")
Result closeLightControl(@RequestBody ControlCommandVO commandVO);
@PostMapping("/controlCommand/stepControl")
Result stepControl(@RequestParam String code, @RequestParam Integer command, @RequestParam int stepNum);
@PostMapping("/controlCommand/recoverSchedule")
Result recoverSchedule(@RequestParam String code);
@PostMapping("/controlCommand/lockControl")
Result lockControl(@RequestBody ControlCommandVO commandVO);
@PostMapping("/controlCommand/phaseDiffSend")
Result phaseDiffSend();
} }
#utc:
# service:
# url: http://10.100.1.59:32000/utc
utc.service.url=http://10.100.1.59:32000/utc
\ No newline at end of file
utcServiceUrl: http://10.100.1.59:32000/utc
#utcServiceUrl: http://127.0.0.1:32000/utc
\ No newline at end of file
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