|
@@ -1,5 +1,9 @@
|
|
|
package com.fdkankan.indoor.core.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.ListUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.io.FileUtil;
|
|
|
+import com.fdkankan.indoor.base.constant.ConfigConstant;
|
|
|
import com.fdkankan.indoor.base.constant.MsgCode;
|
|
|
import com.fdkankan.indoor.base.convert.GetRoute;
|
|
|
import com.fdkankan.indoor.base.exception.BaseRuntimeException;
|
|
@@ -12,9 +16,12 @@ import com.fdkankan.indoor.core.service.ControlPointService;
|
|
|
import com.fdkankan.indoor.core.service.RouteService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import net.sf.json.JSONArray;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
|
|
|
@@ -31,6 +38,9 @@ public class RouteServiceImpl implements RouteService {
|
|
|
@Autowired
|
|
|
ControlPointService controlPointService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ ConfigConstant configConstant;
|
|
|
+
|
|
|
@Override
|
|
|
public void save(RouteEntity entity) {
|
|
|
entityMapper.save(entity);
|
|
@@ -42,10 +52,64 @@ public class RouteServiceImpl implements RouteService {
|
|
|
|
|
|
// 查询控制点
|
|
|
ControlPointEntity controlPointEntity = controlPointService.findById(sceneCode);
|
|
|
+ // route数据:头尾数据是没有id值的,其他都有
|
|
|
JSONArray route = GetRoute.getRoute(data, param, controlPointEntity);
|
|
|
+
|
|
|
+ // 2021-08-12 测试用
|
|
|
+ testRote(route, data, sceneCode);
|
|
|
+
|
|
|
return Result.success(route);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 2021-08-12
|
|
|
+ * 测试用
|
|
|
+ * @param route
|
|
|
+ * @param data
|
|
|
+ * @param sceneCode
|
|
|
+ */
|
|
|
+ private void testRote(JSONArray route, List<String> data, String sceneCode){
|
|
|
+ // id是行数 -> 起始, 汇总的行数ids
|
|
|
+ List<Integer> ids = new ArrayList<>();
|
|
|
+ for (Object o : route) {
|
|
|
+ JSONObject json = JSONObject.fromObject(o);
|
|
|
+ boolean flag = json.has("id");
|
|
|
+ if (flag){
|
|
|
+ int id = json.getInt("id");
|
|
|
+ // 行数 是id -1
|
|
|
+ ids.add(id -1 );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 写文件
|
|
|
+ writeRouteData(ids, data, sceneCode);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 根据id写文件
|
|
|
+ private void writeRouteData(List<Integer> ids, List<String> data, String sceneCode){
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ // 行数
|
|
|
+ for (int i = 0; i < data.size() ; i++) {
|
|
|
+ // 从相等行数获取到结束, 数据格式: v x y z
|
|
|
+ if (ids.contains(i)) {
|
|
|
+ String s = data.get(i);
|
|
|
+ String[] str = s.split(" ");
|
|
|
+ String res = "v "+ str[0] + " " + str[1] + " " + str[2] ;
|
|
|
+ result.add(res);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("ids数量: {}", ids.size());
|
|
|
+ log.info("result数量: {}", result.size());
|
|
|
+
|
|
|
+ // 保存地址
|
|
|
+ String time = DateUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmss");
|
|
|
+ String savePath = configConstant.serverBasePath + "/route/" + sceneCode + "_" + time + ".txt";
|
|
|
+ log.info("保存地址: {}", savePath);
|
|
|
+ FileUtil.writeLines(result, savePath, "utf-8");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void remove(String sceneCode) {
|
|
|
entityMapper.deleteById(sceneCode);
|