Commit aebf4937 authored by 李洪明's avatar 李洪明

init

parent 9699b737
Pipeline #1299 failed with stages
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/>
</parent>
<groupId>com.bme.access.upload</groupId>
<artifactId>bme-access-guangdong-upload</artifactId>
<version>1.0.0-release</version>
<name>bme-access-guangdong-upload</name>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.27</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- logback -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<!--swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.15</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.28</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.68</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
<classifier>javadoc</classifier>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.bme.access.guangdong;
import com.alibaba.druid.pool.DruidDataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
@MapperScan("com.bme.access.guangdong.dao")
public class Application {
@ConfigurationProperties(prefix = "spring.datasource.original")
@Bean
public DruidDataSource dataSource() {
return new DruidDataSource();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
package com.bme.access.guangdong.common;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class HttpUtils {
private static final String USERACT = "";
private static final String USERPWD = "";
private static final String ACTKEY = "";
public static String uploadData(String method, String version, String cityId, String jsonStr) {
String businessContent = base64Encode(jsonStr);
String str = "{" +
"\"VERSION\":\"" + version + "\"," +
"\"CITYID\":\"" + cityId + "\"," +
"\"TYPE\":\"" + method + "\"," +
"\"BUSINESSCONTENT\":\"" + businessContent + "\"" +
"}";
JSONObject data = JSONObject.parseObject(str);
String dataStr = JSONObject.toJSONString(data, SerializerFeature.WriteMapNullValue);
// 计算签名
// USERACT用户账号、USERPWD密码
String source = USERACT + dataStr + USERPWD;
String iSign = md5(source); //获取md5并实现二进制小写字符串转换
//将签名添加进上传的JSON串中
data.put("ISIGN", iSign);
//数据上报,在Request Headers添加账户密钥
//ACTKEY账户密钥
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("AccountKey", ACTKEY);
httpHeaders.add("Accept-Charset","UTF-8");
httpHeaders.add("Content-Type", "application/json;charset=UTF-8");
HttpEntity<JSONObject> requestEntity = new HttpEntity<>(data,httpHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
ResponseEntity<String> resp = restTemplate.exchange("https://m.gdeei.cn/ydyjgpt/qymj/submitQYMJData", HttpMethod.POST, requestEntity,String.class);
//获得返回值
String body = resp.getBody();
// JSONObject responseObj = JSONObject.parseObject(body);
//按获取的返回信息完成处理
//……
return body;
}
/**
* 完整的MD5编码过程
*
* @param input 原始字符串
* @return 32位小写MD5字符串
* @throws RuntimeException 当MD5算法不可用时
*/
private static String md5(String input) {
// 参数校验
if (input == null) {
throw new IllegalArgumentException("Input string cannot be null");
}
try {
// 1. 获取MessageDigest实例
MessageDigest md = MessageDigest.getInstance("MD5");
// 2. 将字符串转换为字节数组(必须指定编码)
byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
// 3. 计算哈希值(digest方法会执行完整计算)
byte[] hashBytes = md.digest(inputBytes);
// 4. 将字节数组转换为十六进制表示
return bytesToHex(hashBytes);
} catch (NoSuchAlgorithmException e) {
// 理论上所有Java实现都必须支持MD5
throw new RuntimeException("MD5 algorithm not available", e);
}
}
/**
* 字节数组转十六进制字符串(优化版)
*
* @param bytes 字节数组
* @return 十六进制字符串
*/
private static String bytesToHex(byte[] bytes) {
// 一个字节对应两个十六进制字符
char[] hexChars = new char[bytes.length * 2];
// 预定义十六进制字符
final char[] hexArray = "0123456789abcdef".toCharArray();
for (int i = 0; i < bytes.length; i++) {
// 取字节的高4位
int high = (bytes[i] & 0xF0) >>> 4;
// 取字节的低4位
int low = bytes[i] & 0x0F;
// 转换为对应的十六进制字符
hexChars[i * 2] = hexArray[high];
hexChars[i * 2 + 1] = hexArray[low];
}
return new String(hexChars);
}
private static String base64Encode(String input) {
byte[] encodedBytes = Base64.getEncoder().encode(input.getBytes());
return new String(encodedBytes);
}
}
package com.bme.access.guangdong.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface DataUploadTimeMapper {
String getUploadTime(@Param("type")Integer type);
Integer insertUploadTime(@Param("uploadTime")String uploadTime, @Param("type")Integer type);
Integer updateUploadTimeByType(@Param("uploadTime")String uploadTime, @Param("type")Integer type);
}
package com.bme.access.guangdong.job;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;
@Component
@EnableScheduling
@Slf4j
public class UploadDataTask {
}
package com.bme.access.guangdong.model;
import lombok.Data;
@Data
public class BarrierGateInfo {
private String XZQHDM; // 行政区划代码 字符(6) 见2.3.2,精确到辖区县
private String QYBH; // 企业编号 字符(22) 见2.3.3
private String CRKBH; // 出入口编号 字符(1) 见2.3.4
private String CRKLX; // 出入口类型 字符(1) 1—入口;2—出口
private String DZBH; // 道闸编号 字符(3) 见2.3.5
private String SFYSSSP; // 是否有实时视频 字符(1) 0—否;1—是
private String SSSPLJ; // 实时视频链接 字符(256) SFYSSSP=1时适用,RTSP协议
}
package com.bme.access.guangdong.model;
import lombok.Data;
@Data
public class EnterpriseInfo {
private String XZQHDM; // 行政区划代码 字符(6)
private String QYBH; // 企业编号 字符(22)
private String QYMC; // 企业名称 字符(100)
private String TYSHXYDM; // 统一社会信用代码 字符(18)
private String QYDZ; // 企业地址 字符(255)
private Number JD; // 经度 数值
private Number WD; // 纬度 数值
private String FRDB; // 法人代表 字符(20)
private String HYLX; // 行业类型 字符(50)
private String HYFZ; // 行业分支 字符(50)
private String JXFJGK; //绩效分级管控类型 字符(50)
private String LXR; // 联系人 字符(20)
private String LXRDH; // 联系人电话 字符(20)
private Number ZHCRKSL; // 载货出入口数量 数值
private Number DZSL; // 道闸数量 数值
private Number YSCLSL; // 运输车辆数量 数值
private Number CNYSCLSL; // 厂内运输车辆数量 数值
private Number FDLYDJXSL; // 非道路移动机械数量 数值
}
package com.bme.access.guangdong.model;
import lombok.Data;
@Data
public class InFactoryVehicleInfo {
private String XZQHDM; // 行政区划编码 字符(6) 见2.3.2,精确到辖区县
private String QYBH; // 企业编号 字符(22) 见2.3.3
private String HBDJBM; // 环保登记编码 字符(32) 在非道路移动机械监管平台编码登记的编码
private String CLSBDM; // 车辆识别代码(VIN) 字符(17) —
private String SCRQ; // 生产日期 日期 格式:YYYYMMDD
private String CPHM; // 车牌号码 字符(10) 可选项 若已在公安交管部门上牌请填写
private String ZCDJRQ; // 注册登记日期 日期 可选项 若已在公安交管部门上牌请填写
private String CLPPXH; // 车辆品牌型号 字符(32) —
private String RLLX; // 燃料类型 字符 见2.3.12
private String PFBZ; // 排放标准 字符(1) 见2.3.13
private String LWZT; // 联网状态 字符(1) 0—未联网;1—已联网
private String SCQD; // 随车清单* 字符 JPG格式照片,Base64编码
private String XSZ; // 行驶证* 字符 JPG格式照片,Base64编码
private String CLSYR; // 车辆所有人(单位) 字符(100) 自有/租赁(写明租赁公司名称)
}
package com.bme.access.guangdong.model;
import lombok.Data;
@Data
public class InOutInfo {
private String XZQHDM; // 行政区划编码 字符(6) 见2.3.2,精确到辖区县
private String QYBH; // 企业编号 字符(22) 见2.3.3
private String CRKBH; // 出入口编号 字符(1) 见2.3.4
private String DZBH; // 道闸编号 字符(3) 见2.3.5
private String JCCZT; // 进出厂状态 字符(1) 1—进厂;2—出厂
private String JCCSJ; // 进厂/出厂时间 时间 格式:YYYY-MM-DD hh:mm:ss
private String CTZP; // 进厂/出厂车头照片 字符 车头照片,JPG格式照片,Base64编码
private String CSZP; // 进厂/出厂车身照片* 字符 车身照片,JPG格式照片,Base64编码
private String CPHM; // 车牌号码 字符(10) —
private String HPYS; // 号牌颜色 字符(1) 见2.3.9
private String CLLX; // 车辆类型 字符 见2.3.10
private String CLSBDM; // 车辆识别代码(VIN) 字符(17) —
private String ZCDJRQ; // 注册登记日期 日期 格式:YYYYMMDD
private String CLPPXH; // 车辆品牌型号 字符(32) —
private String RLLX; // 燃料类型 字符 见2.3.12
private String PFBZ; // 排放标准 字符(1) 见2.3.13
private String LWZT; // 联网状态 字符(1) 0—未联网;1—已联网
private String SYXZ; // 使用性质 字符 见2.3.11
private String SCQD; // 随车清单* 字符 JPG格式照片,Base64编码
private String XSZ; // 行驶证* 字符 JPG格式照片,Base64编码
private String YSHWMC; // 运输货物名称* 字符(32) —
private Number YSL; // 运输量 数值 单位:吨(t)、升(L)、包
private String YSLDW; // 运输量单位 字符(5) 吨;升;包
private String CDMC; // 车队名称 字符(100) 自有、个人或运输公司营业执照名称
}
package com.bme.access.guangdong.model;
import lombok.Data;
@Data
public class NoRoadVehicleInfo {
private String XZQHDM; // 行政区划编码 字符(6) 见2.3.2,精确到辖区县
private String QYBH; // 企业编号 字符(22) 见2.3.3
private String HBDJBM; // 环保登记编码 字符(32) 在非道路移动机械监管平台编码登记的编码
private String JXSCRQ; // 机械生产日期 日期 格式:YYYYMMDD
private String CPHM; // 车牌号码 字符(10) 可选项 若已在公安交管部门上牌请填写
private String PFBZ; // 排放标准 字符(1) 见2.3.13
private String RLLX; // 燃料类型 字符 见2.3.12
private String JXZL; // 机械种类 字符(1) 见2.3.14
private String JXHBDM; // 机械环保代码/产品识别码(PIN) 字符(64) —
private String JXXH; // 机械型号 字符(32) —
private String FDJXH; // 发动机型号 字符(32) —
private String FDJSCC; // 发动机生产厂 字符(100) —
private String FDJBH; // 发动机编号 字符(32) —
private String ZCMP; // 整车(机)铭牌 字符 JPG格式照片,Base64编码
private String FDJMP; // 发动机铭牌 字符 JPG格式照片,Base64编码
private String JXHBXXBQ; // 机械环保信息标签 字符 JPG格式照片,Base64编码
private String SSR; // 所属人(单位) 字符(100) 自有/租赁(写明租赁公司名称)
}
package com.bme.access.guangdong.model;
import lombok.Data;
@Data
public class VehicleInfo {
private String XZQHDM; // 行政区划编码 字符(6) 见2.3.2,精确到辖区县
private String QYBH; // 企业编号 字符(22) 见2.3.3
private String CPHM; // 车牌号码 字符(10) —
private String HPYS; // 号牌颜色 字符(1) 见2.3.9
private String CLLX; // 车辆类型 字符 见2.3.10
private String CLSBDM; // 车辆识别代码(VIN) 字符(17) —
private String ZCDJRQ; // 注册登记日期 日期 格式:YYYYMMDD
private String CLPPXH; // 车辆品牌型号 字符(32) —
private String RLLX; // 燃料类型 字符 见2.3.12
private String PFBZ; // 排放标准 字符(1) 见2.3.13
private String LWZT; // 联网状态 字符(1) 0—未联网;1—已联网
private String SYXZ; // 使用性质 字符 见2.3.11
private String SCQD; // 随车清单* 字符 JPG格式照片,Base64编码
private String XSZ; // 行驶证* 字符 JPG格式照片,Base64编码
private String CDMC; // 车队名称 字符(100) 自有、个人或运输公司营业执照名称
}
package com.bme.access.guangdong.service;
import org.springframework.stereotype.Service;
@Service
public class InAndOutDateService {
}
package com.bme.access.guangdong.web;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
@RestController
@Slf4j
@RequestMapping
public class TestController {
private static final String USERACT = "";
private static final String USERPWD = "";
private static final String ACTKEY = "";
@GetMapping("/uploadInfo")
public String uploadInfo(@RequestParam("method") String method,
@RequestParam("version") String version,
@RequestParam("cityId") String cityId,
@RequestParam("jsonStr") String jsonStr) {
String businessContent = base64Encode(jsonStr);
String str = "{" +
"\"VERSION\":\"" + version + "\"," +
"\"CITYID\":\"" + cityId + "\"," +
"\"TYPE\":\"" + method + "\"," +
"\"BUSINESSCONTENT\":\"" + businessContent + "\"" +
"}";
JSONObject data = JSONObject.parseObject(str);
String dataStr = JSONObject.toJSONString(data, SerializerFeature.WriteMapNullValue);
// 计算签名
// USERACT用户账号、USERPWD密码
String source = USERACT + dataStr + USERPWD;
String iSign = md5(source); //获取md5并实现二进制小写字符串转换
//将签名添加进上传的JSON串中
data.put("ISIGN", iSign);
//数据上报,在Request Headers添加账户密钥
//ACTKEY账户密钥
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("AccountKey", ACTKEY);
httpHeaders.add("Accept-Charset","UTF-8");
httpHeaders.add("Content-Type", "application/json;charset=UTF-8");
HttpEntity<JSONObject> requestEntity = new HttpEntity<>(data,httpHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
ResponseEntity<String> resp = restTemplate.exchange("https://m.gdeei.cn/ydyjgpt/qymj/submitQYMJData", HttpMethod.POST, requestEntity,String.class);
//获得返回值
String body = resp.getBody();
// JSONObject responseObj = JSONObject.parseObject(body);
//按获取的返回信息完成处理
//……
return body;
}
/**
* 完整的MD5编码过程
*
* @param input 原始字符串
* @return 32位小写MD5字符串
* @throws RuntimeException 当MD5算法不可用时
*/
private static String md5(String input) {
// 参数校验
if (input == null) {
throw new IllegalArgumentException("Input string cannot be null");
}
try {
// 1. 获取MessageDigest实例
MessageDigest md = MessageDigest.getInstance("MD5");
// 2. 将字符串转换为字节数组(必须指定编码)
byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
// 3. 计算哈希值(digest方法会执行完整计算)
byte[] hashBytes = md.digest(inputBytes);
// 4. 将字节数组转换为十六进制表示
return bytesToHex(hashBytes);
} catch (NoSuchAlgorithmException e) {
// 理论上所有Java实现都必须支持MD5
throw new RuntimeException("MD5 algorithm not available", e);
}
}
/**
* 字节数组转十六进制字符串(优化版)
*
* @param bytes 字节数组
* @return 十六进制字符串
*/
private static String bytesToHex(byte[] bytes) {
// 一个字节对应两个十六进制字符
char[] hexChars = new char[bytes.length * 2];
// 预定义十六进制字符
final char[] hexArray = "0123456789abcdef".toCharArray();
for (int i = 0; i < bytes.length; i++) {
// 取字节的高4位
int high = (bytes[i] & 0xF0) >>> 4;
// 取字节的低4位
int low = bytes[i] & 0x0F;
// 转换为对应的十六进制字符
hexChars[i * 2] = hexArray[high];
hexChars[i * 2 + 1] = hexArray[low];
}
return new String(hexChars);
}
private static String base64Encode(String input) {
byte[] encodedBytes = Base64.getEncoder().encode(input.getBytes());
return new String(encodedBytes);
}
}
spring:
datasource:
original:
url: jdbc:sqlserver://192.168.8.239;Databasename=BME_Vehilce_Gate;trustServerCertificate=true
username: sa
password: dp@2024
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
initialSize: 5
minIdle: 5
maxActive: 20
\ No newline at end of file
server:
port: 9115
servlet:
context-path: /bme-access-upload
compression:
enabled: true
mybatis:
type-aliases-package: com.bme.upload.module.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
mapper-locations: classpath:/mapper/*.xml
spring:
profiles:
active: zhanhong
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="rollingAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home:-.}/logs/bme-access-guangdong-upload.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.home:-.}/logs/bme-access-guangdong-upload-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxHistory>7</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder><!-- 必须指定,否则不会往文件输出内容 -->
<pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
</encoder>
<append>true</append>
<prudent>true</prudent>
</appender>
<logger name="zyun" level="INFO"/>
<root level="INFO">
<appender-ref ref="rollingAppender"/>
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bme.access.guangdong.dao.DataUploadTimeMapper">
<select id="getUploadTime" resultType="java.lang.String">
select Upload_Time uploadTime from Data_Upload_Time where Type=#{type}
</select>
<insert id="insertUploadTime">
insert into Data_Upload_Time (Upload_Time, type) values (#{uploadTime}, #{type});
</insert>
<update id="updateUploadTimeByType">
update Data_Upload_Time set Upload_Time=#{uploadTime} where type=#{type};
</update>
</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