ResourceDetailServiceImpl.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package com.ruoyi.zhdd.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.bean.copier.CopyOptions;
  4. import cn.hutool.core.collection.CollUtil;
  5. import cn.hutool.core.util.StrUtil;
  6. import cn.hutool.json.JSONObject;
  7. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  8. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  9. import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
  10. import com.ruoyi.common.core.page.PagePlus;
  11. import com.ruoyi.common.core.page.TableDataInfo;
  12. import com.ruoyi.common.utils.BeanCopyUtils;
  13. import com.ruoyi.common.utils.PageUtils;
  14. import com.ruoyi.common.utils.StringUtils;
  15. import com.ruoyi.zhdd.domain.Resource;
  16. import com.ruoyi.zhdd.domain.ResourceDetail;
  17. import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
  18. import com.ruoyi.zhdd.domain.vo.IncidentVo;
  19. import com.ruoyi.zhdd.domain.vo.ResourceDetailStatic;
  20. import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
  21. import com.ruoyi.zhdd.domain.vo.ResourceVo;
  22. import com.ruoyi.zhdd.mapper.ResourceDetailMapper;
  23. import com.ruoyi.zhdd.service.IIncidentService;
  24. import com.ruoyi.zhdd.service.IResourceDetailService;
  25. import com.ruoyi.zhdd.service.IResourceService;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import java.util.ArrayList;
  29. import java.util.Collection;
  30. import java.util.List;
  31. import java.util.Map;
  32. import java.util.stream.Collectors;
  33. /**
  34. * 应急资源明细Service业务层处理
  35. *
  36. * @author xintong
  37. * @date 2021-10-27
  38. */
  39. @Service
  40. public class ResourceDetailServiceImpl extends ServicePlusImpl<ResourceDetailMapper, ResourceDetail, ResourceDetailVo> implements IResourceDetailService {
  41. @Autowired
  42. private IIncidentService incidentService;
  43. @Autowired
  44. private IResourceService resourceService;
  45. @Override
  46. public ResourceDetailVo queryById(String id) {
  47. return getVoById(id);
  48. }
  49. @Override
  50. public TableDataInfo<ResourceDetailVo> queryPageList(ResourceDetailBo bo) {
  51. PagePlus<ResourceDetail, ResourceDetailVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
  52. return PageUtils.buildDataInfo(result);
  53. }
  54. @Override
  55. public List<ResourceDetailVo> queryList(ResourceDetailBo bo) {
  56. return listVo(buildQueryWrapper(bo));
  57. }
  58. private LambdaQueryWrapper<ResourceDetail> buildQueryWrapper(ResourceDetailBo bo) {
  59. Map<String, Object> params = bo.getParams();
  60. LambdaQueryWrapper<ResourceDetail> lqw = Wrappers.lambdaQuery();
  61. lqw.eq(bo.getResourceId() != null, ResourceDetail::getResourceId, bo.getResourceId());
  62. lqw.like(StringUtils.isNotBlank(bo.getName()), ResourceDetail::getName, bo.getName());
  63. lqw.eq(StringUtils.isNotBlank(bo.getModel()), ResourceDetail::getModel, bo.getModel());
  64. lqw.eq(StringUtils.isNotBlank(bo.getSize()), ResourceDetail::getSize, bo.getSize());
  65. lqw.eq(bo.getNum() != null, ResourceDetail::getNum, bo.getNum());
  66. lqw.eq(StringUtils.isNotBlank(bo.getUnit()), ResourceDetail::getUnit, bo.getUnit());
  67. return lqw;
  68. }
  69. @Override
  70. public Boolean insertByBo(ResourceDetailBo bo) {
  71. ResourceDetail add = BeanUtil.toBean(bo, ResourceDetail.class);
  72. validEntityBeforeSave(add);
  73. return save(add);
  74. }
  75. @Override
  76. public Boolean updateByBo(ResourceDetailBo bo) {
  77. ResourceDetail update = BeanUtil.toBean(bo, ResourceDetail.class);
  78. validEntityBeforeSave(update);
  79. return updateById(update);
  80. }
  81. /**
  82. * 保存前的数据校验
  83. *
  84. * @param entity 实体类数据
  85. */
  86. private void validEntityBeforeSave(ResourceDetail entity) {
  87. //TODO 做一些数据校验,如唯一约束
  88. }
  89. @Override
  90. public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
  91. if (isValid) {
  92. //TODO 做一些业务上的校验,判断是否需要校验
  93. }
  94. return removeByIds(ids);
  95. }
  96. @Override
  97. public List<ResourceVo> searchWarehouseByGoods(ResourceDetailBo bo) {
  98. List<Resource> list = baseMapper.searchWarehouseByGoods(bo);
  99. return BeanCopyUtils.listCopy(list, new CopyOptions(), ResourceVo.class);
  100. }
  101. /**
  102. * 根据事件id查询主办和协办单位,再查询可用资源
  103. *
  104. * @param id
  105. * @return
  106. */
  107. @Override
  108. public List<JSONObject> queryResourceAvailable(String id) {
  109. IncidentVo incidentVo = incidentService.queryById(id);
  110. if (incidentVo == null) {
  111. return new ArrayList<>();
  112. }
  113. // 查询主办协办部门
  114. String madinDept = incidentVo.getMadinDept();
  115. String assistDept = incidentVo.getAssistDept();
  116. List<String> deptList = new ArrayList<>();
  117. if (StrUtil.isNotBlank(madinDept)) {
  118. CollUtil.addAll(deptList, madinDept);
  119. }
  120. if (StrUtil.isNotBlank(assistDept)) {
  121. CollUtil.addAll(deptList, assistDept.split(","));
  122. }
  123. if (deptList.size() == 0) {
  124. return new ArrayList<>();
  125. }
  126. // 查询对应的资源id
  127. List<Resource> list = resourceService.list(Wrappers.<Resource>lambdaQuery().in(Resource::getManageUnitId, deptList));
  128. if (list == null || list.size() == 0) {
  129. return new ArrayList<>();
  130. }
  131. List<String> collect = list.stream().map(Resource::getId).distinct().collect(Collectors.toList());
  132. return baseMapper.queryResourceAvailable(collect);
  133. }
  134. /**
  135. * 查询存在物资的仓库ids
  136. *
  137. * @return
  138. */
  139. @Override
  140. public List<Object> queryExistResourceId() {
  141. return baseMapper.queryExistResourceId();
  142. }
  143. @Override
  144. public List<ResourceDetailStatic> queryResourceTotalNum() {
  145. return baseMapper.queryResourceTotalNum();
  146. }
  147. }