SeatService.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package com.ruoyi.sim.service.impl;
  2. import java.util.*;
  3. import com.ruoyi.common.core.domain.AjaxResult;
  4. import com.ruoyi.common.utils.DateUtils;
  5. import com.ruoyi.sim.domain.Sim;
  6. import com.ruoyi.sim.domain.vo.SeatVo;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.beans.BeanUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import com.ruoyi.sim.mapper.SeatMapper;
  12. import com.ruoyi.sim.domain.Seat;
  13. /**
  14. * 座Service业务层处理
  15. *
  16. * @author tom
  17. * @date 2024-12-13
  18. */
  19. @Service
  20. public class SeatService {
  21. @Autowired
  22. private SeatMapper seatMapper;
  23. /**
  24. * 查询座
  25. *
  26. * @param seatId 座主键
  27. * @return 座
  28. */
  29. public Seat selectSeatBySeatId(Long seatId) {
  30. return seatMapper.selectSeatBySeatId(seatId);
  31. }
  32. /**
  33. * 查询座列表
  34. *
  35. * @param seat 座
  36. * @return 座
  37. */
  38. public List<Seat> selectSeatList(Seat seat) {
  39. return seatMapper.selectSeatList(seat);
  40. }
  41. /**
  42. * 新增座
  43. *
  44. * @param seat 座
  45. * @return 结果
  46. */
  47. public int insertSeat(Seat seat) {
  48. seat.setCreateTime(DateUtils.getNowDate());
  49. return seatMapper.insertSeat(seat);
  50. }
  51. /**
  52. * 修改座
  53. *
  54. * @param seat 座
  55. * @return 结果
  56. */
  57. public int updateSeat(Seat seat) {
  58. seat.setUpdateTime(DateUtils.getNowDate());
  59. return seatMapper.updateSeat(seat);
  60. }
  61. /**
  62. * 批量删除座
  63. *
  64. * @param seatIds 需要删除的座主键
  65. * @return 结果
  66. */
  67. public int deleteSeatBySeatIds(Long[] seatIds) {
  68. return seatMapper.deleteSeatBySeatIds(seatIds);
  69. }
  70. /**
  71. * 删除座信息
  72. *
  73. * @param seatId 座主键
  74. * @return 结果
  75. */
  76. public int deleteSeatBySeatId(Long seatId) {
  77. return seatMapper.deleteSeatBySeatId(seatId);
  78. }
  79. // -------------------------------- tom add --------------------------------
  80. @Autowired
  81. private SimService simService;
  82. public boolean exist(Long seatId) {
  83. if (seatId == null) {
  84. return false;
  85. }
  86. if (seatId == 0) {
  87. return false;
  88. }
  89. Seat s = selectSeatBySeatId(seatId);
  90. if (s == null) {
  91. return false;
  92. }
  93. return true;
  94. }
  95. public List<Seat> listAllEnable() {
  96. List<Seat> list = new ArrayList<>();
  97. seatMapper.selectSeatList(new Seat()).stream().filter(Objects::nonNull).filter(s -> !StringUtils.equals(Seat.SocketState.DISABLE, s.getSeatRs485SocketState())).forEach(list::add);
  98. return list;
  99. }
  100. /**
  101. * 获取所有没有被禁用的 座 列表
  102. *
  103. * @return
  104. */
  105. public AjaxResult listAllEnableAj() {
  106. List<Seat> list1 = listAllEnable();
  107. List<SeatVo> list2 = new ArrayList<>();
  108. for (Seat seat : list1) {
  109. SeatVo vo = new SeatVo();
  110. BeanUtils.copyProperties(seat, vo);
  111. Sim sim = simService.selectSimBySimId(seat.getCurrentSimId());
  112. if (seat != null && seat.getCurrentSimId() != null && seat.getCurrentSimId() != 0L) {
  113. BeanUtils.copyProperties(sim, vo);
  114. }
  115. list2.add(vo);
  116. }
  117. return AjaxResult.success(list2);
  118. }
  119. public Seat uniqueBySeatNum(final Integer seatNum) {
  120. Seat q = new Seat();
  121. q.setSeatNum(seatNum);
  122. List<Seat> list = seatMapper.selectSeatList(q);
  123. if (list.isEmpty()) {
  124. return null;
  125. } else if (list.size() == 1) {
  126. return list.get(0);
  127. } else {
  128. throw new IllegalArgumentException("Seat数据错误。");
  129. }
  130. }
  131. public Seat uniqueByBindIp(final String bindIp) {
  132. Seat q = new Seat();
  133. q.setSeatBindIp(bindIp);
  134. List<Seat> list = seatMapper.selectSeatList(q);
  135. if (list.isEmpty()) {
  136. return null;
  137. } else if (list.size() == 1) {
  138. return list.get(0);
  139. } else {
  140. throw new IllegalArgumentException("Seat数据错误。");
  141. }
  142. }
  143. public Seat uniqueByRs485IpAndPort(final String rs485Ip, final int rs485Port) {
  144. Seat q = new Seat();
  145. q.setSeatRs485Ip(rs485Ip);
  146. q.setSeatRs485Port(rs485Port);
  147. List<Seat> list = seatMapper.selectSeatList(q);
  148. if (list.isEmpty()) {
  149. return null;
  150. } else if (list.size() == 1) {
  151. return list.get(0);
  152. } else {
  153. throw new IllegalArgumentException("Seat数据错误。");
  154. }
  155. }
  156. public void updateSimIdBySeatNum(final Integer seatNum, final Long simId) {
  157. Seat f = uniqueBySeatNum(seatNum);
  158. f.setCurrentSimId(simId);
  159. updateSeat(f);
  160. }
  161. public int updateAllEnableState(final String socketState) {
  162. List<Seat> list = listAllEnable();
  163. for (Seat seat : list) {
  164. seat.setSeatRs485SocketState(socketState);
  165. seatMapper.updateSeat(seat);
  166. }
  167. return list.size();
  168. }
  169. public List<String> listAllRs485Ip() {
  170. List<Seat> list = listAllEnable();
  171. Set<String> ips = new HashSet<>();
  172. list.forEach(seat -> ips.add(seat.getSeatRs485Ip()));
  173. return ips.stream().toList();
  174. }
  175. public void updateSocketStateBySeatNum(final Integer seatNum, final String socketState) {
  176. Seat f = uniqueBySeatNum(seatNum);
  177. f.setSeatRs485SocketState(socketState);
  178. updateSeat(f);
  179. }
  180. public void updateSocketStateByRs485Ip(final String rs485Ip, final String socketState) {
  181. Seat q = new Seat();
  182. q.setSeatRs485Ip(rs485Ip);
  183. selectSeatList(q).forEach(seat -> {
  184. seat.setSeatRs485SocketState(socketState);
  185. seatMapper.updateSeat(seat);
  186. });
  187. }
  188. }