TaskService.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.fdkankan.manage_jp.task;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fdkankan.manage_jp.entity.Project;
  4. import com.fdkankan.manage_jp.entity.ProjectSceneGps;
  5. import com.fdkankan.manage_jp.entity.ScenePlus;
  6. import com.fdkankan.manage_jp.httpClient.service.LaserService;
  7. import com.fdkankan.manage_jp.service.IProjectSceneGpsService;
  8. import com.fdkankan.manage_jp.service.ISceneProService;
  9. import com.fdkankan.manage_jp.vo.response.SceneGpsDb;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.scheduling.annotation.Scheduled;
  13. import org.springframework.stereotype.Service;
  14. import java.util.ArrayList;
  15. import java.util.Date;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.stream.Collectors;
  19. @Service
  20. @Slf4j
  21. public class TaskService {
  22. @Autowired
  23. IProjectSceneGpsService projectSceneGpsService;
  24. @Autowired
  25. LaserService laserService;
  26. @Autowired
  27. ISceneProService sceneProService;
  28. @Scheduled(initialDelay = 2000, fixedDelay = 1000 * 60 )
  29. public void run() {
  30. List<SceneGpsDb> numList = projectSceneGpsService.getNotGpsScene();
  31. if(numList.isEmpty()){
  32. log.info("没有需要更新GPS数据的场景");
  33. }
  34. List<ProjectSceneGps> laserssList = new ArrayList<>();
  35. List<ProjectSceneGps> lasersgList = new ArrayList<>();
  36. for (SceneGpsDb sceneGpsDb : numList) {
  37. ProjectSceneGps sceneGps = projectSceneGpsService.addGps(sceneGpsDb);
  38. if(sceneGps != null){
  39. log.info("num:{}gps:{}",sceneGpsDb.getNum(),sceneGps);
  40. if(sceneGps.getSceneSource() == 4 ) {
  41. laserssList.add(sceneGps);
  42. if(sceneGpsDb.getIsObj() == 1){
  43. sceneGps.setIsObj(1);
  44. sceneGps.setWebSite(sceneGpsDb.getWebSite());
  45. laserssList.add(sceneGps);
  46. }
  47. }else if( sceneGps.getSceneSource() == 5){
  48. lasersgList.add(sceneGps);
  49. if(sceneGpsDb.getIsObj() == 1){
  50. sceneGps.setIsObj(1);
  51. sceneGps.setWebSite(sceneGpsDb.getWebSite());
  52. laserssList.add(sceneGps);
  53. }
  54. }
  55. }
  56. }
  57. addLaserList(laserssList,4);
  58. addLaserList(lasersgList,5);
  59. }
  60. private void addLaserList(List<ProjectSceneGps> laserssList,Integer sceneSource) {
  61. List<String> sceneMapShowList = new ArrayList<>();
  62. if(!laserssList.isEmpty()){
  63. List<String> numList1 = laserssList.stream().filter(e -> e.getIsObj() == 0).map(ProjectSceneGps::getNum).collect(Collectors.toList());
  64. HashMap<String, JSONObject> ssSceneMap = laserService.list(numList1,sceneSource);
  65. for (ProjectSceneGps sceneGps : laserssList) {
  66. JSONObject ssObj = ssSceneMap.get(sceneGps.getNum());
  67. if(ssObj!=null ){
  68. if(sceneGps.getIsObj() == 0){
  69. sceneGps.setWebSite(ssObj.getString("webSite"));
  70. }
  71. sceneMapShowList.add(sceneGps.getNum());
  72. projectSceneGpsService.save(sceneGps);
  73. }
  74. }
  75. }
  76. sceneProService.openMapShow(sceneMapShowList);
  77. }
  78. }