CarInfoServiceImpl.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.ruoyi.base.service.impl;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.ruoyi.base.domain.CarInfo;
  4. import com.ruoyi.base.mapper.CarInfoMapper;
  5. import com.ruoyi.base.service.ICarInfoService;
  6. import com.ruoyi.common.core.redis.RedisCache;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.context.event.EventListener;
  9. import org.springframework.scheduling.annotation.Async;
  10. import org.springframework.stereotype.Service;
  11. import javax.annotation.PostConstruct;
  12. import java.util.List;
  13. import java.util.concurrent.CopyOnWriteArrayList;
  14. /**
  15. * 车辆信息Service业务层处理
  16. *
  17. * @author ruoyi
  18. * @date 2023-09-19
  19. */
  20. @Service
  21. public class CarInfoServiceImpl implements ICarInfoService {
  22. @Autowired
  23. private CarInfoMapper carInfoMapper;
  24. @Autowired
  25. RedisCache redisCache;
  26. private static CopyOnWriteArrayList<CarInfo> carList ;
  27. /**
  28. * 查询车辆信息
  29. *
  30. * @param id 车辆信息主键
  31. * @return 车辆信息
  32. */
  33. @Override
  34. public CarInfo selectCarInfoById(Long id) {
  35. return carInfoMapper.selectCarInfoById(id);
  36. }
  37. /**
  38. * 查询车辆信息列表
  39. *
  40. * @param carInfo 车辆信息
  41. * @return 车辆信息
  42. */
  43. @Override
  44. public List<CarInfo> selectCarInfoList(CarInfo carInfo) {
  45. if (ObjectUtil.isNull(carList) ||carList.size() ==0){
  46. carList = new CopyOnWriteArrayList<>(carInfoMapper.selectCarInfoList(carInfo));
  47. }
  48. return carList;
  49. }
  50. /**
  51. * 查询车辆信息
  52. *
  53. * @param carInfo 车辆信息
  54. * @return 车辆信息
  55. */
  56. @Override
  57. public CarInfo selectCarInfoByModel(CarInfo carInfo) {
  58. List<CarInfo> list = carInfoMapper.selectCarInfoList(carInfo);
  59. if (list != null && list.size() > 0) {
  60. return list.get(0);
  61. } else {
  62. return null;
  63. }
  64. }
  65. /**
  66. * 新增车辆信息
  67. *
  68. * @param carInfo 车辆信息
  69. * @return 结果
  70. */
  71. @Override
  72. public int insertCarInfo(CarInfo carInfo) {
  73. return carInfoMapper.insertCarInfo(carInfo);
  74. }
  75. /**
  76. * 修改车辆信息
  77. *
  78. * @param carInfo 车辆信息
  79. * @return 结果
  80. */
  81. @Override
  82. public int updateCarInfo(CarInfo carInfo) {
  83. return carInfoMapper.updateCarInfo(carInfo);
  84. }
  85. /**
  86. * 批量删除车辆信息
  87. *
  88. * @param ids 需要删除的车辆信息主键
  89. * @return 结果
  90. */
  91. @Override
  92. public int deleteCarInfoByIds(Long[] ids) {
  93. return carInfoMapper.deleteCarInfoByIds(ids);
  94. }
  95. /**
  96. * 删除车辆信息信息
  97. *
  98. * @param id 车辆信息主键
  99. * @return 结果
  100. */
  101. @Override
  102. public int deleteCarInfoById(Long id) {
  103. return carInfoMapper.deleteCarInfoById(id);
  104. }
  105. @EventListener
  106. @Async
  107. public void updateStatus(CarInfo carInfo){
  108. int index = -1;
  109. if (ObjectUtil.isNull(carList)){
  110. selectCarInfoList(new CarInfo());
  111. }
  112. for (int i = 0; i < carList.size(); i++) {
  113. if (carList.get(i).getCarno().equals(carInfo.getCarno())){
  114. carInfo = carList.get(i);
  115. index = i;
  116. }
  117. }
  118. if (index ==-1){
  119. return;
  120. }
  121. if ("status".equals(carInfo.getUpdateType())){
  122. if(!carInfo.getState().equals(carInfo.getState())){
  123. carInfo.setState(carInfo.getState());
  124. carList.set(carInfo.getCarno().intValue() - 1,carInfo);
  125. }
  126. }else {
  127. int a = 0;
  128. if(!carInfo.getX().equals(carInfo.getX())){
  129. carInfo.setX(carInfo.getX());
  130. a =1;
  131. }
  132. if(!carInfo.getY().equals(carInfo.getY())){
  133. carInfo.setY(carInfo.getY());
  134. a =1;
  135. }
  136. if (a==1){
  137. carList.set(carInfo.getCarno().intValue() - 1,carInfo);
  138. }
  139. }
  140. }
  141. }