BaseVehicleTerminalServiceImpl.java 10 KB

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