123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- package com.ruoyi.zhdd.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.bean.copier.CopyOptions;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.util.StrUtil;
- import cn.hutool.json.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
- import com.ruoyi.common.core.page.PagePlus;
- import com.ruoyi.common.core.page.TableDataInfo;
- import com.ruoyi.common.utils.BeanCopyUtils;
- import com.ruoyi.common.utils.PageUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.zhdd.domain.Resource;
- import com.ruoyi.zhdd.domain.ResourceDetail;
- import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
- import com.ruoyi.zhdd.domain.vo.IncidentVo;
- import com.ruoyi.zhdd.domain.vo.ResourceDetailStatic;
- import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
- import com.ruoyi.zhdd.domain.vo.ResourceVo;
- import com.ruoyi.zhdd.mapper.ResourceDetailMapper;
- import com.ruoyi.zhdd.service.IIncidentService;
- import com.ruoyi.zhdd.service.IResourceDetailService;
- import com.ruoyi.zhdd.service.IResourceService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * 应急资源明细Service业务层处理
- *
- * @author xintong
- * @date 2021-10-27
- */
- @Service
- public class ResourceDetailServiceImpl extends ServicePlusImpl<ResourceDetailMapper, ResourceDetail, ResourceDetailVo> implements IResourceDetailService {
- @Autowired
- private IIncidentService incidentService;
- @Autowired
- private IResourceService resourceService;
- @Override
- public ResourceDetailVo queryById(String id) {
- return getVoById(id);
- }
- @Override
- public TableDataInfo<ResourceDetailVo> queryPageList(ResourceDetailBo bo) {
- PagePlus<ResourceDetail, ResourceDetailVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
- return PageUtils.buildDataInfo(result);
- }
- @Override
- public List<ResourceDetailVo> queryList(ResourceDetailBo bo) {
- return listVo(buildQueryWrapper(bo));
- }
- private LambdaQueryWrapper<ResourceDetail> buildQueryWrapper(ResourceDetailBo bo) {
- Map<String, Object> params = bo.getParams();
- LambdaQueryWrapper<ResourceDetail> lqw = Wrappers.lambdaQuery();
- lqw.eq(bo.getResourceId() != null, ResourceDetail::getResourceId, bo.getResourceId());
- lqw.like(StringUtils.isNotBlank(bo.getName()), ResourceDetail::getName, bo.getName());
- lqw.eq(StringUtils.isNotBlank(bo.getModel()), ResourceDetail::getModel, bo.getModel());
- lqw.eq(StringUtils.isNotBlank(bo.getSize()), ResourceDetail::getSize, bo.getSize());
- lqw.eq(bo.getNum() != null, ResourceDetail::getNum, bo.getNum());
- lqw.eq(StringUtils.isNotBlank(bo.getUnit()), ResourceDetail::getUnit, bo.getUnit());
- return lqw;
- }
- @Override
- public Boolean insertByBo(ResourceDetailBo bo) {
- ResourceDetail add = BeanUtil.toBean(bo, ResourceDetail.class);
- validEntityBeforeSave(add);
- return save(add);
- }
- @Override
- public Boolean updateByBo(ResourceDetailBo bo) {
- ResourceDetail update = BeanUtil.toBean(bo, ResourceDetail.class);
- validEntityBeforeSave(update);
- return updateById(update);
- }
- /**
- * 保存前的数据校验
- *
- * @param entity 实体类数据
- */
- private void validEntityBeforeSave(ResourceDetail entity) {
- //TODO 做一些数据校验,如唯一约束
- }
- @Override
- public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
- if (isValid) {
- //TODO 做一些业务上的校验,判断是否需要校验
- }
- return removeByIds(ids);
- }
- @Override
- public List<ResourceVo> searchWarehouseByGoods(ResourceDetailBo bo) {
- List<Resource> list = baseMapper.searchWarehouseByGoods(bo);
- return BeanCopyUtils.listCopy(list, new CopyOptions(), ResourceVo.class);
- }
- /**
- * 根据事件id查询主办和协办单位,再查询可用资源
- *
- * @param id
- * @return
- */
- @Override
- public List<JSONObject> queryResourceAvailable(String id) {
- IncidentVo incidentVo = incidentService.queryById(id);
- if (incidentVo == null) {
- return new ArrayList<>();
- }
- // 查询主办协办部门
- String madinDept = incidentVo.getMadinDept();
- String assistDept = incidentVo.getAssistDept();
- List<String> deptList = new ArrayList<>();
- if (StrUtil.isNotBlank(madinDept)) {
- CollUtil.addAll(deptList, madinDept);
- }
- if (StrUtil.isNotBlank(assistDept)) {
- CollUtil.addAll(deptList, assistDept.split(","));
- }
- if (deptList.size() == 0) {
- return new ArrayList<>();
- }
- // 查询对应的资源id
- List<Resource> list = resourceService.list(Wrappers.<Resource>lambdaQuery().in(Resource::getManageUnitId, deptList));
- if (list == null || list.size() == 0) {
- return new ArrayList<>();
- }
- List<String> collect = list.stream().map(Resource::getId).distinct().collect(Collectors.toList());
- return baseMapper.queryResourceAvailable(collect);
- }
- /**
- * 查询存在物资的仓库ids
- *
- * @return
- */
- @Override
- public List<Object> queryExistResourceId() {
- return baseMapper.queryExistResourceId();
- }
- @Override
- public List<ResourceDetailStatic> queryResourceTotalNum() {
- return baseMapper.queryResourceTotalNum();
- }
- }
|