Browse Source

feat:增加导出ban文件,并且可配

develop
白凤吉 2 months ago
parent
commit
17ffdfd433
  1. 25
      app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java
  2. 17
      app/src/main/java/com/iflytop/profilometer/api/system/SystemApi.java
  3. 3
      app/src/main/java/com/iflytop/profilometer/api/system/SystemRoutes.kt
  4. 1
      app/src/main/java/com/iflytop/profilometer/common/constant/SystemConfigType.java
  5. 9
      app/src/main/java/com/iflytop/profilometer/common/enums/DownloadFileType.java
  6. 11
      app/src/main/java/com/iflytop/profilometer/model/vo/SystemConfigVO.java

25
app/src/main/java/com/iflytop/profilometer/api/record/RecordApi.java

@ -6,14 +6,18 @@ import android.os.Handler;
import android.os.Looper;
import android.widget.Toast;
import com.iflytop.profilometer.common.constant.SystemConfigType;
import com.iflytop.profilometer.common.enums.DownloadFileType;
import com.iflytop.profilometer.common.result.Result;
import com.iflytop.profilometer.common.utils.FileUtil;
import com.iflytop.profilometer.core.migration.algo.type.XYPoint;
import com.iflytop.profilometer.dao.ProfileRecordDao;
import com.iflytop.profilometer.dao.ProfileRecordPointSetDao;
import com.iflytop.profilometer.dao.SyncTaskDao;
import com.iflytop.profilometer.dao.SystemConfigDao;
import com.iflytop.profilometer.model.entity.ProfileRecordDescription;
import com.iflytop.profilometer.model.entity.ProfileRecordPointSet;
import com.iflytop.profilometer.model.entity.SystemConfig;
import java.io.BufferedOutputStream;
import java.io.File;
@ -127,21 +131,26 @@ public class RecordApi {
throw new RuntimeException(e);
}
}
SystemConfigDao systemConfigDao = new SystemConfigDao(context);
ProfileRecordDao recordDao = new ProfileRecordDao(context);
ProfileRecordPointSetDao pointSetDao = new ProfileRecordPointSetDao(context);
SystemConfig downloadFileTypeConfig = systemConfigDao.getSystemConfigByKey(SystemConfigType.DOWNLOAD_FILE_TYPE);
String downloadFileType = DownloadFileType.ban.toString();
if (downloadFileTypeConfig != null) {
downloadFileType = downloadFileTypeConfig.getConfigValue();
}
if (ids.size() > 1) {
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
String zipName = "export-" + timestamp + ".zip";
File zipFile = new File(exportDir, zipName);
try (ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)))) {
ProfileRecordDao recordDao = new ProfileRecordDao(context);
ProfileRecordPointSetDao pointSetDao = new ProfileRecordPointSetDao(context);
for (int i = 0; i < ids.size(); i++) {
Long id = ids.getLong(i);
ProfileRecordDescription desc = recordDao.getProfileRecordById(id);
ProfileRecordPointSet ps = pointSetDao.getProfileRecordPointSetByUuid(desc.getUuid());
List<XYPoint> pts = JSONUtil.toList(ps.getAlignPoints(), XYPoint.class);
String entryName = "export-" + desc.getName() + ".txt";
String entryName = "export-" + desc.getName() + "." + downloadFileType;
zos.putNextEntry(new ZipEntry(entryName));
for (XYPoint pt : pts) {
@ -158,10 +167,8 @@ public class RecordApi {
} catch (Exception e) {
throw new RuntimeException(e);
}
}else{
} else {
Long id = ids.getLong(0);
ProfileRecordDao recordDao = new ProfileRecordDao(context);
ProfileRecordPointSetDao pointSetDao = new ProfileRecordPointSetDao(context);
ProfileRecordDescription desc = recordDao.getProfileRecordById(id);
ProfileRecordPointSet ps = pointSetDao.getProfileRecordPointSetByUuid(desc.getUuid());
List<XYPoint> pts = JSONUtil.toList(ps.getAlignPoints(), XYPoint.class);
@ -169,9 +176,9 @@ public class RecordApi {
for (XYPoint pt : pts) {
sb.append(String.format(Locale.US, "%1$.6f %2$.6f%n", pt.getX(), -pt.getY()));
}
String fileName = "export-" + desc.getName() + ".txt";
String fileName = "export-" + desc.getName() + "." + downloadFileType;
try {
FileUtil.writeTextToDownloadSubDir("廓形导出",fileName,sb.toString());
FileUtil.writeTextToDownloadSubDir("廓形导出", fileName, sb.toString());
new Handler(Looper.getMainLooper()).post(() -> {
Toast.makeText(context, "导出成功\n" + "/Download/廓形导出/\n" + fileName, Toast.LENGTH_LONG).show();
});

17
app/src/main/java/com/iflytop/profilometer/api/system/SystemApi.java

@ -5,6 +5,7 @@ import android.util.Log;
import com.iflytop.profilometer.common.constant.LogTag;
import com.iflytop.profilometer.common.constant.SystemConfigType;
import com.iflytop.profilometer.common.enums.DownloadFileType;
import com.iflytop.profilometer.common.result.Result;
import com.iflytop.profilometer.core.bluetooth.BleDeviceDriver;
import com.iflytop.profilometer.core.bluetooth.BleManager;
@ -27,13 +28,17 @@ public class SystemApi {
SystemConfigDao systemConfigDao = new SystemConfigDao(context);
SystemConfig serverConfig = systemConfigDao.getSystemConfigByKey(SystemConfigType.SERVER);
SystemConfig todayNumberFlag = systemConfigDao.getSystemConfigByKey(SystemConfigType.TODAY_NUMBER_FLAG);
SystemConfig downloadFileType = systemConfigDao.getSystemConfigByKey(SystemConfigType.DOWNLOAD_FILE_TYPE);
SystemConfigVO systemConfigVO = new SystemConfigVO();
if (serverConfig != null) {
systemConfigVO.setServer(serverConfig.getConfigValue());
}
if(todayNumberFlag != null){
if (todayNumberFlag != null) {
systemConfigVO.setTodayNumberFlag(Boolean.parseBoolean(todayNumberFlag.getConfigValue()));
}
if (downloadFileType != null) {
systemConfigVO.setDownloadFileType(DownloadFileType.valueOf(downloadFileType.getConfigValue()));
}
try {
if (BleManager.getInstance().isConnected()) {
BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver();
@ -47,7 +52,7 @@ public class SystemApi {
return Result.success(systemConfigVO);
}
public String save(String server, Integer standbyMinutes, Boolean todayNumberFlag) {
public String save(String server, Integer standbyMinutes, Boolean todayNumberFlag, String downloadFileType) {
SystemConfigDao systemConfigDao = new SystemConfigDao(context);
SystemConfig serverConfig = new SystemConfig();
serverConfig.setConfigKey(SystemConfigType.SERVER);
@ -65,6 +70,14 @@ public class SystemApi {
systemConfigDao.insertSystemConfig(serverConfig);
}
serverConfig = new SystemConfig();
serverConfig.setConfigKey(SystemConfigType.DOWNLOAD_FILE_TYPE);
serverConfig.setConfigValue(downloadFileType);
rows = systemConfigDao.updateSystemConfig(serverConfig);
if (rows < 1) {
systemConfigDao.insertSystemConfig(serverConfig);
}
try {
if (BleManager.getInstance().isConnected()) {
BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver();

3
app/src/main/java/com/iflytop/profilometer/api/system/SystemRoutes.kt

@ -29,7 +29,8 @@ fun Routing.systemRoutes(context: Context) {
val server = jsonObj.getStr("server")
val standbyMinutes = jsonObj.getInt("standbyMinutes")
val todayNumberFlag = jsonObj.getBool("todayNumberFlag")
val jsonResponse = api.save(server, standbyMinutes, todayNumberFlag)
val downloadFileType = jsonObj.getStr("downloadFileType")
val jsonResponse = api.save(server, standbyMinutes, todayNumberFlag, downloadFileType)
call.respondText(jsonResponse, ContentType.Application.Json)
}
}

1
app/src/main/java/com/iflytop/profilometer/common/constant/SystemConfigType.java

@ -4,4 +4,5 @@ public class SystemConfigType {
public static final String SERVER = "sync_server";
public static final String STANDBY_MINUTES = "standby_minutes";
public static final String TODAY_NUMBER_FLAG = "today_number_flag";
public static final String DOWNLOAD_FILE_TYPE = "download_file_type";
}

9
app/src/main/java/com/iflytop/profilometer/common/enums/DownloadFileType.java

@ -0,0 +1,9 @@
package com.iflytop.profilometer.common.enums;
/**
* 导出文件类型
*/
public enum DownloadFileType {
txt,
ban
}

11
app/src/main/java/com/iflytop/profilometer/model/vo/SystemConfigVO.java

@ -1,9 +1,12 @@
package com.iflytop.profilometer.model.vo;
import com.iflytop.profilometer.common.enums.DownloadFileType;
public class SystemConfigVO {
private String server;
private Integer standbyMinutes;
private Boolean todayNumberFlag;
private DownloadFileType downloadFileType;
public String getServer() {
return server;
@ -28,4 +31,12 @@ public class SystemConfigVO {
public void setTodayNumberFlag(Boolean todayNumberFlag) {
this.todayNumberFlag = todayNumberFlag;
}
public DownloadFileType getDownloadFileType() {
return downloadFileType;
}
public void setDownloadFileType(DownloadFileType downloadFileType) {
this.downloadFileType = downloadFileType;
}
}
Loading…
Cancel
Save