GPatrolTeamServiceImpl.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package com.ruoyi.gas.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
  6. import com.ruoyi.common.core.page.PagePlus;
  7. import com.ruoyi.common.core.page.TableDataInfo;
  8. import com.ruoyi.common.utils.PageUtils;
  9. import com.ruoyi.common.utils.StringUtils;
  10. import com.ruoyi.gas.domain.GPatrolTeam;
  11. import com.ruoyi.gas.domain.bo.GPatrolTeamBo;
  12. import com.ruoyi.gas.domain.bo.GPatrolTeamPhotoBo;
  13. import com.ruoyi.gas.domain.vo.GPatrolTeamVo;
  14. import com.ruoyi.gas.mapper.GPatrolTeamMapper;
  15. import com.ruoyi.gas.service.IGPatrolTeamPhotoService;
  16. import com.ruoyi.gas.service.IGPatrolTeamService;
  17. import com.ruoyi.gas.service.IGUserService;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.util.ObjectUtils;
  21. import java.util.Arrays;
  22. import java.util.Collection;
  23. import java.util.List;
  24. import java.util.Map;
  25. import java.util.stream.Collectors;
  26. /**
  27. * 巡检车队Service业务层处理
  28. *
  29. * @author ruoyi
  30. * @date 2024-05-09
  31. */
  32. @Service
  33. public class GPatrolTeamServiceImpl extends ServicePlusImpl<GPatrolTeamMapper, GPatrolTeam, GPatrolTeamVo> implements IGPatrolTeamService {
  34. @Override
  35. public GPatrolTeamVo queryById(Long id) {
  36. GPatrolTeamVo voById = getVoById(id);
  37. voById.setPhotoList(baseMapper.getPhoto(id));
  38. voById.setCreateByName(baseMapper.getName(voById.getCreateBy()));
  39. return voById;
  40. }
  41. @Autowired
  42. private IGUserService gUserService;
  43. @Override
  44. public TableDataInfo<GPatrolTeamVo> queryPageList(GPatrolTeamBo bo) {
  45. String ranks = bo.getRanks();
  46. if (StringUtils.isNotEmpty(ranks)) {
  47. bo.setUids(gUserService.getByRanks(ranks));
  48. }
  49. PagePlus<GPatrolTeam, GPatrolTeamVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
  50. result.getRecordsVo().forEach(item -> {
  51. item.setPhotoList(baseMapper.getPhoto(item.getId()));
  52. item.setCreateByName(baseMapper.getName(item.getCreateBy()));
  53. });
  54. return PageUtils.buildDataInfo(result);
  55. }
  56. @Override
  57. public List<GPatrolTeamVo> queryList(GPatrolTeamBo bo) {
  58. return listVo(buildQueryWrapper(bo));
  59. }
  60. private LambdaQueryWrapper<GPatrolTeam> buildQueryWrapper(GPatrolTeamBo bo) {
  61. Map<String, Object> params = bo.getParams();
  62. LambdaQueryWrapper<GPatrolTeam> lqw = Wrappers.lambdaQuery();
  63. lqw.eq(StringUtils.isNotBlank(bo.getTeam()), GPatrolTeam::getTeam, bo.getTeam());
  64. lqw.eq(StringUtils.isNotBlank(bo.getUploadLocation()), GPatrolTeam::getUploadLocation, bo.getUploadLocation());
  65. lqw.eq(StringUtils.isNotBlank(bo.getIsNormalInspection()), GPatrolTeam::getIsNormalInspection, bo.getIsNormalInspection());
  66. lqw.in(StringUtils.isNotEmpty(bo.getRanks()), GPatrolTeam::getCreateBy, !ObjectUtils.isEmpty(bo.getUids()) && bo.getUids().size() > 0 ? bo.getUids() : Arrays.asList(0L));
  67. lqw.eq(StringUtils.isNotBlank(bo.getCreateBy()), GPatrolTeam::getCreateBy, bo.getCreateBy());
  68. lqw.orderByDesc(GPatrolTeam::getCreateTime);
  69. return lqw;
  70. }
  71. @Autowired
  72. private IGPatrolTeamPhotoService service;
  73. @Override
  74. public Boolean insertByBo(GPatrolTeamBo bo) {
  75. GPatrolTeam add = BeanUtil.toBean(bo, GPatrolTeam.class);
  76. validEntityBeforeSave(add);
  77. boolean flag = save(add);
  78. if (flag) {
  79. bo.setId(add.getId());
  80. //添加照片
  81. List<String> piclist = bo.getPhotoList();
  82. if (piclist != null) {
  83. for (int i = 0; i < bo.getPhotoList().size(); i++) {
  84. GPatrolTeamPhotoBo photo = new GPatrolTeamPhotoBo();
  85. photo.setParentId(bo.getId());
  86. photo.setPicUrl(bo.getPhotoList().get(i));
  87. service.insertByBo(photo);
  88. }
  89. }
  90. }
  91. return flag;
  92. }
  93. @Override
  94. public Boolean updateByBo(GPatrolTeamBo bo) {
  95. GPatrolTeam update = BeanUtil.toBean(bo, GPatrolTeam.class);
  96. validEntityBeforeSave(update);
  97. List<String> piclist = bo.getPhotoList();
  98. if (piclist != null) {
  99. //原有的照片
  100. List<String> photolist = baseMapper.getPhoto(bo.getId());
  101. //原有的照片不在新传的照片里
  102. List<String> dellist = photolist.stream().filter(i -> !piclist.contains(i)).collect(Collectors.toList());
  103. //删除照片
  104. if (dellist.size() > 0) {
  105. service.deleteByUrl(bo.getId(), dellist);
  106. }
  107. //新传的照片不在原有的照片里
  108. List<String> inslist = piclist.stream().filter(i -> !photolist.contains(i)).collect(Collectors.toList());
  109. if (inslist.size() > 0) {
  110. for (int i = 0; i < inslist.size(); i++) {
  111. if (StringUtils.isNotEmpty(inslist.get(i))) {
  112. //添加照片
  113. GPatrolTeamPhotoBo photo = new GPatrolTeamPhotoBo();
  114. photo.setParentId(bo.getId());
  115. photo.setPicUrl(inslist.get(i));
  116. service.insertByBo(photo);
  117. }
  118. }
  119. }
  120. }
  121. return updateById(update);
  122. }
  123. /**
  124. * 保存前的数据校验
  125. *
  126. * @param entity 实体类数据
  127. */
  128. private void validEntityBeforeSave(GPatrolTeam entity) {
  129. //TODO 做一些数据校验,如唯一约束
  130. }
  131. @Override
  132. public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
  133. if (isValid) {
  134. //TODO 做一些业务上的校验,判断是否需要校验
  135. }
  136. return removeByIds(ids);
  137. }
  138. }