Commit 03895874 authored by hezhen's avatar hezhen

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents c53bba9f 9a05611d
This diff is collapsed.
Nacos
Copyright 2018-2019 The Apache Software Foundation
This product includes software developed at
The Alibaba MiddleWare Group.
------
This product has a bundle netty:
The Spring oot Project
=================
Please visit the Netty web site for more information:
* http://netty.io/
Copyright 2014 The Netty Project
The Netty Project licenses this file to you under the Apache License,
version 2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
Also, please refer to each LICENSE.<component>.txt file, which is located in
the 'license' directory of the distribution file, for the license terms of the
components that this product depends on.
------
This product has a bundle commons-lang, which includes software from the Spring Framework,
under the Apache License 2.0 (see: StringUtils.containsWhitespace())
\ No newline at end of file
@echo off
rem Copyright 1999-2018 Alibaba Group Holding Ltd.
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
if not exist "%JAVA_HOME%\bin\jps.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1
setlocal
set "PATH=%JAVA_HOME%\bin;%PATH%"
echo killing nacos server
for /f "tokens=1" %%i in ('jps -m ^| find "nacos"') do ( taskkill /F /PID %%i )
echo Done!
#!/bin/sh
# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
pid=`ps ax | grep -i 'nacos' |grep java | grep -v grep | awk '{print $1}'`
if [ -z "$pid" ] ; then
echo "No nacosServer running."
exit -1;
fi
echo "The nacosServer(${pid}) is running..."
kill ${pid}
echo "Send shutdown request to nacosServer(${pid}) OK"
\ No newline at end of file
@echo off
rem Copyright 1999-2018 Alibaba Group Holding Ltd.
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
if not exist "%JAVA_HOME%\bin\java.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1
set "JAVA=%JAVA_HOME%\bin\java.exe"
setlocal
set BASE_DIR=%~dp0
set BASE_DIR=%BASE_DIR:~0,-1%
for %%d in (%BASE_DIR%) do set BASE_DIR=%%~dpd
set DEFAULT_SEARCH_LOCATIONS="classpath:/,classpath:/config/,file:./,file:./config/"
set CUSTOM_SEARCH_LOCATIONS=%DEFAULT_SEARCH_LOCATIONS%,file:%BASE_DIR%conf/
if not "%2" == "cluster" (
set "JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m"
set "JAVA_OPT=%JAVA_OPT% -Dnacos.standalone=true"
) else (
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof"
set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages"
)
set "JAVA_OPT=%JAVA_OPT% -Xbootclasspath/a:%BASE_DIR%\plugins\cmdb"
set "JAVA_OPT=%JAVA_OPT% -Dnacos.home=%BASE_DIR%"
set "JAVA_OPT=%JAVA_OPT% -jar %BASE_DIR%\target\nacos-server.jar"
set "JAVA_OPT=%JAVA_OPT% --spring.config.location="%CUSTOM_SEARCH_LOCATIONS%""
set "JAVA_OPT=%JAVA_OPT% --logging.config="%BASE_DIR%/conf/nacos-logback.xml""
call "%JAVA%" %JAVA_OPT% %*
#!/bin/sh
# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
error_exit ()
{
echo "ERROR: $1 !!"
exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!"
export MODE="cluster"
while getopts ":m:" opt
do
case $opt in
m)
MODE=$OPTARG
;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=`cd $(dirname $0)/..; pwd`
export DEFAULT_SEARCH_LOCATIONS="classpath:/,classpath:/config/,file:./,file:./config/"
export CUSTOM_SEARCH_LOCATIONS=${DEFAULT_SEARCH_LOCATIONS},file:${BASE_DIR}/conf/
#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
fi
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
JAVA_OPT="${JAVA_OPT} -cp .:${BASE_DIR}/plugins/cmdb/*.jar"
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400"
else
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:${BASE_DIR}/plugins/cmdb"
JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
fi
JAVA_OPT="${JAVA_OPT} -Dnacos.home=${BASE_DIR}"
JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/nacos-server.jar"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} --spring.config.location=${CUSTOM_SEARCH_LOCATIONS}"
JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/nacos-logback.xml"
if [ ! -d "${BASE_DIR}/logs" ]; then
mkdir ${BASE_DIR}/logs
fi
echo "$JAVA ${JAVA_OPT}"
if [[ "${MODE}" == "standalone" ]]; then
echo "nacos is starting"
$JAVA ${JAVA_OPT}
else
if [ ! -f "${BASE_DIR}/logs/start.out" ]; then
touch "${BASE_DIR}/logs/start.out"
fi
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
nohup $JAVA ${JAVA_OPT} >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
fi
# spring
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
# metrics for prometheus
#management.endpoints.web.exposure.include=*
# metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
# default current work dir
server.tomcat.basedir=
## spring security config
### turn off security
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**
# spring
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
db.num=2
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:mysql://11.163.152.9:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=nacos
\ No newline at end of file
#it is ip
#example
10.10.109.214
11.16.128.34
11.16.128.36
\ No newline at end of file
This diff is collapsed.
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info */
/******************************************/
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) DEFAULT NULL,
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL,
`c_use` varchar(64) DEFAULT NULL,
`effect` varchar(64) DEFAULT NULL,
`type` varchar(64) DEFAULT NULL,
`c_schema` text,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_aggr */
/******************************************/
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
`content` longtext NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_beta */
/******************************************/
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_tag */
/******************************************/
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_tags_relation */
/******************************************/
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = group_capacity */
/******************************************/
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = his_config_info */
/******************************************/
CREATE TABLE `his_config_info` (
`id` bigint(64) unsigned NOT NULL,
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) NOT NULL,
`group_id` varchar(128) NOT NULL,
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL,
`md5` varchar(32) DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
`src_user` text,
`src_ip` varchar(20) DEFAULT NULL,
`op_type` char(10) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = tenant_capacity */
/******************************************/
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) default '' COMMENT 'tenant_id',
`tenant_name` varchar(128) default '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
CREATE TABLE users (
username varchar(50) NOT NULL PRIMARY KEY,
password varchar(500) NOT NULL,
enabled boolean NOT NULL
);
CREATE TABLE roles (
username varchar(50) NOT NULL,
role varchar(50) NOT NULL
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
CREATE SCHEMA nacos AUTHORIZATION nacos;
CREATE TABLE config_info (
id bigint NOT NULL generated by default as identity,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) default '',
app_name varchar(128),
content LONG VARCHAR NOT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
gmt_modified timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
src_user varchar(128) DEFAULT NULL,
src_ip varchar(20) DEFAULT NULL,
c_desc varchar(256) DEFAULT NULL,
c_use varchar(64) DEFAULT NULL,
effect varchar(64) DEFAULT NULL,
type varchar(64) DEFAULT NULL,
c_schema LONG VARCHAR DEFAULT NULL,
constraint configinfo_id_key PRIMARY KEY (id),
constraint uk_configinfo_datagrouptenant UNIQUE (data_id,group_id,tenant_id));
CREATE INDEX configinfo_dataid_key_idx ON config_info(data_id);
CREATE INDEX configinfo_groupid_key_idx ON config_info(group_id);
CREATE INDEX configinfo_dataid_group_key_idx ON config_info(data_id, group_id);
CREATE TABLE his_config_info (
id bigint NOT NULL,
nid bigint NOT NULL generated by default as identity,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) default '',
app_name varchar(128),
content LONG VARCHAR NOT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT '2010-05-05 00:00:00.000',
gmt_modified timestamp NOT NULL DEFAULT '2010-05-05 00:00:00.000',
src_user varchar(128),
src_ip varchar(20) DEFAULT NULL,
op_type char(10) DEFAULT NULL,
constraint hisconfiginfo_nid_key PRIMARY KEY (nid));
CREATE INDEX hisconfiginfo_dataid_key_idx ON his_config_info(data_id);
CREATE INDEX hisconfiginfo_gmt_create_idx ON his_config_info(gmt_create);
CREATE INDEX hisconfiginfo_gmt_modified_idx ON his_config_info(gmt_modified);
CREATE TABLE config_info_beta (
id bigint NOT NULL generated by default as identity,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) default '',
app_name varchar(128),
content LONG VARCHAR NOT NULL,
beta_ips varchar(1024),
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
gmt_modified timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
src_user varchar(128),
src_ip varchar(20) DEFAULT NULL,
constraint configinfobeta_id_key PRIMARY KEY (id),
constraint uk_configinfobeta_datagrouptenant UNIQUE (data_id,group_id,tenant_id));
CREATE TABLE config_info_tag (
id bigint NOT NULL generated by default as identity,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) default '',
tag_id varchar(128) NOT NULL,
app_name varchar(128),
content LONG VARCHAR NOT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
gmt_modified timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
src_user varchar(128),
src_ip varchar(20) DEFAULT NULL,
constraint configinfotag_id_key PRIMARY KEY (id),
constraint uk_configinfotag_datagrouptenanttag UNIQUE (data_id,group_id,tenant_id,tag_id));
CREATE TABLE config_info_aggr (
id bigint NOT NULL generated by default as identity,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) default '',
datum_id varchar(255) NOT NULL,
app_name varchar(128),
content LONG VARCHAR NOT NULL,
gmt_modified timestamp NOT NULL DEFAULT '2010-05-05 00:00:00',
constraint configinfoaggr_id_key PRIMARY KEY (id),
constraint uk_configinfoaggr_datagrouptenantdatum UNIQUE (data_id,group_id,tenant_id,datum_id));
CREATE TABLE app_list (
id bigint NOT NULL generated by default as identity,
app_name varchar(128) NOT NULL,
is_dynamic_collect_disabled smallint DEFAULT 0,
last_sub_info_collected_time timestamp DEFAULT '1970-01-01 08:00:00.0',
sub_info_lock_owner varchar(128),
sub_info_lock_time timestamp DEFAULT '1970-01-01 08:00:00.0',
constraint applist_id_key PRIMARY KEY (id),
constraint uk_appname UNIQUE (app_name));
CREATE TABLE app_configdata_relation_subs (
id bigint NOT NULL generated by default as identity,
app_name varchar(128) NOT NULL,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
gmt_modified timestamp DEFAULT '2010-05-05 00:00:00',
constraint configdatarelationsubs_id_key PRIMARY KEY (id),
constraint uk_app_sub_config_datagroup UNIQUE (app_name, data_id, group_id));
CREATE TABLE app_configdata_relation_pubs (
id bigint NOT NULL generated by default as identity,
app_name varchar(128) NOT NULL,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
gmt_modified timestamp DEFAULT '2010-05-05 00:00:00',
constraint configdatarelationpubs_id_key PRIMARY KEY (id),
constraint uk_app_pub_config_datagroup UNIQUE (app_name, data_id, group_id));
CREATE TABLE config_tags_relation (
id bigint NOT NULL,
tag_name varchar(128) NOT NULL,
tag_type varchar(64) DEFAULT NULL,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) DEFAULT '',
nid bigint NOT NULL generated by default as identity,
constraint config_tags_id_key PRIMARY KEY (nid),
constraint uk_configtagrelation_configidtag UNIQUE (id, tag_name, tag_type));
CREATE INDEX config_tags_tenant_id_idx ON config_tags_relation(tenant_id);
CREATE TABLE group_capacity (
id bigint NOT NULL generated by default as identity,
group_id varchar(128) DEFAULT '',
quota int DEFAULT 0,
usage int DEFAULT 0,
max_size int DEFAULT 0,
max_aggr_count int DEFAULT 0,
max_aggr_size int DEFAULT 0,
max_history_count int DEFAULT 0,
gmt_create timestamp DEFAULT '2010-05-05 00:00:00',
gmt_modified timestamp DEFAULT '2010-05-05 00:00:00',
constraint group_capacity_id_key PRIMARY KEY (id),
constraint uk_group_id UNIQUE (group_id));
CREATE TABLE tenant_capacity (
id bigint NOT NULL generated by default as identity,
tenant_id varchar(128) DEFAULT '',
quota int DEFAULT 0,
usage int DEFAULT 0,
max_size int DEFAULT 0,
max_aggr_count int DEFAULT 0,
max_aggr_size int DEFAULT 0,
max_history_count int DEFAULT 0,
gmt_create timestamp DEFAULT '2010-05-05 00:00:00',
gmt_modified timestamp DEFAULT '2010-05-05 00:00:00',
constraint tenant_capacity_id_key PRIMARY KEY (id),
constraint uk_tenant_id UNIQUE (tenant_id));
CREATE TABLE tenant_info (
id bigint NOT NULL generated by default as identity,
kp varchar(128) NOT NULL,
tenant_id varchar(128) DEFAULT '',
tenant_name varchar(128) DEFAULT '',
tenant_desc varchar(256) DEFAULT NULL,
create_source varchar(32) DEFAULT NULL,
gmt_create bigint NOT NULL,
gmt_modified bigint NOT NULL,
constraint tenant_info_id_key PRIMARY KEY (id),
constraint uk_tenant_info_kptenantid UNIQUE (kp,tenant_id));
CREATE INDEX tenant_info_tenant_id_idx ON tenant_info(tenant_id);
CREATE TABLE users (
username varchar(50) NOT NULL PRIMARY KEY,
password varchar(500) NOT NULL,
enabled boolean NOT NULL
);
CREATE TABLE roles (
username varchar(50) NOT NULL,
role varchar(50) NOT NULL
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
......@@ -34,6 +34,8 @@ public interface UserFeign {
*/
@RequestMapping(value = "/public/app/userinfo-by-token")
public ObjectRestResponse<AppUserDTO> userDetailByToken(@RequestParam("token") String token);
@RequestMapping(value = "/public/userinfo-by-uid")
public ObjectRestResponse<UserDTO> userinfoByUid(@RequestParam("uid") Integer uid);
/**
......
......@@ -18,8 +18,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.lang.reflect.ParameterizedType;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
......@@ -51,6 +49,11 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
@Override
@CacheClear(pre="user{1.username}")
public void updateSelectiveById(User entity) {
User user1= super.selectById(entity.getId());
if(user1!=null&&StringUtils.isNotBlank(entity.getPassword())&&!user1.getPassword().equals(entity.getPassword())){
String password = new BCryptPasswordEncoder(UserConstant.PW_ENCORDER_SALT).encode(entity.getPassword());
entity.setPassword(password);
}
super.updateSelectiveById(entity);
}
......@@ -68,7 +71,17 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
public TableResultResponse<User> selectPage(Query query, User currentUser) {
if(DATA_ALL_TRUE.equals(currentUser.getDataAll())) {
return super.selectByQuery(query);
Example example = new Example(User.class);
if(query.entrySet().size()>0) {
Example.Criteria criteria = example.createCriteria();
for (Map.Entry<String, Object> entry : query.entrySet()) {
criteria.andLike(entry.getKey(), "%" + entry.getValue().toString() + "%");
}
}
example.createCriteria().andGreaterThan("id",1);
Page<Object> result = PageHelper.startPage(query.getPage(), query.getLimit());
List<User> list = mapper.selectByExample(example);
return new TableResultResponse<User>(result.getTotal(), list);
}else {
Example example = new Example(User.class);
if(query.entrySet().size()>0) {
......@@ -83,9 +96,24 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
if(StringUtils.isNotBlank(currentUser.getDataZone())){
example.createCriteria().andIn("zoneId", Arrays.asList(currentUser.getDataZone().split(",")));
}
example.createCriteria().andGreaterThan("id",1);
Page<Object> result = PageHelper.startPage(query.getPage(), query.getLimit());
List<User> list = mapper.selectByExample(example);
return new TableResultResponse<User>(result.getTotal(), list);
}
}
public List<User> getCountByUsername(String username){
User user = new User();
user.setUsername(username);
return mapper.select(user);
}
public User getUserByUid(Integer toUid){
User user=mapper.getUserByUid(toUid);
if(user!=null){
user=mapper.selectByPrimaryKey(user.getId());
}
return user;
}
}
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import javax.persistence.*;
/**
* 用户关系表
*
* @author Mr.AG
* @email 463540703@qq.com
* @date 2019-06-04 14:29:29
*/
@Table(name = "base_user_relation")
public class BaseUserRelation implements Serializable {
private static final long serialVersionUID = 1L;
//主键id
@Id
private Integer id;
//用户id
@Column(name = "user_id")
private Integer userId;
//小程序用户id
@Column(name = "to_uid")
private Integer toUid;
//是否有效;0-有效;1-无效
@Column(name = "staus")
private Integer staus;
//创建时间
@Column(name = "crt_time")
private Long crtTime;
//更新时间
@Column(name = "upd_time")
private Long updTime;
//是否删除;0-正常;1-删除
@Column(name = "is_del")
private Integer isDel;
/**
* 设置:主键id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* 获取:主键id
*/
public Integer getId() {
return id;
}
/**
* 设置:用户id
*/
public void setUserId(Integer userId) {
this.userId = userId;
}
/**
* 获取:用户id
*/
public Integer getUserId() {
return userId;
}
/**
* 设置:小程序用户id
*/
public void setToUid(Integer toUid) {
this.toUid = toUid;
}
/**
* 获取:小程序用户id
*/
public Integer getToUid() {
return toUid;
}
/**
* 设置:是否有效;0-有效;1-无效
*/
public void setStaus(Integer staus) {
this.staus = staus;
}
/**
* 获取:是否有效;0-有效;1-无效
*/
public Integer getStaus() {
return staus;
}
/**
* 设置:创建时间
*/
public void setCrtTime(Long crtTime) {
this.crtTime = crtTime;
}
/**
* 获取:创建时间
*/
public Long getCrtTime() {
return crtTime;
}
/**
* 设置:更新时间
*/
public void setUpdTime(Long updTime) {
this.updTime = updTime;
}
/**
* 获取:更新时间
*/
public Long getUpdTime() {
return updTime;
}
/**
* 设置:是否删除;0-正常;1-删除
*/
public void setIsDel(Integer isDel) {
this.isDel = isDel;
}
/**
* 获取:是否删除;0-正常;1-删除
*/
public Integer getIsDel() {
return isDel;
}
}
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseUserRelation;
import tk.mybatis.mapper.common.Mapper;
/**
* 用户关系表
*
* @author Mr.AG
* @email 463540703@qq.com
* @date 2019-06-04 14:29:29
*/
public interface BaseUserRelationMapper extends Mapper<BaseUserRelation> {
}
......@@ -10,4 +10,5 @@ public interface UserMapper extends Mapper<User> {
public List<User> selectMemberByGroupId(@Param("groupId") int groupId);
public List<User> selectLeaderByGroupId(@Param("groupId") int groupId);
// public List<User> userPage(@Param("groupId") String name);
User getUserByUid(@Param("to_uid") Integer to_uid);
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz;
import com.github.wxiaoqi.security.admin.biz.MenuBiz;
import com.github.wxiaoqi.security.admin.biz.UserBiz;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.Group;
import com.github.wxiaoqi.security.admin.entity.Menu;
......@@ -73,7 +76,7 @@ public class PublicController {
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
AppUserDTO userDTO=new AppUserDTO();
Integer userid=Integer.parseInt(username);
Integer userid = Integer.parseInt(username);
//获取用户基础信息
AppUserVo userVo = detailBiz.getUserInfoById(userid);
if (userVo == null) {
......@@ -82,14 +85,27 @@ public class PublicController {
BeanUtils.copyProperties(userDTO,userVo);
if(userVo.getIsMember()!=null&&userVo.getIsMember()>0){
//获取用户会员信息
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo);
}
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo);
}
}
return new ObjectRestResponse<AppUserDetail>().rel(true).data(userDTO);
}
@RequestMapping(value = "/userinfo-by-uid", method = RequestMethod.GET)
public @ResponseBody
ObjectRestResponse userinfoByUid(Integer uid) throws Exception {
if (uid == null||uid==0) {
throw new BaseException();
}
User user = userBiz.getUserByUid(uid);
if (user == null) {
throw new BaseException();
}
return new ObjectRestResponse<User>().rel(true).data(user);
}
@GetMapping("/getByUserIds")
public ObjectRestResponse<List<AppUserVo>> getByUserIds(@RequestParam("ids") List<Integer> ids) {
if(ids == null) {
......
......@@ -18,6 +18,7 @@ import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.github.wxiaoqi.security.common.util.Query;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......@@ -73,6 +74,13 @@ public class UserController extends CommonBaseController {
@IgnoreClientToken
public ObjectRestResponse<User> add(@RequestBody UserVO vo){
handleDataLimit(vo);
String username=vo.getUsername();
if(StringUtils.isNotBlank(username)) {
List<User> list = userBiz.getCountByUsername(username);
if (list.size() > 0) {
throw new RuntimeException("用户名不能重复");
}
}
userBiz.insertSelective(vo);
//添加权限关系
groupBiz.modifyUserGroups(vo.getId(), vo.getMembers());
......@@ -81,10 +89,11 @@ public class UserController extends CommonBaseController {
private void handleDataLimit(@RequestBody UserVO dto) {
if(null != dto.getDataLimit()) {
if(dto.getDataLimit().contains(CURRENT_COMPANY)) {
if(dto.getDataLimit().contains(CURRENT_COMPANY)&&dto.getCompanyId()!=null) {
dto.setDataCompany(dto.getCompanyId().toString());
}
if(dto.getDataLimit().contains(CURRENT_ZONE)) {
if(dto.getDataLimit().contains(CURRENT_ZONE)&&dto.getZoneId()!=null) {
dto.setDataZone(dto.getZoneId().toString());
}
if(dto.getDataLimit().contains(DATA_ALL)) {
......@@ -150,6 +159,19 @@ public class UserController extends CommonBaseController {
@ResponseBody
public ObjectRestResponse<User> update(@RequestBody UserVO vo){
handleDataLimit(vo);
String username=vo.getUsername();
if(StringUtils.isNotBlank(username)){
List<User> list=userBiz.getCountByUsername(username);
if(list.size()>1){
throw new RuntimeException("用户名不能重复");
}
if(list.size()==1){
User user=list.get(0);
if(!user.getId().equals(vo.getId())){
throw new RuntimeException("用户名不能重复");
}
}
}
userBiz.updateSelectiveById(vo);
//添加权限关系
groupBiz.modifyUserGroups(vo.getId(), vo.getMembers());
......
......@@ -26,6 +26,7 @@
<result column="upd_user" jdbcType="VARCHAR" property="updUser" />
<result column="upd_name" jdbcType="VARCHAR" property="updName" />
<result column="upd_host" jdbcType="VARCHAR" property="updHost" />
<result column="data_all" jdbcType="SMALLINT" property="dataAll" />
<result column="attr1" jdbcType="VARCHAR" property="attr1" />
<result column="attr2" jdbcType="VARCHAR" property="attr2" />
<result column="attr3" jdbcType="VARCHAR" property="attr3" />
......@@ -48,6 +49,12 @@
on gm.user_id = u.id where gm.group_id = #{groupId}
</select>
<select id="getUserByUid" resultMap="BaseResultMap">
select u.* from base_user u
left join base_user_relation r
on r.user_id = u.id where r.to_uid = #{to_uid} limit 1
</select>
<!-- <select id="userPage" resultMap="BaseResultMap">-->
<!-- select u.* from base_user u-->
<!-- left join base_group_leader gm-->
......
......@@ -74,6 +74,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
@Value("${vehicle.baseUploadPath}")
private String baseUploadPath ;
@Value("${vehicle.fristMileage}")
private Integer fristMileage ;
/**
* 每批次最大更、插入车辆最大条目数
......@@ -184,6 +186,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
Vehicle vehicle = new Vehicle();
BeanUtils.copyProperties(vehicle, addOrUpdateVehicleVo);
vehicle.setId(UUID.randomUUID().toString());
vehicle.setParkBranchCompanyId(vehicle.getSubordinateBranch());
vehicle.setMaintenanceMileage(fristMileage);
// 检查车牌或者编码是否已存在,已存在则返回失败
List<Vehicle> exitsVehicles = lockByCode(addOrUpdateVehicleVo);
if(CollectionUtils.isNotEmpty(exitsVehicles)){
......@@ -227,6 +231,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
for(AddOrUpdateVehicleVo addOrUpdateVehicleVo:addOrUpdateVehicleVoList){
Vehicle vehicle = new Vehicle();
BeanUtils.copyProperties(vehicle, addOrUpdateVehicleVo);
vehicle.setParkBranchCompanyId(vehicle.getSubordinateBranch());
//悲观锁,检查是否已存在车牌或编码
List<Vehicle> exitsVehicles = lockByCode(addOrUpdateVehicleVo);
if(CollectionUtils.isNotEmpty(exitsVehicles)){
......@@ -304,7 +309,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
vehicleBookRecord.setRemark(bookVehicleVo.getRemark());
vehicleBookRecord.setDestination(bookVehicleVo.getDestination());
vehicleBookRecord.setLiftCompany(bookVehicleVo.getLiftCompany());
vehicleBookRecord.setRetCompany(bookVehicleVo.getRetCompany());
vehicleBookRecordMapper.insertSelective(vehicleBookRecord);
Long bookRecordId=vehicleBookRecord.getId();
List<Map<String,Object>> params = Lists.newArrayList();
if(MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())){
for(Map.Entry<Integer,Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()){
......@@ -316,7 +323,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
}
bookRecordAccItemMapper.batchAdd(params);
}
return RestResponse.suc();
return RestResponse.suc(bookRecordId);
}
@Transactional
......@@ -830,4 +837,13 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
//去重
return zoneCompanyIds.parallelStream().distinct().collect(Collectors.toList());
}
//删除车辆信息
public RestResponse delVehicleById(String id){
Vehicle vehicle=new Vehicle();
vehicle.setId(id);
vehicle.setIsDel(1);
updateSelectiveById(vehicle);
return RestResponse.suc();
}
}
......@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
......@@ -74,31 +75,53 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
public RestResponse<Integer> lift(Integer operatorId,String userName,LiftVehicleVo liftVehicleVo) throws Exception{
VehicleBookRecord record=mapper.selectByPrimaryKey( liftVehicleVo.getId());
Integer mileageLift=liftVehicleVo.getMileageLift();
if(record==null||mileageLift==null){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
Integer mileageLift1=record.getMileageLift();
if(mileageLift1==null||mileageLift>=mileageLift1){
Map<String, Object> params = PropertyUtils.describe(liftVehicleVo);
params.put("reviewerLift", operatorId);
params.put("reviewerNameLift", userName);
params.put("targetStatus", VehicleBookRecordStatus.LIFTED.getCode());
params.put("conditionStatus", VehicleBookRecordStatus.APPROVE.getCode());
params.put("mileageLift", liftVehicleVo.getMileageLift());
params.put("mileageLift",mileageLift );
Integer effected = mapper.liftOrRet(params);
if(effected == 0){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode());
}
}else {
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
return RestResponse.suc();
}
public RestResponse<Integer> retVehicle(Integer operatorId,String userName,RetVehicleVo retVehicleVo) throws Exception{
VehicleBookRecord record=mapper.selectByPrimaryKey( retVehicleVo.getId());
Integer mileageRet=retVehicleVo.getMileageRet();
if(record==null||mileageRet==null){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
Integer mileageLift=record.getMileageLift();
if(mileageLift!=null&&mileageRet>=mileageLift){
Map<String, Object> params = PropertyUtils.describe(retVehicleVo);
params.put("targetStatus", VehicleBookRecordStatus.RETURNED.getCode());
params.put("conditionStatus", VehicleBookRecordStatus.LIFTED.getCode());
params.put("reviewerReturn", operatorId);
params.put("reviewerNameReturn", userName);
params.put("mileageRet", retVehicleVo.getMileageRet());
params.put("mileageRet", mileageRet);
params.put("haveViolation", retVehicleVo.getHaveViolation());
Integer effected = mapper.liftOrRet(params);
if(effected == 0){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode());
}
}else {
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
return RestResponse.suc();
}
......@@ -108,7 +131,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
* @return
* @throws Exception
*/
public PageDataVo<QueryVehicleBookRecordVo> page(VehicleBookRecordQueryVo vehicleBookRecordQueryVo) throws Exception{
public PageDataVo<QueryVehicleBookRecordVo> page(VehicleBookRecordQueryVo vehicleBookRecordQueryVo,List<Integer> companyList) throws Exception{
Map<String, Object> params = PropertyUtils.describe(vehicleBookRecordQueryVo);
String selectedMonth = (String)params.get("selectedMonth");
if(StringUtils.isBlank(selectedMonth)){
......@@ -128,6 +151,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
Integer pageNo = (Integer) params.get("page");
params.remove("pageNo");
PageHelper.startPage(pageNo,pageSize);
params.put("companyList", companyList);
List<QueryVehicleBookRecordVo> bookRecordAndVehicleInfo = mapper.getByPage(params);
Map<Long,Map<Integer,Integer>> rs = getRelatedAccItemsAndAmount(bookRecordAndVehicleInfo,
bookRecordAccItemTbName);
......
......@@ -26,17 +26,17 @@ public class VehicleDepartureService {
@Autowired
VehicleMapper vehicleMapper;
public PageInfo<VehicleDepartureLogVo> page(String numberPlate, Integer page, Integer limit) {
public PageInfo<VehicleDepartureLogVo> page(String numberPlate,String time, Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAll(numberPlate));
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAll(numberPlate,time));
}
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate, Integer page, Integer limit, List<Integer> companyList) {
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate,String time, Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
if (companyList == null || companyList.size() == 0) {
companyList = Arrays.asList(-1);
}
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAllNotAllData(numberPlate, companyList));
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAllNotAllData(numberPlate,time, companyList));
}
public PageInfo<VehicleDepartureLogVo> findByVehicle(String vehicleId, Integer page, Integer limit) {
......
......@@ -45,9 +45,9 @@ public class VehicleUpkeepService {
vehicleUpkeepItemMapper.deleteByPrimaryKey(id);
}
public PageInfo<VehicleUpkeepLogVo> pageLog(String numberPlate, Integer page, Integer limit) {
public PageInfo<VehicleUpkeepLogVo> pageLog(String numberPlate, Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate));
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate,companyList));
}
public VehicleUpkeepLogVo getLogVoById(Integer id) {
......
......@@ -88,7 +88,7 @@ public class VehicleWarningMsgBiz extends BaseBiz<VehicleWarningMsgMapper, Vehic
*/
public PageDataVo<VehicleWarningMsg> getByPage(QueryVehicleWarningMsgVo queryVehicleWarningMsgVo){
PageHelper.startPage(queryVehicleWarningMsgVo.getPage(),queryVehicleWarningMsgVo.getLimit());
List<VehicleWarningMsg> vehicleWarningMsgs = mapper.getByPage(queryVehicleWarningMsgVo);
List<VehicleWarningMsg> vehicleWarningMsgs = mapper.getByPages(queryVehicleWarningMsgVo);
PageInfo<VehicleWarningMsg> vehicleWarningMsgPageInfo = new PageInfo<>(vehicleWarningMsgs);
return PageDataVo.pageInfo(vehicleWarningMsgPageInfo);
}
......
......@@ -18,6 +18,7 @@ public enum ResCode {
//车辆信息相关返回码-预定申请信息
VEHICLE_BOOKED_RECORD_ALREADY_CHANGED(103001,"车辆预定申请已被审批,请刷新后继续操作"),
VEHICLE_BOOKED_RECORD_STATUS_CHANGED(103002,"车辆预定申请状态已变更,请刷新后继续操作"),
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED(103003,"车辆预定里程数不符合,请刷新后继续操作"),
VEHICLE_DEPARTURE_VEHICLE_UNEXIST(104001,"车辆不存在"),
VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"),
......
......@@ -136,4 +136,9 @@ public class Vehicle {
*/
private Integer expectDestinationBranchCompanyId;
/**
* 是否删除;0-正常;1-删除
*/
private Integer isDel;
}
\ No newline at end of file
......@@ -14,5 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam;
public interface UserFeign {
@RequestMapping(value = "/public/userinfo-by-token")
public ObjectRestResponse<UserDTO> userinfoByToken(@RequestParam("token") String token);
@RequestMapping(value = "/public/userinfo-by-uid")
public ObjectRestResponse<UserDTO> userinfoByUid(@RequestParam("uid") Integer uid);
}
......@@ -13,11 +13,11 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
List<VehicleDepartureLogVo> selectByVehicleId(String vehicleId);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate,@Param("time") String time);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate, @Param("companyList") List<Integer> companyList);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate, @Param("time") String time,@Param("companyList") List<Integer> companyList);
Integer selectMileageByVehicleId(String vehicleId);
Integer selectDayByVehicleId(String vehicleId);
String selectDayByVehicleId(String vehicleId);
}
......@@ -27,4 +27,10 @@ public interface VehicleMapper extends Mapper<Vehicle> {
@Param("lastStatus") Integer lastStatus);
Vehicle selectByNumberPlate(String numberPlate);
//保养结束
int updateMileageStatusByIdAndStatus(@Param("vehicleId") String vehicleId, @Param("status") Integer status,
@Param("lastStatus") Integer lastStatus,@Param("mileage") Integer mileage);
//开始保养
int upMileageByIdAndStatus(@Param("vehicleId") String vehicleId, @Param("status") Integer status,
@Param("lastStatus") Integer lastStatus,@Param("mileage") Integer mileage);
}
\ No newline at end of file
......@@ -9,7 +9,7 @@ import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleUpkeepLogMapper extends Mapper<VehicleUpkeepLog> {
List<VehicleUpkeepLogVo> selectVoAll(@Param("numberPlate") String numberPlate);
List<VehicleUpkeepLogVo> selectVoAll(@Param("numberPlate") String numberPlate,@Param("companyList")List<Integer> companyList);
VehicleUpkeepLogVo selectVoById(Integer id);
......
......@@ -11,6 +11,7 @@ public interface VehicleWarningMsgMapper extends Mapper<VehicleWarningMsg> {
public List<VehicleWarningMsg> getByPage(QueryVehicleWarningMsgVo queryVehicleWarningMsgVo);
public List<VehicleWarningMsg> getByPages(QueryVehicleWarningMsgVo queryVehicleWarningMsgVo);
public List<VehicleWarningMsg> getMsgByVehicle(String vehicleId);
......
package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xinxincaravan.caravan.vehicle.biz.VehicleActiveService;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
......@@ -37,6 +38,42 @@ public class VehicleActiveController {
return RestResponse.suc();
}
/**
* 发车
*
* @return
*/
@PostMapping("small/departure")
@IgnoreUserToken
public RestResponse departureBySmall(@RequestBody VehicleDepartureVo departureVo) {
if (departureVo == null || departureVo.getVehicleId() == null
|| departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null
|| departureVo.getExpectArrivalBranchCompanyId() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
vehicleActiveService.departure(departureVo);
return RestResponse.suc();
}
/**
* 还车
*
* @param arrivalVo
* @return
*/
@PostMapping("small/arrival")
public RestResponse arrivalBySmall(@RequestBody VehicleArrivalVo arrivalVo) {
if (arrivalVo == null || arrivalVo.getVehicleId() == null
|| arrivalVo.getMileage() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
vehicleActiveService.arrival(arrivalVo);
return RestResponse.suc();
}
/**
* 还车
*
......
......@@ -104,7 +104,27 @@ public class VehicleController extends BaseController<VehicleBiz> {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
}
}
@RequestMapping(value = "/small/page", method = RequestMethod.GET)
@IgnoreUserToken
public RestResponse<PageDataVo<QueryVehicleVo>> getByPageBySmall(@RequestParam String vehiclePageQueryVoJson,@RequestParam Integer uid) throws Exception {
VehiclePageQueryVo vehiclePageQueryVo = null;
try {
vehiclePageQueryVo = JSON.parseObject(vehiclePageQueryVoJson, VehiclePageQueryVo.class);
UserDTO userDTO = userFeign.userinfoByUid(uid).getData();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(baseBiz.getByPageNotAllData(vehiclePageQueryVo, companyList));
}
}
return RestResponse.data(baseBiz.getByPage(vehiclePageQueryVo));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
} catch (CustomIllegalParamException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
}
}
@RequestMapping(value = "/upload/drivingLicense", method = RequestMethod.POST)
public RestResponse uploadDrivingLicense(@RequestParam("file") MultipartFile file)
throws Exception {
......@@ -146,9 +166,18 @@ public class VehicleController extends BaseController<VehicleBiz> {
public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVo bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
return baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
RestResponse<Integer> result= baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
if(result.getStatus()==200){
if(result.getData()!=null||result.getData()>0){
String id=result.getData()+"";
Long bookRecordId=Long.parseLong(id);
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.APPROVE.getCode(), userName);
}
}
return result;
}
/**
* 批准预定车辆预定
*
......@@ -222,7 +251,14 @@ public class VehicleController extends BaseController<VehicleBiz> {
VehicleBookRecordQueryVo vehicleBookRecordQueryVo = null;
try {
vehicleBookRecordQueryVo = JSON.parseObject(vehicleBookRecordQueryVoJson, VehicleBookRecordQueryVo.class);
return RestResponse.data(vehicleBookRecordBiz.page(vehicleBookRecordQueryVo));
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
List<Integer> companyList =new ArrayList<>();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
}
return RestResponse.data(vehicleBookRecordBiz.page(vehicleBookRecordQueryVo,companyList));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
} catch (CustomIllegalParamException ex) {
......@@ -257,5 +293,16 @@ public class VehicleController extends BaseController<VehicleBiz> {
return vehicleBookRecordBiz.retVehicle(operatorId, userName, retVehicleVo);
}
/**
* 删除车辆信息
* @param id
* @return
* @throws Exception
*/
@RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE)
public RestResponse retVehicle(@PathVariable String id) throws Exception {
return baseBiz.delVehicleById(id);
}
}
package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xinxincaravan.caravan.vehicle.biz.VehicleBiz;
......@@ -41,7 +42,7 @@ public class VehicleDepartureController {
@GetMapping("page")
public RestResponse page(String numberPlate, Integer page, Integer limit, HttpServletRequest request) {
public RestResponse page(String numberPlate, String time,Integer page, Integer limit, HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -50,10 +51,26 @@ public class VehicleDepartureController {
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, page, limit, companyList));
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate,time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate, page, limit));
return RestResponse.suc(vehicleDepartureService.page(numberPlate,time,page, limit));
}
@GetMapping("small/page")
@IgnoreUserToken
public RestResponse pageBySmall(String numberPlate, String time,Integer page, Integer limit, Integer uid,HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
}
UserDTO userDTO = userFeign.userinfoByUid(uid).getData();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate,time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate,time,page, limit));
}
@GetMapping("findByVehicle")
......
package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.xinxincaravan.caravan.vehicle.biz.VehicleBiz;
import com.xinxincaravan.caravan.vehicle.biz.VehicleUpkeepService;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.entity.VehicleUpkeepItem;
import com.xinxincaravan.caravan.vehicle.feign.UserFeign;
import com.xinxincaravan.caravan.vehicle.feign.dto.UserDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("upkeep")
public class VehicleUpkeepController {
......@@ -14,6 +22,16 @@ public class VehicleUpkeepController {
@Autowired
private VehicleUpkeepService vehicleUpkeepService;
@Autowired
VehicleBiz vehicleBiz;
@Autowired
UserFeign userFeign;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
protected HttpServletRequest request;
@GetMapping("item/all")
public RestResponse allItem() {
......@@ -65,7 +83,14 @@ public class VehicleUpkeepController {
page = 1;
limit = 10;
}
return RestResponse.suc(vehicleUpkeepService.pageLog(numberPlate, page, limit));
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
List<Integer> companyList =new ArrayList<>();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
}
return RestResponse.suc(vehicleUpkeepService.pageLog(numberPlate, page, limit,companyList));
}
@GetMapping("log/{id}")
......
......@@ -123,4 +123,8 @@ public class AddOrUpdateVehicleVo {
* 生产商
*/
private Date receiveTime;
/**
* 最后公里数
*/
private Integer mileageLastUpdate;
}
\ No newline at end of file
......@@ -72,5 +72,8 @@ public class BookVehicleVo {
*/
private Integer haveViolation;
//还车分公司
private Integer retCompany;
}
\ No newline at end of file
......@@ -91,6 +91,10 @@ public class QueryVehicleVo {
* 保养时间
*/
private Date maintenanceDate;
/**
* 保养时间
*/
private Integer mileage;
/**
* 保养里程数
......
......@@ -20,6 +20,10 @@ public class VehicleDepartureLogVo {
String arrivalTime;
Integer mileageStart;
Integer mileageEnd;
Integer mileage;
Integer state;
String numberPlate;
String departureDay;
String departureName;
String arrivalName;
}
......@@ -14,7 +14,7 @@ public class VehicleDepartureStatisticDataVo {
/**
* 出车天数
*/
Integer departureDay;
String departureDay;
/**
* 出车公里数
*/
......
......@@ -31,6 +31,19 @@ public class VehiclePageQueryVo {
* 所属分支机构(id)
*/
private Integer subordinateBranch;
/**
* 所属分支机构(id)
*/
private Integer addrProvince;
/**
* 所属分支机构(id)
*/
private Integer addrCity;
/**
* 片区
*/
private Integer zoneId;
/**
* 用途类型:租赁房车(1)、展车等,对应关系见车辆常量表
......
......@@ -56,11 +56,15 @@ public class VehicleWarningMsgQueryVo {
*/
private Integer vehicleCode;
private Integer subordinateBranch;
/**
* 对应车牌号
*/
private String numberPlate;
private Integer mileageLastUpdate;
private Date createTime;
......
......@@ -189,6 +189,7 @@
vehicle_book_record
where
`book_end_date` between #{startDate} and #{endDate}
order by id
limit #{pageStart},#{pageSize}
</select>
......@@ -243,6 +244,23 @@
vehicle_book_info vbf on vbf.vehicle = vbr.vehicle and vbf.year_month = #{selectedMonth}
where
1=1
<if test="companyList != null and companyList.size() > 0">
and ( vbr.lift_company in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
or vbr.ret_company in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
)
</if>
<if test="liftCompany !=null">
and vbr.lift_company = #{liftCompany}
</if>
......
......@@ -17,33 +17,63 @@
order by create_time desc
</select>
<select id="selectVoAll" resultType="com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureLogVo">
select vehicle_departure_log.*,vehicle.number_plate
select vehicle_departure_log.*,vehicle.number_plate,
/* IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
CONCAT(IFNULL(floor((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time)) / 86400),0),'天',
IFNULL(floor(IF((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))>86400,(unix_timestamp(vehicle_departure_log.arrival_time)
- unix_timestamp(vehicle_departure_log.departure_time)) MOD 86400/3600,(unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))/3600)),0),'小时')
as departureDay,bc.name as departureName,bc1.name as arrivalName,
IF((IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0))>0,IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0),0) as mileage
from vehicle_departure_log
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
LEFT JOIN branch_company bc ON vehicle_departure_log.departure_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON vehicle_departure_log.arrival_branch_company_id = bc1.id
<trim prefix="where">
1=1
<if test="numberPlate != null and numberPlate != ''">
vehicle.number_plate = #{numberPlate}
and vehicle.number_plate = #{numberPlate}
</if>
<if test="time != null and time != ''">
and (vehicle_departure_log.arrival_time >= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.arrival_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.arrival_time is null
)
and
(
vehicle_departure_log.departure_time &lt;= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.departure_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.departure_time is null
)
</if>
</trim>
order by create_time desc
</select>
<select id="selectVoAllNotAllData" resultType="com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureLogVo">
select vehicle_departure_log.*,vehicle.number_plate
select vehicle_departure_log.*,vehicle.number_plate,
/*IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
CONCAT(IFNULL(floor((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time)) / 86400),0),'天',
IFNULL(floor(IF((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))>86400,(unix_timestamp(vehicle_departure_log.arrival_time)
- unix_timestamp(vehicle_departure_log.departure_time)) MOD 86400/3600,(unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))/3600)),0),'小时')
as departureDay,bc.name as departureName,bc1.name as arrivalName,
IF((IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0))>0,IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0),0) as mileage
from vehicle_departure_log
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
LEFT JOIN branch_company bc ON vehicle_departure_log.departure_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON vehicle_departure_log.arrival_branch_company_id = bc1.id
<trim prefix="where" suffixOverrides="and">
<if test="numberPlate != null and numberPlate != ''">
vehicle.number_plate = #{numberPlate} and
</if>
<if test="companyList != null">
( vehicle.park_branch_company_id in (
( vehicle_departure_log.departure_branch_company_id in (
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
#{companyId},
</trim>
</foreach>
)
or vehicle.expect_destination_branch_company_id in (
or vehicle_departure_log.arrival_branch_company_id in (
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
#{companyId},
......@@ -52,6 +82,18 @@
)
)
</if>
<if test="time != null and time != ''">
and (vehicle_departure_log.arrival_time >= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.arrival_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.arrival_time is null
)
and
(
vehicle_departure_log.departure_time &lt;= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.departure_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.departure_time is null
)
</if>
</trim>
order by create_time desc
</select>
......@@ -60,10 +102,21 @@
from vehicle_departure_log
where vehicle_id = #{vehicleId};
</select>
<select id="selectDayByVehicleId" resultType="int">
select sum(to_days(arrival_time) - to_days(departure_time))
from vehicle_departure_log
where vehicle_id = #{vehicleId};
<select id="selectDayByVehicleId" resultType="String">
SELECT
CONCAT(IFNULL(floor(t.total_expire_minute / 86400),0),'天',IFNULL(floor(IF(t.total_expire_minute>86400,t.total_expire_minute MOD 86400/3600,
t.total_expire_minute/3600)),0),'小时')
FROM
(
SELECT
SUM(
unix_timestamp(arrival_time) - unix_timestamp(departure_time)
) AS total_expire_minute
FROM
vehicle_departure_log
WHERE
vehicle_id =#{vehicleId}
) t
</select>
</mapper>
\ No newline at end of file
......@@ -12,13 +12,14 @@
<select id="getByPage" parameterType="java.util.Map"
resultType="com.xinxincaravan.caravan.vehicle.vo.QueryVehicleVo">
select v.`id`,
SELECT r.* FROM (
select DISTINCT v.`id`,
v.`code`,
v.`status`,
v.number_plate,
v.brand,
v.subordinate_branch,
bc.name as subBranchName,
IFNULL(v.park_branch_company_id,v.expect_destination_branch_company_id) AS subordinate_branch,
IFNULL(bc.name,bc1.name) AS subBranchName,
v.use_type,
v.remark,
v.create_time,
......@@ -36,7 +37,8 @@
v.engine_num,
v.manufacturer,
v.receive_time,
v.update_time
v.update_time,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
</if>
......@@ -45,9 +47,10 @@
left join
vehicle_book_info vbi on v.`id` = vbi.vehicle
</if>
left join branch_company bc on v.`subordinate_branch` = bc.id
LEFT JOIN branch_company bc ON v.park_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON v.expect_destination_branch_company_id = bc1.id
where
1=1
v.is_del=0
<if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd}
</if>
......@@ -72,9 +75,6 @@
<if test="vin !=null and vin != ''">
and v.vin = #{vin}
</if>
<if test="subordinateBranch !=null">
and v.subordinate_branch = #{subordinateBranch}
</if>
<if test="code !=null">
and v.code = #{code}
</if>
......@@ -82,7 +82,7 @@
and v.status = #{status}
</if>
<if test="numberPlate !=null and numberPlate != ''">
and v.number_plate = #{numberPlate}
and v.number_plate like concat('%',#{numberPlate},'%')
</if>
<if test="brand !=null">
and v.brand = #{brand}
......@@ -99,18 +99,39 @@
)
</foreach>
</if>
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch} or v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.subBranchName
</select>
<select id="getByPageNotAllData" parameterType="java.util.Map"
resultType="com.xinxincaravan.caravan.vehicle.vo.QueryVehicleVo">
select v.`id`,
SELECT r.* FROM (
select DISTINCT v.`id`,
v.`code`,
v.`status`,
v.number_plate,
v.brand,
v.subordinate_branch,
bc.name as subBranchName,
IFNULL(v.park_branch_company_id,v.expect_destination_branch_company_id) AS subordinate_branch,
IFNULL(bc.name,bc1.name) AS subBranchName,
v.use_type,
v.remark,
v.create_time,
......@@ -128,7 +149,8 @@
v.engine_num,
v.manufacturer,
v.receive_time,
v.update_time
v.update_time,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
</if>
......@@ -137,23 +159,24 @@
left join
vehicle_book_info vbi on v.`id` = vbi.vehicle
</if>
left join branch_company bc on v.`subordinate_branch` = bc.id
LEFT JOIN branch_company bc ON v.park_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON v.expect_destination_branch_company_id = bc1.id
where
1=1
v.is_del=0
<if test="companyList != null">
and ( v.park_branch_company_id in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
#{companyId},
</trim>
#{companyId},
</foreach>
</trim>
)
or v.expect_destination_branch_company_id in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
#{companyId},
</trim>
</foreach>
</trim>
)
)
</if>
......@@ -181,9 +204,6 @@
<if test="vin !=null and vin != ''">
and v.vin = #{vin}
</if>
<if test="subordinateBranch !=null">
and v.subordinate_branch = #{subordinateBranch}
</if>
<if test="code !=null">
and v.code = #{code}
</if>
......@@ -191,7 +211,7 @@
and v.status = #{status}
</if>
<if test="numberPlate !=null and numberPlate != ''">
and v.number_plate = #{numberPlate}
and v.number_plate like concat('%',#{numberPlate},'%')
</if>
<if test="brand !=null">
and v.brand = #{brand}
......@@ -208,7 +228,26 @@
)
</foreach>
</if>
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch} or v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.subBranchName
</select>
<select id="lockByCode" resultType="com.xinxincaravan.caravan.vehicle.entity.Vehicle"
......@@ -233,4 +272,15 @@
where id = #{vehicleId} and status = #{lastStatus}
</update>
<update id="updateMileageStatusByIdAndStatus">
update vehicle
set status = #{status},maintenance_mileage=#{mileage}
where id = #{vehicleId} and status = #{lastStatus}
</update>
<update id="upMileageByIdAndStatus">
update vehicle
set status = #{status},mileage_last_update=#{mileage}
where id = #{vehicleId} and status = #{lastStatus}
</update>
</mapper>
\ No newline at end of file
......@@ -34,8 +34,19 @@
left join vehicle b on a.vehicle_id = b.id
left join branch_company c on a.branch_company_id = c.id
<trim prefix="where">
1=1
<if test="numberPlate != null and numberPlate != ''">
b.number_plate = #{numberPlate}
and b.number_plate = #{numberPlate}
</if>
<if test="companyList != null and companyList.size() > 0">
and ( a.branch_company_id in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
)
</if>
</trim>
order by a.create_time desc
......
......@@ -24,5 +24,21 @@
select id, type, status, msg, rule_id, msg_key, vehicle_id, create_time, update_time, remark from vehicle_warning_msg where vehicle_id = #{_parameter}
</select>
<select id="getByPages" resultType="com.xinxincaravan.caravan.vehicle.vo.VehicleWarningMsgQueryVo"
parameterType="com.xinxincaravan.caravan.vehicle.vo.QueryVehicleWarningMsgVo">
SELECT id as vehicleId,code as vehicleCode,number_plate as numberPlate,mileage_last_update as mileageLastUpdate,status,
IFNULL(park_branch_company_id,expect_destination_branch_company_id) AS subordinateBranch,
CONCAT('当前公里数为:',mileage_last_update,' 保养公里数:',maintenance_mileage,' 请尽快保养!') as msg
,1 as type,update_time as createTime FROM vehicle
WHERE mileage_last_update>=maintenance_mileage
<if test="vehicleCode != null">
and vcode = #{vehicleCode}
</if>
<if test="numberPlate != null and numberPlate != '' ">
and number_plate = #{numberPlate}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -66,6 +66,12 @@
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-admin-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -19,6 +19,7 @@ public enum ResCode {
//车辆信息相关返回码-预定申请信息
VEHICLE_BOOKED_RECORD_ALREADY_CHANGED(103001,"车辆预定申请已被审批,请刷新后继续操作"),
VEHICLE_BOOKED_RECORD_STATUS_CHANGED(103002,"车辆预定申请状态已变更,请刷新后继续操作"),
VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED(103003,"车辆预定里程数不符合,请刷新后继续操作"),
VEHICLE_DEPARTURE_VEHICLE_UNEXIST(104001,"车辆不存在"),
VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"),
......
......@@ -146,4 +146,9 @@ public class Vehicle {
*/
@Column(name = "travel_status")
private Integer travelStatus;
/**
* 是否删除;0-正常;1-删除
*/
private Integer isDel;
}
\ No newline at end of file
......@@ -123,6 +123,11 @@ public class AddOrUpdateVehicleVo {
*/
private Date receiveTime;
/**
* 最后公里数
*/
private Integer mileageLastUpdate;
/**
* 车型
*/
......
......@@ -85,5 +85,6 @@ public class BookVehicleVO {
@ApiModelProperty("是否违章")
private Integer haveViolation;
//还车分公司
private Integer retCompany;
}
\ No newline at end of file
......@@ -89,6 +89,10 @@ public class QueryVehicleVo {
* 保养时间
*/
private Date maintenanceDate;
/**
* 保养公里
*/
private Integer mileage;
/**
* 保养里程数
......
......@@ -20,6 +20,10 @@ public class VehicleDepartureLogVo {
String arrivalTime;
Integer mileageStart;
Integer mileageEnd;
Integer mileage;
Integer state;
String numberPlate;
String departureDay;
String departureName;
String arrivalName;
}
......@@ -14,7 +14,7 @@ public class VehicleDepartureStatisticDataVo {
/**
* 出车天数
*/
Integer departureDay;
String departureDay;
/**
* 出车公里数
*/
......
......@@ -31,6 +31,19 @@ public class VehiclePageQueryVo {
* 所属分支机构(id)
*/
private Integer subordinateBranch;
/**
* 所属分支机构(id)
*/
private Integer addrProvince;
/**
* 所属分支机构(id)
*/
private Integer addrCity;
/**
* 片区
*/
private Integer zoneId;
/**
* 用途类型:租赁房车(1)、展车等,对应关系见车辆常量表
......@@ -116,81 +129,4 @@ public class VehiclePageQueryVo {
private Integer haveViolation;
/**
* 所属大区
*/
private Integer zoneId;
// public Integer getMileageRangeStart() {
// return mileageRangeStart;
// }
//
// public void setMileageRangeStart(Integer mileageRangeStart) {
// this.mileageRangeStart = mileageRangeStart;
// }
//
// public Integer getMileageRangeEnd() {
// return mileageRangeEnd;
// }
//
// public void setMileageRangeEnd(Integer mileageRangeEnd) {
// this.mileageRangeEnd = mileageRangeEnd;
// }
//
// public Integer getInsuranceCompany() {
// return insuranceCompany;
// }
//
// public void setInsuranceCompany(Integer insuranceCompany) {
// this.insuranceCompany = insuranceCompany;
// }
//
// public Date getInsuranceDateRangeStart() {
// return insuranceDateRangeStart;
// }
//
// public void setInsuranceDateRangeStart(Date insuranceDateRangeStart) {
// this.insuranceDateRangeStart = insuranceDateRangeStart;
// }
//
// public Date getInsuranceDateRangeEnd() {
// return insuranceDateRangeEnd;
// }
//
// public void setInsuranceDateRangeEnd(Date insuranceDateRangeEnd) {
// this.insuranceDateRangeEnd = insuranceDateRangeEnd;
// }
//
// public Date getaVRangeDateStart() {
// return aVRangeDateStart;
// }
//
// public void setaVRangeDateStart(Date aVRangeDateStart) {
// this.aVRangeDateStart = aVRangeDateStart;
// }
//
// public Date getaVRangeDateEnd() {
// return aVRangeDateEnd;
// }
//
// public void setaVRangeDateEnd(Date aVRangeDateEnd) {
// this.aVRangeDateEnd = aVRangeDateEnd;
// }
//
// public Date getmRangeDateStart() {
// return mRangeDateStart;
// }
//
// public void setmRangeDateStart(Date mRangeDateStart) {
// this.mRangeDateStart = mRangeDateStart;
// }
//
// public Date getmRangeDateEnd() {
// return mRangeDateEnd;
// }
//
// public void setmRangeDateEnd(Date mRangeDateEnd) {
// this.mRangeDateEnd = mRangeDateEnd;
// }
}
......@@ -53,11 +53,15 @@ public class VehicleWarningMsgQueryVo {
*/
private Integer vehicleCode;
private Integer subordinateBranch;
/**
* 对应车牌号
*/
private String numberPlate;
private Integer mileageLastUpdate;
private Date createTime;
......
......@@ -88,6 +88,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
@Value("${vehicle.baseUploadPath}")
private String baseUploadPath ;
@Value("${vehicle.fristMileage}")
private Integer fristMileage ;
/**
* 每批次最大更、插入车辆最大条目数
......@@ -320,8 +322,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
vehicleBookRecord.setRemark(bookVehicleVo.getRemark());
vehicleBookRecord.setDestination(bookVehicleVo.getDestination());
vehicleBookRecord.setLiftCompany(bookVehicleVo.getLiftCompany());
vehicleBookRecord.setRetCompany(bookVehicleVo.getRetCompany());
vehicleBookRecordMapper.insertSelective(vehicleBookRecord);
// //添加预定时间记录
//
// Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate());
......@@ -1062,4 +1064,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
return pageDataVO;
}
//删除车辆信息
public RestResponse delVehicleById(String id){
Vehicle vehicle=new Vehicle();
vehicle.setId(id);
vehicle.setIsDel(1);
updateSelectiveById(vehicle);
return RestResponse.suc();
}
}
......@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.ImmutableMap;
......@@ -91,16 +92,28 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
public RestResponse<Integer> retVehicle(Integer operatorId, String userName, RetVehicleVo retVehicleVo) throws Exception{
Map<String, Object> params = PropertyUtils.describe(retVehicleVo);
params.put("targetStatus", VehicleBookRecordStatus.RETURNED.getCode());
params.put("conditionStatus", VehicleBookRecordStatus.LIFTED.getCode());
params.put("reviewerReturn", operatorId);
params.put("reviewerNameReturn", userName);
params.put("mileageRet", retVehicleVo.getMileageRet());
params.put("haveViolation", retVehicleVo.getHaveViolation());
Integer effected = mapper.liftOrRet(params);
if(effected == 0){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode());
VehicleBookRecord record=mapper.selectByPrimaryKey( retVehicleVo.getId());
Integer mileageRet=retVehicleVo.getMileageRet();
if(record==null||mileageRet==null){
//return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
Integer mileageLift=record.getMileageLift();
if(mileageLift!=null&&mileageRet>=mileageLift){
Map<String, Object> params = PropertyUtils.describe(retVehicleVo);
params.put("targetStatus", VehicleBookRecordStatus.RETURNED.getCode());
params.put("conditionStatus", VehicleBookRecordStatus.LIFTED.getCode());
params.put("reviewerReturn", operatorId);
params.put("reviewerNameReturn", userName);
params.put("mileageRet", mileageRet);
params.put("haveViolation", retVehicleVo.getHaveViolation());
Integer effected = mapper.liftOrRet(params);
if(effected == 0){
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode());
}
}else{
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
}
return RestResponse.suc();
}
......@@ -111,7 +124,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
* @return
* @throws Exception
*/
public PageDataVO<QueryVehicleBookRecordVo> page(VehicleBookRecordQueryVo vehicleBookRecordQueryVo) throws Exception{
public PageDataVO<QueryVehicleBookRecordVo> page(VehicleBookRecordQueryVo vehicleBookRecordQueryVo, List<Integer> companyList) throws Exception{
Map<String, Object> params = PropertyUtils.describe(vehicleBookRecordQueryVo);
String selectedMonth = (String)params.get("selectedMonth");
if(StringUtils.isBlank(selectedMonth)){
......@@ -130,6 +143,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
params.remove("pageSize");
Integer pageNo = (Integer) params.get("page");
params.remove("pageNo");
params.put("companyList", companyList);
PageHelper.startPage(pageNo,pageSize);
List<QueryVehicleBookRecordVo> bookRecordAndVehicleInfo = mapper.getByPage(params);
Map<Long,Map<Integer,Integer>> rs = getRelatedAccItemsAndAmount(bookRecordAndVehicleInfo,
......
......@@ -32,17 +32,17 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
@Autowired
VehicleMapper vehicleMapper;
public PageInfo<VehicleDepartureLogVo> page(String numberPlate, Integer page, Integer limit) {
public PageInfo<VehicleDepartureLogVo> page(String numberPlate, String time, Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAll(numberPlate));
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAll(numberPlate, time));
}
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate, Integer page, Integer limit, List<Integer> companyList) {
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate, String time, Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
if (companyList == null || companyList.size() == 0) {
companyList = Arrays.asList(-1);
}
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAllNotAllData(numberPlate, companyList));
return new PageInfo<>(vehicleDepartureLogMapper.selectVoAllNotAllData(numberPlate, time, companyList));
}
public PageInfo<VehicleDepartureLogVo> findByVehicle(String vehicleId, Integer page, Integer limit) {
......
......@@ -51,9 +51,9 @@ public class VehicleUpkeepService {
vehicleUpkeepItemMapper.deleteByPrimaryKey(id);
}
public PageInfo<VehicleUpkeepLogVo> pageLog(String numberPlate, Integer page, Integer limit) {
public PageInfo<VehicleUpkeepLogVo> pageLog(String numberPlate, Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate));
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate, companyList));
}
public VehicleUpkeepLogVo getLogVoById(Integer id) {
......
......@@ -88,7 +88,7 @@ public class VehicleWarningMsgBiz extends BaseBiz<VehicleWarningMsgMapper, Vehic
*/
public PageDataVO<VehicleWarningMsg> getByPage(QueryVehicleWarningMsgVo queryVehicleWarningMsgVo){
PageHelper.startPage(queryVehicleWarningMsgVo.getPage(),queryVehicleWarningMsgVo.getLimit());
List<VehicleWarningMsg> vehicleWarningMsgs = mapper.getByPage(queryVehicleWarningMsgVo);
List<VehicleWarningMsg> vehicleWarningMsgs = mapper.getByPages(queryVehicleWarningMsgVo);
PageInfo<VehicleWarningMsg> vehicleWarningMsgPageInfo = new PageInfo<>(vehicleWarningMsgs);
return PageDataVO.pageInfo(vehicleWarningMsgPageInfo);
}
......
......@@ -14,11 +14,11 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
List<VehicleDepartureLogVo> selectByVehicleId(String vehicleId);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate, @Param("time") String time);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate, @Param("companyList") List<Integer> companyList);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate, @Param("time") String time, @Param("companyList") List<Integer> companyList);
Integer selectMileageByVehicleId(String vehicleId);
Integer selectDayByVehicleId(String vehicleId);
String selectDayByVehicleId(String vehicleId);
}
......@@ -37,4 +37,12 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List<VehicleCountVo> countVehicleByParam(VehiclePlanDto vehiclePlanDto);
List<VehicleAndModelInfoVo> getAllVehicle(Map<String, Object> params);
//保养结束
int updateMileageStatusByIdAndStatus(@Param("vehicleId") String vehicleId, @Param("status") Integer status,
@Param("lastStatus") Integer lastStatus,@Param("mileage") Integer mileage);
//开始保养
int upMileageByIdAndStatus(@Param("vehicleId") String vehicleId, @Param("status") Integer status,
@Param("lastStatus") Integer lastStatus,@Param("mileage") Integer mileage);
}
\ No newline at end of file
......@@ -9,7 +9,7 @@ import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleUpkeepLogMapper extends Mapper<VehicleUpkeepLog> {
List<VehicleUpkeepLogVo> selectVoAll(@Param("numberPlate") String numberPlate);
List<VehicleUpkeepLogVo> selectVoAll(@Param("numberPlate") String numberPlate, @Param("companyList")List<Integer> companyList);
VehicleUpkeepLogVo selectVoById(Integer id);
......
......@@ -12,6 +12,8 @@ public interface VehicleWarningMsgMapper extends Mapper<VehicleWarningMsg> {
public List<VehicleWarningMsg> getByPage(QueryVehicleWarningMsgVo queryVehicleWarningMsgVo);
public List<VehicleWarningMsg> getByPages(QueryVehicleWarningMsgVo queryVehicleWarningMsgVo);
public List<VehicleWarningMsg> getMsgByVehicle(String vehicleId);
public List<VehicleWarningMsg> getAllByparam(VehiclePlanDto vehiclePlanDto);
......
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xxfc.platform.vehicle.biz.VehicleActiveService;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
......@@ -37,6 +38,42 @@ public class VehicleActiveController {
return RestResponse.suc();
}
/**
* 发车
*
* @return
*/
@PostMapping("small/departure")
@IgnoreUserToken
public RestResponse departureBySmall(@RequestBody VehicleDepartureVo departureVo) {
if (departureVo == null || departureVo.getVehicleId() == null
|| departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null
|| departureVo.getExpectArrivalBranchCompanyId() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
vehicleActiveService.departure(departureVo);
return RestResponse.suc();
}
/**
* 还车
*
* @param arrivalVo
* @return
*/
@PostMapping("small/arrival")
public RestResponse arrivalBySmall(@RequestBody VehicleArrivalVo arrivalVo) {
if (arrivalVo == null || arrivalVo.getVehicleId() == null
|| arrivalVo.getMileage() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
vehicleActiveService.arrival(arrivalVo);
return RestResponse.suc();
}
/**
* 还车
*
......@@ -54,6 +91,8 @@ public class VehicleActiveController {
return RestResponse.suc();
}
/**
* 保养
*
......
......@@ -142,6 +142,28 @@ public class VehicleController extends BaseController<VehicleBiz> {
}
}
@RequestMapping(value = "/small/page", method = RequestMethod.GET)
@IgnoreUserToken
public RestResponse<PageDataVO<QueryVehicleVo>> getByPageBySmall(@RequestParam String vehiclePageQueryVoJson,@RequestParam Integer uid) throws Exception {
VehiclePageQueryVo vehiclePageQueryVo = null;
try {
vehiclePageQueryVo = JSON.parseObject(vehiclePageQueryVoJson, VehiclePageQueryVo.class);
UserDTO userDTO = userFeign.userinfoByUid(uid).getData();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(baseBiz.getByPageNotAllData(vehiclePageQueryVo, companyList));
}
}
return RestResponse.data(baseBiz.getByPage(vehiclePageQueryVo));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
} catch (CustomIllegalParamException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
}
}
@RequestMapping(value = "/upload/drivingLicense", method = RequestMethod.POST)
@ApiOperation(value = "上传驾驶员驾驶证")
public RestResponse uploadDrivingLicense(@RequestParam("file") MultipartFile file)
......@@ -269,7 +291,14 @@ public class VehicleController extends BaseController<VehicleBiz> {
VehicleBookRecordQueryVo vehicleBookRecordQueryVo = null;
try {
vehicleBookRecordQueryVo = JSON.parseObject(vehicleBookRecordQueryVoJson, VehicleBookRecordQueryVo.class);
return RestResponse.data(vehicleBookRecordBiz.page(vehicleBookRecordQueryVo));
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
List<Integer> companyList =new ArrayList<>();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
}
return RestResponse.data(vehicleBookRecordBiz.page(vehicleBookRecordQueryVo, companyList));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
} catch (CustomIllegalParamException ex) {
......@@ -436,6 +465,16 @@ public class VehicleController extends BaseController<VehicleBiz> {
return baseBiz.getOneById(id);
}
/**
* 删除车辆信息
* @param id
* @return
* @throws Exception
*/
@RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE)
public RestResponse retVehicle(@PathVariable String id) throws Exception {
return baseBiz.delVehicleById(id);
}
}
......@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
......@@ -33,7 +34,7 @@ public class VehicleDepartureController {
private UserAuthConfig userAuthConfig;
@GetMapping("page")
public RestResponse page(String numberPlate, Integer page, Integer limit, HttpServletRequest request) {
public RestResponse page(String numberPlate, String time, Integer page, Integer limit, HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -42,10 +43,27 @@ public class VehicleDepartureController {
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, page, limit, companyList));
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate, page, limit));
return RestResponse.suc(vehicleDepartureService.page(numberPlate, time, page, limit));
}
@GetMapping("small/page")
@IgnoreUserToken
public RestResponse pageBySmall(String numberPlate, String time,Integer page, Integer limit, Integer uid,HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
}
UserDTO userDTO = userFeign.userinfoByUid(uid).getData();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate,time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate,time,page, limit));
}
/**
......
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleUpkeepService;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
......@@ -10,14 +14,26 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.InvocationTargetException;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("upkeep")
public class VehicleUpkeepController {
@Autowired
private VehicleUpkeepService vehicleUpkeepService;
@Autowired
VehicleBiz vehicleBiz;
@Autowired
UserFeign userFeign;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
protected HttpServletRequest request;
/**
* 查询所有保养项目
......@@ -101,7 +117,14 @@ public class VehicleUpkeepController {
page = 1;
limit = 10;
}
return RestResponse.suc(vehicleUpkeepService.pageLog(numberPlate, page, limit));
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
List<Integer> companyList =new ArrayList<>();
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
}
return RestResponse.suc(vehicleUpkeepService.pageLog(numberPlate, page, limit, companyList));
}
/**
......
......@@ -247,6 +247,23 @@
vehicle_book_info vbf on vbf.vehicle = vbr.vehicle_id and vbf.year_month = #{selectedMonth}
where
1=1
<if test="companyList != null and companyList.size() > 0">
and ( vbr.lift_company in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
or vbr.ret_company in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
)
</if>
<if test="liftCompany !=null">
and vbr.lift_company = #{liftCompany}
</if>
......
......@@ -12,38 +12,68 @@
<select id="selectByVehicleId">
select vehicle_departure_log.*,vehicle.number_plate
from vehicle_departure_log
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
where vehicle_id = #{vehicleId}
order by create_time desc
</select>
<select id="selectVoAll" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo">
select vehicle_departure_log.*,vehicle.number_plate
select vehicle_departure_log.*,vehicle.number_plate,
/* IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
CONCAT(IFNULL(floor((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time)) / 86400),0),'天',
IFNULL(floor(IF((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))>86400,(unix_timestamp(vehicle_departure_log.arrival_time)
- unix_timestamp(vehicle_departure_log.departure_time)) MOD 86400/3600,(unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))/3600)),0),'小时')
as departureDay,bc.name as departureName,bc1.name as arrivalName,
IF((IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0))>0,IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0),0) as mileage
from vehicle_departure_log
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
LEFT JOIN branch_company bc ON vehicle_departure_log.departure_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON vehicle_departure_log.arrival_branch_company_id = bc1.id
<trim prefix="where">
1=1
<if test="numberPlate != null and numberPlate != ''">
vehicle.number_plate = #{numberPlate}
and vehicle.number_plate = #{numberPlate}
</if>
<if test="time != null and time != ''">
and (vehicle_departure_log.arrival_time >= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.arrival_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.arrival_time is null
)
and
(
vehicle_departure_log.departure_time &lt;= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.departure_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.departure_time is null
)
</if>
</trim>
order by create_time desc
</select>
<select id="selectVoAllNotAllData" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo">
select vehicle_departure_log.*,vehicle.number_plate
select vehicle_departure_log.*,vehicle.number_plate,
/*IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
CONCAT(IFNULL(floor((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time)) / 86400),0),'天',
IFNULL(floor(IF((unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))>86400,(unix_timestamp(vehicle_departure_log.arrival_time)
- unix_timestamp(vehicle_departure_log.departure_time)) MOD 86400/3600,(unix_timestamp(vehicle_departure_log.arrival_time) - unix_timestamp(vehicle_departure_log.departure_time))/3600)),0),'小时')
as departureDay,bc.name as departureName,bc1.name as arrivalName,
IF((IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0))>0,IFNULL(vehicle_departure_log.mileage_end,0)-IFNULL(vehicle_departure_log.mileage_start,0),0) as mileage
from vehicle_departure_log
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
LEFT JOIN branch_company bc ON vehicle_departure_log.departure_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON vehicle_departure_log.arrival_branch_company_id = bc1.id
<trim prefix="where" suffixOverrides="and">
<if test="numberPlate != null and numberPlate != ''">
vehicle.number_plate = #{numberPlate} and
</if>
<if test="companyList != null">
( vehicle.park_branch_company_id in (
( vehicle_departure_log.departure_branch_company_id in (
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
#{companyId},
</trim>
</foreach>
)
or vehicle.expect_destination_branch_company_id in (
or vehicle_departure_log.arrival_branch_company_id in (
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
#{companyId},
......@@ -52,6 +82,18 @@
)
)
</if>
<if test="time != null and time != ''">
and (vehicle_departure_log.arrival_time >= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.arrival_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.arrival_time is null
)
and
(
vehicle_departure_log.departure_time &lt;= str_to_date(#{time}, '%Y-%m-%d %H')
or TO_DAYS(vehicle_departure_log.departure_time)=TO_DAYS(str_to_date(#{time}, '%Y-%m-%d %H'))
or vehicle_departure_log.departure_time is null
)
</if>
</trim>
order by create_time desc
</select>
......@@ -60,10 +102,21 @@
from vehicle_departure_log
where vehicle_id = #{vehicleId};
</select>
<select id="selectDayByVehicleId" resultType="int">
select sum(to_days(arrival_time) - to_days(departure_time))
from vehicle_departure_log
where vehicle_id = #{vehicleId};
<select id="selectDayByVehicleId" resultType="String">
SELECT
CONCAT(IFNULL(floor(t.total_expire_minute / 86400),0),'天',IFNULL(floor(IF(t.total_expire_minute>86400,t.total_expire_minute MOD 86400/3600,
t.total_expire_minute/3600)),0),'小时')
FROM
(
SELECT
SUM(
unix_timestamp(arrival_time) - unix_timestamp(departure_time)
) AS total_expire_minute
FROM
vehicle_departure_log
WHERE
vehicle_id =#{vehicleId}
) t
</select>
</mapper>
\ No newline at end of file
</mapper>
......@@ -31,13 +31,14 @@
<select id="getByPage" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.pojo.QueryVehicleVo">
select v.`id`,
SELECT r.* FROM (
select DISTINCT v.`id`,
v.`code`,
v.`status`,
v.number_plate,
v.brand,
v.subordinate_branch,
bc.name as subBranchName,
IFNULL(v.park_branch_company_id,v.expect_destination_branch_company_id) AS subordinate_branch,
IFNULL(bc.name,bc1.name) AS subBranchName,
v.use_type,
v.remark,
v.create_time,
......@@ -55,7 +56,8 @@
v.engine_num,
v.manufacturer,
v.receive_time,
v.update_time
v.update_time,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam != null ">
,vbi.booked_date
</if>
......@@ -64,9 +66,10 @@
left join
vehicle_book_info vbi on v.`id` = vbi.vehicle
</if>
left join branch_company bc on v.`subordinate_branch` = bc.id
LEFT JOIN branch_company bc ON v.park_branch_company_id = bc.id 58 left join branch_company bc on v.`subordinate_branch` = bc.id
LEFT JOIN branch_company bc1 ON v.expect_destination_branch_company_id = bc1.id
where
1=1
v.is_del=0
<if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd}
</if>
......@@ -89,7 +92,7 @@
and v.insurance_company = #{insuranceCompany}
</if>
<if test="vin !=null and vin != ''">
and v.vin = #{vin}a
and v.vin = #{vin}
</if>
<if test="subordinateBranch !=null">
and v.subordinate_branch = #{subordinateBranch}
......@@ -101,7 +104,7 @@
and v.status = #{status}
</if>
<if test="numberPlate !=null and numberPlate != ''">
and v.number_plate = #{numberPlate}
and v.number_plate like concat('%',#{numberPlate},'%')
</if>
<if test="brand !=null">
and v.brand = #{brand}
......@@ -123,18 +126,38 @@
)
</foreach>
</if>
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch} or v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.subBranchName
</select>
<select id="getByPageNotAllData" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.pojo.QueryVehicleVo">
select v.`id`,
SELECT r.* FROM (
select DISTINCT v.`id`,
v.`code`,
v.`status`,
v.number_plate,
v.brand,
v.subordinate_branch,
bc.name as subBranchName,
IFNULL(v.park_branch_company_id,v.expect_destination_branch_company_id) AS subordinate_branch,
IFNULL(bc.name,bc1.name) AS subBranchName,
v.use_type,
v.remark,
v.create_time,
......@@ -152,7 +175,8 @@
v.engine_num,
v.manufacturer,
v.receive_time,
v.update_time
v.update_time,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
</if>
......@@ -161,23 +185,24 @@
left join
vehicle_book_info vbi on v.`id` = vbi.vehicle
</if>
left join branch_company bc on v.`subordinate_branch` = bc.id
LEFT JOIN branch_company bc ON v.park_branch_company_id = bc.id
LEFT JOIN branch_company bc1 ON v.expect_destination_branch_company_id = bc1.id
where
1=1
v.is_del=0
<if test="companyList != null">
and ( v.park_branch_company_id in (
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
</foreach>
)
or v.expect_destination_branch_company_id in (
<foreach collection="companyList" item="companyId">
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
</foreach>
)
)
</if>
......@@ -215,7 +240,7 @@
and v.status = #{status}
</if>
<if test="numberPlate !=null and numberPlate != ''">
and v.number_plate = #{numberPlate}
and v.number_plate like concat('%',#{numberPlate},'%')
</if>
<if test="brand !=null">
and v.brand = #{brand}
......@@ -236,7 +261,26 @@
)
</foreach>
</if>
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch} or v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.subBranchName
</select>
<select id="lockByCode" resultType="com.xxfc.platform.vehicle.entity.Vehicle"
......@@ -267,6 +311,17 @@
where id = #{vehicleId} and status = #{lastStatus}
</update>
<update id="updateMileageStatusByIdAndStatus">
update vehicle
set status = #{status},maintenance_mileage=#{mileage}
where id = #{vehicleId} and status = #{lastStatus}
</update>
<update id="upMileageByIdAndStatus">
update vehicle
set status = #{status},mileage_last_update=#{mileage}
where id = #{vehicleId} and status = #{lastStatus}
</update>
<select id="searchUsableModel" parameterType="java.util.Map"
resultMap="searchUsableModelMap">
select distinct vm.id as model_id, bc.id as company_id
......
......@@ -34,8 +34,19 @@
left join vehicle b on a.vehicle_id = b.id
left join branch_company c on a.branch_company_id = c.id
<trim prefix="where">
1=1
<if test="numberPlate != null and numberPlate != ''">
b.number_plate = #{numberPlate}
and b.number_plate = #{numberPlate}
</if>
<if test="companyList != null and companyList.size() > 0">
and ( a.branch_company_id in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
)
</if>
</trim>
order by a.create_time desc
......
......@@ -51,5 +51,20 @@
</where>
</select>
<select id="getByPages" resultType="com.xxfc.platform.vehicle.pojo.VehicleWarningMsgQueryVo"
parameterType="com.xxfc.platform.vehicle.pojo.QueryVehicleWarningMsgVo">
SELECT id as vehicleId,code as vehicleCode,number_plate as numberPlate,mileage_last_update as mileageLastUpdate,status,
IFNULL(park_branch_company_id,expect_destination_branch_company_id) AS subordinateBranch,
CONCAT('当前公里数为:',mileage_last_update,' 保养公里数:',maintenance_mileage,' 请尽快保养!') as msg
,1 as type,update_time as createTime FROM vehicle
WHERE mileage_last_update>=maintenance_mileage
<if test="vehicleCode != null">
and vcode = #{vehicleCode}
</if>
<if test="numberPlate != null and numberPlate != '' ">
and number_plate = #{numberPlate}
</if>
</select>
</mapper>
\ 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