gongchunyi
5 天以前 ff61feb990cbe2a7be5b790566b3aff9f16005e5
src/main/java/com/ruoyi/production/service/impl/ProcessRouteItemServiceImpl.java
@@ -1,9 +1,9 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.production.dto.ProcessRouteItemDto;
import com.ruoyi.production.mapper.ProcessRouteItemMapper;
import com.ruoyi.production.pojo.ProcessRouteItem;
@@ -21,11 +21,11 @@
public class ProcessRouteItemServiceImpl extends ServiceImpl<ProcessRouteItemMapper, ProcessRouteItem> implements ProcessRouteItemService {
    @Autowired
    private  ProcessRouteItemMapper processRouteItemMapper;
    private ProcessRouteItemMapper processRouteItemMapper;
    @Override
    public List<ProcessRouteItemDto> listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) {
        return processRouteItemMapper.listProcessRouteItemDto( processRouteItemDto);
        return processRouteItemMapper.listProcessRouteItemDto(processRouteItemDto);
    }
    //排序
@@ -37,21 +37,19 @@
        List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery()
                .eq(ProcessRouteItem::getRouteId, oldProcessRouteItem.getRouteId())
                .orderByAsc(ProcessRouteItem::getDragSort));
        //查询被更改的那条数据原来是第几条
        int oldIndex = processRouteItems.indexOf(oldProcessRouteItem);
        // 获取目标位置(移动到第几个之后)
        Integer targetPosition = processRouteItem.getDragSort();
        if (targetPosition != null && targetPosition >= 0) {
            // 移动元素到新的位置
            processRouteItems.remove(oldProcessRouteItem);
            processRouteItems.add(targetPosition-1, oldProcessRouteItem);
            processRouteItems.add(targetPosition - 1, oldProcessRouteItem);
            // 更新所有受影响的排序字段
            for (int i = 0; i < processRouteItems.size(); i++) {
                ProcessRouteItem item = processRouteItems.get(i);
                if (!item.getId().equals(oldProcessRouteItem.getId())) {
                    // 检查是否需要更新排序值
                    if (item.getDragSort() != i+1) {
                        item.setDragSort(i+1);
                    if (item.getDragSort() != i + 1) {
                        item.setDragSort(i + 1);
                        processRouteItemMapper.updateById(item);
                    }
                } else {
@@ -63,6 +61,26 @@
            return 1;
        }
        return 0;
    }
    @Override
    public void saveOrUpdateRouteItem(ProcessRouteItem processRouteItem) {
        if (processRouteItem == null) {
            throw new ServiceException("新增/修改失败,数据不能为空");
        }
        //  如果id为null则新增,否则就更新
        if (processRouteItem.getId() == null) {
            //  查询出当前有多少个子集
            Long selectCount = baseMapper.selectCount(new LambdaQueryWrapper<ProcessRouteItem>().eq(ProcessRouteItem::getRouteId, processRouteItem.getRouteId()));
            if (selectCount == null) {
                selectCount = 0L;
            }
            processRouteItem.setDragSort((int) (selectCount + 1));
            baseMapper.insert(processRouteItem);
            return;
        }
        baseMapper.updateById(processRouteItem);
    }
    @Override
@@ -82,8 +100,8 @@
        // 重新设置排序值,使序号连续
        for (int i = 0; i < processRouteItems.size(); i++) {
            ProcessRouteItem item = processRouteItems.get(i);
            if (!item.getDragSort().equals(i+1)) {
                item.setDragSort(i+1);
            if (!item.getDragSort().equals(i + 1)) {
                item.setDragSort(i + 1);
                processRouteItemMapper.updateById(item);
            }
        }