fuliqi
2024-07-31 f284c5ef6a1aa6e9ba5d4e94e4b2abe83b6ea18c
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -1,27 +1,43 @@
package com.ycl.platform.service.impl;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.platform.base.BaseSelect;
import com.ycl.platform.domain.entity.Region;
import com.ycl.platform.domain.entity.YwPeople;
import com.ycl.platform.domain.entity.YwPoint;
import com.ycl.platform.domain.entity.YwUnit;
import com.ycl.platform.domain.form.BatchEditPointForm;
import com.ycl.platform.mapper.RegionMapper;
import com.ycl.platform.mapper.YwPeopleMapper;
import com.ycl.platform.mapper.YwPointMapper;
import com.ycl.platform.mapper.YwUnitMapper;
import com.ycl.platform.service.YwPointService;
import com.ycl.platform.service.YwUnitService;
import com.ycl.system.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.form.YwPointForm;
import com.ycl.platform.domain.vo.YwPointVO;
import com.ycl.platform.domain.query.YwPointQuery;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import com.ycl.system.entity.SysUser;
import com.ycl.system.mapper.SysDeptMapper;
import com.ycl.system.service.ISysDeptService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.SecurityUtils;
import enumeration.general.RegionLevelEnum;
import org.springframework.stereotype.Service;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import lombok.RequiredArgsConstructor;
import org.springframework.util.StringUtils;
/**
 * 运维点位 服务实现类
@@ -33,7 +49,9 @@
@RequiredArgsConstructor
public class YwPointServiceImpl extends ServiceImpl<YwPointMapper, YwPoint> implements YwPointService {
    private final YwPointMapper ywPointMapper;
    private final SysDeptMapper sysDeptMapper;
    private final YwUnitService unitService;
    private final YwPeopleMapper ywPeopleMapper;
    /**
     * 添加
@@ -49,6 +67,37 @@
        return Result.error("添加失败");
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result batchAdd(List<YwPointForm> formList) {
        formList.stream()
                .forEach(form -> {
                    YwPoint entity = YwPointForm.getEntityByForm(form, null);
                    entity.setStatus("未开始");
                    baseMapper.insert(entity);
                });
        return Result.ok("添加成功");
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result batchEdit(BatchEditPointForm form) {
        if (Objects.nonNull(form.getUnitId())) {
            new LambdaUpdateChainWrapper<>(baseMapper)
                    .in(YwPoint::getId, form.getIds())
                    .set(YwPoint::getUnitId, form.getUnitId())
                    .update();
        } else {
            new LambdaUpdateChainWrapper<>(baseMapper)
                    .in(YwPoint::getId, form.getIds())
                    .set(YwPoint::getUnitId, form.getUnitId())
                    .set(YwPoint::getStartTime, null)
                    .set(YwPoint::getEndTime, null)
                    .update();
        }
        return Result.ok("修改成功");
    }
    /**
     * 修改
     * @param form
@@ -56,16 +105,12 @@
     */
    @Override
    public Result update(YwPointForm form) {
        YwPoint entity = baseMapper.selectById(form.getId());
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        if (baseMapper.updateById(entity) > 0) {
            return Result.ok("修改成功");
        }
        return Result.error("修改失败");
        entity.setPointTag(form.getPointTag().stream().collect(Collectors.joining(",")));
        baseMapper.updateById(entity);
        return Result.ok("修改成功");
    }
    /**
@@ -101,17 +146,14 @@
     */
    @Override
    public Result page(YwPointQuery query) {
        IPage<YwPoint> page = new LambdaQueryChainWrapper<>(baseMapper)
                .orderByDesc(YwPoint::getCreateTime)
                .page(PageUtil.getPage(query, YwPoint.class));
        List<YwPointVO> vos = page.getRecords().stream()
                .map(
                        entity -> YwPointVO.getVoByEntity(entity, null)
                )
                .collect(Collectors.toList());
        return Result.ok().data(vos).total(page.getTotal());
        IPage<YwPointVO> page = PageUtil.getPage(query, YwPointVO.class);
        baseMapper.page(page, query);
        page.getRecords().stream().forEach(point -> {
            if (StringUtils.hasText(point.getPointTagString())) {
                point.setPointTags(point.getPointTagString().split(","));
            }
        });
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }
    /**
@@ -121,10 +163,15 @@
     */
    @Override
    public Result detail(String id) {
        YwPoint entity = baseMapper.selectById(id);
        Assert.notNull(entity, "记录不存在");
        YwPointVO vo = YwPointVO.getVoByEntity(entity, null);
        if (StringUtils.hasText(entity.getPointTag())) {
            vo.setPointTags(entity.getPointTag().split(","));
        }
        if (Objects.nonNull(entity.getDeptId())) {
            vo.setDeptIds(sysDeptMapper.selectParents(entity.getDeptId()));
        }
        return Result.ok().data(vo);
    }
@@ -142,4 +189,29 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result select(String keyword) {
        Long userId = SecurityUtils.getUserId();
        // 获取当前运维人员的运维单位
        YwPeople people = new LambdaQueryChainWrapper<>(ywPeopleMapper)
                .eq(YwPeople::getUserId, userId)
                .one();
        Integer unitId = null;
        if (Objects.nonNull(people)) {
            unitId = people.getBelongUnit();
        }
        List<YwPoint> list = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(YwPoint::getUnitId, unitId)
                .like(YwPoint::getPointName, keyword)
                .list();
        List<BaseSelect> data = list.stream().map(item -> {
            BaseSelect baseSelect = new BaseSelect();
            baseSelect.setId(item.getId());
            baseSelect.setValue(item.getPointName());
            return baseSelect;
        }).collect(Collectors.toList());
        return Result.ok().data(data);
    }
}