BaseTerminalServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package com.ozs.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.github.pagehelper.PageHelper;
  6. import com.ozs.common.core.domain.AjaxResult;
  7. import com.ozs.common.exception.ServiceException;
  8. import com.ozs.common.utils.StringUtils;
  9. import com.ozs.common.utils.bean.BeanValidators;
  10. import com.ozs.entity.BaseTerminal;
  11. import com.ozs.entity.vo.BaseVehicleTerminalVo;
  12. import com.ozs.mapper.BaseTerminalMapper;
  13. import com.ozs.service.BaseTerminalService;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import javax.validation.Validator;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * <p>
  21. * 机车车载终端信息表 服务实现类
  22. * </p>
  23. *
  24. * @author ozs
  25. * @since 2023-04-11
  26. */
  27. @Service
  28. public class BaseTerminalServiceImpl extends ServiceImpl<BaseTerminalMapper, BaseTerminal> implements BaseTerminalService {
  29. @Autowired
  30. private BaseTerminalMapper baseTerminalMapper;
  31. @Autowired
  32. protected Validator validator;
  33. @Override
  34. public IPage<BaseTerminal> vehicleTerminalList(BaseVehicleTerminalVo baseVehicleTerminalleVo) {
  35. LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<BaseTerminal>();
  36. if (!StringUtils.isEmptySunhh(baseVehicleTerminalleVo) && !StringUtils.isEmptySunhh(baseVehicleTerminalleVo.getTerminalCode())) {
  37. wrapper.eq(BaseTerminal::getTerminalCode, baseVehicleTerminalleVo.getTerminalCode());
  38. }
  39. if (!StringUtils.isEmptySunhh(baseVehicleTerminalleVo) && !StringUtils.isEmptySunhh(baseVehicleTerminalleVo.getTerminalName())) {
  40. wrapper.eq(BaseTerminal::getTerminalName, baseVehicleTerminalleVo.getTerminalName());
  41. }
  42. if (!StringUtils.isEmptySunhh(baseVehicleTerminalleVo) && !StringUtils.isEmptySunhh(baseVehicleTerminalleVo.getStatus())) {
  43. wrapper.eq(BaseTerminal::getStatus, baseVehicleTerminalleVo.getStatus());
  44. }
  45. wrapper.orderByDesc(BaseTerminal::getCreateTime);
  46. int pageNum = Integer.parseInt(baseVehicleTerminalleVo.getPageNum().toString());
  47. int pageSize = Integer.parseInt(baseVehicleTerminalleVo.getPageSize().toString());
  48. com.github.pagehelper.Page<BaseTerminal> page = PageHelper.startPage(pageNum, pageSize)
  49. .doSelectPage(() -> baseTerminalMapper.selectList(wrapper));
  50. com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseTerminal> pageR =
  51. new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
  52. pageR.setRecords(page.getResult());
  53. pageR.setTotal(page.getTotal());
  54. return pageR;
  55. }
  56. @Override
  57. public AjaxResult baseVehicleTerminalDetails(BaseVehicleTerminalVo baseVehicleTerminalVo) {
  58. BaseTerminal baseVehicleTerminal = baseTerminalMapper.selectById(baseVehicleTerminalVo.getId());
  59. return AjaxResult.success(baseVehicleTerminal);
  60. }
  61. @Override
  62. public AjaxResult vehicleTerminalAdd(BaseTerminal baseVehicleTerminal, String userId) {
  63. LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<BaseTerminal>();
  64. if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
  65. wrapper.eq(BaseTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
  66. }
  67. List<BaseTerminal> baseVehicles = baseTerminalMapper.selectList(wrapper);
  68. if (baseVehicles.size() > 0) {
  69. return AjaxResult.error("车载终端编码已存在!");
  70. }
  71. Date date = new Date();
  72. baseVehicleTerminal.setCreateBy(userId);
  73. baseVehicleTerminal.setUpdateBy(userId);
  74. baseVehicleTerminal.setCreateTime(date);
  75. baseVehicleTerminal.setUpdateTime(date);
  76. int insert = baseTerminalMapper.insert(baseVehicleTerminal);
  77. if (insert > 0) {
  78. return AjaxResult.success();
  79. } else {
  80. return AjaxResult.error();
  81. }
  82. }
  83. @Override
  84. public AjaxResult vehicleTerminalUpdate(BaseTerminal baseTerminal, String userId) {
  85. LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<BaseTerminal>();
  86. if (!StringUtils.isEmptySunhh(baseTerminal) && !StringUtils.isEmptySunhh(baseTerminal.getTerminalCode())) {
  87. wrapper.eq(BaseTerminal::getTerminalCode, baseTerminal.getTerminalCode());
  88. }
  89. if (!StringUtils.isEmptySunhh(baseTerminal) && !StringUtils.isEmptySunhh(baseTerminal.getId())) {
  90. wrapper.ne(BaseTerminal::getId, baseTerminal.getId());
  91. }
  92. List<BaseTerminal> baseVehicles = baseTerminalMapper.selectList(wrapper);
  93. if (baseVehicles.size() > 0) {
  94. return AjaxResult.error("机车编码已存在!");
  95. }
  96. baseTerminal.setUpdateBy(userId);
  97. baseTerminal.setUpdateTime(new Date());
  98. int update = baseTerminalMapper.updateById(baseTerminal);
  99. if (update > 0) {
  100. return AjaxResult.success();
  101. } else {
  102. return AjaxResult.error();
  103. }
  104. }
  105. @Override
  106. public String importBaseVehicleTerminal(List<BaseTerminal> accountManageList, boolean updateSupport, String userId) {
  107. int successNum = 0;
  108. int failureNum = 0;
  109. StringBuilder successMsg = new StringBuilder();
  110. StringBuilder failureMsg = new StringBuilder();
  111. for (BaseTerminal baseVehicleTerminal : accountManageList) {
  112. try {
  113. // BaseVehicle baseVehicle = new BaseVehicle();
  114. // BeanUtils.copyProperties(baseVehicleTerminal, baseVehicle);
  115. // 判断机车编码是否存在
  116. LambdaQueryWrapper<BaseTerminal> lw = new LambdaQueryWrapper<BaseTerminal>();
  117. if (!StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
  118. lw.eq(BaseTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
  119. }
  120. BaseTerminal baseVehicle1 = baseTerminalMapper.selectOne(lw);
  121. if (StringUtils.isEmptySunhh(baseVehicle1)) {
  122. BeanValidators.validateWithException(validator, baseVehicleTerminal);
  123. baseVehicleTerminal.setStatus("在线".equals(baseVehicleTerminal.getStatusStr()) ? 1 : 2);
  124. baseVehicleTerminal.setUpdateBy(userId);
  125. baseVehicleTerminal.setCreateBy(userId);
  126. Date date = new Date();
  127. baseVehicleTerminal.setCreateTime(date);
  128. baseVehicleTerminal.setUpdateTime(date);
  129. int insert = baseTerminalMapper.insert(baseVehicleTerminal);
  130. successNum++;
  131. successMsg.append(successNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + " 导入成功");
  132. } else if (updateSupport) {
  133. BeanValidators.validateWithException(validator, baseVehicleTerminal);
  134. LambdaQueryWrapper<BaseTerminal> lambdaQueryWrapper = new LambdaQueryWrapper<BaseTerminal>();
  135. if (!StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
  136. lambdaQueryWrapper.eq(BaseTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
  137. }
  138. BaseTerminal baseVehicle4 = baseTerminalMapper.selectOne(lambdaQueryWrapper);
  139. if (StringUtils.isEmptySunhh(baseVehicle4)) {
  140. baseVehicleTerminal.setUpdateBy(userId);
  141. baseVehicleTerminal.setUpdateTime(new Date());
  142. baseVehicleTerminal.setId(baseVehicle4.getId());
  143. baseTerminalMapper.updateById(baseVehicleTerminal);
  144. successNum++;
  145. successMsg.append(successNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + " 更新成功");
  146. } else {
  147. failureNum++;
  148. failureMsg.append(failureNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + "不存在");
  149. }
  150. }
  151. } catch (Exception e) {
  152. failureNum++;
  153. String msg = failureNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + " 导入失败:";
  154. failureMsg.append(msg);
  155. log.error(msg, e);
  156. }
  157. }
  158. if (failureNum > 0) {
  159. failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
  160. throw new ServiceException(failureMsg.toString());
  161. } else {
  162. successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条。");
  163. }
  164. return successMsg.toString();
  165. }
  166. @Override
  167. public List<BaseTerminal> exportBaseVehicleTerminal(BaseTerminal baseVehicleTerminal) {
  168. LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<BaseTerminal>();
  169. if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalName())) {
  170. wrapper.eq(BaseTerminal::getTerminalName, baseVehicleTerminal.getTerminalName());
  171. }
  172. if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
  173. wrapper.eq(BaseTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
  174. }
  175. if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getStatus())) {
  176. wrapper.eq(BaseTerminal::getStatus, baseVehicleTerminal.getStatus());
  177. }
  178. List<BaseTerminal> baseVehicleTerminalList = baseTerminalMapper.selectList(wrapper);
  179. for (BaseTerminal baseVehicleTerminal1 : baseVehicleTerminalList) {
  180. baseVehicleTerminal1.setStatusStr(baseVehicleTerminal1.getStatus() == 1 ? "在线" : "离线");
  181. }
  182. return baseVehicleTerminalList;
  183. }
  184. }