BaseVehicleServiceImpl.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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.BeanUtils;
  10. import com.ozs.common.utils.bean.BeanValidators;
  11. import com.ozs.entity.BaseVehicle;
  12. import com.ozs.entity.vo.BaseVehicleVo;
  13. import com.ozs.mapper.BaseVehicleMapper;
  14. import com.ozs.mapper.BaseVehicleTerminalMapper;
  15. import com.ozs.service.BaseVehicleService;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import javax.validation.Validator;
  19. import java.util.Date;
  20. import java.util.List;
  21. /**
  22. * <p>
  23. * 机车信息表 服务实现类
  24. * </p>
  25. *
  26. * @author ozs
  27. * @since 2023-04-11
  28. */
  29. @Service
  30. public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseVehicle> implements BaseVehicleService {
  31. @Autowired
  32. private BaseVehicleMapper baseVehicleMapper;
  33. @Autowired
  34. private BaseVehicleTerminalMapper baseVehicleTerminalMapper;
  35. @Autowired
  36. protected Validator validator;
  37. @Override
  38. public IPage<BaseVehicle> vehicleList(BaseVehicleVo baseVehicle) {
  39. LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<BaseVehicle>();
  40. if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleName())) {
  41. wrapper.eq(BaseVehicle::getVehicleName, baseVehicle.getVehicleName());
  42. }
  43. if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
  44. wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
  45. }
  46. int pageNum = Integer.parseInt(baseVehicle.getPageNum().toString());
  47. int pageSize = Integer.parseInt(baseVehicle.getPageSize().toString());
  48. com.github.pagehelper.Page<BaseVehicle> page = PageHelper.startPage(pageNum, pageSize)
  49. .doSelectPage(() -> baseVehicleMapper.selectList(wrapper));
  50. com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseVehicle> 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 vehicleAdd(BaseVehicle baseVehicle, String userId) {
  58. LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<BaseVehicle>();
  59. if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
  60. wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
  61. }
  62. List<BaseVehicle> baseVehicles = baseVehicleMapper.selectList(wrapper);
  63. if (baseVehicles.size() > 0) {
  64. return AjaxResult.error("机车编码已存在!");
  65. }
  66. Date date = new Date();
  67. baseVehicle.setCreateBy(userId);
  68. baseVehicle.setUpdateBy(userId);
  69. baseVehicle.setCreateTime(date);
  70. baseVehicle.setUpdateTime(date);
  71. int insert = baseVehicleMapper.insert(baseVehicle);
  72. if (insert > 0) {
  73. return AjaxResult.success();
  74. } else {
  75. return AjaxResult.error();
  76. }
  77. }
  78. @Override
  79. public AjaxResult vehicleUpdate(BaseVehicle baseVehicle, String userId) {
  80. LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<BaseVehicle>();
  81. if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
  82. wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
  83. }
  84. List<BaseVehicle> baseVehicles = baseVehicleMapper.selectList(wrapper);
  85. if (baseVehicles.size() > 0) {
  86. return AjaxResult.error("机车编码已存在!");
  87. }
  88. baseVehicle.setUpdateBy(userId);
  89. baseVehicle.setUpdateTime(new Date());
  90. int update = baseVehicleMapper.updateById(baseVehicle);
  91. if (update > 0) {
  92. return AjaxResult.success();
  93. } else {
  94. return AjaxResult.error();
  95. }
  96. }
  97. @Override
  98. public String importBaseVehicle(List<BaseVehicle> accountManageList, boolean updateSupport, String userId) {
  99. int successNum = 0;
  100. int failureNum = 0;
  101. StringBuilder successMsg = new StringBuilder();
  102. StringBuilder failureMsg = new StringBuilder();
  103. for (BaseVehicle baseVehicle2 : accountManageList) {
  104. try {
  105. BaseVehicle baseVehicle = new BaseVehicle();
  106. BeanUtils.copyProperties(baseVehicle2, baseVehicle);
  107. // 判断机车编码是否存在
  108. LambdaQueryWrapper<BaseVehicle> lw = new LambdaQueryWrapper<BaseVehicle>();
  109. if (!StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
  110. lw.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
  111. }
  112. BaseVehicle baseVehicle1 = baseVehicleMapper.selectOne(lw);
  113. if (StringUtils.isEmptySunhh(baseVehicle1)) {
  114. BeanValidators.validateWithException(validator, baseVehicle);
  115. baseVehicle.setUpdateBy(userId);
  116. baseVehicle.setCreateBy(userId);
  117. Date date = new Date();
  118. baseVehicle.setCreateTime(date);
  119. baseVehicle.setUpdateTime(date);
  120. int insert = baseVehicleMapper.insert(baseVehicle);
  121. successNum++;
  122. successMsg.append(successNum + "、机车编码 " + baseVehicle.getVehicleCode() + " 导入成功");
  123. } else if (updateSupport) {
  124. BeanValidators.validateWithException(validator, baseVehicle);
  125. LambdaQueryWrapper<BaseVehicle> lambdaQueryWrapper = new LambdaQueryWrapper<BaseVehicle>();
  126. if (!StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
  127. lambdaQueryWrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
  128. }
  129. BaseVehicle baseVehicle4 = baseVehicleMapper.selectOne(lambdaQueryWrapper);
  130. if (StringUtils.isEmptySunhh(baseVehicle4)) {
  131. baseVehicle.setUpdateBy(userId);
  132. baseVehicle.setUpdateTime(new Date());
  133. baseVehicle.setId(baseVehicle4.getId());
  134. baseVehicleMapper.updateById(baseVehicle);
  135. successNum++;
  136. successMsg.append(successNum + "、机车编码 " + baseVehicle.getVehicleCode() + " 更新成功");
  137. } else {
  138. failureNum++;
  139. failureMsg.append(failureNum + "、机车编码 " + baseVehicle.getVehicleCode() + "不存在");
  140. }
  141. }
  142. } catch (Exception e) {
  143. failureNum++;
  144. String msg = failureNum + "、机车编码 " + baseVehicle2.getVehicleCode() + " 导入失败:";
  145. failureMsg.append(msg);
  146. log.error(msg, e);
  147. }
  148. }
  149. if (failureNum > 0) {
  150. failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
  151. throw new ServiceException(failureMsg.toString());
  152. } else {
  153. successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条。");
  154. }
  155. return successMsg.toString();
  156. }
  157. @Override
  158. public AjaxResult vehicleDetails(BaseVehicle baseVehicle) {
  159. BaseVehicle baseVehicle1 = baseVehicleMapper.selectById(baseVehicle.getId());
  160. return AjaxResult.success(baseVehicle1);
  161. }
  162. }