完善导入功能
parent
38befe0401
commit
6f54eb3e85
|
|
@ -41,4 +41,6 @@ logs/
|
|||
/.nb-gradle/
|
||||
yus-water/logs/
|
||||
*.vm
|
||||
**/target/**
|
||||
**/target/**
|
||||
|
||||
/img
|
||||
Binary file not shown.
20
pom.xml
20
pom.xml
|
|
@ -70,7 +70,7 @@
|
|||
<artifactId>easypoi-spring-boot-starter</artifactId>
|
||||
<version>4.4.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
|
||||
<dependency>
|
||||
|
|
@ -91,7 +91,6 @@
|
|||
<!-- Sa-Token 权限认证 end -->
|
||||
|
||||
|
||||
|
||||
<!-- knife4j swagger start-->
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
|
|
@ -124,12 +123,25 @@
|
|||
</dependency>
|
||||
<!-- fastjson end-->
|
||||
|
||||
<!-- dameng start -->
|
||||
<!-- dameng start mvn 库中的 8.1.2.79 不是最新的。达梦安装包内带的 jar 才是最新的
|
||||
2022年7月25日发现,安装包中带的版本号是 2022.05.07 编译的 version 8.1.2.114
|
||||
-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.dameng</groupId>-->
|
||||
<!-- <artifactId>DmJdbcDriver18</artifactId>-->
|
||||
<!-- <version>8.1.2.79</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!--
|
||||
将 jar 安装到本地库仓库,方便下面的打包插件统一处理
|
||||
mvn install:install-file -Dfile=C:/lisai/workspase/zhsk/zhdbaq-service/lib/DmJdbcDriver18.jar -DgroupId="com.dameng" -DartifactId=DmJdbcDriver18 -Dversion="8.1.2.114" -Dpackaging=jar
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
<artifactId>DmJdbcDriver18</artifactId>
|
||||
<version>8.1.2.79</version>
|
||||
<version>8.1.2.114</version>
|
||||
</dependency>
|
||||
|
||||
<!--达梦数据库方言-->
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ public class ScheduledTask {
|
|||
@Scheduled(fixedDelay = 60000)
|
||||
public void scheduledTask() {
|
||||
String OS = System.getProperty("os.name").toLowerCase();
|
||||
|
||||
// 简单粗暴的判断,在 linux 环境下运行时,为生成环境
|
||||
if (OS.contains("linux")) {
|
||||
iDeviceDataService.syncData();
|
||||
|
|
|
|||
|
|
@ -171,8 +171,7 @@ public class DeviceInfo implements Serializable {
|
|||
*/
|
||||
@ApiParam(value = "埋设示意图")
|
||||
@ApiModelProperty(value = "埋设示意图", dataType = "java.lang.String")
|
||||
@Excel(name = "埋设示意图说明")
|
||||
@TableField("SKETCH_MAP")
|
||||
@TableField(value = "SKETCH_MAP")
|
||||
private String sketchMap;
|
||||
|
||||
/**
|
||||
|
|
@ -180,7 +179,7 @@ public class DeviceInfo implements Serializable {
|
|||
*/
|
||||
@ApiParam(value = "日期")
|
||||
@ApiModelProperty(value = "日期", dataType = "java.util.Date")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@Excel(name = "日期")
|
||||
@TableField("CREATE_DATE")
|
||||
private Date createDate;
|
||||
|
|
@ -263,7 +262,7 @@ public class DeviceInfo implements Serializable {
|
|||
@ApiParam(value = "埋设日期")
|
||||
@ApiModelProperty(value = "埋设日期", dataType = "java.util.Date")
|
||||
@Excel(name = "埋设日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@TableField("EMBEDDING_DATE")
|
||||
private Date embeddingDate;
|
||||
|
||||
|
|
@ -520,4 +519,7 @@ public class DeviceInfo implements Serializable {
|
|||
@TableField("INSTALLATION_POSITION_X")
|
||||
private Double installationPositionX;
|
||||
|
||||
@Excel(name = "埋设示意图说明", type = 2, savePath = "img")
|
||||
@TableField(exist = false)
|
||||
private String picPath;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,4 +49,6 @@ public interface IDeviceInfoService extends IService<DeviceInfo> {
|
|||
* @return
|
||||
*/
|
||||
DeviceInfoImpVo imp(InputStream file);
|
||||
|
||||
void clearCache();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -173,10 +173,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
|
|||
}
|
||||
|
||||
if (changeDi) {
|
||||
Set<String> keys = redisTemplate.keys(Constants.CACHE_NAME + "*");
|
||||
for (String k : keys) {
|
||||
redisTemplate.delete(k);
|
||||
}
|
||||
iDeviceInfoService.clearCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,12 @@ import com.whdc.zhdbaqapi.model.dto.FindDeviceDto;
|
|||
import com.whdc.zhdbaqapi.model.entity.DeviceInfo;
|
||||
import com.whdc.zhdbaqapi.model.vo.DeviceInfoImpVo;
|
||||
import com.whdc.zhdbaqapi.service.IDeviceInfoService;
|
||||
import com.whdc.zhdbaqapi.utils.DataUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -27,9 +30,14 @@ import java.util.*;
|
|||
*/
|
||||
@Service
|
||||
public class DeviceInfoServiceimpl extends ServiceImpl<DeviceInfoMapper, DeviceInfo> implements IDeviceInfoService {
|
||||
@Autowired
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
|
||||
@Override
|
||||
public DeviceInfo get(Integer id) {
|
||||
return baseMapper.get(id);
|
||||
DeviceInfo ret = baseMapper.get(id);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -100,6 +108,7 @@ public class DeviceInfoServiceimpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
|||
public DeviceInfoImpVo imp(InputStream file) {
|
||||
ImportParams params = new ImportParams();
|
||||
params.setHeadRows(1);
|
||||
params.setNeedSave(false);
|
||||
try {
|
||||
List<DeviceInfo> list = ExcelImportUtil.importExcel(file, DeviceInfo.class, params);
|
||||
|
||||
|
|
@ -141,6 +150,12 @@ public class DeviceInfoServiceimpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
|||
if (chkMap.containsKey(di.getStationCode())) {
|
||||
err.add(di);
|
||||
} else {
|
||||
if (StringUtils.isNotBlank(di.getPicPath())) {
|
||||
String filepath = System.getProperty("user.dir") + "/" + di.getPicPath();
|
||||
di.setSketchMap(DataUtils.File2Base64(filepath));
|
||||
DataUtils.DelFile(filepath);
|
||||
}
|
||||
|
||||
impList.add(di);
|
||||
}
|
||||
}
|
||||
|
|
@ -150,6 +165,7 @@ public class DeviceInfoServiceimpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
|||
}
|
||||
|
||||
if (super.saveBatch(impList)) {
|
||||
|
||||
return new DeviceInfoImpVo().setLoad(list.size()).setSuccess(impList.size()).setFail(err.size()).setErr(err).setMsg("成功");
|
||||
} else {
|
||||
return new DeviceInfoImpVo().setLoad(list.size()).setSuccess(0).setFail(err.size()).setErr(err).setMsg("失败");
|
||||
|
|
@ -159,4 +175,12 @@ public class DeviceInfoServiceimpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
|||
throw new MyException("导入异常!" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearCache() {
|
||||
Set<String> keys = redisTemplate.keys(Constants.CACHE_NAME + "*");
|
||||
for (String k : keys) {
|
||||
redisTemplate.delete(k);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,31 @@
|
|||
package com.whdc.zhdbaqapi.utils;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Base64;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author 李赛
|
||||
* @date 2022-07-22 8:46
|
||||
*/
|
||||
public class DataUtils {
|
||||
private static Map<String, String> extension2Scheme = new HashMap<String, String>();
|
||||
|
||||
static {
|
||||
extension2Scheme.put("jpg", "data:image/jpg;base64,");
|
||||
extension2Scheme.put("jpeg", "data:image/jpeg;base64,");
|
||||
extension2Scheme.put("png", "data:image/png;base64,");
|
||||
extension2Scheme.put("gif", "data:image/gif;base64,");
|
||||
extension2Scheme.put("icon", "data:image/x-icon;base64,");
|
||||
}
|
||||
|
||||
/**
|
||||
* 标准差σ=sqrt(s^2)
|
||||
* 结果精度:scale
|
||||
|
|
@ -31,4 +48,41 @@ public class DataUtils {
|
|||
deviation = deviation.setScale(scale, BigDecimal.ROUND_HALF_UP);
|
||||
return deviation;
|
||||
}
|
||||
|
||||
public static String File2Base64(String filepath) {
|
||||
if (StringUtils.isBlank(filepath)) {
|
||||
return null;
|
||||
}
|
||||
File file1 = new File(filepath);
|
||||
|
||||
if (!file1.exists()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
int lastPointIndex = filepath.lastIndexOf(".");
|
||||
String type = filepath.substring(lastPointIndex + 1);
|
||||
|
||||
if (!extension2Scheme.containsKey(type.toLowerCase())) {
|
||||
System.out.println("文件类型错误 " + type);
|
||||
return null;
|
||||
}
|
||||
|
||||
try (FileInputStream inputStream = new FileInputStream(file1)) {
|
||||
byte[] buffer = new byte[inputStream.available()];
|
||||
if (inputStream.read(buffer) == -1) {
|
||||
inputStream.close();
|
||||
}
|
||||
|
||||
return extension2Scheme.get(type.toLowerCase()) + Base64.getEncoder().encodeToString(buffer);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static void DelFile(String filepath) {
|
||||
File file1 = new File(filepath);
|
||||
|
||||
System.out.println("清理图片缓存:" + filepath + (file1.delete() ? "成功" : "失败"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,12 @@ spring:
|
|||
port: 6379
|
||||
password: Whdc_890
|
||||
|
||||
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 100MB
|
||||
max-request-size: 100MB
|
||||
|
||||
knife4j:
|
||||
enable: true
|
||||
setting:
|
||||
|
|
|
|||
|
|
@ -3,15 +3,7 @@
|
|||
<mapper namespace="com.whdc.zhdbaqapi.mapper.DeviceInfoMapper">
|
||||
|
||||
<select id="get" resultType="com.whdc.zhdbaqapi.model.entity.DeviceInfo">
|
||||
SELECT
|
||||
ID,STATION_CODE,DEVICE_ID,CHANNEL_NUM,TEMPERATURE_K,START_TEMPERATURE,CALIBRATION_COEFFICIENT,INITIAL_READING,
|
||||
PROJECT_NAME,REMARK,SUPERVISOR,CREATION_TIME,MODIFICATION_TIME,DEL,IFNULL(SKETCH_MAP, '') SKETCH_MAP,CREATE_DATE,BURIED_PERSONNEL,
|
||||
CHECK_PERSONNEL,TECHNICAL_DIRECTOR,TAILWATER_LEVEL,HEADWATER_LEVEL,WEATHER,AIR_PRESSURE,AIR_TEMPERATURE,
|
||||
EMBEDDING_DATE,EMBEDDING_FINISH_READING,ZERO_PRESSURE_READINGS,END_READINGS,START_READINGS,DRAFT,READINGS,
|
||||
DAM_WHEELBASE,COLUMN_NO,EMBEDDING_ELEVATION,CABLE_LENGTH_MARK,CABLE_LENGTH,RESISTANCE,RANGE,SENSOR_COEFFICIENT,
|
||||
MANUFACTURER,MEASURING_PROBE_NO,STEADY_WATER_LEVEL,INITIAL_WATER_LEVEL,DRILLING_SIZE,DRILLING_NO,PRESSURE,
|
||||
RECENT_DATA,LATEST_REPORTING_TIME,CROSS_SECTION,DAM,MOUNTING_HEIGHT,
|
||||
INSTALLATION_POSITION_Z,INSTALLATION_POSITION_Y,INSTALLATION_POSITION_X
|
||||
SELECT *
|
||||
FROM DEVICE_INFO WHERE ID=#{id}
|
||||
</select>
|
||||
|
||||
|
|
@ -66,5 +58,6 @@
|
|||
SELECT ID, STATION_CODE FROM DEVICE_INFO
|
||||
WHERE DEL = 0
|
||||
AND STATION_CODE = #{stationCode}
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue