|
@@ -5,23 +5,34 @@ import com.ozs.common.annotation.Log;
|
|
|
import com.ozs.common.core.controller.BaseController;
|
|
|
import com.ozs.common.core.domain.AjaxResult;
|
|
|
import com.ozs.common.enums.BusinessType;
|
|
|
+import com.ozs.common.utils.ChineseToPingyin;
|
|
|
import com.ozs.common.utils.StringUtils;
|
|
|
import com.ozs.common.utils.file.FileUtils;
|
|
|
import com.ozs.common.utils.poi.ExcelUtil;
|
|
|
import com.ozs.entity.BaseTerminal;
|
|
|
import com.ozs.entity.BaseVehicle;
|
|
|
+import com.ozs.entity.CameraTree;
|
|
|
+import com.ozs.entity.VehiclePosition;
|
|
|
+import com.ozs.entity.VehicleTree;
|
|
|
import com.ozs.entity.vo.BaseVehicleTerminalVo;
|
|
|
import com.ozs.entity.vo.BaseVehicleVo;
|
|
|
+import com.ozs.entity.vo.VehicleTreeVo;
|
|
|
+import com.ozs.service.BaseDeviceDynamicManagementService;
|
|
|
import com.ozs.service.BaseVehicleService;
|
|
|
+import com.ozs.service.VehiclePositionService;
|
|
|
+import com.ozs.system.service.DataScoreUtil;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.MediaType;
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.InputStream;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -40,6 +51,12 @@ public class BaseVehicleController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private BaseVehicleService baseVehicleService;
|
|
|
+ @Resource
|
|
|
+ BaseDeviceDynamicManagementService baseDeviceDynamicManagementService;
|
|
|
+ @Autowired
|
|
|
+ private VehiclePositionService vehiclePositionService;
|
|
|
+ @Autowired
|
|
|
+ private DataScoreUtil dataScoreUtil;
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
System.out.println(new Date().getTime());
|
|
@@ -230,5 +247,68 @@ public class BaseVehicleController extends BaseController {
|
|
|
log.error("下载文件失败", e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 首页--机车树结构
|
|
|
+ * 机车行驶日志中有线路编码
|
|
|
+ * 根据机车在行驶日志中记录的最后时间
|
|
|
+ * <p>
|
|
|
+ * 获取机车列表和线路编码,组成树结构
|
|
|
+ */
|
|
|
+ @ApiOperation("视频服务树形结构")
|
|
|
+ @PostMapping("/vehicleTree")
|
|
|
+ @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
|
|
|
+ public AjaxResult vehicleTree(@RequestBody VehicleTreeVo vehicleTreeVo) {
|
|
|
+
|
|
|
+ vehicleTreeVo = (VehicleTreeVo) dataScoreUtil.setDataScore(getUserId(), vehicleTreeVo);
|
|
|
+ int count = 0;
|
|
|
+ if (!ObjectUtils.isEmpty(vehicleTreeVo.getMils())) {
|
|
|
+ vehicleTreeVo.setMils(vehicleTreeVo.getMils() * 1000);
|
|
|
+ }
|
|
|
+ VehicleTree vehicleTree = baseDeviceDynamicManagementService.vehicleTree(vehicleTreeVo);
|
|
|
+ List<VehicleTree> children = vehicleTree.getChildren();
|
|
|
+ children.sort(new Comparator<VehicleTree>() {
|
|
|
+ @Override
|
|
|
+ public int compare(VehicleTree o1, VehicleTree o2) {
|
|
|
+ String name1 = ChineseToPingyin.convertHanziToPinyin(o1.getName());
|
|
|
+ String substring1 = name1.substring(0, 1);
|
|
|
+ String name2 = ChineseToPingyin.convertHanziToPinyin(o2.getName());
|
|
|
+ String substring2 = name2.substring(0, 1);
|
|
|
+ return substring1.compareTo(substring2);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ for (VehicleTree child : children) {
|
|
|
+ List<VehicleTree> children1 = child.getChildren();
|
|
|
+ children1.sort(new Comparator<VehicleTree>() {
|
|
|
+ @Override
|
|
|
+ public int compare(VehicleTree o1, VehicleTree o2) {
|
|
|
+ int i = o1.getMileage() - o2.getMileage();
|
|
|
+ if (i == 0) {
|
|
|
+ String[] split = o1.getName().split("-");
|
|
|
+ return "上行".equals(split[1]) ? -1 : 1;
|
|
|
+ } else {
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ for (VehicleTree tree : children1) {
|
|
|
+ List<VehicleTree> children2 = tree.getChildren();
|
|
|
+ if (children2.size() < 2) {
|
|
|
+ String code = children2.get(0).getCode();
|
|
|
+ tree.setCode(code);
|
|
|
+ children2.remove(0);
|
|
|
+ } else {
|
|
|
+ for (VehicleTree vehicleTree1 : children2) {
|
|
|
+ count = count + 1;
|
|
|
+ vehicleTree1.setName("相机" + count);
|
|
|
+ }
|
|
|
+ count = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success(vehicleTree);
|
|
|
+ }
|
|
|
}
|
|
|
|