package com.fdkankan.manage_jp.task; import com.alibaba.fastjson.JSONObject; import com.fdkankan.manage_jp.entity.Project; import com.fdkankan.manage_jp.entity.ProjectSceneGps; import com.fdkankan.manage_jp.entity.ScenePlus; import com.fdkankan.manage_jp.httpClient.service.LaserService; import com.fdkankan.manage_jp.service.IProjectSceneGpsService; import com.fdkankan.manage_jp.service.ISceneProService; import com.fdkankan.manage_jp.vo.response.SceneGpsDb; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @Service @Slf4j public class TaskService { @Autowired IProjectSceneGpsService projectSceneGpsService; @Autowired LaserService laserService; @Autowired ISceneProService sceneProService; @Scheduled(initialDelay = 2000, fixedDelay = 1000 * 60 ) public void run() { List numList = projectSceneGpsService.getNotGpsScene(); if(numList.isEmpty()){ log.info("没有需要更新GPS数据的场景"); } List laserssList = new ArrayList<>(); List lasersgList = new ArrayList<>(); for (SceneGpsDb sceneGpsDb : numList) { ProjectSceneGps sceneGps = projectSceneGpsService.addGps(sceneGpsDb); if(sceneGps != null){ log.info("num:{}gps:{}",sceneGpsDb.getNum(),sceneGps); if(sceneGps.getSceneSource() == 4 ) { laserssList.add(sceneGps); if(sceneGpsDb.getIsObj() == 1){ sceneGps.setIsObj(1); sceneGps.setWebSite(sceneGpsDb.getWebSite()); laserssList.add(sceneGps); } }else if( sceneGps.getSceneSource() == 5){ lasersgList.add(sceneGps); if(sceneGpsDb.getIsObj() == 1){ sceneGps.setIsObj(1); sceneGps.setWebSite(sceneGpsDb.getWebSite()); laserssList.add(sceneGps); } } } } addLaserList(laserssList,4); addLaserList(lasersgList,5); } private void addLaserList(List laserssList,Integer sceneSource) { List sceneMapShowList = new ArrayList<>(); if(!laserssList.isEmpty()){ List numList1 = laserssList.stream().filter(e -> e.getIsObj() == 0).map(ProjectSceneGps::getNum).collect(Collectors.toList()); HashMap ssSceneMap = laserService.list(numList1,sceneSource); for (ProjectSceneGps sceneGps : laserssList) { JSONObject ssObj = ssSceneMap.get(sceneGps.getNum()); if(ssObj!=null ){ if(sceneGps.getIsObj() == 0){ sceneGps.setWebSite(ssObj.getString("webSite")); } sceneMapShowList.add(sceneGps.getNum()); projectSceneGpsService.save(sceneGps); } } } sceneProService.openMapShow(sceneMapShowList); } }