123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- package com.ruoyi.zhdd.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.ruoyi.common.core.domain.TreeSelect;
- import com.ruoyi.common.core.domain.entity.SysDept;
- 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.PageUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.system.service.ISysDeptService;
- import com.ruoyi.zhdd.domain.Resource;
- import com.ruoyi.zhdd.domain.ResourceDetail;
- import com.ruoyi.zhdd.domain.bo.ResourceBo;
- import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
- import com.ruoyi.zhdd.domain.vo.ResourceDetailStatic;
- import com.ruoyi.zhdd.domain.vo.ResourceVo;
- import com.ruoyi.zhdd.mapper.ResourceMapper;
- 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 org.springframework.transaction.annotation.Transactional;
- 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 ResourceServiceImpl extends ServicePlusImpl<ResourceMapper, Resource, ResourceVo> implements IResourceService {
- @Autowired
- private IResourceDetailService resourceDetailService;
- @Autowired
- private ISysDeptService sysDeptService;
- @Override
- public ResourceVo queryById(String id) {
- ResourceVo voById = getVoById(id);
- if (voById == null) {
- return voById;
- }
- if (voById.getResourceType() == 1) {
- // 应急仓库的类型查询仓库物资
- List<ResourceDetail> list = resourceDetailService.list(Wrappers.<ResourceDetail>lambdaQuery().eq(ResourceDetail::getResourceId, id));
- voById.setResourceDetailList(list);
- }
- // 对管理单位使用数组返回
- List<TreeSelect> unitList = new ArrayList<>();
- if (StrUtil.isNotBlank(voById.getManageUnitId())) {
- TreeSelect unit = new TreeSelect();
- unit.setId(voById.getManageUnitId());
- unit.setLabel(voById.getManageUnit());
- unitList.add(unit);
- }
- voById.setManageUnitList(unitList);
- return voById;
- }
- @Override
- public TableDataInfo<ResourceVo> queryPageList(ResourceBo bo) {
- PagePlus<Resource, ResourceVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
- // 查询物资数量
- List<ResourceDetailStatic> resourceDetailStatics = resourceDetailService.queryResourceTotalNum();
- Map<String, Integer> collect = resourceDetailStatics.stream().collect(Collectors.toMap(ResourceDetailStatic::getResourceId, ResourceDetailStatic::getNum));
- for (ResourceVo resourceVo : result.getRecordsVo()) {
- if (resourceVo.getResourceType() == 1) {
- Integer integer = collect.get(resourceVo.getId());
- resourceVo.setNum(integer == null ? 0 : integer);
- }
- }
- return PageUtils.buildDataInfo(result);
- }
- @Override
- public List<ResourceVo> queryList(ResourceBo bo) {
- return listVo(buildQueryWrapper(bo));
- }
- private LambdaQueryWrapper<Resource> buildQueryWrapper(ResourceBo bo) {
- Map<String, Object> params = bo.getParams();
- LambdaQueryWrapper<Resource> lqw = Wrappers.lambdaQuery();
- lqw.eq(bo.getResourceType() != null, Resource::getResourceType, bo.getResourceType());
- lqw.eq(StringUtils.isNotBlank(bo.getLocationType()), Resource::getLocationType, bo.getLocationType());
- lqw.like(StringUtils.isNotBlank(bo.getName()), Resource::getName, bo.getName());
- lqw.eq(StringUtils.isNotBlank(bo.getAddress()), Resource::getAddress, bo.getAddress());
- lqw.eq(StringUtils.isNotBlank(bo.getLongitude()), Resource::getLongitude, bo.getLongitude());
- lqw.eq(StringUtils.isNotBlank(bo.getLatitude()), Resource::getLatitude, bo.getLatitude());
- lqw.like(StringUtils.isNotBlank(bo.getManageUnit()), Resource::getManageUnit, bo.getManageUnit());
- lqw.eq(bo.getNum() != null, Resource::getNum, bo.getNum());
- lqw.eq(StringUtils.isNotBlank(bo.getCarryGoods()), Resource::getCarryGoods, bo.getCarryGoods());
- lqw.like(StringUtils.isNotBlank(bo.getContactName()), Resource::getContactName, bo.getContactName());
- lqw.eq(StringUtils.isNotBlank(bo.getContactPhone()), Resource::getContactPhone, bo.getContactPhone());
- lqw.eq(StringUtils.isNotBlank(bo.getManageUnitId()), Resource::getManageUnitId, bo.getManageUnitId());
- lqw.in(ObjectUtil.isNotEmpty(bo.getResourceIds()), Resource::getId, bo.getResourceIds());
- lqw.in(ObjectUtil.isNotEmpty(bo.getDeptIds()), Resource::getDeptId, bo.getDeptIds());
- lqw.orderByDesc(Resource::getCreateTime);
- return lqw;
- }
- @Override
- public Boolean insertByBo(ResourceBo bo) {
- Resource add = BeanUtil.toBean(bo, Resource.class);
- validEntityBeforeSave(add);
- return save(add);
- }
- @Override
- public Boolean updateByBo(ResourceBo bo) {
- Resource update = BeanUtil.toBean(bo, Resource.class);
- validEntityBeforeSave(update);
- return updateById(update);
- }
- /**
- * 保存前的数据校验
- *
- * @param entity 实体类数据
- */
- private void validEntityBeforeSave(Resource entity) {
- //TODO 做一些数据校验,如唯一约束
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
- if (isValid) {
- //TODO 做一些业务上的校验,判断是否需要校验
- }
- // 删除资源明细内容
- resourceDetailService.remove(Wrappers.<ResourceDetail>lambdaQuery().in(ResourceDetail::getResourceId, ids));
- return removeByIds(ids);
- }
- /**
- * 插入应急资源数据
- *
- * @param bo
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean insertResource(ResourceBo bo) {
- if (bo.getResourceType() == 3) {
- // 车牌号转大写
- bo.setName(bo.getName().toUpperCase());
- }
- Resource add = BeanUtil.toBean(bo, Resource.class);
- if (StrUtil.isNotBlank(add.getManageUnitId())) {
- // 查询管理单位对应的名称
- SysDept sysDept = sysDeptService.selectDeptById(add.getManageUnitId());
- if (sysDept != null) {
- add.setManageUnit(sysDept.getDeptName());
- }
- }
- boolean save = save(add);
- if (save) {
- if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() > 0) {
- // 处理应急物资内容
- List<ResourceDetail> list = new ArrayList<>();
- for (ResourceDetailBo resourceDetailBo : bo.getResourceDetailList()) {
- resourceDetailBo.setResourceId(add.getId());
- ResourceDetail resourceDetail = BeanUtil.toBean(resourceDetailBo, ResourceDetail.class);
- list.add(resourceDetail);
- }
- resourceDetailService.saveAll(list);
- }
- }
- return save;
- }
- /**
- * 更新资源信息
- *
- * @param bo
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean updateResource(ResourceBo bo) {
- if (bo.getResourceType() == 3) {
- // 车牌号转大写
- bo.setName(bo.getName().toUpperCase());
- }
- Resource update = BeanUtil.toBean(bo, Resource.class);
- if (StrUtil.isNotBlank(update.getManageUnitId())) {
- // 查询管理单位对应的名称
- SysDept sysDept = sysDeptService.selectDeptById(update.getManageUnitId());
- if (sysDept != null) {
- update.setManageUnit(sysDept.getDeptName());
- }
- }
- boolean save = updateById(update);
- if (save) {
- if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() > 0) {
- // 处理应急物资内容
- // 先删除原有的数据
- resourceDetailService.remove(Wrappers.<ResourceDetail>lambdaQuery().eq(ResourceDetail::getResourceId, update.getId()));
- List<ResourceDetail> list = new ArrayList<>();
- for (ResourceDetailBo resourceDetailBo : bo.getResourceDetailList()) {
- resourceDetailBo.setResourceId(update.getId());
- resourceDetailBo.setId(null);
- ResourceDetail resourceDetail = BeanUtil.toBean(resourceDetailBo, ResourceDetail.class);
- list.add(resourceDetail);
- }
- resourceDetailService.saveAll(list);
- } else if (bo.getResourceDetailList() != null && bo.getResourceDetailList().size() == 0) {
- // 清空物资
- resourceDetailService.remove(Wrappers.<ResourceDetail>lambdaQuery().eq(ResourceDetail::getResourceId, update.getId()));
- }
- }
- return save;
- }
- }
|